@wandelbots/wandelbots-js-react-components 1.3.2 → 1.4.1
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/dist/components/3d-viewport/CoordinateSystemTransform.d.ts +11 -0
- package/dist/components/3d-viewport/CoordinateSystemTransform.d.ts.map +1 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts +7 -0
- package/dist/components/3d-viewport/PresetEnvironment.d.ts.map +1 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts +7 -0
- package/dist/components/3d-viewport/SafetyZonesRenderer.d.ts.map +1 -0
- package/dist/components/LoadingButton.d.ts +5 -0
- package/dist/components/LoadingButton.d.ts.map +1 -0
- package/dist/components/LoadingButton.stories.d.ts +6 -0
- package/dist/components/LoadingButton.stories.d.ts.map +1 -0
- package/dist/components/LoadingCover.d.ts +6 -0
- package/dist/components/LoadingCover.d.ts.map +1 -0
- package/dist/components/ThemeSelect.d.ts +7 -0
- package/dist/components/ThemeSelect.d.ts.map +1 -0
- package/dist/components/VelocitySlider.d.ts +14 -0
- package/dist/components/VelocitySlider.d.ts.map +1 -0
- package/dist/components/VelocitySlider.stories.d.ts +6 -0
- package/dist/components/VelocitySlider.stories.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts +15 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.stories.d.ts +6 -0
- package/dist/components/jogging/JoggingCartesianAxisControl.stories.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts +7 -0
- package/dist/components/jogging/JoggingCartesianTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingCartesianValues.d.ts +7 -0
- package/dist/components/jogging/JoggingCartesianValues.d.ts.map +1 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts +2 -0
- package/dist/components/jogging/JoggingFreedriveTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts +9 -0
- package/dist/components/jogging/JoggingJointLimitDetector.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointRotationControl.d.ts +14 -0
- package/dist/components/jogging/JoggingJointRotationControl.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointRotationControl.stories.d.ts +6 -0
- package/dist/components/jogging/JoggingJointRotationControl.stories.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointTab.d.ts +7 -0
- package/dist/components/jogging/JoggingJointTab.d.ts.map +1 -0
- package/dist/components/jogging/JoggingJointValues.d.ts +7 -0
- package/dist/components/jogging/JoggingJointValues.d.ts.map +1 -0
- package/dist/components/jogging/JoggingOptions.d.ts +7 -0
- package/dist/components/jogging/JoggingOptions.d.ts.map +1 -0
- package/dist/components/jogging/JoggingPanel.d.ts +9 -0
- package/dist/components/jogging/JoggingPanel.d.ts.map +1 -0
- package/dist/components/jogging/JoggingPanel.stories.d.ts +6 -0
- package/dist/components/jogging/JoggingPanel.stories.d.ts.map +1 -0
- package/dist/components/jogging/JoggingStore.d.ts +141 -0
- package/dist/components/jogging/JoggingStore.d.ts.map +1 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts +7 -0
- package/dist/components/jogging/JoggingVelocitySlider.d.ts.map +1 -0
- package/dist/components/robots/ABB_1200_07_7.d.ts +3 -0
- package/dist/components/robots/ABB_1200_07_7.d.ts.map +1 -0
- package/dist/components/robots/AxisConfig.d.ts +3 -0
- package/dist/components/robots/AxisConfig.d.ts.map +1 -0
- package/dist/components/robots/DHRobot.d.ts +3 -0
- package/dist/components/robots/DHRobot.d.ts.map +1 -0
- package/dist/components/robots/FANUC_ARC_Mate_100iD.d.ts +3 -0
- package/dist/components/robots/FANUC_ARC_Mate_100iD.d.ts.map +1 -0
- package/dist/components/robots/FANUC_ARC_Mate_120iD.d.ts +3 -0
- package/dist/components/robots/FANUC_ARC_Mate_120iD.d.ts.map +1 -0
- package/dist/components/robots/FANUC_CRX10iA.d.ts +3 -0
- package/dist/components/robots/FANUC_CRX10iA.d.ts.map +1 -0
- package/dist/components/robots/FANUC_CRX25iA.d.ts +3 -0
- package/dist/components/robots/FANUC_CRX25iA.d.ts.map +1 -0
- package/dist/components/robots/FANUC_CRX25iAL.d.ts +3 -0
- package/dist/components/robots/FANUC_CRX25iAL.d.ts.map +1 -0
- package/dist/components/robots/KUKA_KR210_R2700.d.ts +3 -0
- package/dist/components/robots/KUKA_KR210_R2700.d.ts.map +1 -0
- package/dist/components/robots/KUKA_KR270_R2700.d.ts +3 -0
- package/dist/components/robots/KUKA_KR270_R2700.d.ts.map +1 -0
- package/dist/components/robots/Robot.d.ts +19 -0
- package/dist/components/robots/Robot.d.ts.map +1 -0
- package/dist/components/robots/RobotAnimator.d.ts +12 -0
- package/dist/components/robots/RobotAnimator.d.ts.map +1 -0
- package/dist/components/robots/SupportedRobot.d.ts +19 -0
- package/dist/components/robots/SupportedRobot.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR10.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR10.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR10e.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR10e.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR3.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR3.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR3e.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR3e.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR5.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR5.d.ts.map +1 -0
- package/dist/components/robots/UniversalRobots_UR5e.d.ts +3 -0
- package/dist/components/robots/UniversalRobots_UR5e.d.ts.map +1 -0
- package/dist/components/robots/Yaskawa_AR1440.d.ts +3 -0
- package/dist/components/robots/Yaskawa_AR1440.d.ts.map +1 -0
- package/dist/components/robots/Yaskawa_AR1730.d.ts +3 -0
- package/dist/components/robots/Yaskawa_AR1730.d.ts.map +1 -0
- package/dist/components/robots/Yaskawa_AR2010.d.ts +3 -0
- package/dist/components/robots/Yaskawa_AR2010.d.ts.map +1 -0
- package/dist/components/robots/Yaskawa_AR3120.d.ts +3 -0
- package/dist/components/robots/Yaskawa_AR3120.d.ts.map +1 -0
- package/dist/components/robots/Yaskawa_AR900.d.ts +3 -0
- package/dist/components/robots/Yaskawa_AR900.d.ts.map +1 -0
- package/dist/components/utils/converters.d.ts +5 -0
- package/dist/components/utils/converters.d.ts.map +1 -0
- package/dist/components/utils/errorHandling.d.ts +4 -0
- package/dist/components/utils/errorHandling.d.ts.map +1 -0
- package/dist/components/utils/hooks.d.ts +22 -0
- package/dist/components/utils/hooks.d.ts.map +1 -0
- package/dist/components/utils/robotTreeQuery.d.ts +6 -0
- package/dist/components/utils/robotTreeQuery.d.ts.map +1 -0
- package/dist/components/wandelscript-editor/WandelscriptEditor.d.ts +14 -0
- package/dist/components/wandelscript-editor/WandelscriptEditor.d.ts.map +1 -0
- package/dist/components/wandelscript-editor/WandelscriptEditor.stories.d.ts +6 -0
- package/dist/components/wandelscript-editor/WandelscriptEditor.stories.d.ts.map +1 -0
- package/dist/components/wandelscript-editor/wandelscript.tmLanguage.d.ts +45 -0
- package/dist/components/wandelscript-editor/wandelscript.tmLanguage.d.ts.map +1 -0
- package/dist/i18n/config.d.ts +4 -0
- package/dist/i18n/config.d.ts.map +1 -0
- package/dist/icons/arrowForwardFilled.d.ts +2 -0
- package/dist/icons/arrowForwardFilled.d.ts.map +1 -0
- package/dist/icons/expandFilled.d.ts +2 -0
- package/dist/icons/expandFilled.d.ts.map +1 -0
- package/dist/icons/home.d.ts +2 -0
- package/dist/icons/home.d.ts.map +1 -0
- package/dist/icons/index.d.ts +7 -0
- package/dist/icons/index.d.ts.map +1 -0
- package/dist/icons/infoOutlined.d.ts +2 -0
- package/dist/icons/infoOutlined.d.ts.map +1 -0
- package/dist/icons/robot.d.ts +2 -0
- package/dist/icons/robot.d.ts.map +1 -0
- package/dist/icons/wbLogo.d.ts +7 -0
- package/dist/icons/wbLogo.d.ts.map +1 -0
- package/dist/index.cjs +102 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15200 -0
- package/dist/index.js.map +1 -0
- package/dist/themes/color.d.ts +10 -0
- package/dist/themes/color.d.ts.map +1 -0
- package/dist/themes/theme.d.ts +144 -0
- package/dist/themes/theme.d.ts.map +1 -0
- package/dist/themes/wbTheme.d.ts +73 -0
- package/dist/themes/wbTheme.d.ts.map +1 -0
- package/dist/themes/wbTheme.stories.d.ts +7 -0
- package/dist/themes/wbTheme.stories.d.ts.map +1 -0
- package/package.json +1 -2
- package/src/components/3d-viewport/SafetyZonesRenderer.tsx +2 -1
- package/src/components/robots/ABB_1200_07_7.tsx +6 -2
- package/src/components/robots/DHRobot.tsx +28 -29
- package/src/components/robots/FANUC_ARC_Mate_100iD.tsx +2 -2
- package/src/components/robots/FANUC_ARC_Mate_120iD.tsx +2 -2
- package/src/components/robots/FANUC_CRX10iA.tsx +6 -2
- package/src/components/robots/FANUC_CRX25iA.tsx +6 -2
- package/src/components/robots/FANUC_CRX25iAL.tsx +6 -2
- package/src/components/robots/KUKA_KR210_R2700.tsx +2 -2
- package/src/components/robots/KUKA_KR270_R2700.tsx +2 -2
- package/src/components/robots/Robot.tsx +42 -0
- package/src/components/robots/RobotAnimator.tsx +5 -6
- package/src/components/robots/SupportedRobot.tsx +23 -10
- package/src/components/robots/UniversalRobots_UR10.tsx +2 -2
- package/src/components/robots/UniversalRobots_UR10e.tsx +2 -2
- package/src/components/robots/UniversalRobots_UR3.tsx +2 -2
- package/src/components/robots/UniversalRobots_UR3e.tsx +2 -2
- package/src/components/robots/UniversalRobots_UR5.tsx +2 -2
- package/src/components/robots/UniversalRobots_UR5e.tsx +2 -2
- package/src/components/robots/Yaskawa_AR1440.tsx +6 -2
- package/src/components/robots/Yaskawa_AR1730.tsx +6 -2
- package/src/components/robots/Yaskawa_AR2010.tsx +6 -2
- package/src/components/robots/Yaskawa_AR3120.tsx +6 -2
- package/src/components/robots/Yaskawa_AR900.tsx +6 -2
- package/src/index.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/components/utils/robotTreeQuery.ts","../src/components/utils/hooks.tsx","../src/components/robots/RobotAnimator.tsx","../src/components/robots/UniversalRobots_UR3.tsx","../src/components/robots/UniversalRobots_UR3e.tsx","../src/components/robots/UniversalRobots_UR5.tsx","../src/components/robots/UniversalRobots_UR5e.tsx","../src/components/robots/UniversalRobots_UR10.tsx","../src/components/robots/UniversalRobots_UR10e.tsx","../src/components/robots/Yaskawa_AR900.tsx","../src/components/robots/Yaskawa_AR1440.tsx","../src/components/robots/Yaskawa_AR1730.tsx","../src/components/robots/Yaskawa_AR2010.tsx","../src/components/robots/Yaskawa_AR3120.tsx","../src/components/robots/FANUC_CRX10iA.tsx","../src/components/robots/FANUC_CRX25iA.tsx","../src/components/robots/FANUC_CRX25iAL.tsx","../src/components/robots/KUKA_KR210_R2700.tsx","../src/components/robots/KUKA_KR270_R2700.tsx","../src/components/robots/FANUC_ARC_Mate_100iD.tsx","../src/components/robots/FANUC_ARC_Mate_120iD.tsx","../src/components/robots/ABB_1200_07_7.tsx","../src/components/robots/DHRobot.tsx","../src/components/robots/SupportedRobot.tsx","../src/components/robots/Robot.tsx","../src/components/robots/AxisConfig.ts","../src/components/3d-viewport/PresetEnvironment.tsx","../src/components/3d-viewport/SafetyZonesRenderer.tsx","../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../node_modules/prop-types/node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/system/esm/responsivePropType.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/borders.js","../node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/system/esm/palette.js","../node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/esm/createTheme/applyStyles.js","../node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js","../node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/system/esm/styled.js","../node_modules/@mui/utils/esm/resolveProps/resolveProps.js","../node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/esm/setRef/setRef.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useTimeout/useTimeout.js","../node_modules/@mui/utils/esm/useIsFocusVisible/useIsFocusVisible.js","../node_modules/@mui/utils/esm/visuallyHidden/visuallyHidden.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/isHostComponent/isHostComponent.js","../node_modules/@mui/utils/esm/appendOwnerState/appendOwnerState.js","../node_modules/@mui/utils/esm/extractEventHandlers/extractEventHandlers.js","../node_modules/@mui/utils/esm/omitEventHandlers/omitEventHandlers.js","../node_modules/@mui/utils/esm/mergeSlotProps/mergeSlotProps.js","../node_modules/@mui/utils/esm/resolveComponentProps/resolveComponentProps.js","../node_modules/@mui/utils/esm/useSlotProps/useSlotProps.js","../node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/system/esm/Stack/createStack.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/extends.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@mui/system/createStyled.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/system/colorManipulator.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/material/styles/slotShouldForwardProp.js","../node_modules/@mui/material/styles/rootShouldForwardProp.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js","../node_modules/@mui/material/Stack/Stack.js","../src/components/jogging/JoggingCartesianAxisControl.tsx","../node_modules/i18next/dist/esm/i18next.js","../src/i18n/config.ts","../src/components/jogging/JoggingJointRotationControl.tsx","../src/icons/rotation.svg","../src/icons/axis-x.svg","../src/icons/axis-y.svg","../src/icons/axis-z.svg","../node_modules/@mui/material/styles/useTheme.js","../src/themes/wbTheme.ts","../src/components/ThemeSelect.tsx","../src/components/jogging/JoggingOptions.tsx","../node_modules/@mui/material/utils/areArraysEqual.js","../node_modules/@mui/material/Slider/useSlider.js","../node_modules/@mui/material/utils/shouldSpreadAdditionalProps.js","../node_modules/@mui/material/Slider/sliderClasses.js","../node_modules/@mui/material/Slider/SliderValueLabel.js","../node_modules/@mui/material/Slider/Slider.js","../src/components/VelocitySlider.tsx","../src/components/jogging/JoggingVelocitySlider.tsx","../src/components/jogging/JoggingCartesianValues.tsx","../src/components/jogging/JoggingJointLimitDetector.tsx","../src/components/jogging/JoggingCartesianTab.tsx","../src/components/jogging/JoggingJointValues.tsx","../src/components/jogging/JoggingJointTab.tsx","../src/components/jogging/JoggingStore.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/components/utils/converters.ts","../src/components/utils/errorHandling.ts","../src/components/LoadingCover.tsx","../src/components/jogging/JoggingPanel.tsx"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","import type * as THREE from \"three\"\n\nexport type RobotSceneJoint = THREE.Object3D\n\nexport const defaultJointNamePattern = \"(^joint_[0-9]+$)|(_J[0-9]+$)\"\n\nexport function getAllObjects(root: THREE.Object3D): THREE.Object3D[] {\n if (root.children.length === 0) {\n return [root]\n }\n return [root, ...root.children.flatMap((child) => getAllObjects(child))]\n}\n\nfunction isObjectAJointByName(name: string, jointNamePattern?: string) {\n // e.g. abc_J05 => joint 5\n // or joint_5 => joint 5\n return new RegExp(jointNamePattern ?? defaultJointNamePattern).test(name)\n}\n\nexport function getAllJointsByName(\n rootObject: THREE.Object3D,\n jointNamePattern?: string,\n): RobotSceneJoint[] {\n return getAllObjects(rootObject).filter((object) =>\n isObjectAJointByName(object.name, jointNamePattern),\n )\n}\n","import { autorun, reaction } from \"mobx\"\nimport { useEffect, type EffectCallback } from \"react\"\n\n/**\n * Run code once on component mount. Shorthand for useEffect(effect, []).\n */\nexport function useMounted(effect: EffectCallback) {\n useEffect(effect, [])\n}\n\n/**\n * Initialize a mobx autorun watcher on component mount, and\n * clean it up when the component unmounts.\n */\nexport function useAutorun(view: Parameters<typeof autorun>[0]) {\n useMounted(() => {\n return autorun(view)\n })\n}\n\n/**\n * Initialize a mobx reaction watcher on component mount, and\n * clean it up when the component unmounts.\n */\nexport function useReaction<T>(\n expression: Parameters<typeof reaction<T>>[0],\n effect: Parameters<typeof reaction<T>>[1],\n opts?: Parameters<typeof reaction<T>>[2],\n) {\n useMounted(() => {\n return reaction(expression, effect, opts)\n })\n}\n\n/**\n * Run a callback on every animation frame. Cleans up\n * after component unmount.\n */\nexport function useAnimationFrame(callback: () => void) {\n return useMounted(() => {\n let frameId: number\n\n function frame() {\n callback()\n frameId = requestAnimationFrame(frame)\n }\n\n frameId = requestAnimationFrame(frame)\n\n return () => {\n cancelAnimationFrame(frameId)\n }\n })\n}\n","import { useEffect, useRef } from \"react\"\nimport { Globals, useSpring } from \"@react-spring/three\"\nimport { useThree } from \"@react-three/fiber\"\nimport type * as THREE from \"three\"\nimport {\n getAllJointsByName,\n type RobotSceneJoint,\n} from \"../utils/robotTreeQuery\"\nimport type { MotionGroupStateResponse } from \"@wandelbots/wandelbots-api-client\"\nimport { useAutorun } from \"../utils/hooks\"\n\ntype RobotAnimatorProps = {\n rapidlyChangingMotionState: MotionGroupStateResponse\n robotRootObjectName: string\n onRotationChanged: (joints: THREE.Object3D[], jointValues: number[]) => void\n jointCollector?: (rootObject: THREE.Object3D) => RobotSceneJoint[]\n}\n\nexport default function RobotAnimator({\n rapidlyChangingMotionState,\n robotRootObjectName,\n onRotationChanged,\n jointCollector,\n}: RobotAnimatorProps) {\n Globals.assign({ frameLoop: \"always\" })\n const jointValues = useRef<number[]>([])\n const jointObjects = useRef<THREE.Object3D[]>([])\n const { scene, invalidate } = useThree()\n\n useEffect(() => {\n // All robots have a \"Scene\" object as root\n // From this object the tree is traversed and all joints are extracted (ordered ASC)\n const sceneObject = scene.getObjectByName(robotRootObjectName)\n if (!sceneObject) {\n return\n }\n\n jointObjects.current = jointCollector\n ? jointCollector(sceneObject)\n : getAllJointsByName(sceneObject)\n\n // Set initial position\n setRotation()\n invalidate()\n }, [])\n\n function updateJoints(newJointValues: number[]) {\n jointValues.current = newJointValues\n setSpring.start(Object.assign({}, jointValues.current) as any)\n }\n\n function setRotation() {\n const updatedJointValues = jointObjects.current.map((object, objectIndex) =>\n (axisValues as any)[objectIndex].get(),\n )\n onRotationChanged(jointObjects.current, updatedJointValues)\n }\n\n useAutorun(() => {\n const newJointValues =\n rapidlyChangingMotionState.state.joint_position.joints.filter(\n (item) => item !== undefined,\n )\n\n requestAnimationFrame(() => updateJoints(newJointValues))\n })\n\n const [axisValues, setSpring] = useSpring(() => ({\n ...Object.assign(\n {},\n rapidlyChangingMotionState.state.joint_position.joints,\n ),\n onChange: () => {\n setRotation()\n invalidate()\n },\n onResolve: () => {\n setRotation()\n },\n }))\n return null\n}\n","import { animated } from \"@react-spring/three\"\nimport { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function UniversalRobots_UR3({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) => (object.rotation.y = jointValues[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"UR3\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"UR3_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"UR3_J02\"\n position={[0, 0.152, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group name=\"UR3_J03\" position={[-0.244, 0, 0]}>\n <animated.group name=\"UR3_J04\" position={[-0.213, 0, 0]}>\n <animated.group\n name=\"UR3_J05\"\n position={[0, 0.112, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <mesh\n name=\"UR3_05\"\n castShadow\n receiveShadow\n geometry={nodes.UR3_05.geometry}\n material={materials.Standard}\n />\n <animated.group\n name=\"UR3_J06\"\n position={[0, 0.085, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group name=\"UR3_FLG\" position={[0, 0.082, 0]} />\n <mesh\n name=\"UR3_L06\"\n castShadow\n receiveShadow\n geometry={nodes.UR3_L06.geometry}\n material={materials.Standard}\n />\n </animated.group>\n </animated.group>\n <mesh\n name=\"UR3_L04\"\n castShadow\n receiveShadow\n geometry={nodes.UR3_L04.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3_L03\"\n castShadow\n receiveShadow\n geometry={nodes.UR3_L03.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3_L02\"\n castShadow\n receiveShadow\n geometry={nodes.UR3_L02.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3_L01\"\n castShadow\n receiveShadow\n geometry={nodes.UR3_L01.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3_L00\"\n castShadow\n receiveShadow\n geometry={nodes.UR3_L00.geometry}\n material={materials.Standard}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function UniversalRobots_UR3e({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) => (object.rotation.y = jointValues[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <animated.group name=\"UR3e\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"UR3e_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"UR3e_J02\"\n position={[0, 0.152, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group name=\"UR3e_J03\" position={[-0.244, 0, 0]}>\n <animated.group name=\"UR3e_J04\" position={[-0.213, 0, 0]}>\n <animated.group\n name=\"UR3e_J05\"\n position={[0, 0.131, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"UR3e_J06\"\n position={[0, 0.085, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group name=\"UR3e_FLG\" position={[0, 0.092, 0]} />\n <mesh\n name=\"UR3e_L06\"\n castShadow\n receiveShadow\n geometry={nodes.UR3e_L06.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3e_L05\"\n castShadow\n receiveShadow\n geometry={nodes.UR3e_L05.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3e_L04\"\n castShadow\n receiveShadow\n geometry={nodes.UR3e_L04.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3e_L03\"\n castShadow\n receiveShadow\n geometry={nodes.UR3e_L03.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3e_L02\"\n castShadow\n receiveShadow\n geometry={nodes.UR3e_L02.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3e_L01\"\n castShadow\n receiveShadow\n geometry={nodes.UR3e_L01.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR3e_L00\"\n castShadow\n receiveShadow\n geometry={nodes.UR3e_L00.geometry}\n material={materials.Standard}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </animated.group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport { animated } from \"@react-spring/three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function UniversalRobots_UR5({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) => (object.rotation.y = jointValues[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"UR5\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"UR5_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"UR5_J02\"\n position={[0, 0.089, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group name=\"UR5_J03\" position={[-0.425, 0, 0]}>\n <animated.group name=\"UR5_J04\" position={[-0.392, 0, 0]}>\n <animated.group\n name=\"UR5_J05\"\n position={[0, 0.109, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"UR5_J06\"\n position={[0, 0.095, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group name=\"UR5_FLG\" position={[0, 0.082, 0]} />\n <mesh\n name=\"UR5_L06\"\n castShadow\n receiveShadow\n geometry={nodes.UR5_L06.geometry}\n material={nodes.UR5_L06.material}\n />\n </animated.group>\n <mesh\n name=\"UR5_L05\"\n castShadow\n receiveShadow\n geometry={nodes.UR5_L05.geometry}\n material={nodes.UR5_L05.material}\n />\n </animated.group>\n <mesh\n name=\"UR5_L04\"\n castShadow\n receiveShadow\n geometry={nodes.UR5_L04.geometry}\n material={nodes.UR5_L04.material}\n />\n </animated.group>\n <mesh\n name=\"UR5_L03\"\n castShadow\n receiveShadow\n geometry={nodes.UR5_L03.geometry}\n material={nodes.UR5_L03.material}\n />\n </animated.group>\n <mesh\n name=\"UR5_L02\"\n castShadow\n receiveShadow\n geometry={nodes.UR5_L02.geometry}\n material={nodes.UR5_L02.material}\n />\n </animated.group>\n <mesh\n name=\"UR5_L01\"\n castShadow\n receiveShadow\n geometry={nodes.UR5_L01.geometry}\n material={nodes.UR5_L01.material}\n />\n </animated.group>\n <mesh\n name=\"UR5_L00\"\n castShadow\n receiveShadow\n geometry={nodes.UR5_L00.geometry}\n material={nodes.UR5_L00.material}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function UniversalRobots_UR5e({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) => (object.rotation.y = jointValues[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"UR5e\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"UR5e_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"UR5e_J02\"\n position={[0, 0.162, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group name=\"UR5e_J03\" position={[-0.425, 0, 0]}>\n <animated.group name=\"UR5e_J04\" position={[-0.392, 0, 0]}>\n <animated.group\n name=\"UR5e_J05\"\n position={[0, 0.133, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"UR5e_J06\"\n position={[0, 0.1, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group name=\"UR5e_FLG\" position={[0, 0.1, 0]}></group>\n\n <group\n name=\"UR5e_L06\"\n position={[0, 0.1, 0]}\n rotation={[0, 0, -Math.PI]}\n >\n <>\n <mesh\n name=\"C-1000255\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000255\"].geometry}\n material={materials.Black}\n />\n <mesh\n name=\"C-1000255_1\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000255_1\"].geometry}\n material={materials.Metal}\n />\n </>\n </group>\n </animated.group>\n <group\n name=\"UR5e_L05\"\n rotation={[-Math.PI / 2, -Math.PI / 3, 0]}\n >\n <>\n <mesh\n name=\"C-1000253\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000253\"].geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"C-1000253_1\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000253_1\"].geometry}\n material={materials.Black}\n />\n <mesh\n name=\"C-1000253_2\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000253_2\"].geometry}\n material={materials.Metal}\n />\n <mesh\n name=\"C-1000253_3\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000253_3\"].geometry}\n material={materials.DarkGray}\n />\n </>\n </group>\n </animated.group>\n <group name=\"UR5e_L04\" rotation={[0, -Math.PI / 3, 0]}>\n <>\n <mesh\n name=\"C-1000251\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000251\"].geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"C-1000251_1\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000251_1\"].geometry}\n material={materials.Black}\n />\n <mesh\n name=\"C-1000251_2\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000251_2\"].geometry}\n material={materials.Metal}\n />\n <mesh\n name=\"C-1000251_3\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000251_3\"].geometry}\n material={materials.DarkGray}\n />\n </>\n </group>\n </animated.group>\n <group name=\"UR5e_L03\">\n <>\n <mesh\n name=\"C-1000250\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000250\"].geometry}\n material={materials.Black}\n />\n <mesh\n name=\"C-1000250_1\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000250_1\"].geometry}\n material={materials.DarkGray}\n />\n <mesh\n name=\"C-1000250_2\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000250_2\"].geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"C-1000250_3\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000250_3\"].geometry}\n material={materials.Metal}\n />\n <mesh\n name=\"C-1000250_4\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000250_4\"].geometry}\n material={materials.Metal}\n />\n </>\n </group>\n </animated.group>\n <group name=\"UR5e_L02\" rotation={[0, -Math.PI / 2, 0]}>\n <>\n <mesh\n name=\"C-1000249\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000249\"].geometry}\n material={materials.Metal}\n />\n <mesh\n name=\"C-1000249_1\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000249_1\"].geometry}\n material={materials.Black}\n />\n <mesh\n name=\"C-1000249_2\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000249_2\"].geometry}\n material={materials.DarkGray}\n />\n <mesh\n name=\"C-1000249_3\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000249_3\"].geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"C-1000249_4\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000249_4\"].geometry}\n material={materials.Metal}\n />\n </>\n </group>\n </animated.group>\n <group name=\"UR5e_L01\" rotation={[Math.PI / 2, 0, 0]}>\n <>\n <mesh\n name=\"C-1000248\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000248\"].geometry}\n material={materials.DarkGray}\n />\n <mesh\n name=\"C-1000248_1\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000248_1\"].geometry}\n material={materials.Black}\n />\n <mesh\n name=\"C-1000248_2\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000248_2\"].geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"C-1000248_3\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000248_3\"].geometry}\n material={materials.Metal}\n />\n </>\n </group>\n </animated.group>\n <group name=\"UR5e_L00\">\n <>\n <mesh\n name=\"C-1000257\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000257\"].geometry}\n material={materials.Black}\n />\n <mesh\n name=\"C-1000257_1\"\n castShadow\n receiveShadow\n geometry={nodes[\"C-1000257_1\"].geometry}\n material={materials.Metal}\n />\n </>\n </group>\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport { animated } from \"@react-spring/three\"\n\nexport function UniversalRobots_UR10({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) => (object.rotation.y = jointValues[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"UR10\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"UR10_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"UR10_J02\"\n position={[0, 0.126, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group name=\"UR10_J03\" position={[-0.612, 0, 0]}>\n <animated.group name=\"UR10_J04\" position={[-0.572, 0, 0]}>\n <animated.group\n name=\"UR10_J05\"\n position={[0, 0.164, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"UR10_J06\"\n position={[0, 0.116, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group name=\"UR10_FLG\" position={[0, 0.092, 0]} />\n <mesh\n name=\"UR10_L06\"\n castShadow\n receiveShadow\n geometry={nodes.UR10_L06.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR10_L05\"\n castShadow\n receiveShadow\n geometry={nodes.UR10_L05.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR10_L04\"\n castShadow\n receiveShadow\n geometry={nodes.UR10_L04.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR10_L03\"\n castShadow\n receiveShadow\n geometry={nodes.UR10_L03.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR10_L02\"\n castShadow\n receiveShadow\n geometry={nodes.UR10_L02.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR10_L01\"\n castShadow\n receiveShadow\n geometry={nodes.UR10_L01.geometry}\n material={materials.Standard}\n />\n </animated.group>\n <mesh\n name=\"UR10_L00\"\n castShadow\n receiveShadow\n geometry={nodes.UR10_L00.geometry}\n material={materials.Standard}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { animated } from \"@react-spring/three\"\nimport { useGLTF } from \"@react-three/drei\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport type * as THREE from \"three\"\n\nexport function UniversalRobots_UR10e({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) => (object.rotation.y = jointValues[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"UR10e\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"UR10e_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"UR10e_J02\"\n position={[0, 0.181, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group name=\"UR10e_J03\" position={[-0.613, 0, 0]}>\n <animated.group name=\"UR10e_J04\" position={[-0.572, 0, 0]}>\n <animated.group\n name=\"UR10e_J05\"\n position={[0, 0.174, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"UR10e_J06\"\n position={[0, 0.12, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"UR10e_FLG\"\n position={[1.184, -0.174, 0.061]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <mesh\n name=\"C-1000493\"\n geometry={nodes[\"C-1000493\"].geometry}\n material={materials.Black}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000493_1\"\n geometry={nodes[\"C-1000493_1\"].geometry}\n material={materials.Metal}\n castShadow\n receiveShadow\n />\n </animated.group>\n\n <group\n name=\"UR10e_L07\"\n position={[0, 0.117, 0]}\n ></group>\n </animated.group>\n <group\n name=\"UR10e_L06\"\n position={[1.184, 0.181, 0.174]}\n rotation={[Math.PI, 0, 0]}\n >\n <mesh\n name=\"C-1000492\"\n geometry={nodes[\"C-1000492\"].geometry}\n material={materials.DarkGray}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000492_1\"\n geometry={nodes[\"C-1000492_1\"].geometry}\n material={materials.Black}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000492_2\"\n geometry={nodes[\"C-1000492_2\"].geometry}\n material={materials.Blue}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000492_3\"\n geometry={nodes[\"C-1000492_3\"].geometry}\n material={materials.Screw}\n castShadow\n receiveShadow\n />\n </group>\n </animated.group>\n <group\n name=\"UR10e_L05\"\n position={[1.184, 0, 0.181]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <mesh\n name=\"C-1000491\"\n geometry={nodes[\"C-1000491\"].geometry}\n material={materials.DarkGray}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000491_1\"\n geometry={nodes[\"C-1000491_1\"].geometry}\n material={materials.Blue}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000491_2\"\n geometry={nodes[\"C-1000491_2\"].geometry}\n material={materials.Black}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000491_3\"\n geometry={nodes[\"C-1000491_3\"].geometry}\n material={materials.Screw}\n castShadow\n receiveShadow\n />\n </group>\n </animated.group>\n <group\n name=\"UR10e_L04\"\n position={[0.613, 0, 0.181]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <mesh\n name=\"C-1000490\"\n geometry={nodes[\"C-1000490\"].geometry}\n material={materials.Metal}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000490_1\"\n geometry={nodes[\"C-1000490_1\"].geometry}\n material={materials.Black}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000490_2\"\n geometry={nodes[\"C-1000490_2\"].geometry}\n material={materials.DarkGray}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000490_3\"\n geometry={nodes[\"C-1000490_3\"].geometry}\n material={materials.Blue}\n castShadow\n receiveShadow\n />\n </group>\n </animated.group>\n <animated.group\n name=\"UR10e_L03\"\n position={[0, 0, 0.181]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <mesh\n name=\"C-1000489\"\n geometry={nodes[\"C-1000489\"].geometry}\n material={materials.Blue}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000489_1\"\n geometry={nodes[\"C-1000489_1\"].geometry}\n material={materials.Black}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000489_2\"\n geometry={nodes[\"C-1000489_2\"].geometry}\n material={materials.DarkGray}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000489_3\"\n geometry={nodes[\"C-1000489_3\"].geometry}\n material={materials.Screw}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000489_4\"\n geometry={nodes[\"C-1000489_4\"].geometry}\n material={materials.Metal}\n castShadow\n receiveShadow\n />\n </animated.group>\n </animated.group>\n <group name=\"UR10e_L02\">\n <mesh\n name=\"C-1000488\"\n geometry={nodes[\"C-1000488\"].geometry}\n material={materials.Black}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000488_1\"\n geometry={nodes[\"C-1000488_1\"].geometry}\n material={materials.Blue}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000488_2\"\n geometry={nodes[\"C-1000488_2\"].geometry}\n material={materials.Screw}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000488_3\"\n geometry={nodes[\"C-1000488_3\"].geometry}\n material={materials.DarkGray}\n castShadow\n receiveShadow\n />\n </group>\n </animated.group>\n <group name=\"UR10e_L01\" rotation={[-Math.PI / 2, 0, 0]}>\n <mesh\n name=\"C-1000487\"\n geometry={nodes[\"C-1000487\"].geometry}\n material={materials.Black}\n castShadow\n receiveShadow\n />\n <mesh\n name=\"C-1000487_1\"\n geometry={nodes[\"C-1000487_1\"].geometry}\n material={materials.Metal}\n castShadow\n receiveShadow\n />\n </group>\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function Yaskawa_AR900({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, -Math.PI / 2, 0, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"AR900\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"AR900_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"AR900_J02\"\n position={[0.04, 0, 0]}\n rotation={[-Math.PI / 2, -Math.PI / 2, 0]}\n >\n <animated.group\n name=\"AR900_J03\"\n position={[0.445, 0, 0]}\n rotation={[-Math.PI, 0, 0]}\n >\n <animated.group\n name=\"AR900_J04\"\n position={[0.04, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR900_J05\"\n position={[0, -0.44, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR900_J06\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"AR900_FLG\"\n position={[0, -0.08, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"AR900_L06\"\n castShadow\n receiveShadow\n geometry={nodes.AR900_L06.geometry}\n material={materials[\"#BBA474.001\"]}\n />\n </animated.group>\n <mesh\n name=\"AR900_L05\"\n castShadow\n receiveShadow\n geometry={nodes.AR900_L05.geometry}\n material={materials[\"#0056b9.001\"]}\n />\n </animated.group>\n <mesh\n name=\"AR900_L04\"\n castShadow\n receiveShadow\n geometry={nodes.AR900_L04.geometry}\n material={materials[\"#0056b9.001\"]}\n />\n </animated.group>\n <mesh\n name=\"AR900_L03\"\n castShadow\n receiveShadow\n geometry={nodes.AR900_L03.geometry}\n material={materials[\"#0056b9.001\"]}\n />\n </animated.group>\n <mesh\n name=\"AR900_L02\"\n castShadow\n receiveShadow\n geometry={nodes.AR900_L02.geometry}\n material={materials[\"#0056b9.001\"]}\n />\n </animated.group>\n <mesh\n name=\"AR900_L01\"\n castShadow\n receiveShadow\n geometry={nodes.AR900_L01.geometry}\n material={materials[\"#0056b9.001\"]}\n />\n </animated.group>\n <mesh\n name=\"AR900_L00\"\n castShadow\n receiveShadow\n geometry={nodes.AR900_L00.geometry}\n material={materials[\"#0056b9.001\"]}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function Yaskawa_AR1440({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, -Math.PI / 2, 0, 0, 0, 0]\n const rotationSign = [1, -1, 1, 1, 1, 1]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y =\n rotationSign[index]! * jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"AR1440\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"AR1440_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"AR1440_J02\"\n position={[0.155, 0, 0]}\n rotation={[Math.PI / 2, 0, Math.PI]}\n >\n <animated.group\n name=\"AR1440_J03\"\n position={[0.614, 0, 0]}\n rotation={[Math.PI, 0, 0]}\n >\n <animated.group\n name=\"AR1440_J04\"\n position={[0.2, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR1440_J05\"\n position={[0, -0.64, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR1440_J06\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"AR1440_FLG\"\n position={[0, -0.1, 0]}\n rotation={[-Math.PI, 0, 0]}\n ></group>\n <mesh\n name=\"AR1440_L06_CAD\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L06_CAD.geometry}\n material={materials.metall}\n />\n </animated.group>\n <mesh\n name=\"AR1440_L05_CAD\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L05_CAD.geometry}\n material={materials.yaskawaBlueMetall}\n />\n </animated.group>\n <group name=\"AR1440_L04_CAD\">\n <mesh\n name=\"AR1440_L04_CAD001\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L04_CAD001.geometry}\n material={materials.yaskawaBlueMetall}\n />\n <mesh\n name=\"AR1440_L04_CAD001_1\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L04_CAD001_1.geometry}\n material={materials.white}\n />\n </group>\n </animated.group>\n <group name=\"AR1440_L03_CAD\">\n <mesh\n name=\"AR1440_L03_CAD001\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L03_CAD001.geometry}\n material={materials.yaskawaBlueMetall}\n />\n <mesh\n name=\"AR1440_L03_CAD001_1\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L03_CAD001_1.geometry}\n material={materials.blackMetall}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR1440_L02_CAD\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L02_CAD.geometry}\n material={materials.yaskawaBlueMetall}\n />\n </animated.group>\n <group name=\"AR1440_L01_CAD\">\n <mesh\n name=\"AR1440_L01_CAD001\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L01_CAD001.geometry}\n material={materials.yaskawaBlueMetall}\n />\n <mesh\n name=\"AR1440_L01_CAD001_1\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L01_CAD001_1.geometry}\n material={materials.blackMetall}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR1440_L00_CAD\"\n castShadow\n receiveShadow\n geometry={nodes.AR1440_L00_CAD.geometry}\n material={materials.yaskawaBlueMetall}\n position={[0, 0, 0.45]}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function Yaskawa_AR1730({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, -Math.PI / 2, 0, 0, 0, 0]\n const rotationSign = [1, -1, 1, 1, 1, 1]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y =\n rotationSign[index]! * jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <animated.group name=\"AR1730_J00\">\n <animated.group\n name=\"AR1730_J01\"\n position={[0.15, 0, 0]}\n rotation={[-Math.PI / 2, -Math.PI / 2, 0]}\n >\n <animated.group\n name=\"AR1730_J02\"\n position={[0.76, 0, 0]}\n rotation={[-Math.PI, 0, 0]}\n >\n <animated.group\n name=\"AR1730_J03\"\n position={[0.2, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR1730_J04\"\n position={[0, -0.795, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR1730_J05\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"AR1730_FLG\"\n position={[0, -0.1, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"AR1730_L06\"\n castShadow\n receiveShadow\n geometry={nodes.AR1730_L06.geometry}\n material={materials.Metal}\n rotation={[Math.PI / 2, -Math.PI / 2, 0]}\n />\n </animated.group>\n <mesh\n name=\"AR1730_L05\"\n castShadow\n receiveShadow\n geometry={nodes.AR1730_L05.geometry}\n material={materials.Blue}\n rotation={[Math.PI / 2, 0, Math.PI / 2]}\n />\n </animated.group>\n <group\n name=\"AR1730_L04\"\n position={[0, -0.302, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"_R_AXIS_SW0001002\"\n castShadow\n receiveShadow\n geometry={nodes._R_AXIS_SW0001002.geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"_R_AXIS_SW0001002_1\"\n castShadow\n receiveShadow\n geometry={nodes._R_AXIS_SW0001002_1.geometry}\n material={materials.White}\n />\n </group>\n </animated.group>\n <group\n name=\"AR1730_L03\"\n rotation={[Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"_U_AXIS_SW0001002\"\n castShadow\n receiveShadow\n geometry={nodes._U_AXIS_SW0001002.geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"_U_AXIS_SW0001002_1\"\n castShadow\n receiveShadow\n geometry={nodes._U_AXIS_SW0001002_1.geometry}\n material={materials.Black}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR1730_L02\"\n castShadow\n receiveShadow\n geometry={nodes.AR1730_L02.geometry}\n material={materials.Blue}\n position={[0, -0.157, 0]}\n rotation={[-Math.PI, -1.571, 0]}\n />\n </animated.group>\n <group\n name=\"AR1730_L01\"\n position={[0, -0.336, 0]}\n rotation={[Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"_S_AXIS_SW0001002\"\n castShadow\n receiveShadow\n geometry={nodes._S_AXIS_SW0001002.geometry}\n material={materials.Blue}\n />\n <mesh\n name=\"_S_AXIS_SW0001002_1\"\n castShadow\n receiveShadow\n geometry={nodes._S_AXIS_SW0001002_1.geometry}\n material={materials.Black}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR1730_L00\"\n castShadow\n receiveShadow\n geometry={nodes.AR1730_L00.geometry}\n material={materials.Blue}\n position={[0, -0.505, 0]}\n rotation={[Math.PI / 2, 0, -Math.PI / 2]}\n />\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function Yaskawa_AR2010({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, -Math.PI / 2, 0, 0, 0, 0]\n const rotationSign = [1, -1, 1, 1, 1, 1]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y =\n rotationSign[index]! * jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"AR2010\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"AR2010_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"AR2010_J02\"\n position={[0.15, 0, 0]}\n rotation={[Math.PI / 2, 0, Math.PI]}\n >\n <animated.group\n name=\"AR2010_J03\"\n position={[0.76, 0, 0]}\n rotation={[Math.PI, 0, 0]}\n >\n <animated.group\n name=\"AR2010_J04\"\n position={[0.2, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR2010_J05\"\n position={[0, -1.082, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR2010_J06\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"AR2010_FLG\"\n position={[0, -0.1, 0]}\n rotation={[-Math.PI, 0, 0]}\n ></group>\n <group name=\"AR2010_L06\">\n <mesh\n name=\"AR2010_06001\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_06001.geometry}\n material={materials.yaskawaBlueMetall}\n />\n <mesh\n name=\"AR2010_06001_1\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_06001_1.geometry}\n material={materials.metall}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR2010_L05\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_L05.geometry}\n material={materials.yaskawaBlueMetall}\n />\n </animated.group>\n <group name=\"AR2010_L04\">\n <mesh\n name=\"AR2010_04001\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_04001.geometry}\n material={materials.yaskawaBlueMetall}\n />\n <mesh\n name=\"AR2010_04001_1\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_04001_1.geometry}\n material={materials.white}\n />\n </group>\n </animated.group>\n <group name=\"AR2010_L03\">\n <mesh\n name=\"AR2010_03001\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_03001.geometry}\n material={materials.yaskawaBlueMetall}\n />\n <mesh\n name=\"AR2010_03001_1\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_03001_1.geometry}\n material={materials.blackMetall}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR2010_L02\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_L02.geometry}\n material={materials.yaskawaBlueMetall}\n />\n </animated.group>\n <group name=\"AR2010_L01\">\n <mesh\n name=\"AR2010_01001\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_01001.geometry}\n material={materials.yaskawaBlueMetall}\n />\n <mesh\n name=\"AR2010_01001_1\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_01001_1.geometry}\n material={materials.blackMetall}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR2010_L00\"\n castShadow\n receiveShadow\n geometry={nodes.AR2010_L00.geometry}\n material={materials.yaskawaBlueMetall}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport { animated } from \"@react-spring/three\"\n\nexport function Yaskawa_AR3120({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, -Math.PI / 2, 0, 0, 0, 0]\n const rotationSign = [1, -1, 1, 1, 1, 1]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y =\n rotationSign[index]! * jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <animated.group name=\"AR3120_J00\">\n <animated.group\n name=\"AR3120_J01\"\n position={[0.145, 0, 0]}\n rotation={[-Math.PI / 2, -Math.PI / 2, 0]}\n >\n <animated.group\n name=\"AR3120_J02\"\n position={[1.15, 0, 0]}\n rotation={[-Math.PI, 0, 0]}\n >\n <animated.group\n name=\"AR3120_J03\"\n position={[0.25, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR3120_J04\"\n position={[0, -1.812, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"AR3120_J05\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"AR3120_FLG\"\n position={[0, -0.1, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"AR3120_L06\"\n castShadow\n receiveShadow\n geometry={nodes.AR3120_L06.geometry}\n material={materials[\"Metal.001\"]}\n rotation={[Math.PI / 2, -Math.PI / 2, 0]}\n />\n </animated.group>\n <mesh\n name=\"AR3120_L05\"\n castShadow\n receiveShadow\n geometry={nodes.AR3120_L05.geometry}\n material={materials[\"Blue.001\"]}\n rotation={[Math.PI / 2, 0, Math.PI / 2]}\n />\n </animated.group>\n <group\n name=\"AR3120_L04\"\n rotation={[Math.PI / 2, -Math.PI / 2, 0]}\n >\n <mesh\n name=\"R_AXIS_GP20HL001\"\n castShadow\n receiveShadow\n geometry={nodes.R_AXIS_GP20HL001.geometry}\n material={materials[\"Blue.001\"]}\n />\n <mesh\n name=\"R_AXIS_GP20HL001_1\"\n castShadow\n receiveShadow\n geometry={nodes.R_AXIS_GP20HL001_1.geometry}\n material={materials[\"White.001\"]}\n />\n </group>\n </animated.group>\n <group name=\"AR3120_L03\" rotation={[Math.PI, 0, -Math.PI / 2]}>\n <mesh\n name=\"Mesh_3001\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_3001.geometry}\n material={materials[\"Blue.001\"]}\n />\n <mesh\n name=\"Mesh_3001_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_3001_1.geometry}\n material={materials[\"Black.001\"]}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR3120_L02\"\n castShadow\n receiveShadow\n geometry={nodes.AR3120_L02.geometry}\n material={materials[\"Blue.001\"]}\n position={[0, -0.146, 0]}\n rotation={[Math.PI, 0, 0]}\n />\n </animated.group>\n <group\n name=\"AR3120_L01\"\n position={[0, -0.228, 0]}\n rotation={[0, -1.571, 0]}\n >\n <mesh\n name=\"S_AXIS_GP20HL001\"\n castShadow\n receiveShadow\n geometry={nodes.S_AXIS_GP20HL001.geometry}\n material={materials[\"Blue.001\"]}\n />\n <mesh\n name=\"S_AXIS_GP20HL001_1\"\n castShadow\n receiveShadow\n geometry={nodes.S_AXIS_GP20HL001_1.geometry}\n material={materials[\"Black.001\"]}\n />\n </group>\n </animated.group>\n <mesh\n name=\"AR3120_L00\"\n castShadow\n receiveShadow\n geometry={nodes.AR3120_L00.geometry}\n material={materials[\"Blue.001\"]}\n position={[0, -0.54, 0]}\n />\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport { animated } from \"@react-spring/three\"\n\nexport function FANUC_CRX10iA({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, Math.PI / 2, 0, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <animated.group name=\"CRX10iA_J00\">\n <animated.group\n name=\"CRX10iA_J01\"\n rotation={[Math.PI / 2, Math.PI / 2, 0]}\n >\n <animated.group name=\"CRX10iA_J02\" position={[0.54, 0, 0]}>\n <animated.group\n name=\"CRX10iA_J03\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"CRX10iA_J04\"\n position={[0, -0.54, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"CRX10iA_J05\"\n position={[0, 0.15, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"CRX10iA_FLG\"\n position={[0, -0.16, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"CRX10iA_L06\"\n castShadow\n receiveShadow\n geometry={nodes.CRX10iA_L06.geometry}\n material={materials.Fanuc_BlackMetal}\n position={[0, -0.16, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n />\n </animated.group>\n <group\n name=\"CRX10iA_L05\"\n position={[0, 0.15, 0]}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"J5CASING_UNIT001\"\n castShadow\n receiveShadow\n geometry={nodes.J5CASING_UNIT001.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n <mesh\n name=\"J5CASING_UNIT001_1\"\n castShadow\n receiveShadow\n geometry={nodes.J5CASING_UNIT001_1.geometry}\n material={materials.Fanuc_Green}\n />\n </group>\n </animated.group>\n <group\n name=\"CRX10iA_L04\"\n position={[0, -0.54, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"NAME_LABEL_CRX_10iA\"\n castShadow\n receiveShadow\n geometry={nodes.NAME_LABEL_CRX_10iA.geometry}\n material={materials.Fanuc_RedPlastic}\n />\n <mesh\n name=\"NAME_LABEL_CRX_10iA_1\"\n castShadow\n receiveShadow\n geometry={nodes.NAME_LABEL_CRX_10iA_1.geometry}\n material={materials.Fanuc_BlackPlastic}\n />\n <mesh\n name=\"NAME_LABEL_CRX_10iA_2\"\n castShadow\n receiveShadow\n geometry={nodes.NAME_LABEL_CRX_10iA_2.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n </group>\n </animated.group>\n <mesh\n name=\"CRX10iA_L03\"\n castShadow\n receiveShadow\n geometry={nodes.CRX10iA_L03.geometry}\n material={materials.Fanuc_WhitePlastic}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n />\n </animated.group>\n <mesh\n name=\"CRX10iA_L02\"\n castShadow\n receiveShadow\n geometry={nodes.CRX10iA_L02.geometry}\n material={materials.Fanuc_WhitePlastic}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n />\n </animated.group>\n <group name=\"CRX10iA_L01\" position={[0, -0.117, 0]}>\n <mesh\n name=\"J2BASE_UNIT001\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_UNIT001.geometry}\n material={materials.Fanuc_Green}\n />\n <mesh\n name=\"J2BASE_UNIT001_1\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_UNIT001_1.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n <mesh\n name=\"J2BASE_UNIT001_2\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_UNIT001_2.geometry}\n material={materials.Fanuc_GreenLED}\n />\n </group>\n </animated.group>\n <mesh\n name=\"CRX10iA_L00\"\n castShadow\n receiveShadow\n geometry={nodes.CRX10iA_L00.geometry}\n material={materials.Fanuc_BlackMetal}\n position={[0, -0.245, 0]}\n />\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function FANUC_CRX25iA({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, Math.PI / 2, 0, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\" position={[0, -0.37, 0]}>\n <group name=\"CRX25iA_L00\">\n <mesh\n name=\"J1BASE_NetGen_Coarse\"\n castShadow\n receiveShadow\n geometry={nodes.J1BASE_NetGen_Coarse.geometry}\n material={materials.Fanuc_BlackMetal}\n />\n <mesh\n name=\"J1BASE_NetGen_Coarse_1\"\n castShadow\n receiveShadow\n geometry={nodes.J1BASE_NetGen_Coarse_1.geometry}\n material={materials.Fanuc_GreenPlastic}\n />\n </group>\n <animated.group name=\"CRX25iA_J00\">\n <animated.group\n name=\"CRX25iA_J01\"\n position={[0, 0.37, 0]}\n rotation={[Math.PI / 2, Math.PI / 2, 0]}\n >\n <animated.group name=\"CRX25iA_J02\" position={[0.95, 0, 0]}>\n <animated.group\n name=\"CRX25iA_J03\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"CRX25iA_J04\"\n position={[0, -0.75, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"CRX25iA_J05\"\n position={[0, 0.185, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"CRX25iA_FLG\"\n position={[0, -0.18, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"CRX25iA_L06\"\n castShadow\n receiveShadow\n geometry={nodes.CRX25iA_L06.geometry}\n material={materials.Fanuc_BlackMetal}\n position={[0, -0.18, 0]}\n />\n </animated.group>\n <group name=\"CRX25iA_L05\" position={[0, 0.185, 0]}>\n <mesh\n name=\"J6CASING_NetGen_Coarse\"\n castShadow\n receiveShadow\n geometry={nodes.J6CASING_NetGen_Coarse.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n <mesh\n name=\"J6CASING_NetGen_Coarse_1\"\n castShadow\n receiveShadow\n geometry={nodes.J6CASING_NetGen_Coarse_1.geometry}\n material={materials.Fanuc_GreenPlastic}\n />\n </group>\n </animated.group>\n <group name=\"CRX25iA_L04\" position={[0, -0.75, 0]}>\n <mesh\n name=\"J3ARM_NetGen_Coarse\"\n castShadow\n receiveShadow\n geometry={nodes.J3ARM_NetGen_Coarse.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n <mesh\n name=\"J3ARM_NetGen_Coarse_1\"\n castShadow\n receiveShadow\n geometry={nodes.J3ARM_NetGen_Coarse_1.geometry}\n material={materials.Fanuc_RedPlastic}\n />\n <mesh\n name=\"J3ARM_NetGen_Coarse_2\"\n castShadow\n receiveShadow\n geometry={nodes.J3ARM_NetGen_Coarse_2.geometry}\n material={materials.Fanuc_BlackPlastic}\n />\n </group>\n </animated.group>\n <group name=\"CRX25iA_L03\">\n <mesh\n name=\"J3CASING_NetGen_Coarse\"\n castShadow\n receiveShadow\n geometry={nodes.J3CASING_NetGen_Coarse.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n <mesh\n name=\"J3CASING_NetGen_Coarse_1\"\n castShadow\n receiveShadow\n geometry={nodes.J3CASING_NetGen_Coarse_1.geometry}\n material={materials.Fanuc_GreenPlastic}\n />\n </group>\n </animated.group>\n <mesh\n name=\"CRX25iA_L02\"\n castShadow\n receiveShadow\n geometry={nodes.CRX25iA_L02.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n </animated.group>\n <group name=\"CRX25iA_L01\" position={[0, 0.18, 0]}>\n <mesh\n name=\"J2BASE_NetGen_Coarse\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_NetGen_Coarse.geometry}\n material={materials.Fanuc_WhitePlastic}\n />\n <mesh\n name=\"J2BASE_NetGen_Coarse_1\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_NetGen_Coarse_1.geometry}\n material={materials.Fanuc_GreenLED}\n />\n </group>\n </animated.group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function FANUC_CRX25iAL({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, Math.PI / 2, 0, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <animated.group name=\"CRX10iA_J00\">\n <animated.group\n name=\"CRX10iA_J01\"\n position={[0, 0.245, 0]}\n rotation={[Math.PI / 2, Math.PI / 2, 0]}\n >\n <animated.group name=\"CRX10iA_J02\" position={[0.71, 0, 0]}>\n <animated.group\n name=\"CRX10iA_J03\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"CRX10iA_J04\"\n position={[0, -0.54, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"CRX10iA_J05\"\n position={[0, 0.15, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"CRX10iA_FLG\"\n position={[0, -0.16, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"CRX10iA_L06\"\n castShadow\n receiveShadow\n geometry={nodes.CRX10iA_L06.geometry}\n material={materials[\"Fanuc_BlackMetal.001\"]}\n position={[0, -0.16, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n />\n </animated.group>\n <group\n name=\"CRX10iA_L05\"\n position={[0, 0.15, 0]}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"J5CASING_UNIT001\"\n castShadow\n receiveShadow\n geometry={nodes.J5CASING_UNIT001.geometry}\n material={materials[\"Fanuc_WhitePlastic.001\"]}\n />\n <mesh\n name=\"J5CASING_UNIT001_1\"\n castShadow\n receiveShadow\n geometry={nodes.J5CASING_UNIT001_1.geometry}\n material={materials[\"Fanuc_Green.001\"]}\n />\n </group>\n </animated.group>\n <group\n name=\"CRX10iA_L04\"\n position={[0, -0.54, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"NAME_LABEL_CRX_10iA_L001\"\n castShadow\n receiveShadow\n geometry={nodes.NAME_LABEL_CRX_10iA_L001.geometry}\n material={materials[\"Fanuc_WhitePlastic.001\"]}\n />\n <mesh\n name=\"NAME_LABEL_CRX_10iA_L001_1\"\n castShadow\n receiveShadow\n geometry={nodes.NAME_LABEL_CRX_10iA_L001_1.geometry}\n material={materials[\"Fanuc_RedPlastic.001\"]}\n />\n <mesh\n name=\"NAME_LABEL_CRX_10iA_L001_2\"\n castShadow\n receiveShadow\n geometry={nodes.NAME_LABEL_CRX_10iA_L001_2.geometry}\n material={materials[\"Fanuc_BlackPlastic.001\"]}\n />\n </group>\n </animated.group>\n <group\n name=\"CRX10iA_L03\"\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"J3CASING_UNIT001\"\n castShadow\n receiveShadow\n geometry={nodes.J3CASING_UNIT001.geometry}\n material={materials[\"Fanuc_WhitePlastic.001\"]}\n />\n <mesh\n name=\"J3CASING_UNIT001_1\"\n castShadow\n receiveShadow\n geometry={nodes.J3CASING_UNIT001_1.geometry}\n material={materials[\"Fanuc_Green.001\"]}\n />\n </group>\n </animated.group>\n <mesh\n name=\"CRX10iA_L02\"\n castShadow\n receiveShadow\n geometry={nodes.CRX10iA_L02.geometry}\n material={materials[\"Fanuc_WhitePlastic.001\"]}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n />\n </animated.group>\n <group name=\"CRX10iA_L01\" position={[0, 0.128, 0]}>\n <mesh\n name=\"J2BASE_UNIT001\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_UNIT001.geometry}\n material={materials[\"Fanuc_WhitePlastic.001\"]}\n />\n <mesh\n name=\"J2BASE_UNIT001_1\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_UNIT001_1.geometry}\n material={materials[\"Fanuc_Green.001\"]}\n />\n <mesh\n name=\"J2BASE_UNIT001_2\"\n castShadow\n receiveShadow\n geometry={nodes.J2BASE_UNIT001_2.geometry}\n material={materials[\"Fanuc_GreenLED.001\"]}\n />\n </group>\n </animated.group>\n <mesh\n name=\"CRX10iA_L00\"\n castShadow\n receiveShadow\n geometry={nodes.CRX10iA_L00.geometry}\n material={materials[\"Fanuc_BlackMetal.001\"]}\n />\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function KUKA_KR210_R2700({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n\n const nodes = gltf.nodes\n const materials = gltf.materials\n\n const rotationOffsets = [0, 0, -Math.PI / 2, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"kuka_kr210_2700\">\n <animated.group name=\"joint_01\">\n <animated.group\n name=\"joint_02\"\n position={[0.33, 0.645, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"joint_03\"\n position={[1.15, 0, 0]}\n rotation={[0, -Math.PI / 2, 0]}\n >\n <animated.group\n name=\"joint_04\"\n position={[0.115, 0, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"joint_05\"\n position={[0, -1.22, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"joint_06\"\n rotation={[Math.PI / 2, 0, 0]}\n >\n <group\n name=\"flange\"\n position={[0, -0.215, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <group\n name=\"link_6\"\n position={[0, -0.17, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"visuals006\"\n castShadow\n receiveShadow\n geometry={nodes.visuals006.geometry}\n material={materials.material_Material_Metall_black}\n />\n </group>\n </animated.group>\n <group\n name=\"link_5\"\n position={[0, 0.059, 0]}\n rotation={[Math.PI / 2, 0, -Math.PI / 2]}\n >\n <group name=\"visuals005\">\n <mesh\n name=\"visuals005_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals005_1.geometry}\n material={materials.material_Material_metal_black}\n />\n <mesh\n name=\"visuals005_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals005_2.geometry}\n material={materials.material_Material_kuka_orange}\n />\n </group>\n </group>\n </animated.group>\n <group\n name=\"link_4\"\n position={[0, -0.869, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <group name=\"visuals004\">\n <mesh\n name=\"visuals004_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals004_1.geometry}\n material={materials.material_Material_metal_black}\n />\n <mesh\n name=\"visuals004_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals004_2.geometry}\n material={materials.material_Material_kuka_orange}\n />\n </group>\n </group>\n </animated.group>\n <group\n name=\"link_3\"\n position={[0, -0.105, 0]}\n rotation={[Math.PI / 2, 0, -Math.PI / 2]}\n >\n <group name=\"visuals003\">\n <mesh\n name=\"visuals003_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_1.geometry}\n material={materials.material_Material_rubber}\n />\n <mesh\n name=\"visuals003_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_2.geometry}\n material={materials.material_Material_aluminium}\n />\n <mesh\n name=\"visuals003_3\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_3.geometry}\n material={materials.material_Material_metal_black}\n />\n <mesh\n name=\"visuals003_4\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_4.geometry}\n material={materials.material_Material_kuka_black}\n />\n <mesh\n name=\"visuals003_5\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_5.geometry}\n material={materials.material_Material_Rubber_black}\n />\n <mesh\n name=\"visuals003_6\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_6.geometry}\n material={materials.material_Material_kuka_orange}\n />\n <mesh\n name=\"visuals003_7\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_7.geometry}\n material={materials.material_Material_stainless_steel}\n />\n </group>\n </group>\n </animated.group>\n <group\n name=\"link_2\"\n position={[0, 0.009, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <group name=\"visuals002\">\n <mesh\n name=\"visuals002_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals002_1.geometry}\n material={materials.material_Material_metal_black}\n />\n <mesh\n name=\"visuals002_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals002_2.geometry}\n material={materials.material_Material_Rubber_black}\n />\n <mesh\n name=\"visuals002_3\"\n castShadow\n receiveShadow\n geometry={nodes.visuals002_3.geometry}\n material={materials.material_Material_kuka_orange}\n />\n </group>\n </group>\n </animated.group>\n <group name=\"link_1\" position={[0, 0.236, 0]}>\n <group name=\"visuals001\">\n <mesh\n name=\"visuals001_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_1.geometry}\n material={materials.material_Material_kuka_black}\n />\n <mesh\n name=\"visuals001_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_2.geometry}\n material={materials.material_Material_kuka_orange}\n />\n <mesh\n name=\"visuals001_3\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_3.geometry}\n material={materials.material_Material_rubber}\n />\n <mesh\n name=\"visuals001_4\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_4.geometry}\n material={materials.material_Material_metal_black}\n />\n <mesh\n name=\"visuals001_5\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_5.geometry}\n material={materials.material_Material_aluminium}\n />\n <mesh\n name=\"visuals001_6\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_6.geometry}\n material={materials.material_Material_rubber_black}\n />\n <mesh\n name=\"visuals001_7\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_7.geometry}\n material={materials.material_Material_stainless_steel}\n />\n </group>\n </group>\n </animated.group>\n <group name=\"link_0\">\n <group name=\"visuals\">\n <mesh\n name=\"visuals_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals_1.geometry}\n material={materials.material_Material_kuka_black}\n />\n <mesh\n name=\"visuals_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals_2.geometry}\n material={materials.material_Material_metal_black}\n />\n </group>\n </group>\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function KUKA_KR270_R2700({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n\n const nodes = gltf.nodes\n const materials = gltf.materials\n\n const rotationOffsets = [0, 0, -Math.PI / 2, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"kuka_kr270_2700_ultra\">\n <animated.group name=\"joint_01\">\n <animated.group\n name=\"joint_02\"\n position={[0.35, 0.675, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"joint_03\"\n position={[1.15, 0, 0]}\n rotation={[0, -Math.PI / 2, 0]}\n >\n <animated.group\n name=\"joint_04\"\n position={[-0.041, 0, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"joint_05\"\n position={[0, -1.2, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"joint_06\"\n rotation={[Math.PI / 2, 0, 0]}\n >\n <group\n name=\"flange\"\n position={[0, -0.24, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <group\n name=\"link_6\"\n position={[0, -0.213, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <group name=\"visuals006\">\n <mesh\n name=\"visuals006_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals006_1.geometry}\n material={materials.material_Material_Farbe__1_}\n />\n <mesh\n name=\"visuals006_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals006_2.geometry}\n material={materials.material_Material_Metall}\n />\n </group>\n </group>\n </animated.group>\n <group\n name=\"link_5\"\n position={[0, 0.044, 0]}\n rotation={[Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"visuals005\"\n castShadow\n receiveShadow\n geometry={nodes.visuals005.geometry}\n material={materials.material_Material_Farbe}\n />\n </group>\n </animated.group>\n <group\n name=\"link_4\"\n position={[0, -0.954, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"visuals004\"\n castShadow\n receiveShadow\n geometry={nodes.visuals004.geometry}\n material={materials.material_Material_Farbe}\n />\n </group>\n </animated.group>\n <group\n name=\"link_3\"\n position={[0, -0.178, 0]}\n rotation={[Math.PI / 2, 0, -Math.PI / 2]}\n >\n <group name=\"visuals003\">\n <mesh\n name=\"visuals003_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_1.geometry}\n material={materials.material_Material_Farbe__1_}\n />\n <mesh\n name=\"visuals003_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_2.geometry}\n material={materials.material_Material_Farbe__2_}\n />\n <mesh\n name=\"visuals003_3\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_3.geometry}\n material={materials.material_Material_Metall}\n />\n <mesh\n name=\"visuals003_4\"\n castShadow\n receiveShadow\n geometry={nodes.visuals003_4.geometry}\n material={materials.material_Material_Farbe}\n />\n </group>\n </group>\n </animated.group>\n <group name=\"link_2\" rotation={[Math.PI / 2, 0, 0]}>\n <group name=\"visuals002\">\n <mesh\n name=\"visuals002_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals002_1.geometry}\n material={materials.material_Material_Farbe}\n />\n <mesh\n name=\"visuals002_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals002_2.geometry}\n material={materials.material_Material_Farbe__1_}\n />\n <mesh\n name=\"visuals002_3\"\n castShadow\n receiveShadow\n geometry={nodes.visuals002_3.geometry}\n material={materials.material_Material_Metall}\n />\n <mesh\n name=\"visuals002_4\"\n castShadow\n receiveShadow\n geometry={nodes.visuals002_4.geometry}\n material={materials.material_Material_Farbe__2_}\n />\n </group>\n </group>\n </animated.group>\n <group name=\"link_1\" position={[0, 0.226, 0]}>\n <group name=\"visuals001\">\n <mesh\n name=\"visuals001_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_1.geometry}\n material={materials.material_Material_Metall}\n />\n <mesh\n name=\"visuals001_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_2.geometry}\n material={materials.material_Material_Farbe__1_}\n />\n <mesh\n name=\"visuals001_3\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_3.geometry}\n material={materials.material_Material_Farbe__2_}\n />\n <mesh\n name=\"visuals001_4\"\n castShadow\n receiveShadow\n geometry={nodes.visuals001_4.geometry}\n material={materials.material_Material_Farbe}\n />\n </group>\n </group>\n </animated.group>\n <group name=\"link_0-base\">\n <group name=\"joint_1\" />\n <group name=\"visuals\">\n <mesh\n name=\"visuals_1\"\n castShadow\n receiveShadow\n geometry={nodes.visuals_1.geometry}\n material={materials.material_Material_Metall}\n />\n <mesh\n name=\"visuals_2\"\n castShadow\n receiveShadow\n geometry={nodes.visuals_2.geometry}\n material={materials.material_Material_Farbe__1_}\n />\n </group>\n </group>\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport { animated } from \"@react-spring/three\"\n\nexport function FANUC_ARC_Mate_100iD({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, Math.PI / 2, 0, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"M10iD\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group name=\"M10iD_J01\" rotation={[-Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"M10iD_J02\"\n position={[0.075, 0, 0]}\n rotation={[Math.PI / 2, Math.PI / 2, 0]}\n >\n <animated.group name=\"M10iD_J03\" position={[0.64, 0, 0]}>\n <animated.group\n name=\"M10iD_J04\"\n position={[0.195, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"M10iD_J05\"\n position={[0, -0.7, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"M10iD_J06\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"M10iD_FLG\"\n position={[0, -0.075, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"M10iD_L06\"\n castShadow\n receiveShadow\n geometry={nodes.M10iD_L06.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n position={[-0.835, 0.775, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n />\n </animated.group>\n <mesh\n name=\"M10iD_L05\"\n castShadow\n receiveShadow\n geometry={nodes.M10iD_L05.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n position={[-0.835, 0, -0.775]}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n />\n </animated.group>\n <group\n name=\"M10iD_L04\"\n position={[-0.835, 0.075, 0]}\n rotation={[0, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"Mesh_654\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_654.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n <mesh\n name=\"Mesh_654_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_654_1.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n </group>\n </animated.group>\n <group\n name=\"M10iD_L03\"\n position={[-0.64, 0, -0.075]}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"Mesh_378\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_378.geometry}\n material={materials.Material_1_AO}\n />\n <mesh\n name=\"Mesh_378_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_378_1.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n <mesh\n name=\"Mesh_378_2\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_378_2.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n </group>\n </animated.group>\n <group\n name=\"M10iD_L02\"\n position={[0, 0, -0.075]}\n rotation={[-Math.PI / 2, 0, -Math.PI / 2]}\n >\n <mesh\n name=\"Mesh_358\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_358.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n <mesh\n name=\"Mesh_358_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_358_1.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n </group>\n </animated.group>\n <group name=\"M10iD_L01\">\n <mesh\n name=\"Mesh_356\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_356.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n <mesh\n name=\"Mesh_356_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_356_1.geometry}\n material={materials.Material_1_AO}\n />\n <mesh\n name=\"Mesh_356_2\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_356_2.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n </group>\n </animated.group>\n <mesh\n name=\"M10iD_L00\"\n castShadow\n receiveShadow\n geometry={nodes.M10iD_L00.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport { animated } from \"@react-spring/three\"\n\nexport function FANUC_ARC_Mate_120iD({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, Math.PI / 2, 0, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"M10iD\" rotation={[0, 0, 0]}>\n <animated.group name=\"M20iD25_J00\">\n <animated.group\n name=\"M20iD25_J01\"\n position={[0.075, 0, 0]}\n rotation={[Math.PI / 2, Math.PI / 2, 0]}\n >\n <animated.group name=\"M20iD25_J02\" position={[0.84, 0, 0]}>\n <animated.group\n name=\"M20iD25_J03\"\n position={[0.215, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"M20iD25_J04\"\n position={[0, -0.89, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"M20iD25_J05\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <group\n name=\"M20iD25_FLG\"\n position={[0, -0.09, 0]}\n rotation={[-Math.PI, 0, 0]}\n />\n <mesh\n name=\"M20iD25_L06\"\n castShadow\n receiveShadow\n geometry={nodes.M20iD25_L06.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n position={[0, -0.09, 0]}\n rotation={[Math.PI / 2, 0, Math.PI]}\n />\n </animated.group>\n <mesh\n name=\"M20iD25_L05\"\n castShadow\n receiveShadow\n geometry={nodes.M20iD25_L05.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n rotation={[Math.PI, Math.PI / 2, 0]}\n />\n </animated.group>\n <group\n name=\"M20iD25_L04\"\n position={[0, -0.286, 0]}\n rotation={[-Math.PI / 2, Math.PI / 2, 0]}\n >\n <mesh\n name=\"Mesh_2\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_2.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n <mesh\n name=\"Mesh_2_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_2_1.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n </group>\n </animated.group>\n <group\n name=\"M20iD25_L03\"\n position={[0, 0.406, 0]}\n rotation={[Math.PI, Math.PI / 2, 0]}\n >\n <mesh\n name=\"Mesh_15\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_15.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n <mesh\n name=\"Mesh_15_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_15_1.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n <mesh\n name=\"Mesh_15_2\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_15_2.geometry}\n material={materials.Material_9_AO}\n />\n </group>\n </animated.group>\n <group\n name=\"M20iD25_L02\"\n position={[0, 0.505, -0.055]}\n rotation={[-Math.PI, Math.PI / 2, 0]}\n >\n <mesh\n name=\"Mesh_37\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_37.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n <mesh\n name=\"Mesh_37_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_37_1.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n </group>\n </animated.group>\n <group name=\"M20iD25_L01\" rotation={[-Math.PI / 2, 0, 0]}>\n <mesh\n name=\"Mesh_45\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_45.geometry}\n material={materials.Material_9_AO}\n />\n <mesh\n name=\"Mesh_45_1\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_45_1.geometry}\n material={materials.Fanuc_Yellow_Textured_AO}\n />\n <mesh\n name=\"Mesh_45_2\"\n castShadow\n receiveShadow\n geometry={nodes.Mesh_45_2.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n />\n </group>\n </animated.group>\n <mesh\n name=\"M20iD25_L00\"\n castShadow\n receiveShadow\n geometry={nodes.M20iD25_L00.geometry}\n material={materials.Fanuc_BlackMetal_AO}\n position={[0, -0.425, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { useGLTF } from \"@react-three/drei\"\nimport type * as THREE from \"three\"\nimport type { RobotProps } from \"./SupportedRobot\"\nimport { animated } from \"@react-spring/three\"\nimport RobotAnimator from \"./RobotAnimator\"\n\nexport function ABB_1200_07_7({\n modelURL,\n rapidlyChangingMotionState,\n ...props\n}: RobotProps) {\n const gltf = useGLTF(modelURL) as any\n const nodes = gltf.nodes\n const materials = gltf.materials\n const rotationOffsets = [0, -Math.PI / 2, 0, 0, 0, 0]\n\n function setRotation(jointObjects: THREE.Object3D[], jointValues: number[]) {\n jointObjects.forEach(\n (object, index) =>\n (object.rotation.y = jointValues[index]! + rotationOffsets[index]!),\n )\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n />\n <group {...props} dispose={null}>\n <group name=\"Scene\">\n <group name=\"IRB1200_7_70_IRC5\" rotation={[Math.PI / 2, 0, 0]}>\n <animated.group\n name=\"IRB1200_7_70_IRC5_J01\"\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"IRB1200_7_70_IRC5_J02\"\n position={[0, 0.399, 0]}\n rotation={[-Math.PI / 2, -Math.PI / 2, 0]}\n >\n <animated.group\n name=\"IRB1200_7_70_IRC5_J03\"\n position={[0.35, 0, 0]}\n >\n <animated.group\n name=\"IRB1200_7_70_IRC5_J04\"\n position={[0.042, 0, 0]}\n rotation={[-Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"IRB1200_7_70_IRC5_J05\"\n position={[0, 0.351, 0]}\n rotation={[Math.PI / 2, 0, 0]}\n >\n <animated.group\n name=\"IRB1200_7_70_IRC5_J06\"\n rotation={[Math.PI / 2, 0, -Math.PI]}\n >\n <group\n name=\"IRB1200_7_70_IRC5_FLG\"\n position={[0, 0.082, 0]}\n />\n <mesh\n name=\"IRB1200_7_70_IRC5_L06\"\n castShadow\n receiveShadow\n geometry={nodes.IRB1200_7_70_IRC5_L06.geometry}\n material={materials[\"IRB1200_7-70_IRC5.003_Bake\"]}\n />\n </animated.group>\n <mesh\n name=\"IRB1200_7_70_IRC5_L05\"\n castShadow\n receiveShadow\n geometry={nodes.IRB1200_7_70_IRC5_L05.geometry}\n material={materials[\"IRB1200_7-70_IRC5.003_Bake\"]}\n />\n </animated.group>\n <mesh\n name=\"IRB1200_7_70_IRC5_L04\"\n castShadow\n receiveShadow\n geometry={nodes.IRB1200_7_70_IRC5_L04.geometry}\n material={materials[\"IRB1200_7-70_IRC5.003_Bake\"]}\n />\n </animated.group>\n <mesh\n name=\"IRB1200_7_70_IRC5_L03\"\n castShadow\n receiveShadow\n geometry={nodes.IRB1200_7_70_IRC5_L03.geometry}\n material={materials[\"IRB1200_7-70_IRC5.003_Bake\"]}\n />\n </animated.group>\n <mesh\n name=\"IRB1200_7_70_IRC5_L02\"\n castShadow\n receiveShadow\n geometry={nodes.IRB1200_7_70_IRC5_L02.geometry}\n material={materials[\"IRB1200_7-70_IRC5.003_Bake\"]}\n />\n </animated.group>\n <mesh\n name=\"IRB1200_7_70_IRC5_L01\"\n castShadow\n receiveShadow\n geometry={nodes.IRB1200_7_70_IRC5_L01.geometry}\n material={materials[\"IRB1200_7-70_IRC5.003_Bake\"]}\n rotation={[Math.PI / 2, 0, 0]}\n />\n </animated.group>\n <mesh\n name=\"IRB1200_7_70_IRC5_L00\"\n castShadow\n receiveShadow\n geometry={nodes.IRB1200_7_70_IRC5_L00.geometry}\n material={materials[\"IRB1200_7-70_IRC5.003_Bake\"]}\n rotation={[-Math.PI / 2, 0, 0]}\n />\n </group>\n </group>\n </group>\n </>\n )\n}\n","import { Vector3, Matrix4, Quaternion } from \"three\"\nimport { Line } from \"@react-three/drei\"\nimport type { LineGeometry } from \"three/examples/jsm/lines/LineGeometry.js\"\nimport type { DHParameter } from \"@wandelbots/wandelbots-api-client\"\nimport RobotAnimator from \"./RobotAnimator\"\nimport type * as THREE from \"three\"\nimport {\n getAllJointsByName,\n type RobotSceneJoint,\n} from \"../utils/robotTreeQuery\"\nimport type { DHRobotProps } from \"./SupportedRobot\"\n\nconst CHILD_LINE = \"line\"\nconst CHILD_MESH = \"mesh\"\n\nexport function DHRobot({\n rapidlyChangingMotionState,\n dhParameters,\n ...props\n}: DHRobotProps) {\n // reused in every update\n const accumulatedMatrix = new Matrix4()\n\n // Updates accumulatedMatrix with every execution\n // Reset the matrix to identity if you start a new position update\n function getLinePoints(\n dhParameter: DHParameter,\n jointRotation: number,\n ): {\n a: THREE.Vector3\n b: THREE.Vector3\n } {\n const position = new Vector3()\n const quaternion = new Quaternion()\n const scale = new Vector3()\n accumulatedMatrix.decompose(position, quaternion, scale)\n const prevPosition = position.clone() // Update the previous position\n\n const matrix = new Matrix4()\n .makeRotationY(\n dhParameter.theta! +\n jointRotation * (dhParameter.reverse_rotation_direction ? -1 : 1),\n ) // Rotate around Z\n .multiply(new Matrix4().makeTranslation(0, dhParameter.d! / 1000, 0)) // Translate along Z\n .multiply(new Matrix4().makeTranslation(dhParameter.a! / 1000, 0, 0)) // Translate along X\n .multiply(new Matrix4().makeRotationX(dhParameter.alpha!)) // Rotate around X\n\n // Accumulate transformations\n accumulatedMatrix.multiply(matrix)\n accumulatedMatrix.decompose(position, quaternion, scale)\n return { a: prevPosition, b: position }\n }\n\n function setJointLineRotation(\n jointIndex: number,\n line: THREE.Line,\n mesh: THREE.Mesh,\n jointValue: number,\n ) {\n if (!dhParameters) {\n return\n }\n\n const dh_parameter = dhParameters[jointIndex]\n if (!dh_parameter) {\n return\n }\n\n const { a, b } = getLinePoints(dh_parameter, jointValue)\n const lineGeometry = line.geometry as LineGeometry\n lineGeometry.setPositions([a.toArray(), b.toArray()].flat())\n\n mesh.position.set(b.x, b.y, b.z)\n }\n\n function setRotation(joints: THREE.Object3D[], jointValues: number[]) {\n accumulatedMatrix.identity()\n joints.forEach((joint, jointIndex) => {\n setJointLineRotation(\n jointIndex,\n joint.getObjectByName(CHILD_LINE) as THREE.Line,\n joint.getObjectByName(CHILD_MESH) as THREE.Mesh,\n jointValues[jointIndex]!,\n )\n })\n }\n\n function getAllJoints(rootObject: THREE.Object3D): RobotSceneJoint[] {\n return getAllJointsByName(rootObject, \"^group_[0-9]+$\")\n }\n\n return (\n <>\n <RobotAnimator\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n robotRootObjectName=\"Scene\"\n onRotationChanged={setRotation}\n jointCollector={getAllJoints}\n />\n <group {...props} name=\"Scene\">\n <mesh>\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n {dhParameters!.map((param, index) => {\n const { a, b } = getLinePoints(\n param,\n rapidlyChangingMotionState.state.joint_position.joints[index] ?? 0,\n )\n return (\n <group name={`group_${index}`} key={\"group_\" + index}>\n <Line\n name={CHILD_LINE}\n points={[a, b]}\n color={\"white\"}\n lineWidth={5}\n />\n <mesh name={CHILD_MESH} key={\"mesh_\" + index} position={b}>\n <sphereGeometry args={[0.01, 32, 32]} />\n <meshStandardMaterial color={\"black\"} depthTest={true} />\n </mesh>\n </group>\n )\n })}\n </group>\n </>\n )\n}\n","import { Suspense } from \"react\"\n\nimport { UniversalRobots_UR3 } from \"./UniversalRobots_UR3\"\nimport { UniversalRobots_UR3e } from \"./UniversalRobots_UR3e\"\nimport { UniversalRobots_UR5 } from \"./UniversalRobots_UR5\"\nimport { UniversalRobots_UR5e } from \"./UniversalRobots_UR5e\"\nimport { UniversalRobots_UR10 } from \"./UniversalRobots_UR10\"\nimport { UniversalRobots_UR10e } from \"./UniversalRobots_UR10e\"\nimport { Yaskawa_AR900 } from \"./Yaskawa_AR900\"\nimport { Yaskawa_AR1440 } from \"./Yaskawa_AR1440\"\nimport { Yaskawa_AR1730 } from \"./Yaskawa_AR1730\"\nimport { Yaskawa_AR2010 } from \"./Yaskawa_AR2010\"\nimport { Yaskawa_AR3120 } from \"./Yaskawa_AR3120\"\nimport { FANUC_CRX10iA } from \"./FANUC_CRX10iA\"\nimport { FANUC_CRX25iA } from \"./FANUC_CRX25iA\"\nimport { FANUC_CRX25iAL } from \"./FANUC_CRX25iAL\"\nimport { KUKA_KR210_R2700 } from \"./KUKA_KR210_R2700\"\nimport { KUKA_KR270_R2700 } from \"./KUKA_KR270_R2700\"\nimport { FANUC_ARC_Mate_100iD } from \"./FANUC_ARC_Mate_100iD\"\nimport { FANUC_ARC_Mate_120iD } from \"./FANUC_ARC_Mate_120iD\"\nimport { ABB_1200_07_7 } from \"./ABB_1200_07_7\"\n\nimport type { GroupProps } from \"@react-three/fiber\"\nimport type {\n MotionGroupStateResponse,\n DHParameter,\n} from \"@wandelbots/wandelbots-api-client\"\nimport { DHRobot } from \"./DHRobot\"\n\nexport type DHRobotProps = {\n rapidlyChangingMotionState: MotionGroupStateResponse\n dhParameters: Array<DHParameter>\n} & GroupProps\n\nexport type RobotProps = {\n rapidlyChangingMotionState: MotionGroupStateResponse\n modelURL: string\n} & GroupProps\n\nexport type SupportedRobotProps = {\n rapidlyChangingMotionState: MotionGroupStateResponse\n modelFromController: string\n dhParameters: DHParameter[]\n getModel?: (modelFromController: string) => string\n} & GroupProps\n\nexport function defaultGetModel(modelFromController: string): string {\n return `https://cdn.jsdelivr.net/gh/wandelbotsgmbh/wandelbots-js-react-components/public/models/${modelFromController}.glb`\n}\n\nexport function SupportedRobot({\n rapidlyChangingMotionState,\n modelFromController,\n dhParameters,\n getModel = defaultGetModel,\n ...props\n}: SupportedRobotProps) {\n let Robot\n\n switch (modelFromController) {\n case \"UniversalRobots_UR3\":\n Robot = UniversalRobots_UR3\n break\n case \"UniversalRobots_UR3e\":\n Robot = UniversalRobots_UR3e\n break\n case \"UniversalRobots_UR5\":\n Robot = UniversalRobots_UR5\n break\n case \"UniversalRobots_UR5e\":\n Robot = UniversalRobots_UR5e\n break\n case \"UniversalRobots_UR10\":\n Robot = UniversalRobots_UR10\n break\n case \"UniversalRobots_UR10e\":\n Robot = UniversalRobots_UR10e\n break\n case \"Yaskawa_AR900\":\n Robot = Yaskawa_AR900\n break\n case \"Yaskawa_GP7\":\n Robot = Yaskawa_AR900\n break\n case \"Yaskawa_AR1440\":\n Robot = Yaskawa_AR1440\n break\n case \"Yaskawa_AR1730\":\n Robot = Yaskawa_AR1730\n break\n case \"Yaskawa_AR2010\":\n Robot = Yaskawa_AR2010\n break\n case \"Yaskawa_AR3120\":\n Robot = Yaskawa_AR3120\n break\n case \"FANUC_CRX10iA\":\n Robot = FANUC_CRX10iA\n break\n case \"FANUC_CRX25iA\":\n Robot = FANUC_CRX25iA\n break\n case \"FANUC_CRX25iAL\":\n Robot = FANUC_CRX25iAL\n break\n case \"FANUC_ARC_Mate_120iD\":\n Robot = FANUC_ARC_Mate_120iD\n break\n case \"FANUC_ARC_Mate_100iD\":\n Robot = FANUC_ARC_Mate_100iD\n break\n case \"KUKA_KR210_R2700\":\n Robot = KUKA_KR210_R2700\n break\n case \"KUKA_KR270_R2700\":\n Robot = KUKA_KR270_R2700\n break\n case \"ABB_1200_07_7\":\n Robot = ABB_1200_07_7\n break\n default:\n console.warn(`Unknown robot type: ${modelFromController}`)\n Robot = DHRobot\n }\n\n return (\n <Suspense\n fallback={\n <DHRobot\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n dhParameters={dhParameters}\n {...props}\n />\n }\n >\n <Robot\n rapidlyChangingMotionState={rapidlyChangingMotionState}\n modelURL={getModel(modelFromController)}\n dhParameters={dhParameters}\n {...props}\n />\n </Suspense>\n )\n}\n","import { type GroupProps } from \"@react-three/fiber\"\n\nimport type { ConnectedMotionGroup } from \"@wandelbots/wandelbots-js\"\nimport { defaultGetModel, SupportedRobot } from \"./SupportedRobot\"\n\nexport type ConnectecMotionGroupRobotProps = {\n connectedMotionGroup: ConnectedMotionGroup\n getModel?: (modelFromController: string) => string\n} & GroupProps\n\n/**\n * The Robot component is a wrapper around the SupportedRobot component\n * for usage with @wandelbots/wandelbots-js ConnectedMotionGroup object.\n *\n * @param {ConnectecMotionGroupRobotProps} props - The properties for the Robot component.\n * @param {ConnectedMotionGroup} props.connectedMotionGroup - The connected motion group containing motion state and parameters.\n * @param {Function} [props.getModel=defaultGetModel] - Optional function to get the model URL. Defaults to defaultGetModel.\n * @param {Object} props - Additional properties passed to the SupportedRobot component.\n *\n * @returns {JSX.Element} The rendered SupportedRobot component.\n */\nexport function Robot({\n connectedMotionGroup,\n getModel = defaultGetModel,\n ...props\n}: ConnectecMotionGroupRobotProps) {\n if (!connectedMotionGroup.dhParameters) {\n return null\n }\n\n return (\n <SupportedRobot\n rapidlyChangingMotionState={\n connectedMotionGroup.rapidlyChangingMotionState\n }\n modelFromController={connectedMotionGroup.modelFromController || \"\"}\n dhParameters={connectedMotionGroup.dhParameters}\n getModel={getModel}\n {...props}\n />\n )\n}\n","export type AxisConfig = number[]\n\nexport const defaultAxisConfig: AxisConfig = Array(6).fill(2 * Math.PI)\n","import { Environment, Lightformer } from \"@react-three/drei\"\n\n/**\n * Renders a preset environment for the 3D scene.\n * This component wraps the scene with an `Environment` component\n * and builds a lightmap build with `Lightformers`.\n */\nexport function PresetEnvironment() {\n return (\n <Environment>\n <Lightformers />\n </Environment>\n )\n}\n\nfunction Lightformers({ positions = [2, 0, 2, 0, 2, 0, 2, 0] }) {\n return (\n <>\n {/* Ceiling */}\n <Lightformer\n intensity={5}\n rotation-x={Math.PI / 2}\n position={[0, 5, -9]}\n scale={[10, 10, 1]}\n />\n <group rotation={[0, 0.5, 0]}>\n <group>\n {positions.map((x, i) => (\n <Lightformer\n key={i}\n form=\"circle\"\n intensity={5}\n rotation={[Math.PI / 2, 0, 0]}\n position={[x, 4, i * 4]}\n scale={[3, 1, 1]}\n />\n ))}\n </group>\n </group>\n {/* Sides */}\n <Lightformer\n intensity={40}\n rotation-y={Math.PI / 2}\n position={[-5, 1, -1]}\n scale={[20, 0.1, 1]}\n />\n <Lightformer\n intensity={20}\n rotation-y={-Math.PI}\n position={[-5, -2, -1]}\n scale={[20, 0.1, 1]}\n />\n\n <Lightformer\n rotation-y={Math.PI / 2}\n position={[-5, -1, -1]}\n scale={[20, 0.5, 1]}\n intensity={5}\n />\n <Lightformer\n rotation-y={-Math.PI / 2}\n position={[10, 1, 0]}\n scale={[20, 1, 1]}\n intensity={10}\n />\n\n {/* Key */}\n <Lightformer\n form=\"ring\"\n color=\"white\"\n intensity={5}\n scale={10}\n position={[-15, 4, -18]}\n target={[0, 0, 0]}\n />\n </>\n )\n}\n","import { SafetySetupSafetyZone } from \"@wandelbots/wandelbots-js\"\nimport { Geometry } from \"@wandelbots/wandelbots-api-client\"\nimport * as THREE from \"three\"\nimport { ConvexGeometry } from \"three-stdlib\"\nimport { type GroupProps } from \"@react-three/fiber\"\n\nexport type SafetyZonesRendererProps = {\n safetyZones: SafetySetupSafetyZone[]\n} & GroupProps\n\nexport function SafetyZonesRenderer({\n safetyZones,\n ...props\n}: SafetyZonesRendererProps) {\n return (\n <group {...props}>\n {safetyZones.map((zone, index) => {\n let geometries: Geometry[] = []\n if (zone.geometry) {\n if (zone.geometry.compound) {\n geometries = zone.geometry.compound.child_geometries\n } else if (zone.geometry.convex_hull) {\n geometries = [zone.geometry]\n }\n }\n\n return geometries.map((geometry, i) => {\n if (!geometry.convex_hull) return null\n\n const vertices = geometry.convex_hull.vertices.map(\n (v) => new THREE.Vector3(v.x / 1000, v.y / 1000, v.z / 1000),\n )\n const convexGeometry = new ConvexGeometry(vertices)\n return (\n <>\n <mesh key={`${index}-${i}`} geometry={convexGeometry}>\n <meshStandardMaterial\n key={index}\n attach=\"material\"\n color=\"#009f4d\"\n opacity={0.2}\n depthTest={false}\n depthWrite={false}\n transparent\n polygonOffset\n polygonOffsetFactor={-i}\n />\n </mesh>\n </>\n )\n })\n })}\n </group>\n )\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node\n /*: HTMLStyleElement */\n ) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n /* : Node */\n\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node\n /*: HTMLStyleElement */\n ) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n /*: (\n selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache\n /*: EmotionCache */\n = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { CacheProvider } from '@emotion/react';\nimport createCache from '@emotion/cache';\n\n// prepend: true moves MUI styles to the top of the <head> so they're loaded first.\n// It allows developers to easily override MUI styles with other styling solutions, like CSS modules.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nlet cache;\nif (typeof document === 'object') {\n cache = createCache({\n key: 'css',\n prepend: true\n });\n}\nexport default function StyledEngineProvider(props) {\n const {\n injectFirst,\n children\n } = props;\n return injectFirst && cache ? /*#__PURE__*/_jsx(CacheProvider, {\n value: cache,\n children: children\n }) : children;\n}\nprocess.env.NODE_ENV !== \"production\" ? StyledEngineProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * By default, the styles are injected last in the <head> element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override MUI's styles, set this prop.\n */\n injectFirst: PropTypes.bool\n} : void 0;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { Global } from '@emotion/react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isEmpty(obj) {\n return obj === undefined || obj === null || Object.keys(obj).length === 0;\n}\nexport default function GlobalStyles(props) {\n const {\n styles,\n defaultTheme = {}\n } = props;\n const globalStyles = typeof styles === 'function' ? themeInput => styles(isEmpty(themeInput) ? defaultTheme : themeInput) : styles;\n return /*#__PURE__*/_jsx(Global, {\n styles: globalStyles\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? GlobalStyles.propTypes = {\n defaultTheme: PropTypes.object,\n styles: PropTypes.oneOfType([PropTypes.array, PropTypes.string, PropTypes.object, PropTypes.func])\n} : void 0;","/**\n * @mui/styled-engine v5.16.6\n *\n * @license MIT\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import _extends from \"@babel/runtime/helpers/esm/extends\";\n// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import PropTypes from 'prop-types';\nconst responsivePropType = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object, PropTypes.array]) : {};\nexport default responsivePropType;","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import capitalize from '@mui/utils/capitalize';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * <Box sx={theme => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars && typeof theme.getColorSchemeSelector === 'function') {\n // If CssVarsProvider is used as a provider,\n // returns '* :where([data-mui-color-scheme=\"light|dark\"]) &'\n const selector = theme.getColorSchemeSelector(key).replace(/(\\[[^\\]]+\\])/, '*:where($1)');\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nimport applyStyles from './applyStyles';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","'use client';\n\nimport createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","import ClassNameGenerator from '../ClassNameGenerator';\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { ForwardRef, Memo } from 'react-is';\n\n// Simplified polyfill for IE11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nconst fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\nexport function getFunctionName(fn) {\n const match = `${fn}`.match(fnNameMatchRegex);\n const name = match && match[1];\n return name || '';\n}\nfunction getFunctionComponentName(Component, fallback = '') {\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\nfunction getWrappedName(outerType, innerType, wrapperName) {\n const functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? `${wrapperName}(${functionName})` : wrapperName);\n}\n\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE11 support\n */\nexport default function getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n if (typeof Component === 'string') {\n return Component;\n }\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n // TypeScript can't have components as objects but they exist in the form of `memo` or `Suspense`\n if (typeof Component === 'object') {\n switch (Component.$$typeof) {\n case ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n case Memo:\n return getWrappedName(Component, Component.type, 'memo');\n default:\n return undefined;\n }\n }\n return undefined;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { isPlainObject } from '@mui/utils/deepmerge';\nimport capitalize from '@mui/utils/capitalize';\nimport getDisplayName from '@mui/utils/getDisplayName';\nimport createTheme from './createTheme';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle(_extends({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, _extends({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = _objectWithoutPropertiesLoose(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props(_extends({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style(_extends({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return styleFunctionSx(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || isPlainObject(stylesArg)) {\n return props => processStyleArg(stylesArg, _extends({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, _extends({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, _extends({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${capitalize(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import createStyled from './createStyled';\nconst styled = createStyled();\nexport default styled;","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","import resolveProps from '@mui/utils/resolveProps';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n return resolveProps(theme.components[name].defaultProps, props);\n}","'use client';\n\nimport getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme,\n themeId\n}) {\n let theme = useTheme(defaultTheme);\n if (themeId) {\n theme = theme[themeId] || theme;\n }\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","export default function chainPropTypes(propType1, propType2) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return function validate(...args) {\n return propType1(...args) || propType2(...args);\n };\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && !Object.is(defaultValue, defaultProp)) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport useLazyRef from '../useLazyRef/useLazyRef';\nimport useOnMount from '../useOnMount/useOnMount';\nexport class Timeout {\n constructor() {\n this.currentId = null;\n this.clear = () => {\n if (this.currentId !== null) {\n clearTimeout(this.currentId);\n this.currentId = null;\n }\n };\n this.disposeEffect = () => {\n return this.clear;\n };\n }\n static create() {\n return new Timeout();\n }\n /**\n * Executes `fn` after `delay`, clearing any previously scheduled call.\n */\n start(delay, fn) {\n this.clear();\n this.currentId = setTimeout(() => {\n this.currentId = null;\n fn();\n }, delay);\n }\n}\nexport default function useTimeout() {\n const timeout = useLazyRef(Timeout.create).current;\n useOnMount(timeout.disposeEffect);\n return timeout;\n}","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","const visuallyHidden = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n};\nexport default visuallyHidden;","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Determines if a given element is a DOM element name (i.e. not a React component).\n */\nfunction isHostComponent(element) {\n return typeof element === 'string';\n}\nexport default isHostComponent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport isHostComponent from '../isHostComponent';\n\n/**\n * Type of the ownerState based on the type of an element it applies to.\n * This resolves to the provided OwnerState for React components and `undefined` for host components.\n * Falls back to `OwnerState | undefined` when the exact type can't be determined in development time.\n */\n\n/**\n * Appends the ownerState object to the props, merging with the existing one if necessary.\n *\n * @param elementType Type of the element that owns the `existingProps`. If the element is a DOM node or undefined, `ownerState` is not applied.\n * @param otherProps Props of the element.\n * @param ownerState\n */\nfunction appendOwnerState(elementType, otherProps, ownerState) {\n if (elementType === undefined || isHostComponent(elementType)) {\n return otherProps;\n }\n return _extends({}, otherProps, {\n ownerState: _extends({}, otherProps.ownerState, ownerState)\n });\n}\nexport default appendOwnerState;","/**\n * Extracts event handlers from a given object.\n * A prop is considered an event handler if it is a function and its name starts with `on`.\n *\n * @param object An object to extract event handlers from.\n * @param excludeKeys An array of keys to exclude from the returned object.\n */\nfunction extractEventHandlers(object, excludeKeys = []) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => prop.match(/^on[A-Z]/) && typeof object[prop] === 'function' && !excludeKeys.includes(prop)).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default extractEventHandlers;","/**\n * Removes event handlers from the given object.\n * A field is considered an event handler if it is a function with a name beginning with `on`.\n *\n * @param object Object to remove event handlers from.\n * @returns Object with event handlers removed.\n */\nfunction omitEventHandlers(object) {\n if (object === undefined) {\n return {};\n }\n const result = {};\n Object.keys(object).filter(prop => !(prop.match(/^on[A-Z]/) && typeof object[prop] === 'function')).forEach(prop => {\n result[prop] = object[prop];\n });\n return result;\n}\nexport default omitEventHandlers;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport clsx from 'clsx';\nimport extractEventHandlers from '../extractEventHandlers';\nimport omitEventHandlers from '../omitEventHandlers';\n/**\n * Merges the slot component internal props (usually coming from a hook)\n * with the externally provided ones.\n *\n * The merge order is (the latter overrides the former):\n * 1. The internal props (specified as a getter function to work with get*Props hook result)\n * 2. Additional props (specified internally on a Base UI component)\n * 3. External props specified on the owner component. These should only be used on a root slot.\n * 4. External props specified in the `slotProps.*` prop.\n * 5. The `className` prop - combined from all the above.\n * @param parameters\n * @returns\n */\nfunction mergeSlotProps(parameters) {\n const {\n getSlotProps,\n additionalProps,\n externalSlotProps,\n externalForwardedProps,\n className\n } = parameters;\n if (!getSlotProps) {\n // The simpler case - getSlotProps is not defined, so no internal event handlers are defined,\n // so we can simply merge all the props without having to worry about extracting event handlers.\n const joinedClasses = clsx(additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, additionalProps, externalForwardedProps, externalSlotProps);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: undefined\n };\n }\n\n // In this case, getSlotProps is responsible for calling the external event handlers.\n // We don't need to include them in the merged props because of this.\n\n const eventHandlers = extractEventHandlers(_extends({}, externalForwardedProps, externalSlotProps));\n const componentsPropsWithoutEventHandlers = omitEventHandlers(externalSlotProps);\n const otherPropsWithoutEventHandlers = omitEventHandlers(externalForwardedProps);\n const internalSlotProps = getSlotProps(eventHandlers);\n\n // The order of classes is important here.\n // Emotion (that we use in libraries consuming Base UI) depends on this order\n // to properly override style. It requires the most important classes to be last\n // (see https://github.com/mui/material-ui/pull/33205) for the related discussion.\n const joinedClasses = clsx(internalSlotProps == null ? void 0 : internalSlotProps.className, additionalProps == null ? void 0 : additionalProps.className, className, externalForwardedProps == null ? void 0 : externalForwardedProps.className, externalSlotProps == null ? void 0 : externalSlotProps.className);\n const mergedStyle = _extends({}, internalSlotProps == null ? void 0 : internalSlotProps.style, additionalProps == null ? void 0 : additionalProps.style, externalForwardedProps == null ? void 0 : externalForwardedProps.style, externalSlotProps == null ? void 0 : externalSlotProps.style);\n const props = _extends({}, internalSlotProps, additionalProps, otherPropsWithoutEventHandlers, componentsPropsWithoutEventHandlers);\n if (joinedClasses.length > 0) {\n props.className = joinedClasses;\n }\n if (Object.keys(mergedStyle).length > 0) {\n props.style = mergedStyle;\n }\n return {\n props,\n internalRef: internalSlotProps.ref\n };\n}\nexport default mergeSlotProps;","/**\n * If `componentProps` is a function, calls it with the provided `ownerState`.\n * Otherwise, just returns `componentProps`.\n */\nfunction resolveComponentProps(componentProps, ownerState, slotState) {\n if (typeof componentProps === 'function') {\n return componentProps(ownerState, slotState);\n }\n return componentProps;\n}\nexport default resolveComponentProps;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"elementType\", \"externalSlotProps\", \"ownerState\", \"skipResolvingSlotProps\"];\nimport useForkRef from '../useForkRef';\nimport appendOwnerState from '../appendOwnerState';\nimport mergeSlotProps from '../mergeSlotProps';\nimport resolveComponentProps from '../resolveComponentProps';\n/**\n * @ignore - do not document.\n * Builds the props to be passed into the slot of an unstyled component.\n * It merges the internal props of the component with the ones supplied by the user, allowing to customize the behavior.\n * If the slot component is not a host component, it also merges in the `ownerState`.\n *\n * @param parameters.getSlotProps - A function that returns the props to be passed to the slot component.\n */\nfunction useSlotProps(parameters) {\n var _parameters$additiona;\n const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false\n } = parameters,\n rest = _objectWithoutPropertiesLoose(parameters, _excluded);\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps(_extends({}, rest, {\n externalSlotProps: resolvedComponentsProps\n }));\n const ref = useForkRef(internalRef, resolvedComponentsProps == null ? void 0 : resolvedComponentsProps.ref, (_parameters$additiona = parameters.additionalProps) == null ? void 0 : _parameters$additiona.ref);\n const props = appendOwnerState(elementType, _extends({}, mergedProps, {\n ref\n }), ownerState);\n return props;\n}\nexport default useSlotProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst RtlContext = /*#__PURE__*/React.createContext();\nfunction RtlProvider(_ref) {\n let {\n value\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_jsx(RtlContext.Provider, _extends({\n value: value != null ? value : true\n }, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? RtlProvider.propTypes = {\n children: PropTypes.node,\n value: PropTypes.bool\n} : void 0;\nexport const useRtl = () => {\n const value = React.useContext(RtlContext);\n return value != null ? value : false;\n};\nexport default RtlProvider;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport resolveProps from '@mui/utils/resolveProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PropsContext = /*#__PURE__*/React.createContext(undefined);\nfunction DefaultPropsProvider({\n value,\n children\n}) {\n return /*#__PURE__*/_jsx(PropsContext.Provider, {\n value: value,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object\n} : void 0;\nfunction getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name]) {\n return props;\n }\n const config = theme.components[name];\n if (config.defaultProps) {\n // compatible with v5 signature\n return resolveProps(config.defaultProps, props);\n }\n if (!config.styleOverrides && !config.variants) {\n // v6 signature, no property 'defaultProps'\n return resolveProps(config, props);\n }\n return props;\n}\nexport function useDefaultProps({\n props,\n name\n}) {\n const ctx = React.useContext(PropsContext);\n return getThemeProps({\n props,\n name,\n theme: {\n components: ctx\n }\n });\n}\nexport default DefaultPropsProvider;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"component\", \"direction\", \"spacing\", \"divider\", \"children\", \"className\", \"useFlexGap\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport deepmerge from '@mui/utils/deepmerge';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport composeClasses from '@mui/utils/composeClasses';\nimport systemStyled from '../styled';\nimport useThemePropsSystem from '../useThemeProps';\nimport { extendSxProp } from '../styleFunctionSx';\nimport createTheme from '../createTheme';\nimport { handleBreakpoints, mergeBreakpointsInOrder, resolveBreakpointValues } from '../breakpoints';\nimport { createUnarySpacing, getValue } from '../spacing';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst defaultTheme = createTheme();\n// widening Theme to any so that the consumer can own the theme structure.\nconst defaultCreateStyledComponent = systemStyled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n});\nfunction useThemePropsDefault(props) {\n return useThemePropsSystem({\n props,\n name: 'MuiStack',\n defaultTheme\n });\n}\n\n/**\n * Return an array with the separator React element interspersed between\n * each React node of the input children.\n *\n * > joinChildren([1,2,3], 0)\n * [1,0,2,0,3]\n */\nfunction joinChildren(children, separator) {\n const childrenArray = React.Children.toArray(children).filter(Boolean);\n return childrenArray.reduce((output, child, index) => {\n output.push(child);\n if (index < childrenArray.length - 1) {\n output.push( /*#__PURE__*/React.cloneElement(separator, {\n key: `separator-${index}`\n }));\n }\n return output;\n }, []);\n}\nconst getSideFromDirection = direction => {\n return {\n row: 'Left',\n 'row-reverse': 'Right',\n column: 'Top',\n 'column-reverse': 'Bottom'\n }[direction];\n};\nexport const style = ({\n ownerState,\n theme\n}) => {\n let styles = _extends({\n display: 'flex',\n flexDirection: 'column'\n }, handleBreakpoints({\n theme\n }, resolveBreakpointValues({\n values: ownerState.direction,\n breakpoints: theme.breakpoints.values\n }), propValue => ({\n flexDirection: propValue\n })));\n if (ownerState.spacing) {\n const transformer = createUnarySpacing(theme);\n const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {\n acc[breakpoint] = true;\n }\n return acc;\n }, {});\n const directionValues = resolveBreakpointValues({\n values: ownerState.direction,\n base\n });\n const spacingValues = resolveBreakpointValues({\n values: ownerState.spacing,\n base\n });\n if (typeof directionValues === 'object') {\n Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {\n const directionValue = directionValues[breakpoint];\n if (!directionValue) {\n const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';\n directionValues[breakpoint] = previousDirectionValue;\n }\n });\n }\n const styleFromPropValue = (propValue, breakpoint) => {\n if (ownerState.useFlexGap) {\n return {\n gap: getValue(transformer, propValue)\n };\n }\n return {\n // The useFlexGap={false} implement relies on each child to give up control of the margin.\n // We need to reset the margin to avoid double spacing.\n '& > :not(style):not(style)': {\n margin: 0\n },\n '& > :not(style) ~ :not(style)': {\n [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)\n }\n };\n };\n styles = deepmerge(styles, handleBreakpoints({\n theme\n }, spacingValues, styleFromPropValue));\n }\n styles = mergeBreakpointsInOrder(theme.breakpoints, styles);\n return styles;\n};\nexport default function createStack(options = {}) {\n const {\n // This will allow adding custom styled fn (for example for custom sx style function)\n createStyledComponent = defaultCreateStyledComponent,\n useThemeProps = useThemePropsDefault,\n componentName = 'MuiStack'\n } = options;\n const useUtilityClasses = () => {\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, slot => generateUtilityClass(componentName, slot), {});\n };\n const StackRoot = createStyledComponent(style);\n const Stack = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {\n const themeProps = useThemeProps(inProps);\n const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.\n const {\n component = 'div',\n direction = 'column',\n spacing = 0,\n divider,\n children,\n className,\n useFlexGap = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = {\n direction,\n spacing,\n useFlexGap\n };\n const classes = useUtilityClasses();\n return /*#__PURE__*/_jsx(StackRoot, _extends({\n as: component,\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other, {\n children: divider ? joinChildren(children, divider) : children\n }));\n });\n process.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n children: PropTypes.node,\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n divider: PropTypes.node,\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n } : void 0;\n return Stack;\n}","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyled;\nexports.shouldForwardProp = shouldForwardProp;\nexports.systemDefaultTheme = void 0;\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\nvar _styledEngine = _interopRequireWildcard(require(\"@mui/styled-engine\"));\nvar _deepmerge = require(\"@mui/utils/deepmerge\");\nvar _capitalize = _interopRequireDefault(require(\"@mui/utils/capitalize\"));\nvar _getDisplayName = _interopRequireDefault(require(\"@mui/utils/getDisplayName\"));\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\nvar _styleFunctionSx = _interopRequireDefault(require(\"./styleFunctionSx\"));\nconst _excluded = [\"ownerState\"],\n _excluded2 = [\"variants\"],\n _excluded3 = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\n\n// Update /system/styled/#api in case if this changes\nfunction shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nconst systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nfunction processStyleArg(callableStyle, _ref) {\n let {\n ownerState\n } = _ref,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle((0, _extends2.default)({\n ownerState\n }, props)) : callableStyle;\n if (Array.isArray(resolvedStylesArg)) {\n return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, (0, _extends2.default)({\n ownerState\n }, props)));\n }\n if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {\n const {\n variants = []\n } = resolvedStylesArg,\n otherStyles = (0, _objectWithoutPropertiesLoose2.default)(resolvedStylesArg, _excluded2);\n let result = otherStyles;\n variants.forEach(variant => {\n let isMatch = true;\n if (typeof variant.props === 'function') {\n isMatch = variant.props((0, _extends2.default)({\n ownerState\n }, props, ownerState));\n } else {\n Object.keys(variant.props).forEach(key => {\n if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n }\n if (isMatch) {\n if (!Array.isArray(result)) {\n result = [result];\n }\n result.push(typeof variant.style === 'function' ? variant.style((0, _extends2.default)({\n ownerState\n }, props, ownerState)) : variant.style);\n }\n });\n return result;\n }\n return resolvedStylesArg;\n}\nfunction createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return (0, _styleFunctionSx.default)((0, _extends2.default)({}, props, {\n theme: resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n (0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = (0, _objectWithoutPropertiesLoose2.default)(inputOptions, _excluded3);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = (0, _styledEngine.default)(tag, (0, _extends2.default)({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const transformStyleArg = stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {\n return props => processStyleArg(stylesArg, (0, _extends2.default)({}, props, {\n theme: resolveTheme({\n theme: props.theme,\n defaultTheme,\n themeId\n })\n }));\n }\n return stylesArg;\n };\n const muiStyledResolver = (styleArg, ...expressions) => {\n let transformedStyleArg = transformStyleArg(styleArg);\n const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {\n return null;\n }\n const styleOverrides = theme.components[componentName].styleOverrides;\n const resolvedStyleOverrides = {};\n // TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n return overridesResolver(props, resolvedStyleOverrides);\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n var _theme$components;\n const theme = resolveTheme((0, _extends2.default)({}, props, {\n defaultTheme,\n themeId\n }));\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;\n return processStyleArg({\n variants: themeVariants\n }, (0, _extends2.default)({}, props, {\n theme\n }));\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${(0, _getDisplayName.default)(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.alpha = alpha;\nexports.blend = blend;\nexports.colorChannel = void 0;\nexports.darken = darken;\nexports.decomposeColor = decomposeColor;\nexports.emphasize = emphasize;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.hexToRgb = hexToRgb;\nexports.hslToRgb = hslToRgb;\nexports.lighten = lighten;\nexports.private_safeAlpha = private_safeAlpha;\nexports.private_safeColorChannel = void 0;\nexports.private_safeDarken = private_safeDarken;\nexports.private_safeEmphasize = private_safeEmphasize;\nexports.private_safeLighten = private_safeLighten;\nexports.recomposeColor = recomposeColor;\nexports.rgbToHex = rgbToHex;\nvar _formatMuiErrorMessage2 = _interopRequireDefault(require(\"@mui/utils/formatMuiErrorMessage\"));\nvar _clamp = _interopRequireDefault(require(\"@mui/utils/clamp\"));\n/* eslint-disable @typescript-eslint/naming-convention */\n\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return (0, _clamp.default)(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nfunction hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : (0, _formatMuiErrorMessage2.default)(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : (0, _formatMuiErrorMessage2.default)(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nconst colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexports.colorChannel = colorChannel;\nconst private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexports.private_safeColorChannel = private_safeColorChannel;\nfunction recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nfunction getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nfunction getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nfunction private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nfunction private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nfunction emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nfunction private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nfunction blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","'use client';\n\nimport createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","export default '$$material';","// copied from @mui/system/createStyled\nfunction slotShouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport default slotShouldForwardProp;","import slotShouldForwardProp from './slotShouldForwardProp';\nconst rootShouldForwardProp = prop => slotShouldForwardProp(prop) && prop !== 'classes';\nexport default rootShouldForwardProp;","'use client';\n\nimport createStyled from '@mui/system/createStyled';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nimport rootShouldForwardProp from './rootShouldForwardProp';\nexport { default as slotShouldForwardProp } from './slotShouldForwardProp';\nexport { default as rootShouldForwardProp } from './rootShouldForwardProp';\nconst styled = createStyled({\n themeId: THEME_ID,\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport SystemDefaultPropsProvider, { useDefaultProps as useSystemDefaultProps } from '@mui/system/DefaultPropsProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction DefaultPropsProvider(props) {\n return /*#__PURE__*/_jsx(SystemDefaultPropsProvider, _extends({}, props));\n}\nprocess.env.NODE_ENV !== \"production\" ? DefaultPropsProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * @ignore\n */\n value: PropTypes.object.isRequired\n} : void 0;\nexport default DefaultPropsProvider;\nexport function useDefaultProps(params) {\n return useSystemDefaultProps(params);\n}","'use client';\n\nimport PropTypes from 'prop-types';\nimport { createStack } from '@mui/system';\nimport styled from '../styles/styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nconst Stack = createStack({\n createStyledComponent: styled('div', {\n name: 'MuiStack',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n }),\n useThemeProps: inProps => useDefaultProps({\n props: inProps,\n name: 'MuiStack'\n })\n});\nprocess.env.NODE_ENV !== \"production\" ? Stack.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Defines the `flex-direction` style property.\n * It is applied for all screen sizes.\n * @default 'column'\n */\n direction: PropTypes.oneOfType([PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), PropTypes.arrayOf(PropTypes.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), PropTypes.object]),\n /**\n * Add an element between each child.\n */\n divider: PropTypes.node,\n /**\n * Defines the space between immediate children.\n * @default 0\n */\n spacing: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.number, PropTypes.string])), PropTypes.number, PropTypes.object, PropTypes.string]),\n /**\n * The system prop, which allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * If `true`, the CSS flexbox `gap` is used instead of applying `margin` to children.\n *\n * While CSS `gap` removes the [known limitations](https://mui.com/joy-ui/react-stack/#limitations),\n * it is not fully supported in some browsers. We recommend checking https://caniuse.com/?search=flex%20gap before using this flag.\n *\n * To enable this flag globally, follow the [theme's default props](https://mui.com/material-ui/customization/theme-components/#default-props) configuration.\n * @default false\n */\n useFlexGap: PropTypes.bool\n} : void 0;\nexport default Stack;","import { Button, Typography } from \"@mui/material\"\nimport Stack from \"@mui/material/Stack\"\nimport { observer } from \"mobx-react-lite\"\nimport { useRef, type ReactNode } from \"react\"\nimport { useAnimationFrame } from \"../utils/hooks\"\n\ntype JoggingCartesianAxisControlProps = {\n color?: string\n label: ReactNode\n getDisplayedValue: () => string\n startJogging: (direction: \"-\" | \"+\") => void\n stopJogging: () => void\n disabled?: boolean\n} & React.ComponentProps<typeof Stack>\n\nexport const JoggingCartesianAxisControl = observer(\n ({\n color,\n label,\n getDisplayedValue,\n startJogging,\n stopJogging,\n disabled,\n ...rest\n }: JoggingCartesianAxisControlProps) => {\n useAnimationFrame(() => {\n const displayValue = getDisplayedValue()\n const element = valueContainerRef.current\n if (!element) return\n\n element.textContent = displayValue\n })\n\n const valueContainerRef = useRef<HTMLParagraphElement>(null)\n\n color = color || \"#F14D42\"\n\n function onPointerDownMinus(ev: React.PointerEvent) {\n // Stop right click from triggering jog\n if (ev.button === 0) startJogging(\"-\")\n }\n\n function onPointerDownPlus(ev: React.PointerEvent) {\n if (ev.button === 0) startJogging(\"+\")\n }\n\n return (\n <Stack height=\"72px\" direction=\"row\" {...rest}>\n <Button\n onPointerDown={onPointerDownMinus}\n onPointerUp={stopJogging}\n onPointerOut={stopJogging}\n disabled={disabled}\n sx={{\n width: \"105px\",\n backgroundColor: color,\n color: \"white\",\n alignContent: \"center\",\n fontSize: \"37px\",\n borderRadius: \"16px 0px 0px 16px\",\n\n \":hover\": {\n color: \"white\",\n backgroundColor: color,\n },\n }}\n >\n {\"-\"}\n </Button>\n\n <Stack\n spacing=\"6px\"\n sx={{\n width: \"184px\",\n backgroundColor: color,\n alignItems: \"center\",\n justifyContent: \"center\",\n opacity: \"0.9\",\n }}\n >\n <Stack\n height=\"22px\"\n direction=\"row\"\n alignItems=\"center\"\n justifyItems=\"center\"\n spacing={1}\n sx={{ userSelect: \"none\" }}\n >\n {label}\n </Stack>\n <Typography\n height=\"22px\"\n sx={{\n fontSize: \"15px\",\n color: \"white\",\n }}\n ref={valueContainerRef}\n >\n {getDisplayedValue()}\n </Typography>\n </Stack>\n\n <Button\n onPointerDown={onPointerDownPlus}\n onPointerUp={stopJogging}\n onPointerOut={stopJogging}\n disabled={disabled}\n sx={{\n width: \"105px\",\n backgroundColor: color,\n color: \"white\",\n alignContent: \"center\",\n fontSize: \"37px\",\n borderRadius: \"0px 16px 16px 0px\",\n\n \":hover\": {\n color: \"white\",\n backgroundColor: color,\n },\n }}\n >\n {\"+\"}\n </Button>\n </Stack>\n )\n },\n)\n","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nfunction defer() {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n}\nconst lastOfPathSeparatorRegExp = /###/g;\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\n }\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper()) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n}\nfunction setPath(object, path, newValue) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n}\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n}\nfunction deepFind(obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n}\nfunction getCleanedCode(code) {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n}\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: function (n) {\n return Number(n > 1);\n },\n 2: function (n) {\n return Number(n != 1);\n },\n 3: function (n) {\n return 0;\n },\n 4: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function (n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function (n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function (n) {\n return Number(n >= 2);\n },\n 10: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function (n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function (n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function (n) {\n return Number(n !== 0);\n },\n 14: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function (n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function (n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function (n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function (n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function (n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function (n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nfunction createRules() {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(getCleanedCode(code === 'dev' ? 'en' : code), {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nfunction deepFindWithDefaults(data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n}\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n function handleHasOptions(key, inheritedOptions) {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n }\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nfunction parseFormatStr(formatStr) {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n}\nfunction createCachedFormatter(fn) {\n const cache = {};\n return function invokeFormatter(val, lng, options) {\n const key = lng + JSON.stringify(options);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n}\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n}\n\nfunction noop() {}\nfunction bindMemberFunctions(inst) {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import deJSON from \"./locales/de/translations.json\"\nimport enJSON from \"./locales/en/translations.json\"\nimport i18next from \"i18next\"\nimport type { i18n } from \"i18next\"\nimport LanguageDetector from \"i18next-browser-languagedetector\"\nimport { initReactI18next } from \"react-i18next\"\n\nconst i18n: i18n = i18next.createInstance()\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n supportedLngs: [\"en\", \"de\"],\n resources: {\n en: {\n translations: enJSON,\n },\n de: {\n translations: deJSON,\n },\n },\n ns: [\"translations\"],\n defaultNS: \"translations\",\n })\n\nexport default i18n\n","import { IconButton, Slider, Typography } from \"@mui/material\"\nimport Stack from \"@mui/material/Stack\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport { I18nextProvider, useTranslation } from \"react-i18next\"\nimport { ChevronLeft, ChevronRight } from \"@mui/icons-material\"\nimport { useAnimationFrame } from \"../utils/hooks\"\nimport { useState } from \"react\"\nimport i18n from '../../i18n/config';\n\ntype JoggingJointRotationControlProps = {\n startJogging: (direction: \"-\" | \"+\") => void\n stopJogging: () => void\n lowerLimitDegs?: number\n upperLimitDegs?: number\n getValueDegs: () => number|undefined\n\n disabled?: boolean\n} & React.ComponentProps<typeof Stack>\n\nexport const JoggingJointRotationControl = observer(\n ({\n startJogging,\n stopJogging,\n lowerLimitDegs,\n upperLimitDegs,\n getValueDegs,\n disabled,\n ...rest\n }: JoggingJointRotationControlProps) => {\n const { t } = useTranslation()\n const [currentValue, setCurrentValue] = useState<number|undefined>()\n\n const state = useLocalObservable(() => ({\n activeJoggingDir: null as \"-\" | \"+\" | null,\n\n startJogging(dir: \"-\" | \"+\") {\n this.activeJoggingDir = dir\n startJogging(dir)\n },\n\n stopJogging() {\n this.activeJoggingDir = null\n stopJogging()\n },\n }))\n\n useAnimationFrame(() => {\n setCurrentValue(getValueDegs())\n })\n\n function onPointerDownMinus(ev: React.PointerEvent) {\n // Stop right click from triggering jog\n if (ev.button === 0) state.startJogging(\"-\")\n }\n\n function onPointerDownPlus(ev: React.PointerEvent) {\n if (ev.button === 0) state.startJogging(\"+\")\n }\n\n function formatDegrees(value: number | undefined, precision = 1) {\n if (value === undefined || isNaN(value)) return \"\"\n\n const output = t(\"General.degree.variable\", {\n amount: value.toFixed(precision),\n })\n\n if (value > 0 && precision === 0) {\n return `+${output}`\n } else {\n return output\n }\n }\n\n return (\n <I18nextProvider i18n={i18n}>\n <Stack\n height=\"64px\"\n width=\"100%\"\n maxWidth=\"300px\"\n direction=\"row\"\n {...rest}\n >\n <IconButton\n onPointerDown={onPointerDownMinus}\n onPointerUp={state.stopJogging}\n onPointerOut={state.stopJogging}\n disabled={disabled}\n sx={{\n width: \"52px\",\n color: \"white\",\n alignContent: \"center\",\n borderRadius: \"16px 0px 0px 16px\",\n backgroundColor:\n state.activeJoggingDir === \"-\" ? \"#495975 !important\" : \"#38445A\",\n \"& svg\": {\n width: \"42px\",\n height: \"42px\",\n },\n }}\n >\n <ChevronLeft />\n </IconButton>\n\n <Stack\n flexGrow={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n sx={{\n borderStyle: \"solid\",\n borderLeftWidth: 0,\n borderRightWidth: 0,\n borderTopWidth: \"4px\",\n borderBottomWidth: \"4px\",\n backgroundColor: \"#38445A\",\n borderColor: \"#38445A\",\n paddingLeft: \"20px\",\n paddingRight: \"20px\",\n zIndex: 1,\n }}\n >\n <Typography\n sx={{\n fontSize: \"15px\",\n position: \"relative\",\n top: \"5px\",\n }}\n >\n {formatDegrees(currentValue)}\n </Typography>\n\n <Slider\n disabled\n aria-label=\"Joint position\"\n min={lowerLimitDegs}\n max={upperLimitDegs}\n value={currentValue}\n track={false}\n sx={{\n \"& .MuiSlider-mark\": {\n display: \"none\",\n },\n \"& .MuiSlider-thumb\": {\n width: \"5px\",\n height: \"10px\",\n borderRadius: \"2px\",\n },\n \"& .MuiSlider-markLabel\": {\n top: \"20px\",\n fontSize: \"12px\",\n },\n \"& .MuiSlider-rail\": {\n backgroundColor: \"#1F283A\",\n opacity: 1,\n },\n }}\n marks={\n lowerLimitDegs !== undefined &&\n upperLimitDegs !== undefined && [\n {\n value: lowerLimitDegs,\n label: formatDegrees(lowerLimitDegs, 0),\n },\n {\n value: upperLimitDegs,\n label: formatDegrees(upperLimitDegs, 0),\n },\n ]\n }\n />\n </Stack>\n\n <IconButton\n onPointerDown={onPointerDownPlus}\n onPointerUp={state.stopJogging}\n onPointerOut={state.stopJogging}\n disabled={disabled}\n sx={{\n width: \"52px\",\n color: \"white\",\n alignContent: \"center\",\n fontSize: \"37px\",\n borderRadius: \"0px 16px 16px 0px\",\n backgroundColor:\n state.activeJoggingDir === \"+\" ? \"#495975 !important\" : \"#38445A\",\n \"& svg\": {\n width: \"42px\",\n height: \"42px\",\n },\n }}\n >\n <ChevronRight />\n </IconButton>\n </Stack>\n </I18nextProvider>\n )\n },\n)\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgRotation = ({\n title,\n titleId,\n ...props\n}, ref) => /* @__PURE__ */ React.createElement(\"svg\", { width: 25, height: 24, viewBox: \"0 0 25 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ref, \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18.5 12C18.5 8.68629 15.8137 6 12.5 6C9.18629 6 6.5 8.68629 6.5 12C6.5 15.3137 9.18629 18 12.5 18\", stroke: \"white\", strokeWidth: 1.5, strokeLinecap: \"round\", fill: \"none\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M16.5 11L18.5 13.5L20.5 11\", stroke: \"white\", strokeWidth: 1.5, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nconst ForwardRef = forwardRef(SvgRotation);\nexport default ForwardRef;\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgAxisX = ({\n title,\n titleId,\n ...props\n}, ref) => /* @__PURE__ */ React.createElement(\"svg\", { width: 19, height: 10, viewBox: \"0 0 19 10\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ref, \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M5.13114 0.312406C5.48225 0.663519 5.48225 1.23278 5.13114 1.5839L3.06975 3.64528H15.5109L13.4496 1.58402C13.0985 1.2329 13.0985 0.66364 13.4496 0.312527C13.8007 -0.0385848 14.37 -0.0385848 14.7211 0.312527L18.3174 3.90884C18.6685 4.25996 18.6685 4.82922 18.3174 5.18033L14.7211 8.77665C14.37 9.12776 13.8007 9.12776 13.4496 8.77665C13.0985 8.42554 13.0985 7.85627 13.4496 7.50516L15.5113 5.44344H3.06954L5.13114 7.50504C5.48225 7.85615 5.48225 8.42542 5.13114 8.77653C4.78003 9.12764 4.21076 9.12764 3.85965 8.77653L0.263334 5.18021C-0.087778 4.8291 -0.087778 4.25983 0.263334 3.90872L3.85965 0.312406C4.21076 -0.0387058 4.78003 -0.0387058 5.13114 0.312406Z\", fill: \"white\" }));\nconst ForwardRef = forwardRef(SvgAxisX);\nexport default ForwardRef;\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgAxisY = ({\n title,\n titleId,\n ...props\n}, ref) => /* @__PURE__ */ React.createElement(\"svg\", { width: 19, height: 10, viewBox: \"0 0 19 10\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ref, \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M5.13114 0.312406C5.48225 0.663519 5.48225 1.23278 5.13114 1.5839L3.06975 3.64528H15.5109L13.4496 1.58402C13.0985 1.2329 13.0985 0.66364 13.4496 0.312527C13.8007 -0.0385848 14.37 -0.0385848 14.7211 0.312527L18.3174 3.90884C18.6685 4.25996 18.6685 4.82922 18.3174 5.18033L14.7211 8.77665C14.37 9.12776 13.8007 9.12776 13.4496 8.77665C13.0985 8.42554 13.0985 7.85627 13.4496 7.50516L15.5113 5.44344H3.06954L5.13114 7.50504C5.48225 7.85615 5.48225 8.42542 5.13114 8.77653C4.78003 9.12764 4.21076 9.12764 3.85965 8.77653L0.263334 5.18021C-0.087778 4.8291 -0.087778 4.25983 0.263334 3.90872L3.85965 0.312406C4.21076 -0.0387058 4.78003 -0.0387058 5.13114 0.312406Z\", fill: \"white\" }));\nconst ForwardRef = forwardRef(SvgAxisY);\nexport default ForwardRef;\n","import * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgAxisZ = ({\n title,\n titleId,\n ...props\n}, ref) => /* @__PURE__ */ React.createElement(\"svg\", { width: 10, height: 19, viewBox: \"0 0 10 19\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", ref, \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M9.52182 14.8114C9.87293 14.4603 9.87293 13.8911 9.52182 13.54C9.17071 13.1888 8.60144 13.1888 8.25033 13.54L6.18885 15.6014L6.18885 3.15999L8.25033 5.22147C8.60144 5.57258 9.17071 5.57258 9.52182 5.22147C9.87293 4.87036 9.87293 4.30109 9.52182 3.94998L5.9255 0.353666C5.57439 0.00255379 5.00513 0.00255378 4.65401 0.353666L1.0577 3.94998C0.706587 4.30109 0.706587 4.87036 1.0577 5.22147C1.40881 5.57258 1.97808 5.57258 2.32919 5.22147L4.3907 3.15996L4.3907 15.6015L2.32919 13.54C1.97808 13.1888 1.40881 13.1888 1.0577 13.54C0.706588 13.8911 0.706588 14.4603 1.0577 14.8114L4.65402 18.4078C5.00513 18.7589 5.57439 18.7589 5.92551 18.4078L9.52182 14.8114Z\", fill: \"white\" }));\nconst ForwardRef = forwardRef(SvgAxisZ);\nexport default ForwardRef;\n","'use client';\n\nimport * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nimport THEME_ID from './identifier';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme[THEME_ID] || theme;\n}","\"use client\"\n\nimport { createTheme, useTheme, type ThemeOptions } from \"@mui/material/styles\"\nimport { defaultsDeep } from \"lodash-es\"\n\nconst baseColors = {\n white: \"#FFFFFF\",\n midnightblue: \"#001337\",\n lightbuttonblue: \"#47D3FF\",\n midnightgray: \"#DDE0E4\",\n midnightgray500: \"#828B9B\",\n skyblue500: \"#06B8F1\",\n skyblue600: \"#0094CE\",\n darkishblue: \"#262F42\",\n darkestblue: \"#101629\",\n grayishblue: \"#505968\",\n darkgrayishblue: \"#363c4b\",\n scaryred: \"#FF0E65\",\n tealGreen: \"#1AC0B2\",\n magenta: \"#EA3785\",\n}\n\n/** Colors for the dark theme */\nexport const darkColors = {\n primary: baseColors.skyblue500,\n textDefault: baseColors.white,\n textInverse: baseColors.darkestblue,\n textError: baseColors.scaryred,\n textSubtle: baseColors.midnightgray500,\n backgroundDefault: baseColors.darkishblue,\n inputBackgroundDefault: baseColors.darkgrayishblue,\n borderColorDefault: \"#3A4150\",\n\n selectBackground: baseColors.grayishblue,\n appBarBackground: baseColors.darkestblue,\n virtualRobot: \"#1AC0B2\",\n physicalRobot: \"#956FFA\",\n robotViewportBackground: \"#1F283A\",\n viewportButtonInactiveBackground: baseColors.darkestblue,\n viewportButtonHover: baseColors.midnightgray500,\n viewportButtonActiveBackground: baseColors.skyblue500,\n tabsBarBackground: baseColors.darkestblue,\n activeTabBackground: baseColors.darkishblue,\n omniverseConfigurationSuccess: baseColors.tealGreen,\n omniverseConfigurationFailure: baseColors.magenta,\n}\n\n/** Colors for the light theme */\nexport const lightColors = {\n primary: baseColors.lightbuttonblue,\n textDefault: \"#18181B\",\n textInverse: baseColors.white,\n textError: baseColors.scaryred,\n textSubtle: baseColors.midnightgray500,\n backgroundDefault: baseColors.white,\n inputBackgroundDefault: baseColors.white,\n borderColorDefault: baseColors.midnightgray500,\n\n selectBackground: \"#E4E4E7\",\n appBarBackground: baseColors.white,\n virtualRobot: \"green\",\n physicalRobot: \"blue\",\n robotViewportBackground: \"#E4E4E7\",\n viewportButtonInactiveBackground: baseColors.midnightgray,\n viewportButtonHover: baseColors.midnightgray500,\n viewportButtonActiveBackground: baseColors.lightbuttonblue,\n tabsBarBackground: baseColors.white,\n activeTabBackground: baseColors.white,\n omniverseConfigurationSuccess: baseColors.tealGreen,\n omniverseConfigurationFailure: baseColors.magenta,\n}\n\n/** Gets the colors for the current theme (light or dark) */\nexport function useThemeColors() {\n return useTheme().palette.mode === \"dark\" ? darkColors : lightColors\n}\n\nfunction createRobotPadTheme(\n mode: \"light\" | \"dark\",\n options: ThemeOptions = {},\n) {\n const colors = mode === \"light\" ? lightColors : darkColors\n return createTheme(\n defaultsDeep(options, {\n palette: {\n mode,\n primary: {\n main: colors.primary,\n },\n background: {\n default: colors.backgroundDefault,\n },\n },\n typography: {\n allVariants: {\n color: colors.textDefault,\n },\n },\n components: {\n MuiPaper: {\n styleOverrides: {\n root: {\n backgroundColor: colors.backgroundDefault,\n },\n },\n },\n MuiTabs: {\n styleOverrides: {\n root: {\n backgroundColor: colors.tabsBarBackground,\n minHeight: \"42px\",\n },\n },\n },\n MuiTab: {\n styleOverrides: {\n root: {\n minHeight: \"42px\",\n textTransform: \"none\",\n \"&.Mui-selected\": {\n color: \"inherit\",\n backgroundColor: colors.activeTabBackground,\n },\n },\n },\n },\n MuiButton: {\n defaultProps: {\n disableElevation: true,\n },\n styleOverrides: {\n root: {\n textTransform: \"none\",\n borderRadius: \"10px\",\n fontSize: \"14px\",\n fontWeight: 500,\n },\n },\n variants: [\n {\n props: { variant: \"outlined\" },\n style: {\n border: \"2px solid rgba(255, 255, 255, 0.6)\",\n color: \"rgba(255, 255, 255, 0.6)\",\n backgroundColor: \"rgba(255, 255, 255, 0.2)\",\n \"&:hover\": {\n backgroundColor: \"rgba(255, 255, 255, 0.4)\",\n border: \"2px solid rgba(255, 255, 255, 0.8)\",\n },\n },\n },\n ],\n },\n MuiFab: {\n styleOverrides: {\n root: {\n width: \"48px\",\n height: \"48px\",\n backgroundColor: colors.viewportButtonInactiveBackground,\n color: colors.textDefault,\n \"&:hover\": {\n backgroundColor: colors.viewportButtonHover,\n },\n },\n },\n variants: [\n {\n props: { variant: \"active\" },\n style: {\n backgroundColor: colors.viewportButtonActiveBackground,\n color: colors.textInverse,\n \"&:hover\": {\n backgroundColor: colors.viewportButtonActiveBackground,\n },\n },\n },\n ],\n },\n },\n }),\n )\n}\n\nexport const darkTheme = createRobotPadTheme(\"dark\")\nexport const lightTheme = createRobotPadTheme(\"light\")\nexport const wbTheme = darkTheme\n","// TODO implement this as part of theme?\n\nimport { useThemeColors } from \"../themes/wbTheme\"\nimport { Select, type SxProps } from \"@mui/material\"\nimport { defaultsDeep } from \"lodash-es\"\n\ntype ThemeSelectProps = {\n kind: \"filled\" | \"outlined\" | \"text\"\n} & React.ComponentProps<typeof Select>\n\nexport const ThemeSelect = ({ kind, sx, ...rest }: ThemeSelectProps) => {\n const colors = useThemeColors()\n\n let style: SxProps = defaultsDeep(sx, {\n backgroundColor: colors.selectBackground,\n borderRadius: \"10px\",\n borderStyle: \"none\",\n color: \"currentColor\",\n \"& > div\": {\n padding: \"4px 16px\",\n },\n \"& fieldset\": {\n border: \"none\",\n },\n })\n\n if (kind === \"outlined\") {\n style = defaultsDeep(\n {\n backgroundColor: \"transparent\",\n },\n style,\n )\n } else if (kind === \"text\") {\n style = defaultsDeep(\n {\n backgroundColor: \"transparent\",\n\n \"& .MuiSvgIcon-root\": {\n borderStyle: \"none\",\n color: \"inherit\",\n },\n },\n style,\n )\n }\n\n return <Select sx={style} {...rest} />\n}\n","import { Stack, MenuItem, InputLabel, Select } from \"@mui/material\"\nimport { observer } from \"mobx-react-lite\"\nimport type { IncrementOptionId, JoggingStore } from \"./JoggingStore\"\nimport { useTranslation } from \"react-i18next\"\nimport { useThemeColors } from \"../../themes/wbTheme\"\nimport { ThemeSelect } from \"../ThemeSelect\"\n\nexport const JoggingOptions = observer(({ store }: { store: JoggingStore }) => {\n const { t } = useTranslation()\n const colors = useThemeColors()\n\n return (\n <Stack\n direction={\"row\"}\n alignItems={\"center\"}\n spacing={1}\n sx={{\n padding: \"16px\",\n \"& label\": {\n color: colors.textSubtle,\n fontSize: \"12px\",\n marginBottom: \"4px\",\n },\n }}\n >\n {/* Coordinate system */}\n <Stack width=\"33%\">\n <InputLabel id=\"jogging-coord-select\">{\"Coordinate Sys.\"}</InputLabel>\n <ThemeSelect\n kind=\"filled\"\n labelId=\"jogging-coord-select\"\n value={store.selectedCoordSystemId}\n displayEmpty={true}\n onChange={(event) => {\n store.setSelectedCoordSystemId(event.target.value as string)\n }}\n disabled={store.isLocked}\n >\n {store.coordSystems.map((cs) => (\n <MenuItem key={cs.coordinate_system} value={cs.coordinate_system}>\n {cs.name || cs.coordinate_system}\n </MenuItem>\n ))}\n </ThemeSelect>\n </Stack>\n\n {/* TCP selection */}\n <Stack width=\"33%\">\n <InputLabel id=\"jogging-tcp-select\">TCP</InputLabel>\n <ThemeSelect\n kind=\"filled\"\n labelId=\"jogging-tcp-select\"\n value={store.selectedTcpId}\n onChange={(event) => {\n store.setSelectedTcpId(event.target.value as string)\n }}\n disabled={store.isLocked}\n >\n {store.tcps.map((tcp) => (\n <MenuItem key={tcp.id} value={tcp.id}>\n {tcp.id}\n </MenuItem>\n ))}\n </ThemeSelect>\n </Stack>\n\n {/* Increment selection */}\n <Stack width=\"33%\">\n <InputLabel id=\"jogging-increment-select\">{\"Increment\"}</InputLabel>\n <ThemeSelect\n kind=\"filled\"\n labelId=\"jogging-increment-select\"\n value={store.selectedIncrementId}\n onChange={(event) => {\n store.setSelectedIncrementId(\n event.target.value as IncrementOptionId,\n )\n }}\n disabled={store.isLocked}\n >\n <MenuItem key=\"continuous\" value=\"continuous\">\n {t(\"Jogging.Increment.Continuous.dd\")}\n </MenuItem>\n\n {store.discreteIncrementOptions.map((inc) => (\n <MenuItem key={inc.id} value={inc.id}>\n {store.currentMotionType === \"translate\"\n ? `${inc.mm}mm`\n : `${inc.degrees}°`}\n </MenuItem>\n ))}\n </ThemeSelect>\n </Stack>\n </Stack>\n )\n})\n","function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {\n return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));\n}\nexport default areArraysEqual;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_ownerDocument as ownerDocument, unstable_useControlled as useControlled, unstable_useEnhancedEffect as useEnhancedEffect, unstable_useEventCallback as useEventCallback, unstable_useForkRef as useForkRef, unstable_useIsFocusVisible as useIsFocusVisible, visuallyHidden, clamp } from '@mui/utils';\nimport extractEventHandlers from '@mui/utils/extractEventHandlers';\nimport areArraysEqual from '../utils/areArraysEqual';\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction asc(a, b) {\n return a - b;\n}\nfunction findClosest(values, currentValue) {\n var _values$reduce;\n const {\n index: closestIndex\n } = (_values$reduce = values.reduce((acc, value, index) => {\n const distance = Math.abs(currentValue - value);\n if (acc === null || distance < acc.distance || distance === acc.distance) {\n return {\n distance,\n index\n };\n }\n return acc;\n }, null)) != null ? _values$reduce : {};\n return closestIndex;\n}\nfunction trackFinger(event, touchId) {\n // The event is TouchEvent\n if (touchId.current !== undefined && event.changedTouches) {\n const touchEvent = event;\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n if (touch.identifier === touchId.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return false;\n }\n\n // The event is MouseEvent\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\nexport function valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}\nfunction percentToValue(percent, min, max) {\n return (max - min) * percent + min;\n}\nfunction getDecimalPrecision(num) {\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nfunction roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(getDecimalPrecision(step)));\n}\nfunction setValueIndex({\n values,\n newValue,\n index\n}) {\n const output = values.slice();\n output[index] = newValue;\n return output.sort(asc);\n}\nfunction focusThumb({\n sliderRef,\n activeIndex,\n setActive\n}) {\n var _sliderRef$current, _doc$activeElement;\n const doc = ownerDocument(sliderRef.current);\n if (!((_sliderRef$current = sliderRef.current) != null && _sliderRef$current.contains(doc.activeElement)) || Number(doc == null || (_doc$activeElement = doc.activeElement) == null ? void 0 : _doc$activeElement.getAttribute('data-index')) !== activeIndex) {\n var _sliderRef$current2;\n (_sliderRef$current2 = sliderRef.current) == null || _sliderRef$current2.querySelector(`[type=\"range\"][data-index=\"${activeIndex}\"]`).focus();\n }\n if (setActive) {\n setActive(activeIndex);\n }\n}\nfunction areValuesEqual(newValue, oldValue) {\n if (typeof newValue === 'number' && typeof oldValue === 'number') {\n return newValue === oldValue;\n }\n if (typeof newValue === 'object' && typeof oldValue === 'object') {\n return areArraysEqual(newValue, oldValue);\n }\n return false;\n}\nconst axisProps = {\n horizontal: {\n offset: percent => ({\n left: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n 'horizontal-reverse': {\n offset: percent => ({\n right: `${percent}%`\n }),\n leap: percent => ({\n width: `${percent}%`\n })\n },\n vertical: {\n offset: percent => ({\n bottom: `${percent}%`\n }),\n leap: percent => ({\n height: `${percent}%`\n })\n }\n};\nexport const Identity = x => x;\n\n// TODO: remove support for Safari < 13.\n// https://caniuse.com/#search=touch-action\n//\n// Safari, on iOS, supports touch action since v13.\n// Over 80% of the iOS phones are compatible\n// in August 2020.\n// Utilizing the CSS.supports method to check if touch-action is supported.\n// Since CSS.supports is supported on all but Edge@12 and IE and touch-action\n// is supported on both Edge@12 and IE if CSS.supports is not available that means that\n// touch-action will be supported\nlet cachedSupportsTouchActionNone;\nfunction doesSupportTouchActionNone() {\n if (cachedSupportsTouchActionNone === undefined) {\n if (typeof CSS !== 'undefined' && typeof CSS.supports === 'function') {\n cachedSupportsTouchActionNone = CSS.supports('touch-action', 'none');\n } else {\n cachedSupportsTouchActionNone = true;\n }\n }\n return cachedSupportsTouchActionNone;\n}\n/**\n *\n * Demos:\n *\n * - [Slider](https://mui.com/base-ui/react-slider/#hook)\n *\n * API:\n *\n * - [useSlider API](https://mui.com/base-ui/react-slider/hooks-api/#use-slider)\n */\nexport function useSlider(parameters) {\n const {\n 'aria-labelledby': ariaLabelledby,\n defaultValue,\n disabled = false,\n disableSwap = false,\n isRtl = false,\n marks: marksProp = false,\n max = 100,\n min = 0,\n name,\n onChange,\n onChangeCommitted,\n orientation = 'horizontal',\n rootRef: ref,\n scale = Identity,\n step = 1,\n shiftStep = 10,\n tabIndex,\n value: valueProp\n } = parameters;\n const touchId = React.useRef();\n // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n const [active, setActive] = React.useState(-1);\n const [open, setOpen] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const moveCount = React.useRef(0);\n const [valueDerived, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue != null ? defaultValue : min,\n name: 'Slider'\n });\n const handleChange = onChange && ((event, value, thumbIndex) => {\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = event.nativeEvent || event;\n // @ts-ignore The nativeEvent is function, not object\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value,\n name\n }\n });\n onChange(clonedEvent, value, thumbIndex);\n });\n const range = Array.isArray(valueDerived);\n let values = range ? valueDerived.slice().sort(asc) : [valueDerived];\n values = values.map(value => value == null ? min : clamp(value, min, max));\n const marks = marksProp === true && step !== null ? [...Array(Math.floor((max - min) / step) + 1)].map((_, index) => ({\n value: min + step * index\n })) : marksProp || [];\n const marksValues = marks.map(mark => mark.value);\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusedThumbIndex, setFocusedThumbIndex] = React.useState(-1);\n const sliderRef = React.useRef();\n const handleFocusRef = useForkRef(focusVisibleRef, sliderRef);\n const handleRef = useForkRef(ref, handleFocusRef);\n const createHandleHiddenInputFocus = otherHandlers => event => {\n var _otherHandlers$onFocu;\n const index = Number(event.currentTarget.getAttribute('data-index'));\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusedThumbIndex(index);\n }\n setOpen(index);\n otherHandlers == null || (_otherHandlers$onFocu = otherHandlers.onFocus) == null || _otherHandlers$onFocu.call(otherHandlers, event);\n };\n const createHandleHiddenInputBlur = otherHandlers => event => {\n var _otherHandlers$onBlur;\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusedThumbIndex(-1);\n }\n setOpen(-1);\n otherHandlers == null || (_otherHandlers$onBlur = otherHandlers.onBlur) == null || _otherHandlers$onBlur.call(otherHandlers, event);\n };\n const changeValue = (event, valueInput) => {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n const marksIndex = marksValues.indexOf(value);\n let newValue = valueInput;\n if (marks && step == null) {\n const maxMarksValue = marksValues[marksValues.length - 1];\n if (newValue > maxMarksValue) {\n newValue = maxMarksValue;\n } else if (newValue < marksValues[0]) {\n newValue = marksValues[0];\n } else {\n newValue = newValue < value ? marksValues[marksIndex - 1] : marksValues[marksIndex + 1];\n }\n }\n newValue = clamp(newValue, min, max);\n if (range) {\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[index - 1] || -Infinity, values[index + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index\n });\n let activeIndex = index;\n\n // Potentially swap the index if needed.\n if (!disableSwap) {\n activeIndex = newValue.indexOf(previousValue);\n }\n focusThumb({\n sliderRef,\n activeIndex\n });\n }\n setValueState(newValue);\n setFocusedThumbIndex(index);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, index);\n }\n if (onChangeCommitted) {\n onChangeCommitted(event, newValue);\n }\n };\n const createHandleHiddenInputKeyDown = otherHandlers => event => {\n var _otherHandlers$onKeyD;\n // The Shift + Up/Down keyboard shortcuts for moving the slider makes sense to be supported\n // only if the step is defined. If the step is null, this means tha the marks are used for specifying the valid values.\n if (step !== null) {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n let newValue = null;\n if ((event.key === 'ArrowLeft' || event.key === 'ArrowDown') && event.shiftKey || event.key === 'PageDown') {\n newValue = Math.max(value - shiftStep, min);\n } else if ((event.key === 'ArrowRight' || event.key === 'ArrowUp') && event.shiftKey || event.key === 'PageUp') {\n newValue = Math.min(value + shiftStep, max);\n }\n if (newValue !== null) {\n changeValue(event, newValue);\n event.preventDefault();\n }\n }\n otherHandlers == null || (_otherHandlers$onKeyD = otherHandlers.onKeyDown) == null || _otherHandlers$onKeyD.call(otherHandlers, event);\n };\n useEnhancedEffect(() => {\n if (disabled && sliderRef.current.contains(document.activeElement)) {\n var _document$activeEleme;\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n // @ts-ignore\n (_document$activeEleme = document.activeElement) == null || _document$activeEleme.blur();\n }\n }, [disabled]);\n if (disabled && active !== -1) {\n setActive(-1);\n }\n if (disabled && focusedThumbIndex !== -1) {\n setFocusedThumbIndex(-1);\n }\n const createHandleHiddenInputChange = otherHandlers => event => {\n var _otherHandlers$onChan;\n (_otherHandlers$onChan = otherHandlers.onChange) == null || _otherHandlers$onChan.call(otherHandlers, event);\n // @ts-ignore\n changeValue(event, event.target.valueAsNumber);\n };\n const previousIndex = React.useRef();\n let axis = orientation;\n if (isRtl && orientation === 'horizontal') {\n axis += '-reverse';\n }\n const getFingerNewValue = ({\n finger,\n move = false\n }) => {\n const {\n current: slider\n } = sliderRef;\n const {\n width,\n height,\n bottom,\n left\n } = slider.getBoundingClientRect();\n let percent;\n if (axis.indexOf('vertical') === 0) {\n percent = (bottom - finger.y) / height;\n } else {\n percent = (finger.x - left) / width;\n }\n if (axis.indexOf('-reverse') !== -1) {\n percent = 1 - percent;\n }\n let newValue;\n newValue = percentToValue(percent, min, max);\n if (step) {\n newValue = roundValueToStep(newValue, step, min);\n } else {\n const closestIndex = findClosest(marksValues, newValue);\n newValue = marksValues[closestIndex];\n }\n newValue = clamp(newValue, min, max);\n let activeIndex = 0;\n if (range) {\n if (!move) {\n activeIndex = findClosest(values, newValue);\n } else {\n activeIndex = previousIndex.current;\n }\n\n // Bound the new value to the thumb's neighbours.\n if (disableSwap) {\n newValue = clamp(newValue, values[activeIndex - 1] || -Infinity, values[activeIndex + 1] || Infinity);\n }\n const previousValue = newValue;\n newValue = setValueIndex({\n values,\n newValue,\n index: activeIndex\n });\n\n // Potentially swap the index if needed.\n if (!(disableSwap && move)) {\n activeIndex = newValue.indexOf(previousValue);\n previousIndex.current = activeIndex;\n }\n }\n return {\n newValue,\n activeIndex\n };\n };\n const handleTouchMove = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n if (!finger) {\n return;\n }\n moveCount.current += 1;\n\n // Cancel move in case some other element consumed a mouseup event and it was not fired.\n // @ts-ignore buttons doesn't not exists on touch event\n if (nativeEvent.type === 'mousemove' && nativeEvent.buttons === 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleTouchEnd(nativeEvent);\n return;\n }\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger,\n move: true\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (!dragging && moveCount.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n });\n const handleTouchEnd = useEventCallback(nativeEvent => {\n const finger = trackFinger(nativeEvent, touchId);\n setDragging(false);\n if (!finger) {\n return;\n }\n const {\n newValue\n } = getFingerNewValue({\n finger,\n move: true\n });\n setActive(-1);\n if (nativeEvent.type === 'touchend') {\n setOpen(-1);\n }\n if (onChangeCommitted) {\n onChangeCommitted(nativeEvent, newValue);\n }\n touchId.current = undefined;\n\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n });\n const handleTouchStart = useEventCallback(nativeEvent => {\n if (disabled) {\n return;\n }\n // If touch-action: none; is not supported we need to prevent the scroll manually.\n if (!doesSupportTouchActionNone()) {\n nativeEvent.preventDefault();\n }\n const touch = nativeEvent.changedTouches[0];\n if (touch != null) {\n // A number that uniquely identifies the current finger in the touch session.\n touchId.current = touch.identifier;\n }\n const finger = trackFinger(nativeEvent, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(nativeEvent, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('touchmove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('touchend', handleTouchEnd, {\n passive: true\n });\n });\n const stopListening = React.useCallback(() => {\n const doc = ownerDocument(sliderRef.current);\n doc.removeEventListener('mousemove', handleTouchMove);\n doc.removeEventListener('mouseup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n }, [handleTouchEnd, handleTouchMove]);\n React.useEffect(() => {\n const {\n current: slider\n } = sliderRef;\n slider.addEventListener('touchstart', handleTouchStart, {\n passive: doesSupportTouchActionNone()\n });\n return () => {\n slider.removeEventListener('touchstart', handleTouchStart);\n stopListening();\n };\n }, [stopListening, handleTouchStart]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const createHandleMouseDown = otherHandlers => event => {\n var _otherHandlers$onMous;\n (_otherHandlers$onMous = otherHandlers.onMouseDown) == null || _otherHandlers$onMous.call(otherHandlers, event);\n if (disabled) {\n return;\n }\n if (event.defaultPrevented) {\n return;\n }\n\n // Only handle left clicks\n if (event.button !== 0) {\n return;\n }\n\n // Avoid text selection\n event.preventDefault();\n const finger = trackFinger(event, touchId);\n if (finger !== false) {\n const {\n newValue,\n activeIndex\n } = getFingerNewValue({\n finger\n });\n focusThumb({\n sliderRef,\n activeIndex,\n setActive\n });\n setValueState(newValue);\n if (handleChange && !areValuesEqual(newValue, valueDerived)) {\n handleChange(event, newValue, activeIndex);\n }\n }\n moveCount.current = 0;\n const doc = ownerDocument(sliderRef.current);\n doc.addEventListener('mousemove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('mouseup', handleTouchEnd);\n };\n const trackOffset = valueToPercent(range ? values[0] : min, min, max);\n const trackLeap = valueToPercent(values[values.length - 1], min, max) - trackOffset;\n const getRootProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseDown: createHandleMouseDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({}, externalProps, {\n ref: handleRef\n }, mergedEventHandlers);\n };\n const createHandleMouseOver = otherHandlers => event => {\n var _otherHandlers$onMous2;\n (_otherHandlers$onMous2 = otherHandlers.onMouseOver) == null || _otherHandlers$onMous2.call(otherHandlers, event);\n const index = Number(event.currentTarget.getAttribute('data-index'));\n setOpen(index);\n };\n const createHandleMouseLeave = otherHandlers => event => {\n var _otherHandlers$onMous3;\n (_otherHandlers$onMous3 = otherHandlers.onMouseLeave) == null || _otherHandlers$onMous3.call(otherHandlers, event);\n setOpen(-1);\n };\n const getThumbProps = (externalProps = {}) => {\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onMouseOver: createHandleMouseOver(externalHandlers || {}),\n onMouseLeave: createHandleMouseLeave(externalHandlers || {})\n };\n return _extends({}, externalProps, externalHandlers, ownEventHandlers);\n };\n const getThumbStyle = index => {\n return {\n // So the non active thumb doesn't show its label on hover.\n pointerEvents: active !== -1 && active !== index ? 'none' : undefined\n };\n };\n const getHiddenInputProps = (externalProps = {}) => {\n var _parameters$step;\n const externalHandlers = extractEventHandlers(externalProps);\n const ownEventHandlers = {\n onChange: createHandleHiddenInputChange(externalHandlers || {}),\n onFocus: createHandleHiddenInputFocus(externalHandlers || {}),\n onBlur: createHandleHiddenInputBlur(externalHandlers || {}),\n onKeyDown: createHandleHiddenInputKeyDown(externalHandlers || {})\n };\n const mergedEventHandlers = _extends({}, externalHandlers, ownEventHandlers);\n return _extends({\n tabIndex,\n 'aria-labelledby': ariaLabelledby,\n 'aria-orientation': orientation,\n 'aria-valuemax': scale(max),\n 'aria-valuemin': scale(min),\n name,\n type: 'range',\n min: parameters.min,\n max: parameters.max,\n step: parameters.step === null && parameters.marks ? 'any' : (_parameters$step = parameters.step) != null ? _parameters$step : undefined,\n disabled\n }, externalProps, mergedEventHandlers, {\n style: _extends({}, visuallyHidden, {\n direction: isRtl ? 'rtl' : 'ltr',\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%'\n })\n });\n };\n return {\n active,\n axis: axis,\n axisProps,\n dragging,\n focusedThumbIndex,\n getHiddenInputProps,\n getRootProps,\n getThumbProps,\n marks: marks,\n open,\n range,\n rootRef: handleRef,\n trackLeap,\n trackOffset,\n values,\n getThumbStyle\n };\n}","import isHostComponent from '@mui/utils/isHostComponent';\nconst shouldSpreadAdditionalProps = Slot => {\n return !Slot || !isHostComponent(Slot);\n};\nexport default shouldSpreadAdditionalProps;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getSliderUtilityClass(slot) {\n return generateUtilityClass('MuiSlider', slot);\n}\nconst sliderClasses = generateUtilityClasses('MuiSlider', ['root', 'active', 'colorPrimary', 'colorSecondary', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning', 'disabled', 'dragging', 'focusVisible', 'mark', 'markActive', 'marked', 'markLabel', 'markLabelActive', 'rail', 'sizeSmall', 'thumb', 'thumbColorPrimary', 'thumbColorSecondary', 'thumbColorError', 'thumbColorSuccess', 'thumbColorInfo', 'thumbColorWarning', 'track', 'trackInverted', 'trackFalse', 'thumbSizeSmall', 'valueLabel', 'valueLabelOpen', 'valueLabelCircle', 'valueLabelLabel', 'vertical']);\nexport default sliderClasses;","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport sliderClasses from './sliderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useValueLabelClasses = props => {\n const {\n open\n } = props;\n const utilityClasses = {\n offset: clsx(open && sliderClasses.valueLabelOpen),\n circle: sliderClasses.valueLabelCircle,\n label: sliderClasses.valueLabelLabel\n };\n return utilityClasses;\n};\n\n/**\n * @ignore - internal component.\n */\nexport default function SliderValueLabel(props) {\n const {\n children,\n className,\n value\n } = props;\n const classes = useValueLabelClasses(props);\n if (!children) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(children, {\n className: clsx(children.props.className)\n }, /*#__PURE__*/_jsxs(React.Fragment, {\n children: [children.props.children, /*#__PURE__*/_jsx(\"span\", {\n className: clsx(classes.offset, className),\n \"aria-hidden\": true,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: classes.circle,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: classes.label,\n children: value\n })\n })\n })]\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? SliderValueLabel.propTypes = {\n children: PropTypes.element.isRequired,\n className: PropTypes.string,\n value: PropTypes.node\n} : void 0;","'use client';\n\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"aria-label\", \"aria-valuetext\", \"aria-labelledby\", \"component\", \"components\", \"componentsProps\", \"color\", \"classes\", \"className\", \"disableSwap\", \"disabled\", \"getAriaLabel\", \"getAriaValueText\", \"marks\", \"max\", \"min\", \"name\", \"onChange\", \"onChangeCommitted\", \"orientation\", \"shiftStep\", \"size\", \"step\", \"scale\", \"slotProps\", \"slots\", \"tabIndex\", \"track\", \"value\", \"valueLabelDisplay\", \"valueLabelFormat\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport chainPropTypes from '@mui/utils/chainPropTypes';\nimport composeClasses from '@mui/utils/composeClasses';\nimport { alpha, lighten, darken } from '@mui/system/colorManipulator';\nimport { useRtl } from '@mui/system/RtlProvider';\nimport useSlotProps from '@mui/utils/useSlotProps';\nimport isHostComponent from '@mui/utils/isHostComponent';\nimport { useSlider, valueToPercent } from './useSlider';\nimport { styled } from '../zero-styled';\nimport { useDefaultProps } from '../DefaultPropsProvider';\nimport slotShouldForwardProp from '../styles/slotShouldForwardProp';\nimport shouldSpreadAdditionalProps from '../utils/shouldSpreadAdditionalProps';\nimport capitalize from '../utils/capitalize';\nimport BaseSliderValueLabel from './SliderValueLabel';\nimport sliderClasses, { getSliderUtilityClass } from './sliderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction Identity(x) {\n return x;\n}\nexport const SliderRoot = styled('span', {\n name: 'MuiSlider',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`color${capitalize(ownerState.color)}`], ownerState.size !== 'medium' && styles[`size${capitalize(ownerState.size)}`], ownerState.marked && styles.marked, ownerState.orientation === 'vertical' && styles.vertical, ownerState.track === 'inverted' && styles.trackInverted, ownerState.track === false && styles.trackFalse];\n }\n})(({\n theme\n}) => {\n var _theme$vars;\n return {\n borderRadius: 12,\n boxSizing: 'content-box',\n display: 'inline-block',\n position: 'relative',\n cursor: 'pointer',\n touchAction: 'none',\n WebkitTapHighlightColor: 'transparent',\n '@media print': {\n colorAdjust: 'exact'\n },\n [`&.${sliderClasses.disabled}`]: {\n pointerEvents: 'none',\n cursor: 'default',\n color: (theme.vars || theme).palette.grey[400]\n },\n [`&.${sliderClasses.dragging}`]: {\n [`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]: {\n transition: 'none'\n }\n },\n variants: [...Object.keys(((_theme$vars = theme.vars) != null ? _theme$vars : theme).palette).filter(key => {\n var _theme$vars2;\n return ((_theme$vars2 = theme.vars) != null ? _theme$vars2 : theme).palette[key].main;\n }).map(color => ({\n props: {\n color\n },\n style: {\n color: (theme.vars || theme).palette[color].main\n }\n })), {\n props: {\n orientation: 'horizontal'\n },\n style: {\n height: 4,\n width: '100%',\n padding: '13px 0',\n // The primary input mechanism of the device includes a pointing device of limited accuracy.\n '@media (pointer: coarse)': {\n // Reach 42px touch target, about ~8mm on screen.\n padding: '20px 0'\n }\n }\n }, {\n props: {\n orientation: 'horizontal',\n size: 'small'\n },\n style: {\n height: 2\n }\n }, {\n props: {\n orientation: 'horizontal',\n marked: true\n },\n style: {\n marginBottom: 20\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n height: '100%',\n width: 4,\n padding: '0 13px',\n // The primary input mechanism of the device includes a pointing device of limited accuracy.\n '@media (pointer: coarse)': {\n // Reach 42px touch target, about ~8mm on screen.\n padding: '0 20px'\n }\n }\n }, {\n props: {\n orientation: 'vertical',\n size: 'small'\n },\n style: {\n width: 2\n }\n }, {\n props: {\n orientation: 'vertical',\n marked: true\n },\n style: {\n marginRight: 44\n }\n }]\n };\n});\nexport const SliderRail = styled('span', {\n name: 'MuiSlider',\n slot: 'Rail',\n overridesResolver: (props, styles) => styles.rail\n})({\n display: 'block',\n position: 'absolute',\n borderRadius: 'inherit',\n backgroundColor: 'currentColor',\n opacity: 0.38,\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n width: '100%',\n height: 'inherit',\n top: '50%',\n transform: 'translateY(-50%)'\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n height: '100%',\n width: 'inherit',\n left: '50%',\n transform: 'translateX(-50%)'\n }\n }, {\n props: {\n track: 'inverted'\n },\n style: {\n opacity: 1\n }\n }]\n});\nexport const SliderTrack = styled('span', {\n name: 'MuiSlider',\n slot: 'Track',\n overridesResolver: (props, styles) => styles.track\n})(({\n theme\n}) => {\n var _theme$vars3;\n return {\n display: 'block',\n position: 'absolute',\n borderRadius: 'inherit',\n border: '1px solid currentColor',\n backgroundColor: 'currentColor',\n transition: theme.transitions.create(['left', 'width', 'bottom', 'height'], {\n duration: theme.transitions.duration.shortest\n }),\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n border: 'none'\n }\n }, {\n props: {\n orientation: 'horizontal'\n },\n style: {\n height: 'inherit',\n top: '50%',\n transform: 'translateY(-50%)'\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n width: 'inherit',\n left: '50%',\n transform: 'translateX(-50%)'\n }\n }, {\n props: {\n track: false\n },\n style: {\n display: 'none'\n }\n }, ...Object.keys(((_theme$vars3 = theme.vars) != null ? _theme$vars3 : theme).palette).filter(key => {\n var _theme$vars4;\n return ((_theme$vars4 = theme.vars) != null ? _theme$vars4 : theme).palette[key].main;\n }).map(color => ({\n props: {\n color,\n track: 'inverted'\n },\n style: _extends({}, theme.vars ? {\n backgroundColor: theme.vars.palette.Slider[`${color}Track`],\n borderColor: theme.vars.palette.Slider[`${color}Track`]\n } : _extends({\n backgroundColor: lighten(theme.palette[color].main, 0.62),\n borderColor: lighten(theme.palette[color].main, 0.62)\n }, theme.applyStyles('dark', {\n backgroundColor: darken(theme.palette[color].main, 0.5)\n }), theme.applyStyles('dark', {\n borderColor: darken(theme.palette[color].main, 0.5)\n })))\n }))]\n };\n});\nexport const SliderThumb = styled('span', {\n name: 'MuiSlider',\n slot: 'Thumb',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.thumb, styles[`thumbColor${capitalize(ownerState.color)}`], ownerState.size !== 'medium' && styles[`thumbSize${capitalize(ownerState.size)}`]];\n }\n})(({\n theme\n}) => {\n var _theme$vars5;\n return {\n position: 'absolute',\n width: 20,\n height: 20,\n boxSizing: 'border-box',\n borderRadius: '50%',\n outline: 0,\n backgroundColor: 'currentColor',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: theme.transitions.create(['box-shadow', 'left', 'bottom'], {\n duration: theme.transitions.duration.shortest\n }),\n '&::before': {\n position: 'absolute',\n content: '\"\"',\n borderRadius: 'inherit',\n width: '100%',\n height: '100%',\n boxShadow: (theme.vars || theme).shadows[2]\n },\n '&::after': {\n position: 'absolute',\n content: '\"\"',\n borderRadius: '50%',\n // 42px is the hit target\n width: 42,\n height: 42,\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n },\n [`&.${sliderClasses.disabled}`]: {\n '&:hover': {\n boxShadow: 'none'\n }\n },\n variants: [{\n props: {\n size: 'small'\n },\n style: {\n width: 12,\n height: 12,\n '&::before': {\n boxShadow: 'none'\n }\n }\n }, {\n props: {\n orientation: 'horizontal'\n },\n style: {\n top: '50%',\n transform: 'translate(-50%, -50%)'\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n left: '50%',\n transform: 'translate(-50%, 50%)'\n }\n }, ...Object.keys(((_theme$vars5 = theme.vars) != null ? _theme$vars5 : theme).palette).filter(key => {\n var _theme$vars6;\n return ((_theme$vars6 = theme.vars) != null ? _theme$vars6 : theme).palette[key].main;\n }).map(color => ({\n props: {\n color\n },\n style: {\n [`&:hover, &.${sliderClasses.focusVisible}`]: _extends({}, theme.vars ? {\n boxShadow: `0px 0px 0px 8px rgba(${theme.vars.palette[color].mainChannel} / 0.16)`\n } : {\n boxShadow: `0px 0px 0px 8px ${alpha(theme.palette[color].main, 0.16)}`\n }, {\n '@media (hover: none)': {\n boxShadow: 'none'\n }\n }),\n [`&.${sliderClasses.active}`]: _extends({}, theme.vars ? {\n boxShadow: `0px 0px 0px 14px rgba(${theme.vars.palette[color].mainChannel} / 0.16)`\n } : {\n boxShadow: `0px 0px 0px 14px ${alpha(theme.palette[color].main, 0.16)}`\n })\n }\n }))]\n };\n});\nexport const SliderValueLabel = styled(BaseSliderValueLabel, {\n name: 'MuiSlider',\n slot: 'ValueLabel',\n overridesResolver: (props, styles) => styles.valueLabel\n})(({\n theme\n}) => _extends({\n zIndex: 1,\n whiteSpace: 'nowrap'\n}, theme.typography.body2, {\n fontWeight: 500,\n transition: theme.transitions.create(['transform'], {\n duration: theme.transitions.duration.shortest\n }),\n position: 'absolute',\n backgroundColor: (theme.vars || theme).palette.grey[600],\n borderRadius: 2,\n color: (theme.vars || theme).palette.common.white,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '0.25rem 0.75rem',\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n transform: 'translateY(-100%) scale(0)',\n top: '-10px',\n transformOrigin: 'bottom center',\n '&::before': {\n position: 'absolute',\n content: '\"\"',\n width: 8,\n height: 8,\n transform: 'translate(-50%, 50%) rotate(45deg)',\n backgroundColor: 'inherit',\n bottom: 0,\n left: '50%'\n },\n [`&.${sliderClasses.valueLabelOpen}`]: {\n transform: 'translateY(-100%) scale(1)'\n }\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n transform: 'translateY(-50%) scale(0)',\n right: '30px',\n top: '50%',\n transformOrigin: 'right center',\n '&::before': {\n position: 'absolute',\n content: '\"\"',\n width: 8,\n height: 8,\n transform: 'translate(-50%, -50%) rotate(45deg)',\n backgroundColor: 'inherit',\n right: -8,\n top: '50%'\n },\n [`&.${sliderClasses.valueLabelOpen}`]: {\n transform: 'translateY(-50%) scale(1)'\n }\n }\n }, {\n props: {\n size: 'small'\n },\n style: {\n fontSize: theme.typography.pxToRem(12),\n padding: '0.25rem 0.5rem'\n }\n }, {\n props: {\n orientation: 'vertical',\n size: 'small'\n },\n style: {\n right: '20px'\n }\n }]\n}));\nexport const SliderMark = styled('span', {\n name: 'MuiSlider',\n slot: 'Mark',\n shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'markActive',\n overridesResolver: (props, styles) => {\n const {\n markActive\n } = props;\n return [styles.mark, markActive && styles.markActive];\n }\n})(({\n theme\n}) => ({\n position: 'absolute',\n width: 2,\n height: 2,\n borderRadius: 1,\n backgroundColor: 'currentColor',\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n top: '50%',\n transform: 'translate(-1px, -50%)'\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n left: '50%',\n transform: 'translate(-50%, 1px)'\n }\n }, {\n props: {\n markActive: true\n },\n style: {\n backgroundColor: (theme.vars || theme).palette.background.paper,\n opacity: 0.8\n }\n }]\n}));\nexport const SliderMarkLabel = styled('span', {\n name: 'MuiSlider',\n slot: 'MarkLabel',\n shouldForwardProp: prop => slotShouldForwardProp(prop) && prop !== 'markLabelActive',\n overridesResolver: (props, styles) => styles.markLabel\n})(({\n theme\n}) => _extends({}, theme.typography.body2, {\n color: (theme.vars || theme).palette.text.secondary,\n position: 'absolute',\n whiteSpace: 'nowrap',\n variants: [{\n props: {\n orientation: 'horizontal'\n },\n style: {\n top: 30,\n transform: 'translateX(-50%)',\n '@media (pointer: coarse)': {\n top: 40\n }\n }\n }, {\n props: {\n orientation: 'vertical'\n },\n style: {\n left: 36,\n transform: 'translateY(50%)',\n '@media (pointer: coarse)': {\n left: 44\n }\n }\n }, {\n props: {\n markLabelActive: true\n },\n style: {\n color: (theme.vars || theme).palette.text.primary\n }\n }]\n}));\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n dragging,\n marked,\n orientation,\n track,\n classes,\n color,\n size\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', dragging && 'dragging', marked && 'marked', orientation === 'vertical' && 'vertical', track === 'inverted' && 'trackInverted', track === false && 'trackFalse', color && `color${capitalize(color)}`, size && `size${capitalize(size)}`],\n rail: ['rail'],\n track: ['track'],\n mark: ['mark'],\n markActive: ['markActive'],\n markLabel: ['markLabel'],\n markLabelActive: ['markLabelActive'],\n valueLabel: ['valueLabel'],\n thumb: ['thumb', disabled && 'disabled', size && `thumbSize${capitalize(size)}`, color && `thumbColor${capitalize(color)}`],\n active: ['active'],\n disabled: ['disabled'],\n focusVisible: ['focusVisible']\n };\n return composeClasses(slots, getSliderUtilityClass, classes);\n};\nconst Forward = ({\n children\n}) => children;\nconst Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {\n var _ref, _slots$root, _ref2, _slots$rail, _ref3, _slots$track, _ref4, _slots$thumb, _ref5, _slots$valueLabel, _ref6, _slots$mark, _ref7, _slots$markLabel, _ref8, _slots$input, _slotProps$root, _slotProps$rail, _slotProps$track, _slotProps$thumb, _slotProps$valueLabel, _slotProps$mark, _slotProps$markLabel, _slotProps$input;\n const props = useDefaultProps({\n props: inputProps,\n name: 'MuiSlider'\n });\n const isRtl = useRtl();\n const {\n 'aria-label': ariaLabel,\n 'aria-valuetext': ariaValuetext,\n 'aria-labelledby': ariaLabelledby,\n // eslint-disable-next-line react/prop-types\n component = 'span',\n components = {},\n componentsProps = {},\n color = 'primary',\n classes: classesProp,\n className,\n disableSwap = false,\n disabled = false,\n getAriaLabel,\n getAriaValueText,\n marks: marksProp = false,\n max = 100,\n min = 0,\n orientation = 'horizontal',\n shiftStep = 10,\n size = 'medium',\n step = 1,\n scale = Identity,\n slotProps,\n slots,\n track = 'normal',\n valueLabelDisplay = 'off',\n valueLabelFormat = Identity\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n isRtl,\n max,\n min,\n classes: classesProp,\n disabled,\n disableSwap,\n orientation,\n marks: marksProp,\n color,\n size,\n step,\n shiftStep,\n scale,\n track,\n valueLabelDisplay,\n valueLabelFormat\n });\n const {\n axisProps,\n getRootProps,\n getHiddenInputProps,\n getThumbProps,\n open,\n active,\n axis,\n focusedThumbIndex,\n range,\n dragging,\n marks,\n values,\n trackOffset,\n trackLeap,\n getThumbStyle\n } = useSlider(_extends({}, ownerState, {\n rootRef: ref\n }));\n ownerState.marked = marks.length > 0 && marks.some(mark => mark.label);\n ownerState.dragging = dragging;\n ownerState.focusedThumbIndex = focusedThumbIndex;\n const classes = useUtilityClasses(ownerState);\n\n // support both `slots` and `components` for backward compatibility\n const RootSlot = (_ref = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : components.Root) != null ? _ref : SliderRoot;\n const RailSlot = (_ref2 = (_slots$rail = slots == null ? void 0 : slots.rail) != null ? _slots$rail : components.Rail) != null ? _ref2 : SliderRail;\n const TrackSlot = (_ref3 = (_slots$track = slots == null ? void 0 : slots.track) != null ? _slots$track : components.Track) != null ? _ref3 : SliderTrack;\n const ThumbSlot = (_ref4 = (_slots$thumb = slots == null ? void 0 : slots.thumb) != null ? _slots$thumb : components.Thumb) != null ? _ref4 : SliderThumb;\n const ValueLabelSlot = (_ref5 = (_slots$valueLabel = slots == null ? void 0 : slots.valueLabel) != null ? _slots$valueLabel : components.ValueLabel) != null ? _ref5 : SliderValueLabel;\n const MarkSlot = (_ref6 = (_slots$mark = slots == null ? void 0 : slots.mark) != null ? _slots$mark : components.Mark) != null ? _ref6 : SliderMark;\n const MarkLabelSlot = (_ref7 = (_slots$markLabel = slots == null ? void 0 : slots.markLabel) != null ? _slots$markLabel : components.MarkLabel) != null ? _ref7 : SliderMarkLabel;\n const InputSlot = (_ref8 = (_slots$input = slots == null ? void 0 : slots.input) != null ? _slots$input : components.Input) != null ? _ref8 : 'input';\n const rootSlotProps = (_slotProps$root = slotProps == null ? void 0 : slotProps.root) != null ? _slotProps$root : componentsProps.root;\n const railSlotProps = (_slotProps$rail = slotProps == null ? void 0 : slotProps.rail) != null ? _slotProps$rail : componentsProps.rail;\n const trackSlotProps = (_slotProps$track = slotProps == null ? void 0 : slotProps.track) != null ? _slotProps$track : componentsProps.track;\n const thumbSlotProps = (_slotProps$thumb = slotProps == null ? void 0 : slotProps.thumb) != null ? _slotProps$thumb : componentsProps.thumb;\n const valueLabelSlotProps = (_slotProps$valueLabel = slotProps == null ? void 0 : slotProps.valueLabel) != null ? _slotProps$valueLabel : componentsProps.valueLabel;\n const markSlotProps = (_slotProps$mark = slotProps == null ? void 0 : slotProps.mark) != null ? _slotProps$mark : componentsProps.mark;\n const markLabelSlotProps = (_slotProps$markLabel = slotProps == null ? void 0 : slotProps.markLabel) != null ? _slotProps$markLabel : componentsProps.markLabel;\n const inputSlotProps = (_slotProps$input = slotProps == null ? void 0 : slotProps.input) != null ? _slotProps$input : componentsProps.input;\n const rootProps = useSlotProps({\n elementType: RootSlot,\n getSlotProps: getRootProps,\n externalSlotProps: rootSlotProps,\n externalForwardedProps: other,\n additionalProps: _extends({}, shouldSpreadAdditionalProps(RootSlot) && {\n as: component\n }),\n ownerState: _extends({}, ownerState, rootSlotProps == null ? void 0 : rootSlotProps.ownerState),\n className: [classes.root, className]\n });\n const railProps = useSlotProps({\n elementType: RailSlot,\n externalSlotProps: railSlotProps,\n ownerState,\n className: classes.rail\n });\n const trackProps = useSlotProps({\n elementType: TrackSlot,\n externalSlotProps: trackSlotProps,\n additionalProps: {\n style: _extends({}, axisProps[axis].offset(trackOffset), axisProps[axis].leap(trackLeap))\n },\n ownerState: _extends({}, ownerState, trackSlotProps == null ? void 0 : trackSlotProps.ownerState),\n className: classes.track\n });\n const thumbProps = useSlotProps({\n elementType: ThumbSlot,\n getSlotProps: getThumbProps,\n externalSlotProps: thumbSlotProps,\n ownerState: _extends({}, ownerState, thumbSlotProps == null ? void 0 : thumbSlotProps.ownerState),\n className: classes.thumb\n });\n const valueLabelProps = useSlotProps({\n elementType: ValueLabelSlot,\n externalSlotProps: valueLabelSlotProps,\n ownerState: _extends({}, ownerState, valueLabelSlotProps == null ? void 0 : valueLabelSlotProps.ownerState),\n className: classes.valueLabel\n });\n const markProps = useSlotProps({\n elementType: MarkSlot,\n externalSlotProps: markSlotProps,\n ownerState,\n className: classes.mark\n });\n const markLabelProps = useSlotProps({\n elementType: MarkLabelSlot,\n externalSlotProps: markLabelSlotProps,\n ownerState,\n className: classes.markLabel\n });\n const inputSliderProps = useSlotProps({\n elementType: InputSlot,\n getSlotProps: getHiddenInputProps,\n externalSlotProps: inputSlotProps,\n ownerState\n });\n return /*#__PURE__*/_jsxs(RootSlot, _extends({}, rootProps, {\n children: [/*#__PURE__*/_jsx(RailSlot, _extends({}, railProps)), /*#__PURE__*/_jsx(TrackSlot, _extends({}, trackProps)), marks.filter(mark => mark.value >= min && mark.value <= max).map((mark, index) => {\n const percent = valueToPercent(mark.value, min, max);\n const style = axisProps[axis].offset(percent);\n let markActive;\n if (track === false) {\n markActive = values.indexOf(mark.value) !== -1;\n } else {\n markActive = track === 'normal' && (range ? mark.value >= values[0] && mark.value <= values[values.length - 1] : mark.value <= values[0]) || track === 'inverted' && (range ? mark.value <= values[0] || mark.value >= values[values.length - 1] : mark.value >= values[0]);\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(MarkSlot, _extends({\n \"data-index\": index\n }, markProps, !isHostComponent(MarkSlot) && {\n markActive\n }, {\n style: _extends({}, style, markProps.style),\n className: clsx(markProps.className, markActive && classes.markActive)\n })), mark.label != null ? /*#__PURE__*/_jsx(MarkLabelSlot, _extends({\n \"aria-hidden\": true,\n \"data-index\": index\n }, markLabelProps, !isHostComponent(MarkLabelSlot) && {\n markLabelActive: markActive\n }, {\n style: _extends({}, style, markLabelProps.style),\n className: clsx(classes.markLabel, markLabelProps.className, markActive && classes.markLabelActive),\n children: mark.label\n })) : null]\n }, index);\n }), values.map((value, index) => {\n const percent = valueToPercent(value, min, max);\n const style = axisProps[axis].offset(percent);\n const ValueLabelComponent = valueLabelDisplay === 'off' ? Forward : ValueLabelSlot;\n return (\n /*#__PURE__*/\n /* TODO v6: Change component structure. It will help in avoiding the complicated React.cloneElement API added in SliderValueLabel component. Should be: Thumb -> Input, ValueLabel. Follow Joy UI's Slider structure. */\n _jsx(ValueLabelComponent, _extends({}, !isHostComponent(ValueLabelComponent) && {\n valueLabelFormat,\n valueLabelDisplay,\n value: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat,\n index,\n open: open === index || active === index || valueLabelDisplay === 'on',\n disabled\n }, valueLabelProps, {\n children: /*#__PURE__*/_jsx(ThumbSlot, _extends({\n \"data-index\": index\n }, thumbProps, {\n className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),\n style: _extends({}, style, getThumbStyle(index), thumbProps.style),\n children: /*#__PURE__*/_jsx(InputSlot, _extends({\n \"data-index\": index,\n \"aria-label\": getAriaLabel ? getAriaLabel(index) : ariaLabel,\n \"aria-valuenow\": scale(value),\n \"aria-labelledby\": ariaLabelledby,\n \"aria-valuetext\": getAriaValueText ? getAriaValueText(scale(value), index) : ariaValuetext,\n value: values[index]\n }, inputSliderProps))\n }))\n }), index)\n );\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Slider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * The label of the slider.\n */\n 'aria-label': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n if (range && props['aria-label'] != null) {\n return new Error('MUI: You need to use the `getAriaLabel` prop instead of `aria-label` when using a range slider.');\n }\n return null;\n }),\n /**\n * The id of the element containing a label for the slider.\n */\n 'aria-labelledby': PropTypes.string,\n /**\n * A string value that provides a user-friendly name for the current value of the slider.\n */\n 'aria-valuetext': chainPropTypes(PropTypes.string, props => {\n const range = Array.isArray(props.value || props.defaultValue);\n if (range && props['aria-valuetext'] != null) {\n return new Error('MUI: You need to use the `getAriaValueText` prop instead of `aria-valuetext` when using a range slider.');\n }\n return null;\n }),\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#custom-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The components used for each slot inside.\n *\n * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).\n *\n * @default {}\n */\n components: PropTypes.shape({\n Input: PropTypes.elementType,\n Mark: PropTypes.elementType,\n MarkLabel: PropTypes.elementType,\n Rail: PropTypes.elementType,\n Root: PropTypes.elementType,\n Thumb: PropTypes.elementType,\n Track: PropTypes.elementType,\n ValueLabel: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n mark: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n markLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n rail: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n thumb: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n track: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n valueLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n children: PropTypes.element,\n className: PropTypes.string,\n open: PropTypes.bool,\n style: PropTypes.object,\n value: PropTypes.number,\n valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on'])\n })])\n }),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the active thumb doesn't swap when moving pointer over a thumb while dragging another thumb.\n * @default false\n */\n disableSwap: PropTypes.bool,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the thumb labels of the slider.\n * This is important for screen reader users.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaLabel: PropTypes.func,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current value of the slider.\n * This is important for screen reader users.\n * @param {number} value The thumb label's value to format.\n * @param {number} index The thumb label's index to format.\n * @returns {string}\n */\n getAriaValueText: PropTypes.func,\n /**\n * Marks indicate predetermined values to which the user can move the slider.\n * If `true` the marks are spaced according the value of the `step` prop.\n * If an array, it should contain objects with `value` and an optional `label` keys.\n * @default false\n */\n marks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n label: PropTypes.node,\n value: PropTypes.number.isRequired\n })), PropTypes.bool]),\n /**\n * The maximum allowed value of the slider.\n * Should not be equal to min.\n * @default 100\n */\n max: PropTypes.number,\n /**\n * The minimum allowed value of the slider.\n * Should not be equal to max.\n * @default 0\n */\n min: PropTypes.number,\n /**\n * Name attribute of the hidden `input` element.\n */\n name: PropTypes.string,\n /**\n * Callback function that is fired when the slider's value changed.\n *\n * @param {Event} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (any).\n * **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n * @param {number} activeThumb Index of the currently moved thumb.\n */\n onChange: PropTypes.func,\n /**\n * Callback function that is fired when the `mouseup` is triggered.\n *\n * @param {React.SyntheticEvent | Event} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {number | number[]} value The new value.\n */\n onChangeCommitted: PropTypes.func,\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n /**\n * A transformation function, to change the scale of the slider.\n * @param {any} x\n * @returns {any}\n * @default function Identity(x) {\n * return x;\n * }\n */\n scale: PropTypes.func,\n /**\n * The granularity with which the slider can step through values when using Page Up/Page Down or Shift + Arrow Up/Arrow Down.\n * @default 10\n */\n shiftStep: PropTypes.number,\n /**\n * The size of the slider.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['small', 'medium']), PropTypes.string]),\n /**\n * The props used for each slot inside the Slider.\n * @default {}\n */\n slotProps: PropTypes.shape({\n input: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n mark: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n markLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n rail: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n root: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n thumb: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n track: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n valueLabel: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n children: PropTypes.element,\n className: PropTypes.string,\n open: PropTypes.bool,\n style: PropTypes.object,\n value: PropTypes.number,\n valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on'])\n })])\n }),\n /**\n * The components used for each slot inside the Slider.\n * Either a string to use a HTML element or a component.\n * @default {}\n */\n slots: PropTypes.shape({\n input: PropTypes.elementType,\n mark: PropTypes.elementType,\n markLabel: PropTypes.elementType,\n rail: PropTypes.elementType,\n root: PropTypes.elementType,\n thumb: PropTypes.elementType,\n track: PropTypes.elementType,\n valueLabel: PropTypes.elementType\n }),\n /**\n * The granularity with which the slider can step through values. (A \"discrete\" slider.)\n * The `min` prop serves as the origin for the valid values.\n * We recommend (max - min) to be evenly divisible by the step.\n *\n * When step is `null`, the thumb can only be slid onto marks provided with the `marks` prop.\n * @default 1\n */\n step: PropTypes.number,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Tab index attribute of the hidden `input` element.\n */\n tabIndex: PropTypes.number,\n /**\n * The track presentation:\n *\n * - `normal` the track will render a bar representing the slider value.\n * - `inverted` the track will render a bar representing the remaining slider value.\n * - `false` the track will render without a bar.\n * @default 'normal'\n */\n track: PropTypes.oneOf(['inverted', 'normal', false]),\n /**\n * The value of the slider.\n * For ranged sliders, provide an array with two values.\n */\n value: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number), PropTypes.number]),\n /**\n * Controls when the value label is displayed:\n *\n * - `auto` the value label will display when the thumb is hovered or focused.\n * - `on` will display persistently.\n * - `off` will never display.\n * @default 'off'\n */\n valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on']),\n /**\n * The format function the value label's value.\n *\n * When a function is provided, it should have the following signature:\n *\n * - {number} value The value label's value to format\n * - {number} index The value label's index to format\n * @param {any} x\n * @returns {any}\n * @default function Identity(x) {\n * return x;\n * }\n */\n valueLabelFormat: PropTypes.oneOfType([PropTypes.func, PropTypes.string])\n} : void 0;\nexport default Slider;","import Slider from \"@mui/material/Slider\"\nimport { isNumber } from \"lodash-es\"\nimport { observer } from \"mobx-react-lite\"\nimport { Typography } from \"@mui/material\"\n\ntype VelocitySliderProps = {\n min: number\n max: number\n velocity: number\n onVelocityChange: (newVelocity: number) => void\n disabled?: boolean\n valueLabelFormat?: (value: number) => string\n}\n\n/** A slider for controlling the movement velocity of a robot */\nexport const VelocitySlider = observer((props: VelocitySliderProps) => {\n const valueLabelFormat = props.valueLabelFormat || ((value: number) => `${value}`)\n\n function onSliderChange(_event: Event, newVelocity: number | number[]) {\n if (newVelocity === props.velocity || !isNumber(newVelocity)) return\n\n props.onVelocityChange(newVelocity)\n }\n\n return (\n <>\n <Typography\n sx={{\n textAlign: \"center\",\n fontSize: \"15px\",\n }}\n >\n {valueLabelFormat(props.velocity)}\n </Typography>\n <Slider\n value={props.velocity}\n onChange={onSliderChange}\n min={props.min}\n max={props.max}\n aria-labelledby=\"input-slider\"\n disabled={props.disabled}\n sx={{\n \"& .MuiSlider-valueLabelOpen\": {\n zIndex: 100,\n backgroundColor: \"transparent\",\n top: \"0px\",\n },\n }}\n />\n </>\n )\n})\n","import { Stack, Divider, Typography } from \"@mui/material\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport type { JoggingStore } from \"./JoggingStore\"\nimport { VelocitySlider } from \"../VelocitySlider\"\nimport { useTranslation } from \"react-i18next\"\n\nexport const JoggingVelocitySlider = observer(\n ({ store }: { store: JoggingStore }) => {\n const { t } = useTranslation()\n\n const state = useLocalObservable(() => ({\n get valueLabelFormat() {\n if (store.currentMotionType === \"translate\") {\n return (value: number) =>\n `v=${t(\"Jogging.Cartesian.Translation.velocityMmPerSec.lb\", { amount: value })}`\n } else {\n return (value: number) =>\n `v=${t(\"Jogging.Cartesian.Rotation.velocityDegPerSec.lb\", { amount: value })}`\n }\n },\n }))\n\n return (\n <Stack>\n <Divider />\n <Stack\n sx={{\n margin: \"0px 20px\",\n marginTop: \"0.8rem\",\n marginBottom: \"0.8rem\",\n }}\n >\n <Stack sx={{ width: \"380px\", maxWidth: \"90%\", margin: \"auto\" }}>\n <Typography\n sx={{\n fontWeight: \"bold\",\n fontSize: \"15px\",\n }}\n >\n {t(\"Jogging.Velocity.lb\")}\n </Typography>\n <VelocitySlider\n velocity={store.velocityInCurrentUnits}\n min={store.minVelocityInCurrentUnits}\n max={store.maxVelocityInCurrentUnits}\n onVelocityChange={store.setVelocityFromSlider}\n disabled={store.isLocked}\n valueLabelFormat={state.valueLabelFormat}\n />\n </Stack>\n </Stack>\n <Divider />\n </Stack>\n )\n },\n)\n","import { observer } from \"mobx-react-lite\"\nimport { Stack, Typography } from \"@mui/material\"\nimport { useRef } from \"react\"\nimport { poseToWandelscriptString } from \"@wandelbots/wandelbots-js\"\nimport { useAnimationFrame } from \"../utils/hooks\"\nimport { JoggingStore } from \"./JoggingStore\"\n\nexport const JoggingCartesianValues = observer(({ store }: { store: JoggingStore }) => {\n const poseStringRef = useRef<HTMLPreElement>(null)\n\n function getCurrentPoseString() {\n const tcpPose = store.jogger.motionStream.rapidlyChangingMotionState.tcp_pose\n if (!tcpPose) return \"\"\n return poseToWandelscriptString(tcpPose)\n }\n\n useAnimationFrame(() => {\n if (!poseStringRef.current) {\n return\n }\n\n poseStringRef.current.textContent = getCurrentPoseString()\n })\n\n return (\n <Stack alignItems=\"center\" marginTop=\"0.8rem\">\n <Typography\n sx={{\n fontSize: \"12px\",\n marginTop: \"0.8rem\",\n }}\n >\n {store.selectedTcpId} - {store.selectedCoordSystem?.name}\n </Typography>\n <Typography\n component=\"pre\"\n ref={poseStringRef}\n sx={{\n fontSize: \"14px\",\n opacity: 0.6,\n }}\n ></Typography>\n </Stack>\n )\n})\n","import { Typography } from \"@mui/material\"\nimport { useTranslation } from \"react-i18next\"\nimport { useState } from \"react\"\nimport { isEqual } from \"lodash-es\"\nimport { MotionStreamConnection } from \"@wandelbots/wandelbots-js\"\nimport { useAnimationFrame } from \"../utils/hooks\"\nimport { JoggingStore } from \"./JoggingStore\"\n\n/**\n * Monitors the active robot motion state and displays a message if\n * any joint limits are reached.\n */\nexport const JoggingJointLimitDetector = ({ store }: { store: JoggingStore }) => {\n const { t } = useTranslation()\n\n const [jointLimitsReached, setJointLimitsReached] = useState(\n store.jogger.motionStream.rapidlyChangingMotionState.state.joint_limit_reached\n .limit_reached,\n )\n\n useAnimationFrame(() => {\n const newLimitsReached =\n store.jogger.motionStream.rapidlyChangingMotionState.state.joint_limit_reached\n .limit_reached\n\n if (!isEqual(jointLimitsReached, newLimitsReached)) {\n setJointLimitsReached(newLimitsReached)\n }\n })\n\n const jointLimitReachedIndices: number[] = []\n jointLimitsReached.forEach((limitReached, index) => {\n if (limitReached) jointLimitReachedIndices.push(index)\n })\n\n if (!jointLimitReachedIndices.length) return null\n\n return (\n <Typography\n color=\"error\"\n sx={{\n padding: \"1rem\",\n textAlign: \"center\",\n }}\n >\n {t(\"Jogging.JointLimitsReached.lb\", {\n jointNumbers: jointLimitReachedIndices.map((i) => i + 1).join(\", \"),\n })}\n </Typography>\n )\n}\n","import {\n ToggleButtonGroup,\n ToggleButton,\n Stack,\n Typography,\n} from \"@mui/material\"\nimport { observer } from \"mobx-react-lite\"\nimport { JoggingCartesianAxisControl } from \"./JoggingCartesianAxisControl\"\nimport { radiansToDegrees } from \"@wandelbots/wandelbots-js\"\nimport { useTranslation } from \"react-i18next\"\nimport RotationIcon from \"../../icons/rotation.svg\"\nimport XAxisIcon from \"../../icons/axis-x.svg\"\nimport YAxisIcon from \"../../icons/axis-y.svg\"\nimport ZAxisIcon from \"../../icons/axis-z.svg\"\nimport type { JoggingStore, DiscreteIncrementOption } from \"./JoggingStore\"\nimport { JoggingOptions } from \"./JoggingOptions\"\nimport { JoggingVelocitySlider } from \"./JoggingVelocitySlider\"\nimport { useReaction } from \"../utils/hooks\"\nimport { JoggingCartesianValues } from \"./JoggingCartesianValues\"\nimport { JoggingJointLimitDetector } from \"./JoggingJointLimitDetector\"\n\ntype JoggingCartesianOpts = {\n axis: \"x\" | \"y\" | \"z\"\n motionType: \"translate\" | \"rotate\"\n direction: \"-\" | \"+\"\n}\n\nexport const JoggingCartesianTab = observer(\n ({ store }: { store: JoggingStore }) => {\n const { t } = useTranslation()\n\n function onMotionTypeChange(\n _event: React.MouseEvent<HTMLElement>,\n newMotionType: string,\n ) {\n if (newMotionType === \"translate\" || newMotionType === \"rotate\")\n store.setSelectedCartesianMotionType(newMotionType)\n }\n\n useReaction(\n () => [store.selectedCoordSystemId, store.selectedTcpId],\n () => {\n store.jogger.motionStream.motionStateSocket.changeUrl(\n store.jogger.nova.makeWebsocketURL(`/motion-groups/${store.jogger.motionGroupId}/state-stream?tcp=${store.selectedTcpId}&response_coordinate_system=${store.selectedCoordSystemId}`)\n )\n },\n { fireImmediately: true } as any,\n )\n\n async function runIncrementalCartesianJog(\n opts: JoggingCartesianOpts,\n increment: DiscreteIncrementOption,\n ) {\n const tcpPose = store.jogger.motionStream.rapidlyChangingMotionState.tcp_pose\n const jointPosition =\n store.jogger.motionStream.rapidlyChangingMotionState.state.joint_position\n if (!tcpPose) return\n\n // await robotPad.withMotionLock(async () => {\n // await jogger.runIncrementalCartesianMotion({\n // currentTcpPose: tcpPose,\n // currentJoints: jointPosition,\n // coordSystemId: store.selectedCoordSystemId,\n // velocityInRelevantUnits: store.velocityInCurrentUnits,\n // axis: opts.axis,\n // direction: opts.direction,\n // motion:\n // store.selectedCartesianMotionType === \"translate\"\n // ? {\n // type: \"translate\",\n // distanceMm: increment.mm,\n // }\n // : {\n // type: \"rotate\",\n // distanceRads: degreesToRadians(increment.degrees),\n // },\n // })\n // })\n }\n\n async function startCartesianJogging(opts: JoggingCartesianOpts) {\n if (store.isLocked) return\n\n if (store.selectedDiscreteIncrement) {\n return runIncrementalCartesianJog(opts, store.selectedDiscreteIncrement)\n }\n\n if (opts.motionType === \"translate\") {\n await store.jogger.startTCPTranslation({\n axis: opts.axis,\n direction: opts.direction,\n velocityMmPerSec: store.translationVelocityMmPerSec,\n })\n } else {\n await store.jogger.startTCPRotation({\n axis: opts.axis,\n direction: opts.direction,\n velocityRadsPerSec: store.rotationVelocityRadsPerSec,\n })\n\n }\n }\n\n async function stopJogging() {\n if (store.isLocked) return\n\n if (store.selectedDiscreteIncrement) {\n return\n }\n\n await store.jogger.stop()\n }\n\n const axisList = [\n {\n id: \"x\",\n color: \"#F14D42\",\n icon: <XAxisIcon />,\n },\n {\n id: \"y\",\n color: \"#42A705\",\n icon: <YAxisIcon />,\n },\n {\n id: \"z\",\n color: \"#0075FF\",\n icon: <ZAxisIcon />,\n },\n ] as const\n\n function formatMM(value: number) {\n return t(\"General.mm.variable\", { amount: value.toFixed(1) })\n }\n\n function formatDegrees(value: number) {\n return t(\"General.degree.variable\", {\n amount: radiansToDegrees(value).toFixed(1),\n })\n }\n\n return (\n <Stack>\n {/* Jogging options */}\n <JoggingOptions store={store} />\n\n {/* Show Wandelscript string for the current coords */}\n <JoggingCartesianValues store={store} />\n\n {/* Translate or rotate toggle */}\n <Stack alignItems=\"center\" marginTop=\"1rem\">\n <ToggleButtonGroup\n value={store.selectedCartesianMotionType}\n onChange={onMotionTypeChange}\n exclusive\n aria-label={t(\"Jogging.Cartesian.MotionType.lb\")}\n sx={{\n \"& > button\": {\n borderRadius: \"8px\",\n textTransform: \"none\",\n padding: \"4px 30px\",\n },\n }}\n >\n <ToggleButton value=\"translate\">\n {t(\"Jogging.Cartesian.Translation.bt\")}\n </ToggleButton>\n <ToggleButton value=\"rotate\">\n {t(\"Jogging.Cartesian.Rotation.bt\")}\n </ToggleButton>\n </ToggleButtonGroup>\n </Stack>\n\n <Stack width=\"80%\" maxWidth=\"296px\" margin=\"auto\">\n {/* Cartesian translate jogging */}\n {store.selectedCartesianMotionType === \"translate\" &&\n axisList.map((axis) => (\n <JoggingCartesianAxisControl\n key={axis.id}\n color={axis.color}\n disabled={store.isLocked}\n sx={{\n marginTop: \"12px\",\n }}\n label={\n <>\n {axis.icon}\n <Typography\n sx={{\n fontSize: \"24px\",\n color: \"white\",\n }}\n >\n {axis.id.toUpperCase()}\n </Typography>\n </>\n }\n getDisplayedValue={() =>\n formatMM(\n store.jogger.motionStream.rapidlyChangingMotionState.tcp_pose?.position[\n axis.id\n ] || 0,\n )\n }\n startJogging={(direction: \"-\" | \"+\") =>\n startCartesianJogging({\n axis: axis.id,\n motionType: \"translate\",\n direction,\n })\n }\n stopJogging={stopJogging}\n />\n ))}\n\n {/* Cartesian rotate jogging */}\n {store.selectedCartesianMotionType === \"rotate\" &&\n axisList.map((axis) => (\n <JoggingCartesianAxisControl\n key={axis.id}\n color={axis.color}\n disabled={store.isLocked}\n sx={{\n marginTop: \"12px\",\n }}\n label={\n <>\n <RotationIcon />\n <Typography\n sx={{\n fontSize: \"24px\",\n color: \"white\",\n }}\n >\n {axis.id.toUpperCase()}\n </Typography>\n </>\n }\n getDisplayedValue={() =>\n formatDegrees(\n store.jogger.motionStream.rapidlyChangingMotionState.tcp_pose\n ?.orientation?.[axis.id] || 0,\n )\n }\n startJogging={(direction: \"-\" | \"+\") =>\n startCartesianJogging({\n axis: axis.id,\n motionType: \"rotate\",\n direction,\n })\n }\n stopJogging={stopJogging}\n />\n ))}\n </Stack>\n\n {/* Velocity slider */}\n <JoggingVelocitySlider store={store} />\n\n {/* Show message if joint limits reached */}\n <JoggingJointLimitDetector store={store} />\n </Stack>\n )\n },\n)\n","import { observer } from \"mobx-react-lite\"\nimport { Stack, Typography } from \"@mui/material\"\nimport { useRef } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport { JoggingStore } from \"./JoggingStore\"\nimport { useAnimationFrame } from \"../utils/hooks\"\n\nexport const JoggingJointValues = observer(({ store }: { store: JoggingStore }) => {\n const valueHolderRef = useRef<HTMLPreElement>(null)\n const { t } = useTranslation()\n\n function getCurrentValueString() {\n const { joints } =\n store.jogger.motionStream.rapidlyChangingMotionState.state.joint_position\n return `{${joints.map((j) => parseFloat(j.toFixed(4))).join(\", \")}}`\n }\n\n useAnimationFrame(() => {\n if (!valueHolderRef.current) return\n valueHolderRef.current.textContent = getCurrentValueString()\n })\n\n return (\n <Stack alignItems=\"center\" marginTop=\"0.8rem\">\n <Typography\n sx={{\n fontSize: \"12px\",\n marginTop: \"0.8rem\",\n }}\n >\n {t(\"Jogging.Joints.JointValues.lb\")}\n </Typography>\n <Typography\n component=\"pre\"\n ref={valueHolderRef}\n sx={{\n fontSize: \"14px\",\n opacity: 0.6,\n }}\n >\n {getCurrentValueString()}\n </Typography>\n </Stack>\n )\n})\n","import { Stack, Typography } from \"@mui/material\"\nimport { observer } from \"mobx-react-lite\"\nimport { radiansToDegrees } from \"@wandelbots/wandelbots-js\"\nimport type { JoggingStore } from \"./JoggingStore\"\nimport { JoggingVelocitySlider } from \"./JoggingVelocitySlider\"\nimport { JoggingJointRotationControl } from \"./JoggingJointRotationControl\"\nimport { JoggingJointValues } from \"./JoggingJointValues\"\n\nexport const JoggingJointTab = observer(\n ({ store }: { store: JoggingStore; }) => {\n async function startJointJogging(opts: {\n joint: number\n direction: \"-\" | \"+\"\n }) {\n await store.jogger.startJointRotation({\n joint: opts.joint,\n direction: opts.direction,\n velocityRadsPerSec: store.rotationVelocityRadsPerSec,\n })\n }\n\n async function stopJointJogging() {\n await store.jogger.stop()\n }\n \n return (\n <Stack>\n <JoggingJointValues store={store} />\n <Stack>\n {store.jogger.motionStream.joints.map((joint) => {\n const jointLimits =\n store.motionGroupSpec.mechanical_joint_limits?.[\n joint.index\n ]\n const lowerLimitDegs =\n jointLimits?.lower_limit !== undefined\n ? radiansToDegrees(jointLimits.lower_limit)\n : undefined\n const upperLimitDegs =\n jointLimits?.upper_limit !== undefined\n ? radiansToDegrees(jointLimits.upper_limit)\n : undefined\n\n return (\n <Stack\n direction=\"row\"\n alignItems=\"center\"\n gap={2}\n key={`joint-${joint.index}`}\n marginTop=\"0.8rem\"\n >\n <Typography\n sx={{\n flexGrow: 1,\n textAlign: \"right\",\n }}\n >{`J${joint.index + 1}`}</Typography>\n <JoggingJointRotationControl\n key={joint.index}\n disabled={store.isLocked}\n lowerLimitDegs={lowerLimitDegs}\n upperLimitDegs={upperLimitDegs}\n getValueDegs={() => {\n const value =\n store.jogger.motionStream.rapidlyChangingMotionState.state\n .joint_position.joints[joint.index]\n return value !== undefined\n ? radiansToDegrees(value)\n : undefined\n }}\n startJogging={(direction: \"-\" | \"+\") =>\n startJointJogging({\n joint: joint.index,\n direction,\n })\n }\n stopJogging={stopJointJogging}\n />\n {/* Just to balance out the right side */}\n <Typography\n sx={{\n flexGrow: 1,\n }}\n />\n </Stack>\n )\n })}\n </Stack>\n <JoggingVelocitySlider store={store} />\n </Stack>\n )\n },\n)\n","import { keyBy } from \"lodash-es\"\nimport { autorun, makeAutoObservable, type IReactionDisposer } from \"mobx\"\nimport type { CoordinateSystem, JoggerConnection, MotionGroupSpecification, RobotTcp } from \"@wandelbots/wandelbots-js\"\nimport { tryParseJson } from \"@wandelbots/wandelbots-js\"\n\nconst discreteIncrementOptions = [\n { id: \"0.1\", mm: 0.1, degrees: 0.05 },\n { id: \"1\", mm: 1, degrees: 0.5 },\n { id: \"5\", mm: 5, degrees: 2.5 },\n { id: \"10\", mm: 10, degrees: 5 },\n]\n\nconst incrementOptions = [\n { id: \"continuous\" },\n ...discreteIncrementOptions,\n] as const\n\nexport type DiscreteIncrementOption = (typeof discreteIncrementOptions)[number]\nexport type IncrementOption = (typeof incrementOptions)[number]\nexport type IncrementOptionId = IncrementOption[\"id\"]\n\nexport class JoggingStore {\n selectedTabId: \"cartesian\" | \"joint\" | \"debug\" = \"cartesian\"\n\n // TODO\n isLocked: boolean = false\n\n /**\n * Id of selected coordinate system from among those defined on the API side\n */\n selectedCoordSystemId: string = \"world\"\n\n /** Id of selected tool center point from among the options available on the robot */\n selectedTcpId: string = \"\"\n\n /**\n * Id of selected increment amount for jogging. Options are defined by robot pad.\n * When non-continuous, jogging moves the robot by a fixed number of mm or degrees\n * each time the button is pressed, for extra precision\n */\n selectedIncrementId: IncrementOptionId = \"continuous\"\n\n /**\n * When on the cartesian tab, jogging can be either translating or rotating\n * around the TCP.\n */\n selectedCartesianMotionType: \"translate\" | \"rotate\" = \"translate\"\n\n /** True when the API is busy doing a planned increment jog motion */\n incrementJoggingInProgress = false\n\n /** How fast the robot goes when doing cartesian translate jogging in mm/s */\n translationVelocityMmPerSec: number = 10\n /** How fast the robot goes when doing cartesian or joint rotation jogging in °/s */\n rotationVelocityDegPerSec: number = 1\n\n /** Minimum translation velocity user can choose on the velocity slider in °/s */\n minTranslationVelocityMmPerSec: number = 5\n /** Maximum translation velocity user can choose on the velocity slider in °/s */\n maxTranslationVelocityMmPerSec: number = 250\n\n /** Minimum rotation velocity user can choose on the velocity slider in °/s */\n minRotationVelocityDegPerSec: number = 1\n /** Maximum rotation velocity user can choose on the velocity slider in °/s */\n maxRotationVelocityDegPerSec: number = 60\n\n disposers: IReactionDisposer[] = []\n\n /**\n * Load a jogging store with the relevant data it needs\n * from the backend\n */\n static async loadFor(jogger: JoggerConnection) {\n const { nova } = jogger\n\n // Find out what TCPs this motion group has (we need it for jogging)\n const [motionGroupSpec, { coordinatesystems }, { tcps }] = await Promise.all([\n nova.api.motionGroupInfos.getMotionGroupSpecification(jogger.motionGroupId),\n\n // Fetch coord systems so user can select between them\n nova.api.coordinateSystems.listCoordinateSystems(\"ROTATION_VECTOR\"),\n\n // Same for TCPs\n nova.api.motionGroupInfos.listTcps(\n jogger.motionGroupId,\n \"ROTATION_VECTOR\",\n ),\n ])\n\n return new JoggingStore(jogger, motionGroupSpec, coordinatesystems || [], tcps || [])\n }\n\n constructor(\n readonly jogger: JoggerConnection,\n readonly motionGroupSpec: MotionGroupSpecification,\n readonly coordSystems: CoordinateSystem[],\n readonly tcps: RobotTcp[],\n ) {\n // TODO workaround for default coord system on backend having a canonical id\n // of empty string. Can remove when fixed on API side\n for (const cs of coordSystems) {\n if (cs.coordinate_system === \"\") {\n cs.coordinate_system = \"world\"\n break\n }\n }\n this.selectedCoordSystemId = coordSystems[0]?.coordinate_system || \"world\"\n this.selectedTcpId = tcps[0]?.id || \"\"\n\n makeAutoObservable(this, {}, { autoBind: true })\n\n // Load user settings from local storage if available\n this.loadFromLocalStorage()\n\n // Automatically save user settings to local storage when save changes\n this.disposers.push(autorun(() => this.saveToLocalStorage()))\n ;(window as any).joggingStore = this\n }\n\n dispose() {\n for (const dispose of this.disposers) {\n dispose()\n }\n this.jogger.dispose()\n }\n\n loadFromLocalStorage() {\n const save = tryParseJson(localStorage.getItem(\"joggingToolStore\"))\n if (!save) return\n\n if (this.tabsById[save.selectedTabId]) {\n this.selectedTabId = save.selectedTabId\n }\n\n if (this.coordSystemsById[save.selectedCoordSystemId]) {\n this.selectedCoordSystemId = save.selectedCoordSystemId\n }\n\n if (this.tcpsById[save.selectedTcpId]) {\n this.selectedTcpId = save.selectedTcpId\n }\n\n if (this.incrementOptionsById[save.selectedIncrementId]) {\n this.selectedIncrementId = save.selectedIncrementId\n }\n\n if ([\"translate\", \"rotate\"].includes(save.selectedCartesianMotionType)) {\n this.selectedCartesianMotionType = save.selectedCartesianMotionType\n }\n }\n\n saveToLocalStorage() {\n localStorage.setItem(\n \"joggingToolStore\",\n JSON.stringify(this.localStorageSave),\n )\n }\n\n get localStorageSave() {\n return {\n selectedTabId: this.selectedTabId,\n selectedCoordSystemId: this.selectedCoordSystemId,\n selectedTcpId: this.selectedTcpId,\n selectedIncrementId: this.selectedIncrementId,\n selectedCartesianMotionType: this.selectedCartesianMotionType,\n }\n }\n\n get tabs() {\n return [\n {\n id: \"cartesian\",\n label: \"Cartesian\",\n },\n {\n id: \"joint\",\n label: \"Joint\",\n },\n ] as const\n }\n\n get incrementOptions() {\n return incrementOptions\n }\n\n get discreteIncrementOptions() {\n return discreteIncrementOptions\n }\n\n get incrementOptionsById() {\n return keyBy(this.incrementOptions, (o) => o.id)\n }\n\n get tabsById() {\n return keyBy(this.tabs, (t) => t.id)\n }\n\n get currentTab() {\n return this.tabsById[this.selectedTabId] || this.tabs[0]!\n }\n\n get tabIndex() {\n return this.tabs.indexOf(this.currentTab)\n }\n\n get coordSystemsById() {\n return keyBy(this.coordSystems, (cs) => cs.coordinate_system)\n }\n\n get selectedCoordSystem() {\n return this.coordSystemsById[this.selectedCoordSystemId]\n }\n\n get tcpsById() {\n return keyBy(this.tcps, (tcp) => tcp.id)\n }\n\n get selectedDiscreteIncrement() {\n return discreteIncrementOptions.find(\n (d) => d.id === this.selectedIncrementId,\n )\n }\n\n /** The selected rotation velocity converted to radians per second */\n get rotationVelocityRadsPerSec() {\n return (this.rotationVelocityDegPerSec * Math.PI) / 180\n }\n\n get velocityInCurrentUnits() {\n return this.currentMotionType === \"translate\"\n ? this.translationVelocityMmPerSec\n : this.rotationVelocityDegPerSec\n }\n\n get minVelocityInCurrentUnits() {\n return this.currentMotionType === \"translate\"\n ? this.minTranslationVelocityMmPerSec\n : this.minRotationVelocityDegPerSec\n }\n\n get maxVelocityInCurrentUnits() {\n return this.currentMotionType === \"translate\"\n ? this.maxTranslationVelocityMmPerSec\n : this.maxRotationVelocityDegPerSec\n }\n\n /**\n * For velocity unit purposes, joint and cartesian rotation\n * are treated as the same type of motion\n */\n get currentMotionType() {\n if (\n this.selectedTabId === \"cartesian\" &&\n this.selectedCartesianMotionType === \"translate\"\n ) {\n return \"translate\"\n } else {\n return \"rotate\"\n }\n }\n\n onTabChange(_event: React.SyntheticEvent, newValue: number) {\n const tab = this.tabs[newValue] || this.tabs[0]!\n this.selectedTabId = tab.id\n }\n\n setSelectedCoordSystemId(id: string) {\n this.selectedCoordSystemId = id\n }\n\n setSelectedTcpId(id: string) {\n this.selectedTcpId = id\n }\n\n setSelectedIncrementId(id: IncrementOptionId) {\n this.selectedIncrementId = id\n }\n\n setIncrementJoggingInProgress(inProgress: boolean) {\n this.incrementJoggingInProgress = inProgress\n }\n\n setVelocityFromSlider(velocity: number) {\n if (this.currentMotionType === \"translate\") {\n this.translationVelocityMmPerSec = velocity\n } else {\n this.rotationVelocityDegPerSec = velocity\n }\n }\n\n setSelectedCartesianMotionType(type: \"translate\" | \"rotate\") {\n this.selectedCartesianMotionType = type\n }\n}\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isHeaders(header)) {\n for (const [key, value] of header.entries()) {\n setHeader(value, key, rewrite);\n }\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n const threshold = 1000 / freq;\n let timer = null;\n return function throttled() {\n const force = this === true;\n\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, arguments);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, arguments);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\n\nexport default (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n }, freq);\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n let contentType;\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // Let the browser set it\n } else if ((contentType = headers.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport progressEventReducer from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType} = _config;\n let onCanceled;\n function done() {\n if (_config.cancelToken) {\n _config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (_config.signal) {\n _config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, _config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n _config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (typeof _config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(_config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof _config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(_config.onUploadProgress));\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst composeSignals = (signals, timeout) => {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (cancel) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = cancel instanceof Error ? cancel : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal &&\n (signal.removeEventListener ? signal.removeEventListener('abort', onabort) : signal.unsubscribe(onabort));\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal && signal.addEventListener && signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = unsubscribe;\n\n return [signal, () => {\n timer && clearTimeout(timer);\n timer = null;\n }];\n}\n\nexport default composeSignals;\n","\n\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize, encode) {\n for await (const chunk of iterable) {\n yield* streamChunk(ArrayBuffer.isView(chunk) ? chunk : (await encode(String(chunk))), chunkSize);\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish, encode) => {\n const iterator = readBytes(stream, chunkSize, encode);\n\n let bytes = 0;\n\n return new ReadableStream({\n type: 'bytes',\n\n async pull(controller) {\n const {done, value} = await iterator.next();\n\n if (done) {\n controller.close();\n onFinish();\n return;\n }\n\n let len = value.byteLength;\n onProgress && onProgress(bytes += len);\n controller.enqueue(new Uint8Array(value));\n },\n cancel(reason) {\n onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport progressEventReducer from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst fetchProgressDecorator = (total, fn) => {\n const lengthComputable = total != null;\n return (loaded) => setTimeout(() => fn({\n lengthComputable,\n total,\n loaded\n }));\n}\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst supportsRequestStream = isReadableStreamSupported && (() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n})();\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported && !!(()=> {\n try {\n return utils.isReadableStream(new Response('').body);\n } catch(err) {\n // return undefined\n }\n})();\n\nconst resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n (_, config) => {\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if(utils.isBlob(body)) {\n return body.size;\n }\n\n if(utils.isSpecCompliantForm(body)) {\n return (await new Request(body).arrayBuffer()).byteLength;\n }\n\n if(utils.isArrayBufferView(body)) {\n return body.byteLength;\n }\n\n if(utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if(utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n}\n\nexport default isFetchSupported && (async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let [composedSignal, stopTimeout] = (signal || cancelToken || timeout) ?\n composeSignals([signal, cancelToken], timeout) : [];\n\n let finished, request;\n\n const onFinish = () => {\n !finished && setTimeout(() => {\n composedSignal && composedSignal.unsubscribe();\n });\n\n finished = true;\n }\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, fetchProgressDecorator(\n requestContentLength,\n progressEventReducer(onUploadProgress)\n ), null, encodeText);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'cors' : 'omit';\n }\n\n request = new Request(url, {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n withCredentials\n });\n\n let response = await fetch(request);\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || isStreamResponse)) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onDownloadProgress && fetchProgressDecorator(\n responseContentLength,\n progressEventReducer(onDownloadProgress, true)\n ), isStreamResponse && onFinish, encodeText),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && onFinish();\n\n stopTimeout && stopTimeout();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n onFinish();\n\n if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n});\n\n\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: fetchAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.7.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","export function radiansToDegree(radians: number): number {\n return radians * (180 / Math.PI)\n}\n\nexport function degreesToRadians(degrees: number): number {\n return degrees * (Math.PI / 180)\n}\n\nexport function tryParseJson(json: unknown): any {\n try {\n return JSON.parse(json as string)\n } catch {\n return undefined\n }\n}\n\nexport function tryStringifyJson(json: unknown): string | undefined {\n try {\n return JSON.stringify(json)\n } catch {\n return undefined\n }\n}","import { AxiosError } from \"axios\"\nimport { tryStringifyJson } from \"./converters\"\n\nexport function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms))\n}\n\nexport function makeShortErrorMessage(err: unknown) {\n if (err instanceof AxiosError && err.code === \"ERR_NETWORK\") {\n return \"Failed to connect to the server. Please check your internet connection.\"\n } else if (err instanceof AxiosError && err.response) {\n return `${err.response?.status} ${err.response?.statusText}: ${JSON.stringify(err.response?.data)}`\n } else if (err instanceof Error) {\n return err.message\n } else {\n return `Unexpected error: ${err}`\n }\n}\n\nexport function makeErrorMessage(err: unknown) {\n if (err instanceof AxiosError && err.code === \"ERR_NETWORK\") {\n return \"Failed to connect to the server. Please check your internet connection.\"\n } else if (err instanceof AxiosError && err.response) {\n return `${err.response?.status} ${err.response?.statusText} from ${err.response?.config.url}: ${JSON.stringify(err.response?.data)}`\n } else if (err instanceof Error) {\n return err.message\n } else {\n return `Unexpected error: ${tryStringifyJson(err) || err}`\n }\n}\n","import { makeErrorMessage } from \"./utils/errorHandling\"\nimport { CircularProgress, Stack, useTheme } from \"@mui/material\"\nimport { useEffect, useState } from \"react\"\n\nexport const LoadingCover = (props: {\n message?: string\n error?: unknown\n softTimeout?: number\n}) => {\n const softTimeout = props.softTimeout || 3000\n\n const [showSlowLoadingMessage, setShowSlowLoadingMessage] = useState(false)\n\n useEffect(() => {\n const timeout = setTimeout(() => {\n setShowSlowLoadingMessage(true)\n }, softTimeout)\n\n return () => clearTimeout(timeout)\n })\n\n return (\n <Stack\n width=\"100%\"\n height=\"100%\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n {props.error ? (\n <LoadingErrorMessage message={props.message} error={props.error} />\n ) : (\n <>\n <CircularProgress sx={{ marginBottom: \"24px\" }} />\n {!!props.message && <div>{props.message}</div>}\n <Stack\n sx={{\n visibility: showSlowLoadingMessage ? \"visible\" : \"hidden\",\n marginTop: \"1rem\",\n color: \"gray\",\n }}\n >\n {\"This is taking longer than expected...\"}\n </Stack>\n </>\n )}\n </Stack>\n )\n}\n\nconst LoadingErrorMessage = (props: { message?: string; error: unknown }) => {\n const errorMessage = makeErrorMessage(props.error)\n const stack = props.error instanceof Error ? props.error.stack : null\n const theme = useTheme()\n\n return (\n <Stack\n sx={{\n maxHeight: \"100%\",\n maxWidth: \"min(100%, 800px)\",\n padding: 2,\n overflow: \"auto\",\n color: theme.palette.error.main,\n \"& pre\": {\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n paddingBottom: \"3rem\",\n },\n }}\n >\n {`Error while: ${props.message} - ${errorMessage}`}\n <br />\n {stack && <pre>{stack}</pre>}\n </Stack>\n )\n}\n","import { Paper, Stack, Tab, Tabs } from \"@mui/material\"\nimport { observer, useLocalObservable } from \"mobx-react-lite\"\nimport { useEffect } from \"react\"\nimport { JoggingCartesianTab } from \"./JoggingCartesianTab\"\nimport { JoggingJointTab } from \"./JoggingJointTab\"\nimport { JoggingStore } from \"./JoggingStore\"\nimport { LoadingCover } from \"../LoadingCover\"\nimport { runInAction } from \"mobx\"\nimport { NovaClient } from \"@wandelbots/wandelbots-js\"\n\nexport type JoggingPanelProps = {\n nova: NovaClient\n motionGroupId: string\n}\n\nexport const JoggingPanel = observer((props: JoggingPanelProps) => {\n const { nova } = props\n\n const state = useLocalObservable(() => ({\n joggingStore: null as JoggingStore | null,\n loadingError: null as unknown | null,\n }))\n\n async function init() {\n try {\n const jogger = await nova.connectJogger(props.motionGroupId)\n const joggingStore = await JoggingStore.loadFor(jogger)\n runInAction(() => {\n state.joggingStore = joggingStore\n })\n } catch (err) {\n state.loadingError = err\n }\n }\n\n useEffect(() => {\n init()\n return () => {\n state.joggingStore?.dispose()\n }\n }, [])\n\n // Set correct jogging mode on jogger based on user selections\n useEffect(() => {\n if (!state.joggingStore) return\n\n const {\n currentTab,\n selectedTcpId,\n selectedCoordSystemId,\n selectedDiscreteIncrement,\n } = state.joggingStore\n\n if (currentTab.id !== \"cartesian\" && currentTab.id !== \"joint\") return\n\n const cartesianJoggingOpts = {\n tcpId: selectedTcpId,\n coordSystemId: selectedCoordSystemId,\n }\n\n if (selectedDiscreteIncrement && currentTab.id === \"cartesian\") {\n state.joggingStore.jogger.setJoggingMode(\"increment\", cartesianJoggingOpts)\n } else {\n state.joggingStore.jogger.setJoggingMode(currentTab.id, cartesianJoggingOpts)\n }\n }, [\n state.joggingStore?.currentTab,\n state.joggingStore?.selectedTcpId,\n state.joggingStore?.selectedCoordSystemId,\n state.joggingStore?.selectedDiscreteIncrement,\n ])\n\n useEffect(() => {\n\n // Set the robot to default control mode (JoZi says is important for physical robot jogging)\n async function init() {\n if (!state.joggingStore) return\n\n try {\n await nova.api.controller.setDefaultMode(\n state.joggingStore.jogger.motionStream.controllerId,\n \"MODE_CONTROL\",\n )\n } catch (err) {\n console.error(err)\n }\n }\n\n init()\n }, [state.joggingStore?.jogger.motionStream.controllerId])\n\n if (!state.joggingStore) {\n return (\n <JoggingPanelOuter>\n <LoadingCover message=\"Loading jogging\" error={state.loadingError} />\n </JoggingPanelOuter>\n )\n }\n\n const { joggingStore: store } = state\n\n return (\n <JoggingPanelOuter>\n <Stack flexGrow={1}>\n {/* Tab selection */}\n <Tabs value={store.tabIndex} onChange={store.onTabChange}>\n {store.tabs.map((tab) => (\n <Tab\n key={tab.id}\n label={tab.label}\n id={`jogging-tab-${tab.id}`}\n aria-controls={`jogging-tab-${tab.id}`}\n />\n ))}\n </Tabs>\n\n {/* Current tab content */}\n <Stack flexGrow={1}>\n {store.currentTab.id === \"cartesian\" && (\n <JoggingCartesianTab store={store} />\n )}\n {store.currentTab.id === \"joint\" && (\n <JoggingJointTab store={store} />\n )}\n </Stack>\n </Stack>\n </JoggingPanelOuter>\n )\n})\n\nfunction JoggingPanelOuter({ children }: { children: React.ReactNode }) {\n return (\n <Stack\n sx={{\n maxWidth: \"460px\",\n minWidth: \"350px\",\n overflowY: \"auto\",\n position: \"relative\",\n }}\n >\n <Paper sx={{\n minHeight: \"90vh\"\n }}>\n {children}\n </Paper>\n </Stack>\n )\n}\n"],"names":["f","require$$0","k","l","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","defaultJointNamePattern","getAllObjects","root","isObjectAJointByName","jointNamePattern","getAllJointsByName","rootObject","useMounted","effect","useEffect","useAutorun","view","autorun","useReaction","expression","opts","reaction","useAnimationFrame","callback","frameId","RobotAnimator","rapidlyChangingMotionState","robotRootObjectName","onRotationChanged","jointCollector","Globals","jointValues","useRef","jointObjects","scene","invalidate","useThree","sceneObject","setRotation","updateJoints","newJointValues","setSpring","updatedJointValues","objectIndex","axisValues","useSpring","UniversalRobots_UR3","modelURL","gltf","useGLTF","nodes","materials","index","Fragment","animated","UniversalRobots_UR3e","UniversalRobots_UR5","UniversalRobots_UR5e","UniversalRobots_UR10","UniversalRobots_UR10e","Yaskawa_AR900","rotationOffsets","Yaskawa_AR1440","rotationSign","Yaskawa_AR1730","Yaskawa_AR2010","Yaskawa_AR3120","FANUC_CRX10iA","FANUC_CRX25iA","FANUC_CRX25iAL","KUKA_KR210_R2700","KUKA_KR270_R2700","FANUC_ARC_Mate_100iD","FANUC_ARC_Mate_120iD","ABB_1200_07_7","CHILD_LINE","CHILD_MESH","DHRobot","dhParameters","accumulatedMatrix","Matrix4","getLinePoints","dhParameter","jointRotation","position","Vector3","quaternion","Quaternion","scale","prevPosition","matrix","setJointLineRotation","jointIndex","line","mesh","jointValue","dh_parameter","joints","joint","getAllJoints","param","Line","defaultGetModel","modelFromController","SupportedRobot","getModel","Robot","Suspense","connectedMotionGroup","defaultAxisConfig","PresetEnvironment","Environment","Lightformers","positions","Lightformer","SafetyZonesRenderer","safetyZones","zone","geometries","geometry","vertices","v","THREE","convexGeometry","ConvexGeometry","r","t","w","y","z","u","A","reactIs_production_min","hasSymbol","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","getOwnPropertySymbols","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","target","from","to","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","text","message","getStack","checkPropTypes_1","ReactIs","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","data","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","entry","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","formatMuiErrorMessage","code","url","isDevelopment","sheetForTag","tag","createStyleElement","options","StyleSheet","_this","before","_proto","rule","sheet","_tag$parentNode","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","hash","length","charat","trim","pattern","replace","replacement","indexof","search","substr","begin","end","strlen","sizeof","append","array","combine","column","character","characters","parent","copy","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","serialize","output","stringify","middleware","collection","rulesheet","identifierWithPointTracking","toRules","parsed","getRules","fixedElements","compat","isImplicitRule","parentRules","removeLabel","prefixer","defaultStylisPlugins","createCache","ssrStyles","dataEmotionAttribute","stylisPlugins","inserted","container","nodesToHydrate","attrib","_insert","omnipresentPlugins","currentSheet","finalizingPlugins","serializer","stylis","styles","selector","serialized","shouldCache","cache","StyledEngineProvider","injectFirst","_jsx","CacheProvider","PropTypes","isEmpty","obj","GlobalStyles","defaultTheme","globalStyles","themeInput","Global","styled","stylesFactory","emStyled","component","style","internal_processStyles","processor","_extends","_objectWithoutPropertiesLoose","isPlainObject","deepClone","deepmerge","_excluded","sortBreakpointsValues","breakpointsAsArray","breakpoint1","breakpoint2","acc","createBreakpoints","breakpoints","unit","other","sortedValues","up","down","between","start","endIndex","only","not","keyIndex","shape","responsivePropType","merge","defaultBreakpoints","handleBreakpoints","styleFromPropValue","theme","themeBreakpoints","breakpoint","mediaKey","cssKey","createEmptyBreakpointObject","breakpointsInput","_breakpointsInput$key","breakpointStyleKey","removeUnusedBreakpoints","breakpointKeys","breakpointOutput","mergeBreakpointsInOrder","emptyBreakpoints","mergedOutput","computeBreakpointsBase","breakpointValues","base","breakpointsKeys","resolveBreakpointValues","customBase","capitalize","string","_formatMuiErrorMessage","getPath","path","checkVars","getStyleValue","themeMapping","transform","propValueFinal","userValue","prop","cssProperty","themeKey","memoize","arg","properties","directions","aliases","getCssProperties","direction","dir","marginKeys","paddingKeys","spacingKeys","createUnaryUnit","defaultValue","_getPath","themeSpacing","createUnarySpacing","getValue","transformer","transformed","getStyleFromPropValue","cssProperties","resolveCssProperty","margin","padding","createSpacing","spacingInput","spacing","argsInput","argument","compose","handlers","borderTransform","createBorderStyle","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outline","outlineColor","borderRadius","gap","columnGap","rowGap","gridColumn","gridRow","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","paletteTransform","color","bgcolor","backgroundColor","sizingTransform","width","maxWidth","_props$theme","_props$theme2","breakpointsValues","minWidth","height","maxHeight","minHeight","boxSizing","defaultSxConfig","objectsHaveSameKeys","objects","union","callIfFn","maybeFn","unstable_createStyleFunctionSx","getThemeValue","styleFunctionSx","_theme$unstable_sxCon","sx","traverse","sxInput","sxObject","css","styleKey","applyStyles","createTheme","paletteInput","shapeInput","muiTheme","isObjectEmpty","useTheme","contextTheme","ThemeContext","systemDefaultTheme","useThemeWithoutDefault","splitProps","_props$theme$unstable","result","extendSxProp","inSx","systemProps","otherProps","finalSx","defaultGenerator","createClassNameGenerator","generate","generator","ClassNameGenerator","clsx","globalStateClasses","generateUtilityClass","slot","globalStatePrefix","globalStateClass","generateUtilityClasses","slots","REACT_SERVER_CONTEXT_TYPE","SuspenseList","hasWarnedAboutDeprecatedIsConcurrentMode","isSuspenseList","fnNameMatchRegex","getFunctionName","getFunctionComponentName","fallback","getDisplayName","_excluded2","_excluded3","isStringTag","shouldForwardProp","lowercaseFirstLetter","resolveTheme","themeId","defaultOverridesResolver","processStyleArg","callableStyle","_ref","ownerState","resolvedStylesArg","resolvedStyle","variants","variant","isMatch","createStyled","input","rootShouldForwardProp","slotShouldForwardProp","systemSx","inputOptions","processStyles","componentSlot","inputSkipVariantsResolver","inputSkipSx","overridesResolver","skipVariantsResolver","skipSx","label","shouldForwardPropOption","defaultStyledResolver","styledEngineStyled","transformStyleArg","stylesArg","muiStyledResolver","styleArg","expressions","transformedStyleArg","expressionsWithDefaultTheme","styleOverrides","resolvedStyleOverrides","slotKey","slotStyle","_theme$components","themeVariants","numOfCustomFnsApplied","placeholders","resolveProps","defaultSlotProps","slotProps","slotPropName","getThemeProps","params","useThemeProps","useEnhancedEffect","clamp","min","max","chainPropTypes","propType1","propType2","ownerDocument","setRef","useControlled","controlled","defaultProp","state","isControlled","valueState","setValue","setValueIfUncontrolled","newValue","useEventCallback","useForkRef","refs","instance","Timeout","delay","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","focusTriggersKeyboardModality","tagName","handleKeyDown","event","handlePointerDown","handleVisibilityChange","prepare","doc","isFocusVisible","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","visuallyHidden","composeClasses","getUtilityClass","classes","utilityClass","isHostComponent","appendOwnerState","elementType","extractEventHandlers","excludeKeys","omitEventHandlers","mergeSlotProps","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","className","joinedClasses","mergedStyle","eventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","resolveComponentProps","componentProps","slotState","useSlotProps","_parameters$additiona","skipResolvingSlotProps","rest","resolvedComponentsProps","mergedProps","internalRef","RtlContext","useRtl","PropsContext","useDefaultProps","ctx","defaultCreateStyledComponent","systemStyled","useThemePropsDefault","useThemePropsSystem","joinChildren","separator","childrenArray","getSideFromDirection","directionValues","spacingValues","previousDirectionValue","createStack","createStyledComponent","useUtilityClasses","StackRoot","Stack","inProps","themeProps","divider","useFlexGap","_interopRequireDefault","module","createStyled_1","_default","_extends2","_objectWithoutPropertiesLoose2","_styledEngine","_interopRequireWildcard","_deepmerge","_capitalize","require$$5","_getDisplayName","require$$6","_createTheme","require$$7","_styleFunctionSx","require$$8","_getRequireWildcardCache","createMixins","mixins","colorManipulator","alpha_1","alpha","blend","darken_1","darken","decomposeColor","emphasize","getContrastRatio_1","getContrastRatio","getLuminance","hexToRgb","hslToRgb","lighten_1","lighten","private_safeAlpha","private_safeDarken","private_safeEmphasize","private_safeLighten","recomposeColor","rgbToHex","_formatMuiErrorMessage2","_clamp","clampWrapper","re","colors","intToHex","int","hex","marker","colorSpace","colorChannel","decomposedColor","idx","private_safeColorChannel","warning","rgb","foreground","background","lumA","lumB","coefficient","overlay","opacity","gamma","blendChannel","o","overlayColor","common","grey","purple","red","orange","blue","lightBlue","green","light","dark","addLightOrDark","intent","shade","tonalOffset","tonalOffsetLight","tonalOffsetDark","getDefaultPrimary","mode","getDefaultSecondary","getDefaultError","getDefaultInfo","getDefaultSuccess","getDefaultWarning","createPalette","palette","contrastThreshold","primary","secondary","success","getContrastText","contrastText","contrast","augmentColor","mainShade","lightShade","darkShade","modes","round","caseAllCaps","defaultFontFamily","createTypography","typography","fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem2","coef","pxToRem","buildVariant","fontWeight","lineHeight","letterSpacing","casing","shadowKeyUmbraOpacity","shadowKeyPenumbraOpacity","shadowAmbientShadowOpacity","createShadow","px","shadows","easing","duration","formatMs","milliseconds","getAutoHeightDuration","constant","createTransitions","inputTransitions","mergedEasing","mergedDuration","durationOption","easingOption","isString","isNumber","animatedProp","zIndex","mixinsInput","transitionsInput","typographyInput","systemTheme","systemCreateTheme","stateClasses","stateClass","THEME_ID","useSystemDefaultProps","JoggingCartesianAxisControl","observer","getDisplayedValue","startJogging","stopJogging","disabled","displayValue","valueContainerRef","onPointerDownMinus","ev","onPointerDownPlus","Button","Typography","consoleLogger","Logger","concreteLogger","_len","_key","_len3","_key3","_len4","_key4","lvl","debugOnly","moduleName","baseLogger","EventEmitter","events","listener","numListeners","numTimesAdded","_ref2","defer","res","rej","promise","resolve","reject","makeString","lastOfPathSeparatorRegExp","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","stackIndex","setPath","last","pushPath","concat","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","str","_entityMap","escape","RegExpCache","capacity","regExpFromCache","regExpNew","chars","looksLikeObjectPathRegExpCache","looksLikeObjectPath","nsSeparator","keySeparator","possibleChars","matched","ki","deepFind","tokens","current","nextPath","getCleanedCode","ResourceStore","ns","lng","ignoreJSONStructure","resources","deep","pack","postProcessor","processors","translator","checkedLoadedFor","Translator","services","resolved","namespaces","wouldCheckForNsInKey","seemsNaturalLanguage","parts","lastKey","returnDetails","namespace","appendNamespaceToCIMode","resUsedKey","resExactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","resTypeIsArray","newKeyToUse","deepKey","usedDefault","usedKey","needsPluralHandling","hasDefaultValue","defaultValueSuffix","defaultValueSuffixOrdinalFallback","needsZeroSuffixLookup","resForMissing","updateMissing","fk","lngs","fallbackLngs","send","specificDefaultValue","defaultForMissing","language","suffixes","suffix","skipOnVariables","nestBef","nb","na","nestAft","postProcess","postProcessorNames","found","exactUsedKey","usedLng","usedNS","extracted","needsContextHandling","codes","finalKeys","pluralSuffix","zeroSuffix","ordinalPrefix","contextKey","possibleKey","optionsKeys","useOptionsReplaceForData","option","LanguageUtil","specialCases","part","cleanedLng","lngOnly","supportedLng","fallbacks","fallbackCode","fallbackCodes","addCode","fc","sets","_rulesPluralsTypes","nonIntlVersions","intlVersions","suffixesOrder","createRules","set","PluralResolver","languageUtils","pluralCategory1","pluralCategory2","pluralCategory","number","returnSuffix","deepFindWithDefaults","Interpolator","escape$1","escapeValue","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapeSuffix","unescapePrefix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","getOrResetRegExp","existingRegExp","replaces","regexSafe","handleFormat","missingInterpolationHandler","todo","matchedVar","temp","safeValue","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","elem","parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","trimmedKey","createCachedFormatter","formatter","Formatter","iOpts","mem","formatted","valOptions","removePending","Connector","backend","store","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","loaded","loadedKeys","fcName","tried","wait","resolver","fallbackValue","isUpdate","clb","get","ret","transformOptions","noop","bindMemberFunctions","inst","I18n","defOpts","createClassOnDemand","ClassOrObject","lu","deferred","load","finish","usedCallback","li","lngInLngs","_this2","setLngProps","done","setLng","keyPrefix","_this3","fixedT","resultKey","fallbackLng","lastLng","loadNotPending","loadState","preResult","preloaded","newLngs","rtlLngs","forkResourceStore","mergedOptions","clone","i18n","i18next","LanguageDetector","initReactI18next","enJSON","deJSON","JoggingJointRotationControl","lowerLimitDegs","upperLimitDegs","getValueDegs","useTranslation","currentValue","setCurrentValue","useState","useLocalObservable","formatDegrees","precision","I18nextProvider","IconButton","ChevronLeft","Slider","ChevronRight","SvgRotation","title","titleId","forwardRef","SvgAxisX","SvgAxisY","SvgAxisZ","useThemeSystem","baseColors","darkColors","lightColors","useThemeColors","createRobotPadTheme","defaultsDeep","ThemeSelect","kind","Select","JoggingOptions","InputLabel","cs","MenuItem","tcp","inc","areArraysEqual","array1","array2","itemComparer","INTENTIONAL_DRAG_COUNT_THRESHOLD","asc","findClosest","_values$reduce","closestIndex","distance","trackFinger","touchId","touchEvent","touch","valueToPercent","percentToValue","percent","getDecimalPrecision","num","matissaDecimalPart","decimalPart","roundValueToStep","nearest","setValueIndex","focusThumb","sliderRef","activeIndex","setActive","_sliderRef$current","_doc$activeElement","_sliderRef$current2","areValuesEqual","oldValue","axisProps","Identity","cachedSupportsTouchActionNone","doesSupportTouchActionNone","useSlider","ariaLabelledby","disableSwap","isRtl","marksProp","onChange","onChangeCommitted","orientation","shiftStep","tabIndex","valueProp","active","open","setOpen","dragging","setDragging","moveCount","valueDerived","setValueState","handleChange","thumbIndex","nativeEvent","clonedEvent","range","marks","_","marksValues","mark","focusVisibleRef","focusedThumbIndex","setFocusedThumbIndex","handleFocusRef","handleRef","createHandleHiddenInputFocus","otherHandlers","_otherHandlers$onFocu","createHandleHiddenInputBlur","_otherHandlers$onBlur","changeValue","valueInput","marksIndex","maxMarksValue","previousValue","createHandleHiddenInputKeyDown","_otherHandlers$onKeyD","_document$activeEleme","createHandleHiddenInputChange","_otherHandlers$onChan","previousIndex","axis","getFingerNewValue","finger","move","slider","bottom","left","handleTouchMove","handleTouchEnd","stopListening","handleTouchStart","createHandleMouseDown","_otherHandlers$onMous","trackOffset","trackLeap","getRootProps","externalProps","externalHandlers","ownEventHandlers","mergedEventHandlers","createHandleMouseOver","_otherHandlers$onMous2","createHandleMouseLeave","_otherHandlers$onMous3","_parameters$step","shouldSpreadAdditionalProps","Slot","getSliderUtilityClass","sliderClasses","useValueLabelClasses","SliderValueLabel","_jsxs","SliderRoot","_theme$vars","_theme$vars2","SliderRail","SliderTrack","_theme$vars3","_theme$vars4","SliderThumb","_theme$vars5","_theme$vars6","BaseSliderValueLabel","SliderMark","markActive","SliderMarkLabel","marked","track","Forward","inputProps","_slots$root","_slots$rail","_ref3","_slots$track","_ref4","_slots$thumb","_ref5","_slots$valueLabel","_ref6","_slots$mark","_ref7","_slots$markLabel","_ref8","_slots$input","_slotProps$root","_slotProps$rail","_slotProps$track","_slotProps$thumb","_slotProps$valueLabel","_slotProps$mark","_slotProps$markLabel","_slotProps$input","ariaLabel","ariaValuetext","components","componentsProps","classesProp","getAriaLabel","getAriaValueText","valueLabelDisplay","valueLabelFormat","getHiddenInputProps","getThumbProps","getThumbStyle","RootSlot","RailSlot","TrackSlot","ThumbSlot","ValueLabelSlot","MarkSlot","MarkLabelSlot","InputSlot","rootSlotProps","railSlotProps","trackSlotProps","thumbSlotProps","valueLabelSlotProps","markSlotProps","markLabelSlotProps","inputSlotProps","rootProps","railProps","trackProps","thumbProps","valueLabelProps","markProps","markLabelProps","inputSliderProps","ValueLabelComponent","VelocitySlider","onSliderChange","_event","newVelocity","JoggingVelocitySlider","Divider","JoggingCartesianValues","poseStringRef","getCurrentPoseString","tcpPose","poseToWandelscriptString","_a","JoggingJointLimitDetector","jointLimitsReached","setJointLimitsReached","newLimitsReached","isEqual","jointLimitReachedIndices","limitReached","JoggingCartesianTab","onMotionTypeChange","newMotionType","runIncrementalCartesianJog","increment","startCartesianJogging","axisList","XAxisIcon","YAxisIcon","ZAxisIcon","formatMM","radiansToDegrees","ToggleButtonGroup","ToggleButton","RotationIcon","_b","JoggingJointValues","valueHolderRef","getCurrentValueString","JoggingJointTab","startJointJogging","stopJointJogging","jointLimits","discreteIncrementOptions","incrementOptions","JoggingStore","jogger","motionGroupSpec","coordSystems","tcps","makeAutoObservable","nova","coordinatesystems","dispose","save","tryParseJson","keyBy","tab","id","inProgress","velocity","bind","thisArg","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isFunction","isArrayBuffer","isArrayBufferView","isObject","isBoolean","isDate","isFile","isBlob","isFileList","isStream","isFormData","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","forEach","allOwnKeys","len","findKey","_global","isContextDefined","caseless","assignValue","targetKey","extend","stripBOM","content","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","freezeMethods","toObjectSet","arrayOrString","define","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","alphabet","isSpecCompliantForm","toJSONObject","visit","reducedValue","isAsyncFn","isThenable","utils$1","AxiosError","request","response","utils","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","ignoreDuplicateOf","parseHeaders","rawHeaders","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","matcher","deleted","deleteHeader","normalized","targets","asStrings","first","computed","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","transformData","fns","isCancel","CanceledError","settle","validateStatus","parseProtocol","speedometer","samplesCount","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","timestamp","threshold","timer","force","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","total","progressBytes","rate","inRange","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","href","requestURL","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","xsrfValue","isXHRAdapterSupported","xhrAdapter","_config","requestData","requestHeaders","responseType","onCanceled","onloadend","responseHeaders","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","controller","aborted","onabort","unsubscribe","signal","streamChunk","chunk","chunkSize","pos","readBytes","iterable","trackStream","stream","onProgress","onFinish","reason","fetchProgressDecorator","lengthComputable","isFetchSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","DEFAULT_CHUNK_SIZE","supportsResponseStream","resolvers","getBodyLength","body","resolveBodyLength","fetchAdapter","cancelToken","onDownloadProgress","onUploadProgress","withCredentials","fetchOptions","composedSignal","stopTimeout","finished","requestContentLength","_request","contentTypeHeader","isStreamResponse","responseContentLength","responseData","knownAdapters","renderReason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","desc","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","spread","isAxiosError","HttpStatusCode","createInstance","defaultConfig","axios","promises","all","Cancel","formToJSON","getAdapter","tryStringifyJson","json","makeErrorMessage","_c","_d","LoadingCover","softTimeout","showSlowLoadingMessage","setShowSlowLoadingMessage","LoadingErrorMessage","CircularProgress","errorMessage","JoggingPanel","joggingStore","runInAction","currentTab","selectedTcpId","selectedCoordSystemId","selectedDiscreteIncrement","cartesianJoggingOpts","_e","JoggingPanelOuter","Tabs","Tab","Paper"],"mappings":"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","x_google_ignoreList":[0,1,2,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,141,148,152,153,154,155,156,157,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215]}
|