@wandelbots/wandelbots-js-react-components 3.1.1 → 3.2.0-pr.feat-improve-exports.414.40b4b4e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +79 -2
  2. package/dist/3d.cjs.js +2 -0
  3. package/dist/3d.cjs.js.map +1 -0
  4. package/dist/3d.d.ts +11 -0
  5. package/dist/3d.d.ts.map +1 -0
  6. package/dist/3d.es.js +16 -0
  7. package/dist/3d.es.js.map +1 -0
  8. package/dist/PoseJointValues-C3bsJdfd.js +5446 -0
  9. package/dist/PoseJointValues-C3bsJdfd.js.map +1 -0
  10. package/dist/PoseJointValues-wLOjcYDe.cjs +21 -0
  11. package/dist/PoseJointValues-wLOjcYDe.cjs.map +1 -0
  12. package/dist/ProgramStateIndicator-CTT-CAcJ.js +268 -0
  13. package/dist/ProgramStateIndicator-CTT-CAcJ.js.map +1 -0
  14. package/dist/ProgramStateIndicator-DYKBcj1s.cjs +2 -0
  15. package/dist/ProgramStateIndicator-DYKBcj1s.cjs.map +1 -0
  16. package/dist/VelocitySlider-2Zme2MN7.cjs +5 -0
  17. package/dist/VelocitySlider-2Zme2MN7.cjs.map +1 -0
  18. package/dist/VelocitySlider-QSg_8eb1.js +1906 -0
  19. package/dist/VelocitySlider-QSg_8eb1.js.map +1 -0
  20. package/dist/components/jogging/JoggingStore.d.ts +1 -1
  21. package/dist/core.cjs.js +2 -0
  22. package/dist/core.cjs.js.map +1 -0
  23. package/dist/core.d.ts +23 -0
  24. package/dist/core.d.ts.map +1 -0
  25. package/dist/core.es.js +46 -0
  26. package/dist/core.es.js.map +1 -0
  27. package/dist/createSvgIcon-BG4_bQuX.cjs +56 -0
  28. package/dist/createSvgIcon-BG4_bQuX.cjs.map +1 -0
  29. package/dist/createSvgIcon-D3GRPlVu.js +3072 -0
  30. package/dist/createSvgIcon-D3GRPlVu.js.map +1 -0
  31. package/dist/data.cjs.js +2 -0
  32. package/dist/data.cjs.js.map +1 -0
  33. package/dist/data.d.ts +4 -0
  34. package/dist/data.d.ts.map +1 -0
  35. package/dist/data.es.js +7 -0
  36. package/dist/data.es.js.map +1 -0
  37. package/dist/externalizeComponent-C12Qf79R.cjs +24 -0
  38. package/dist/externalizeComponent-C12Qf79R.cjs.map +1 -0
  39. package/dist/externalizeComponent-RpcZ_G17.js +491 -0
  40. package/dist/externalizeComponent-RpcZ_G17.js.map +1 -0
  41. package/dist/index-8UEqiXug.cjs +7 -0
  42. package/dist/index-8UEqiXug.cjs.map +1 -0
  43. package/dist/index-CQDi5W62.cjs +2 -0
  44. package/dist/index-CQDi5W62.cjs.map +1 -0
  45. package/dist/index-DSz82V23.js +1801 -0
  46. package/dist/index-DSz82V23.js.map +1 -0
  47. package/dist/index-DZubFUuo.js +4909 -0
  48. package/dist/index-DZubFUuo.js.map +1 -0
  49. package/dist/index-MyU3fVEK.cjs +50 -0
  50. package/dist/index-MyU3fVEK.cjs.map +1 -0
  51. package/dist/index-VURe0U2S.js +9443 -0
  52. package/dist/index-VURe0U2S.js.map +1 -0
  53. package/dist/index.cjs.js +2 -0
  54. package/dist/index.cjs.js.map +1 -0
  55. package/dist/index.es.js +72 -0
  56. package/dist/index.es.js.map +1 -0
  57. package/dist/interpolation-CVSmVNjc.cjs +2 -0
  58. package/dist/interpolation-CVSmVNjc.cjs.map +1 -0
  59. package/dist/interpolation-DjBX_Si-.js +138 -0
  60. package/dist/interpolation-DjBX_Si-.js.map +1 -0
  61. package/dist/jogging.cjs.js +2 -0
  62. package/dist/jogging.cjs.js.map +1 -0
  63. package/dist/jogging.d.ts +9 -0
  64. package/dist/jogging.d.ts.map +1 -0
  65. package/dist/jogging.es.js +12 -0
  66. package/dist/jogging.es.js.map +1 -0
  67. package/dist/manufacturerHomePositions-DHqcbFON.js +979 -0
  68. package/dist/manufacturerHomePositions-DHqcbFON.js.map +1 -0
  69. package/dist/manufacturerHomePositions-zd-CKEiQ.cjs +2 -0
  70. package/dist/manufacturerHomePositions-zd-CKEiQ.cjs.map +1 -0
  71. package/dist/theming-BO8z_Hpa.js +2198 -0
  72. package/dist/theming-BO8z_Hpa.js.map +1 -0
  73. package/dist/theming-D5DvGuxX.cjs +4 -0
  74. package/dist/theming-D5DvGuxX.cjs.map +1 -0
  75. package/dist/useThemeProps-P648Ox74.cjs +2 -0
  76. package/dist/useThemeProps-P648Ox74.cjs.map +1 -0
  77. package/dist/useThemeProps-jE_Qg6SI.js +40 -0
  78. package/dist/useThemeProps-jE_Qg6SI.js.map +1 -0
  79. package/package.json +24 -3
  80. package/src/3d.ts +15 -0
  81. package/src/core.ts +23 -0
  82. package/src/data.ts +4 -0
  83. package/src/jogging.ts +9 -0
  84. package/dist/index.cjs +0 -155
  85. package/dist/index.cjs.map +0 -1
  86. package/dist/index.js +0 -30530
  87. package/dist/index.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VelocitySlider-QSg_8eb1.js","sources":["../node_modules/@mui/system/esm/RtlProvider/index.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObjectLike.js","../src/lib/motionStateUpdate.ts","../src/components/utils/converters.ts","../src/components/utils/errorHandling.ts","../src/components/LoadingCover.tsx","../node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.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/utils/esm/isFocusVisible/isFocusVisible.js","../node_modules/@mui/utils/esm/visuallyHidden/visuallyHidden.js","../node_modules/@mui/material/esm/utils/areArraysEqual.js","../node_modules/@mui/material/esm/Slider/useSlider.js","../node_modules/@mui/material/esm/utils/isHostComponent.js","../node_modules/@mui/material/esm/utils/shouldSpreadAdditionalProps.js","../node_modules/@mui/material/esm/utils/createSimplePaletteValueFilter.js","../node_modules/@mui/material/esm/Slider/sliderClasses.js","../node_modules/@mui/material/esm/Slider/SliderValueLabel.js","../node_modules/@mui/material/esm/Slider/Slider.js","../node_modules/lodash-es/isNumber.js","../src/components/VelocitySlider.tsx"],"sourcesContent":["'use client';\n\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({\n value,\n ...props\n}) {\n return /*#__PURE__*/_jsx(RtlContext.Provider, {\n value: value ?? true,\n ...props\n });\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 ?? false;\n};\nexport default RtlProvider;","'use client';\n\n// TODO: uncomment once we enable eslint-plugin-react-compiler // eslint-disable-next-line react-compiler/react-compiler -- process.env never changes, dependency arrays are intentionally ignored\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled(props) {\n const {\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n } = props;\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 // Object.is() is not equivalent to the === operator.\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is for more details.\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\n // TODO: provide overloads for the useControlled function to account for the case where either\n // controlled or default is not undefiend.\n // In that case the return type should be [T, React.Dispatch<React.SetStateAction<T>>]\n // otherwise it should be [T | undefined, React.Dispatch<React.SetStateAction<T | undefined>>]\n return [value, setValueIfUncontrolled];\n}","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import type { MotionGroupState, Pose } from \"@wandelbots/nova-js/v2\"\nimport type { Vector3Simple } from \"./JoggerConnection\"\nimport { Vector3 } from \"three\"\n\nexport function jointValuesEqual(\n oldJointValues: number[],\n newJointValues: number[],\n changeDeltaThreshold: number,\n): boolean {\n if (newJointValues.length !== oldJointValues.length) {\n return true\n }\n\n for (let jointIndex = 0; jointIndex < newJointValues.length; jointIndex++) {\n if (\n // biome-ignore lint/style/noNonNullAssertion: legacy code\n Math.abs(newJointValues[jointIndex]! - oldJointValues[jointIndex]!) >\n changeDeltaThreshold\n ) {\n return false\n }\n }\n\n return true\n}\n\nexport function poseEqual(\n oldTcp: Pose | undefined,\n newTcp: Pose | undefined,\n changeDeltaThreshold: number,\n): boolean {\n // undefined -> defined (+reverse) transition\n if ((oldTcp === undefined && newTcp) || (oldTcp && newTcp === undefined)) {\n return false\n }\n\n // Poses might be incomplete (missing orientation or position)\n if (\n oldTcp?.orientation === undefined ||\n newTcp?.orientation === undefined ||\n oldTcp?.position === undefined ||\n newTcp?.position === undefined\n ) {\n return false\n }\n\n // the typechecker cannot resolve states to \"!= undefined\" if \"&&\" is used\n if (oldTcp === undefined || newTcp === undefined) {\n return true\n }\n\n let changedDelta = 0\n changedDelta += Math.abs(oldTcp.orientation[0] - newTcp.orientation[0])\n changedDelta += Math.abs(oldTcp.orientation[1] - newTcp.orientation[1])\n changedDelta += Math.abs(oldTcp.orientation[2] - newTcp.orientation[2])\n changedDelta += Math.abs(oldTcp.position[0] - newTcp.position[0])\n changedDelta += Math.abs(oldTcp.position[1] - newTcp.position[1])\n changedDelta += Math.abs(oldTcp.position[2] - newTcp.position[2])\n\n return changedDelta <= changeDeltaThreshold\n}\n\n// Runs poseEqual check + coordinate system/tcp name equality\nexport function tcpMotionEqual(\n oldMotionState: MotionGroupState,\n newMotionState: MotionGroupState,\n changeDeltaThreshold: number,\n): boolean {\n return (\n oldMotionState.coordinate_system === newMotionState.coordinate_system &&\n oldMotionState.tcp === newMotionState.tcp &&\n poseEqual(\n oldMotionState.tcp_pose,\n newMotionState.tcp_pose,\n changeDeltaThreshold,\n )\n )\n}\n\nexport function unwrapRotationVector(\n newRotationVectorApi: Vector3Simple,\n currentRotationVectorApi: Vector3Simple,\n): Vector3Simple {\n const currentRotationVector = new Vector3(\n currentRotationVectorApi[0],\n currentRotationVectorApi[1],\n currentRotationVectorApi[2],\n )\n\n const newRotationVector = new Vector3(\n newRotationVectorApi[0],\n newRotationVectorApi[1],\n newRotationVectorApi[2],\n )\n\n const currentAngle = currentRotationVector.length()\n const currentAxis = currentRotationVector.normalize()\n\n let newAngle = newRotationVector.length()\n let newAxis = newRotationVector.normalize()\n\n // Align rotation axes\n if (newAxis.dot(currentAxis) < 0) {\n newAngle = -newAngle\n newAxis = newAxis.multiplyScalar(-1.0)\n }\n\n // Shift rotation angle close to previous one to extend domain of rotation angles beyond [0, pi]\n // - this simplifies interpolation and prevents abruptly changing signs of the rotation angles\n let angleDifference = newAngle - currentAngle\n angleDifference -=\n 2.0 * Math.PI * Math.floor((angleDifference + Math.PI) / (2.0 * Math.PI))\n\n newAngle = currentAngle + angleDifference\n\n return [...newAxis.multiplyScalar(newAngle)] as Vector3Simple\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}\n","import { AxiosError } from \"axios\"\nimport { tryStringifyJson } from \"./converters\"\n\n// Please note: These helper functions also exist in nova.js\n// (with slightly different formatting), and will be unified\n// at some point in the future.\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 assertUnreachable(x: never, msg: string): never {\n throw new Error(msg + ` ${JSON.stringify(x)}`)\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 { capitalize, CircularProgress, Stack, useTheme } from \"@mui/material\"\nimport { lowerFirst } from \"lodash-es\"\nimport { useEffect, useState } from \"react\"\nimport { makeErrorMessage } from \"./utils/errorHandling\"\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 const theme = useTheme()\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 sx={{ color: theme.palette.text.primary }}\n >\n {props.error ? (\n <LoadingErrorMessage\n loadingMessage={props.message}\n error={props.error}\n />\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: theme.palette.text.secondary,\n }}\n >\n {\"This is taking longer than expected...\"}\n </Stack>\n </>\n )}\n </Stack>\n )\n}\n\nexport const LoadingErrorMessage = (props: {\n loadingMessage?: string\n error: unknown\n}) => {\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 {(props.loadingMessage\n ? `Error while ${lowerFirst(capitalize(props.loadingMessage))} - `\n : \"\") + errorMessage}\n <br />\n {stack && <pre>{stack}</pre>}\n </Stack>\n )\n}\n","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}","/**\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 isHostComponent from \"../isHostComponent/index.js\";\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 {\n ...otherProps,\n ownerState: {\n ...otherProps.ownerState,\n ...ownerState\n }\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 clsx from 'clsx';\nimport extractEventHandlers from \"../extractEventHandlers/index.js\";\nimport omitEventHandlers from \"../omitEventHandlers/index.js\";\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?.className, className, externalForwardedProps?.className, externalSlotProps?.className);\n const mergedStyle = {\n ...additionalProps?.style,\n ...externalForwardedProps?.style,\n ...externalSlotProps?.style\n };\n const props = {\n ...additionalProps,\n ...externalForwardedProps,\n ...externalSlotProps\n };\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({\n ...externalForwardedProps,\n ...externalSlotProps\n });\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?.className, additionalProps?.className, className, externalForwardedProps?.className, externalSlotProps?.className);\n const mergedStyle = {\n ...internalSlotProps?.style,\n ...additionalProps?.style,\n ...externalForwardedProps?.style,\n ...externalSlotProps?.style\n };\n const props = {\n ...internalSlotProps,\n ...additionalProps,\n ...otherPropsWithoutEventHandlers,\n ...componentsPropsWithoutEventHandlers\n };\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 useForkRef from \"../useForkRef/index.js\";\nimport appendOwnerState from \"../appendOwnerState/index.js\";\nimport mergeSlotProps from \"../mergeSlotProps/index.js\";\nimport resolveComponentProps from \"../resolveComponentProps/index.js\";\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 const {\n elementType,\n externalSlotProps,\n ownerState,\n skipResolvingSlotProps = false,\n ...other\n } = parameters;\n const resolvedComponentsProps = skipResolvingSlotProps ? {} : resolveComponentProps(externalSlotProps, ownerState);\n const {\n props: mergedProps,\n internalRef\n } = mergeSlotProps({\n ...other,\n externalSlotProps: resolvedComponentsProps\n });\n const ref = useForkRef(internalRef, resolvedComponentsProps?.ref, parameters.additionalProps?.ref);\n const props = appendOwnerState(elementType, {\n ...mergedProps,\n ref\n }, ownerState);\n return props;\n}\nexport default useSlotProps;","/**\n * Returns a boolean indicating if the event's target has :focus-visible\n */\nexport default function isFocusVisible(element) {\n try {\n return element.matches(':focus-visible');\n } catch (error) {\n // Do not warn on jsdom tests, otherwise all tests that rely on focus have to be skipped\n // Tests that rely on `:focus-visible` will still have to be skipped in jsdom\n if (process.env.NODE_ENV !== 'production' && !/jsdom/.test(window.navigator.userAgent)) {\n console.warn(['MUI: The `:focus-visible` pseudo class is not supported in this browser.', 'Some components rely on this feature to work properly.'].join('\\n'));\n }\n }\n return false;\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;","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 * as React from 'react';\nimport ownerDocument from '@mui/utils/ownerDocument';\nimport useControlled from '@mui/utils/useControlled';\nimport useEnhancedEffect from '@mui/utils/useEnhancedEffect';\nimport useEventCallback from '@mui/utils/useEventCallback';\nimport useForkRef from '@mui/utils/useForkRef';\nimport isFocusVisible from '@mui/utils/isFocusVisible';\nimport visuallyHidden from '@mui/utils/visuallyHidden';\nimport clamp from '@mui/utils/clamp';\nimport extractEventHandlers from '@mui/utils/extractEventHandlers';\nimport areArraysEqual from \"../utils/areArraysEqual.js\";\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction getNewValue(currentValue, step, direction, min, max) {\n return direction === 1 ? Math.min(currentValue + step, max) : Math.max(currentValue - step, min);\n}\nfunction asc(a, b) {\n return a - b;\n}\nfunction findClosest(values, currentValue) {\n const {\n index: closestIndex\n } = 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) ?? {};\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 const doc = ownerDocument(sliderRef.current);\n if (!sliderRef.current?.contains(doc.activeElement) || Number(doc?.activeElement?.getAttribute('data-index')) !== activeIndex) {\n sliderRef.current?.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}\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(undefined);\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 // lastChangedValue is updated whenever onChange is triggered.\n const lastChangedValue = React.useRef(null);\n const [valueDerived, setValueState] = useControlled({\n controlled: valueProp,\n default: 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 lastChangedValue.current = value;\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 [focusedThumbIndex, setFocusedThumbIndex] = React.useState(-1);\n const sliderRef = React.useRef(null);\n const handleRef = useForkRef(ref, sliderRef);\n const createHandleHiddenInputFocus = otherHandlers => event => {\n const index = Number(event.currentTarget.getAttribute('data-index'));\n if (isFocusVisible(event.target)) {\n setFocusedThumbIndex(index);\n }\n setOpen(index);\n otherHandlers?.onFocus?.(event);\n };\n const createHandleHiddenInputBlur = otherHandlers => event => {\n if (!isFocusVisible(event.target)) {\n setFocusedThumbIndex(-1);\n }\n setOpen(-1);\n otherHandlers?.onBlur?.(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, lastChangedValue.current ?? newValue);\n }\n };\n const createHandleHiddenInputKeyDown = otherHandlers => event => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'PageUp', 'PageDown', 'Home', 'End'].includes(event.key)) {\n event.preventDefault();\n const index = Number(event.currentTarget.getAttribute('data-index'));\n const value = values[index];\n let newValue = null;\n // Keys actions that change the value by more than the most granular `step`\n // value are only applied if the step not `null`.\n // When step is `null`, the `marks` prop is used instead to define valid values.\n if (step != null) {\n const stepSize = event.shiftKey ? shiftStep : step;\n switch (event.key) {\n case 'ArrowUp':\n newValue = getNewValue(value, stepSize, 1, min, max);\n break;\n case 'ArrowRight':\n newValue = getNewValue(value, stepSize, isRtl ? -1 : 1, min, max);\n break;\n case 'ArrowDown':\n newValue = getNewValue(value, stepSize, -1, min, max);\n break;\n case 'ArrowLeft':\n newValue = getNewValue(value, stepSize, isRtl ? 1 : -1, min, max);\n break;\n case 'PageUp':\n newValue = getNewValue(value, shiftStep, 1, min, max);\n break;\n case 'PageDown':\n newValue = getNewValue(value, shiftStep, -1, min, max);\n break;\n case 'Home':\n newValue = min;\n break;\n case 'End':\n newValue = max;\n break;\n default:\n break;\n }\n } else if (marks) {\n const maxMarksValue = marksValues[marksValues.length - 1];\n const currentMarkIndex = marksValues.indexOf(value);\n const decrementKeys = [isRtl ? 'ArrowRight' : 'ArrowLeft', 'ArrowDown', 'PageDown', 'Home'];\n const incrementKeys = [isRtl ? 'ArrowLeft' : 'ArrowRight', 'ArrowUp', 'PageUp', 'End'];\n if (decrementKeys.includes(event.key)) {\n if (currentMarkIndex === 0) {\n newValue = marksValues[0];\n } else {\n newValue = marksValues[currentMarkIndex - 1];\n }\n } else if (incrementKeys.includes(event.key)) {\n if (currentMarkIndex === marksValues.length - 1) {\n newValue = maxMarksValue;\n } else {\n newValue = marksValues[currentMarkIndex + 1];\n }\n }\n }\n if (newValue != null) {\n changeValue(event, newValue);\n }\n }\n otherHandlers?.onKeyDown?.(event);\n };\n useEnhancedEffect(() => {\n if (disabled && sliderRef.current.contains(document.activeElement)) {\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.activeElement?.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 otherHandlers.onChange?.(event);\n // this handles value change by Pointer or Touch events\n // @ts-ignore\n changeValue(event, event.target.valueAsNumber);\n };\n const previousIndex = React.useRef(undefined);\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.startsWith('vertical')) {\n percent = (bottom - finger.y) / height;\n } else {\n percent = (finger.x - left) / width;\n }\n if (axis.includes('-reverse')) {\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, lastChangedValue.current ?? 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 otherHandlers.onMouseDown?.(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 = {\n ...externalHandlers,\n ...ownEventHandlers\n };\n return {\n ...externalProps,\n ref: handleRef,\n ...mergedEventHandlers\n };\n };\n const createHandleMouseOver = otherHandlers => event => {\n otherHandlers.onMouseOver?.(event);\n const index = Number(event.currentTarget.getAttribute('data-index'));\n setOpen(index);\n };\n const createHandleMouseLeave = otherHandlers => event => {\n otherHandlers.onMouseLeave?.(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 {\n ...externalProps,\n ...externalHandlers,\n ...ownEventHandlers\n };\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 let cssWritingMode;\n if (orientation === 'vertical') {\n cssWritingMode = isRtl ? 'vertical-rl' : 'vertical-lr';\n }\n const getHiddenInputProps = (externalProps = {}) => {\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 = {\n ...externalHandlers,\n ...ownEventHandlers\n };\n return {\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 ?? undefined,\n disabled,\n ...externalProps,\n ...mergedEventHandlers,\n style: {\n ...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 writingMode: cssWritingMode\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}","/**\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 isHostComponent from \"./isHostComponent.js\";\nconst shouldSpreadAdditionalProps = Slot => {\n return !Slot || !isHostComponent(Slot);\n};\nexport default shouldSpreadAdditionalProps;","/**\n * Type guard to check if the object has a \"main\" property of type string.\n *\n * @param obj - the object to check\n * @returns boolean\n */\nfunction hasCorrectMainProperty(obj) {\n return typeof obj.main === 'string';\n}\n/**\n * Checks if the object conforms to the SimplePaletteColorOptions type.\n * The minimum requirement is that the object has a \"main\" property of type string, this is always checked.\n * Optionally, you can pass additional properties to check.\n *\n * @param obj - The object to check\n * @param additionalPropertiesToCheck - Array containing \"light\", \"dark\", and/or \"contrastText\"\n * @returns boolean\n */\nfunction checkSimplePaletteColorValues(obj, additionalPropertiesToCheck = []) {\n if (!hasCorrectMainProperty(obj)) {\n return false;\n }\n for (const value of additionalPropertiesToCheck) {\n if (!obj.hasOwnProperty(value) || typeof obj[value] !== 'string') {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Creates a filter function used to filter simple palette color options.\n * The minimum requirement is that the object has a \"main\" property of type string, this is always checked.\n * Optionally, you can pass additional properties to check.\n *\n * @param additionalPropertiesToCheck - Array containing \"light\", \"dark\", and/or \"contrastText\"\n * @returns ([, value]: [any, PaletteColorOptions]) => boolean\n */\nexport default function createSimplePaletteValueFilter(additionalPropertiesToCheck = []) {\n return ([, value]) => value && checkSimplePaletteColorValues(value, additionalPropertiesToCheck);\n}","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.js\";\nimport { jsx as _jsx, 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: 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 * 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 { useSlider, valueToPercent } from \"./useSlider.js\";\nimport isHostComponent from \"../utils/isHostComponent.js\";\nimport { styled } from \"../zero-styled/index.js\";\nimport memoTheme from \"../utils/memoTheme.js\";\nimport { useDefaultProps } from \"../DefaultPropsProvider/index.js\";\nimport slotShouldForwardProp from \"../styles/slotShouldForwardProp.js\";\nimport shouldSpreadAdditionalProps from \"../utils/shouldSpreadAdditionalProps.js\";\nimport capitalize from \"../utils/capitalize.js\";\nimport createSimplePaletteValueFilter from \"../utils/createSimplePaletteValueFilter.js\";\nimport BaseSliderValueLabel from \"./SliderValueLabel.js\";\nimport sliderClasses, { getSliderUtilityClass } from \"./sliderClasses.js\";\nimport { jsx as _jsx, 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})(memoTheme(({\n theme\n}) => ({\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.entries(theme.palette).filter(createSimplePaletteValueFilter()).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})));\nexport const SliderRail = styled('span', {\n name: 'MuiSlider',\n slot: '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})(memoTheme(({\n theme\n}) => {\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.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color,\n track: 'inverted'\n },\n style: {\n ...(theme.vars ? {\n backgroundColor: theme.vars.palette.Slider[`${color}Track`],\n borderColor: theme.vars.palette.Slider[`${color}Track`]\n } : {\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 }),\n ...theme.applyStyles('dark', {\n borderColor: darken(theme.palette[color].main, 0.5)\n })\n })\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})(memoTheme(({\n theme\n}) => ({\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.entries(theme.palette).filter(createSimplePaletteValueFilter()).map(([color]) => ({\n props: {\n color\n },\n style: {\n [`&:hover, &.${sliderClasses.focusVisible}`]: {\n ...(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}`]: {\n ...(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})));\nconst SliderValueLabel = styled(BaseSliderValueLabel, {\n name: 'MuiSlider',\n slot: 'ValueLabel'\n})(memoTheme(({\n theme\n}) => ({\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})));\nprocess.env.NODE_ENV !== \"production\" ? SliderValueLabel.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 * @ignore\n */\n children: PropTypes.element.isRequired,\n /**\n * @ignore\n */\n index: PropTypes.number.isRequired,\n /**\n * @ignore\n */\n open: PropTypes.bool.isRequired,\n /**\n * @ignore\n */\n value: PropTypes.node\n} : void 0;\nexport { SliderValueLabel };\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})(memoTheme(({\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})(memoTheme(({\n theme\n}) => ({\n ...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 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 name,\n onChange,\n onChangeCommitted,\n orientation = 'horizontal',\n shiftStep = 10,\n size = 'medium',\n step = 1,\n scale = Identity,\n slotProps,\n slots,\n tabIndex,\n track = 'normal',\n value: valueProp,\n valueLabelDisplay = 'off',\n valueLabelFormat = Identity,\n ...other\n } = props;\n const ownerState = {\n ...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({\n ...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 = slots?.root ?? components.Root ?? SliderRoot;\n const RailSlot = slots?.rail ?? components.Rail ?? SliderRail;\n const TrackSlot = slots?.track ?? components.Track ?? SliderTrack;\n const ThumbSlot = slots?.thumb ?? components.Thumb ?? SliderThumb;\n const ValueLabelSlot = slots?.valueLabel ?? components.ValueLabel ?? SliderValueLabel;\n const MarkSlot = slots?.mark ?? components.Mark ?? SliderMark;\n const MarkLabelSlot = slots?.markLabel ?? components.MarkLabel ?? SliderMarkLabel;\n const InputSlot = slots?.input ?? components.Input ?? 'input';\n const rootSlotProps = slotProps?.root ?? componentsProps.root;\n const railSlotProps = slotProps?.rail ?? componentsProps.rail;\n const trackSlotProps = slotProps?.track ?? componentsProps.track;\n const thumbSlotProps = slotProps?.thumb ?? componentsProps.thumb;\n const valueLabelSlotProps = slotProps?.valueLabel ?? componentsProps.valueLabel;\n const markSlotProps = slotProps?.mark ?? componentsProps.mark;\n const markLabelSlotProps = slotProps?.markLabel ?? componentsProps.markLabel;\n const inputSlotProps = slotProps?.input ?? componentsProps.input;\n const rootProps = useSlotProps({\n elementType: RootSlot,\n getSlotProps: getRootProps,\n externalSlotProps: rootSlotProps,\n externalForwardedProps: other,\n additionalProps: {\n ...(shouldSpreadAdditionalProps(RootSlot) && {\n as: component\n })\n },\n ownerState: {\n ...ownerState,\n ...rootSlotProps?.ownerState\n },\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: {\n ...axisProps[axis].offset(trackOffset),\n ...axisProps[axis].leap(trackLeap)\n }\n },\n ownerState: {\n ...ownerState,\n ...trackSlotProps?.ownerState\n },\n className: classes.track\n });\n const thumbProps = useSlotProps({\n elementType: ThumbSlot,\n getSlotProps: getThumbProps,\n externalSlotProps: thumbSlotProps,\n ownerState: {\n ...ownerState,\n ...thumbSlotProps?.ownerState\n },\n className: classes.thumb\n });\n const valueLabelProps = useSlotProps({\n elementType: ValueLabelSlot,\n externalSlotProps: valueLabelSlotProps,\n ownerState: {\n ...ownerState,\n ...valueLabelSlotProps?.ownerState\n },\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, {\n ...rootProps,\n children: [/*#__PURE__*/_jsx(RailSlot, {\n ...railProps\n }), /*#__PURE__*/_jsx(TrackSlot, {\n ...trackProps\n }), 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.includes(mark.value);\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, {\n \"data-index\": index,\n ...markProps,\n ...(!isHostComponent(MarkSlot) && {\n markActive\n }),\n style: {\n ...style,\n ...markProps.style\n },\n className: clsx(markProps.className, markActive && classes.markActive)\n }), mark.label != null ? /*#__PURE__*/_jsx(MarkLabelSlot, {\n \"aria-hidden\": true,\n \"data-index\": index,\n ...markLabelProps,\n ...(!isHostComponent(MarkLabelSlot) && {\n markLabelActive: markActive\n }),\n style: {\n ...style,\n ...markLabelProps.style\n },\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 /*#__PURE__*/ /* 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. */_jsx(ValueLabelComponent, {\n ...(!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 }),\n ...valueLabelProps,\n children: /*#__PURE__*/_jsx(ThumbSlot, {\n \"data-index\": index,\n ...thumbProps,\n className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),\n style: {\n ...style,\n ...getThumbStyle(index),\n ...thumbProps.style\n },\n children: /*#__PURE__*/_jsx(InputSlot, {\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 })\n }, index);\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 a future major release. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\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 a future major release. See [Migrating from deprecated APIs](https://mui.com/material-ui/migration/migrating-from-deprecated-apis/) for more details.\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.node,\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 {Value} 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 {Value} 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.node,\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 baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nexport default isNumber;\n","import { Stack, Typography, useTheme, type SxProps } from \"@mui/material\"\nimport Slider from \"@mui/material/Slider\"\nimport isNumber from \"lodash-es/isNumber\"\nimport { observer } from \"mobx-react-lite\"\nimport type { ReactNode } from \"react\"\nimport { useTranslation } from \"react-i18next\"\nimport type { JoggingStore } from \"./jogging/JoggingStore\"\n\ntype VelocitySliderProps = {\n min: number\n max: number\n velocity: number\n onVelocityChange: (newVelocity: number) => void\n disabled?: boolean\n renderValue?: (value: number) => ReactNode\n store: JoggingStore\n}\n\n/** A slider for controlling the movement velocity of a robot */\nexport const VelocitySlider = observer((props: VelocitySliderProps) => {\n const theme = useTheme()\n const { store } = props\n const { t } = useTranslation()\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 <Stack direction=\"row\" gap={2} alignItems=\"center\">\n {store.showVelocityLegend && (\n <Typography\n sx={{\n color:\n theme.componentsExt?.JoggingPanel?.VelocitySlider\n ?.sliderLegendColor,\n fontSize: \"14px\",\n }}\n >\n {t(\"Jogging.Velocity.bt\")}\n </Typography>\n )}\n <Slider\n value={props.velocity}\n color=\"secondary\"\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 {store.showVelocitySliderLabel &&\n (props.renderValue ? (\n props.renderValue(props.velocity)\n ) : (\n <VelocitySliderLabel value={props.velocity.toString()} />\n ))}\n </Stack>\n )\n})\n\ntype VelocitySliderLabelProps = {\n value: string\n sx?: SxProps\n}\n\nexport function VelocitySliderLabel({ value, sx }: VelocitySliderLabelProps) {\n const theme = useTheme()\n return (\n <Stack\n direction={\"row\"}\n justifyContent={\"center\"}\n alignItems={\"center\"}\n gap={\"5px\"}\n sx={{\n padding: \"6px 12px\",\n background: theme.palette.backgroundPaperElevation?.[8],\n borderRadius: \"10px\",\n minWidth: \"111px\",\n ...sx,\n }}\n >\n <Typography\n component=\"span\"\n sx={{\n textAlign: \"right\",\n fontSize: \"14px\",\n opacity: 0.8,\n color: theme.palette.text.primary,\n whiteSpace: \"nowrap\",\n }}\n >\n {value}\n </Typography>\n </Stack>\n )\n}\n"],"names":["RtlContext","React","PropTypes","useRtl","useControlled","props","controlled","defaultProp","name","state","isControlled","valueState","setValue","value","defaultValue","setValueIfUncontrolled","newValue","freeGlobal","freeSelf","root","Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","jointValuesEqual","oldJointValues","newJointValues","changeDeltaThreshold","jointIndex","poseEqual","oldTcp","newTcp","changedDelta","tcpMotionEqual","oldMotionState","newMotionState","unwrapRotationVector","newRotationVectorApi","currentRotationVectorApi","currentRotationVector","Vector3","newRotationVector","currentAngle","currentAxis","newAngle","newAxis","angleDifference","tryStringifyJson","json","assertUnreachable","x","msg","makeErrorMessage","err","AxiosError","_a","_b","_c","_d","LoadingCover","softTimeout","showSlowLoadingMessage","setShowSlowLoadingMessage","useState","theme","useTheme","useEffect","timeout","jsx","Stack","LoadingErrorMessage","jsxs","Fragment","CircularProgress","errorMessage","stack","lowerFirst","capitalize","chainPropTypes","propType1","propType2","args","isHostComponent","element","appendOwnerState","elementType","otherProps","ownerState","extractEventHandlers","object","excludeKeys","prop","omitEventHandlers","mergeSlotProps","parameters","getSlotProps","additionalProps","externalSlotProps","externalForwardedProps","className","joinedClasses","clsx","mergedStyle","eventHandlers","componentsPropsWithoutEventHandlers","otherPropsWithoutEventHandlers","internalSlotProps","resolveComponentProps","componentProps","slotState","useSlotProps","skipResolvingSlotProps","other","resolvedComponentsProps","mergedProps","internalRef","ref","useForkRef","isFocusVisible","visuallyHidden","areArraysEqual","array1","array2","itemComparer","a","b","index","INTENTIONAL_DRAG_COUNT_THRESHOLD","getNewValue","currentValue","step","direction","min","max","asc","findClosest","values","closestIndex","acc","distance","trackFinger","event","touchId","touchEvent","i","touch","valueToPercent","percentToValue","percent","getDecimalPrecision","num","parts","matissaDecimalPart","decimalPart","roundValueToStep","nearest","setValueIndex","output","focusThumb","sliderRef","activeIndex","setActive","doc","ownerDocument","areValuesEqual","oldValue","axisProps","Identity","cachedSupportsTouchActionNone","doesSupportTouchActionNone","useSlider","ariaLabelledby","disabled","disableSwap","isRtl","marksProp","onChange","onChangeCommitted","orientation","scale","shiftStep","tabIndex","valueProp","active","open","setOpen","dragging","setDragging","moveCount","lastChangedValue","valueDerived","setValueState","handleChange","thumbIndex","nativeEvent","clonedEvent","range","clamp","marks","_","marksValues","mark","focusedThumbIndex","setFocusedThumbIndex","handleRef","createHandleHiddenInputFocus","otherHandlers","createHandleHiddenInputBlur","changeValue","valueInput","marksIndex","maxMarksValue","previousValue","createHandleHiddenInputKeyDown","stepSize","currentMarkIndex","decrementKeys","incrementKeys","useEnhancedEffect","createHandleHiddenInputChange","previousIndex","axis","getFingerNewValue","finger","move","slider","width","height","bottom","left","handleTouchMove","useEventCallback","handleTouchEnd","stopListening","handleTouchStart","createHandleMouseDown","trackOffset","trackLeap","getRootProps","externalProps","externalHandlers","ownEventHandlers","mergedEventHandlers","createHandleMouseOver","createHandleMouseLeave","getThumbProps","getThumbStyle","cssWritingMode","shouldSpreadAdditionalProps","Slot","hasCorrectMainProperty","obj","checkSimplePaletteColorValues","additionalPropertiesToCheck","createSimplePaletteValueFilter","getSliderUtilityClass","slot","generateUtilityClass","sliderClasses","generateUtilityClasses","useValueLabelClasses","SliderValueLabel","children","classes","_jsxs","_jsx","SliderRoot","styled","styles","memoTheme","color","SliderRail","SliderTrack","lighten","darken","SliderThumb","alpha","BaseSliderValueLabel","SliderMark","slotShouldForwardProp","markActive","SliderMarkLabel","useUtilityClasses","marked","track","size","slots","composeClasses","Forward","Slider","inputProps","useDefaultProps","ariaLabel","ariaValuetext","component","components","componentsProps","classesProp","getAriaLabel","getAriaValueText","slotProps","valueLabelDisplay","valueLabelFormat","getHiddenInputProps","RootSlot","RailSlot","TrackSlot","ThumbSlot","ValueLabelSlot","MarkSlot","MarkLabelSlot","InputSlot","rootSlotProps","railSlotProps","trackSlotProps","thumbSlotProps","valueLabelSlotProps","markSlotProps","markLabelSlotProps","inputSlotProps","rootProps","railProps","trackProps","thumbProps","valueLabelProps","markProps","markLabelProps","inputSliderProps","style","ValueLabelComponent","numberTag","isNumber","VelocitySlider","observer","store","t","useTranslation","onSliderChange","_event","newVelocity","Typography","VelocitySliderLabel","sx"],"mappings":";;;;;;;;;;;AAKA,MAAMA,KAA0B,gBAAAC,EAAM,cAAe;AAUrD,QAAQ,IAAI,aAAa,iBACbC,EAAU,MACbA,EAAU;AAEZ,MAAMC,KAAS,MACNF,EAAM,WAAWD,EAAU,KACzB;AChBH,SAASI,GAAcC,GAAO;AAC3C,QAAM;AAAA,IACJ,YAAAC;AAAA,IACA,SAASC;AAAA,IACT,MAAAC;AAAA,IACA,OAAAC,IAAQ;AAAA,EACZ,IAAMJ,GAEE;AAAA,IACJ,SAASK;AAAA,EACV,IAAGT,EAAM,OAAOK,MAAe,MAAS,GACnC,CAACK,GAAYC,CAAQ,IAAIX,EAAM,SAASM,CAAW,GACnDM,IAAQH,IAAeJ,IAAaK;AAC1C,MAAI,QAAQ,IAAI,aAAa,cAAc;AACzC,IAAAV,EAAM,UAAU,MAAM;AACpB,MAAIS,OAAkBJ,MAAe,WACnC,QAAQ,MAAM,CAAC,oCAAoCI,IAAe,KAAK,IAAI,cAAcD,CAAK,aAAaD,CAAI,UAAUE,IAAe,OAAO,EAAE,eAAe,+EAA+E,qDAAqDF,CAAI,+CAAoD,8HAA8H,sDAAsD,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA,IAE/hB,GAAE,CAACC,GAAOD,GAAMF,CAAU,CAAC;AAC5B,UAAM;AAAA,MACJ,SAASQ;AAAA,IACf,IAAQb,EAAM,OAAOM,CAAW;AAC5B,IAAAN,EAAM,UAAU,MAAM;AAGpB,MAAI,CAACS,KAAgB,CAAC,OAAO,GAAGI,GAAcP,CAAW,KACvD,QAAQ,MAAM,CAAC,4CAA4CE,CAAK,6BAA6BD,CAAI,8EAAmFA,CAAI,GAAG,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA,IAE1M,GAAE,CAAC,KAAK,UAAUD,CAAW,CAAC,CAAC;AAAA,EACpC;AACE,QAAMQ,IAAyBd,EAAM,YAAY,CAAAe,MAAY;AAC3D,IAAKN,KACHE,EAASI,CAAQ;AAAA,EAEpB,GAAE,EAAE;AAML,SAAO,CAACH,GAAOE,CAAsB;AACvC;AC7CG,IAACE,KAAa,OAAO,UAAU,YAAY,UAAU,OAAO,WAAW,UAAU,QCEhFC,KAAW,OAAO,QAAQ,YAAY,QAAQ,KAAK,WAAW,UAAU,MAGxEC,KAAOF,MAAcC,MAAY,SAAS,aAAa,EAAC,GCHxDE,KAASD,GAAK,QCAdE,KAAc,OAAO,WAGrBC,KAAiBD,GAAY,gBAO7BE,KAAuBF,GAAY,UAGnCG,KAAiBJ,KAASA,GAAO,cAAc;AASnD,SAASK,GAAUZ,GAAO;AACxB,MAAIa,IAAQJ,GAAe,KAAKT,GAAOW,EAAc,GACjDG,IAAMd,EAAMW,EAAc;AAE9B,MAAI;AACF,IAAAX,EAAMW,EAAc,IAAI;AACxB,QAAII,IAAW;AAAA,EAChB,QAAW;AAAA,EAAA;AAEZ,MAAIC,IAASN,GAAqB,KAAKV,CAAK;AAC5C,SAAIe,MACEF,IACFb,EAAMW,EAAc,IAAIG,IAExB,OAAOd,EAAMW,EAAc,IAGxBK;AACT;AC1CA,IAAIR,KAAc,OAAO,WAOrBE,KAAuBF,GAAY;AASvC,SAASS,GAAejB,GAAO;AAC7B,SAAOU,GAAqB,KAAKV,CAAK;AACxC;ACdA,IAAIkB,KAAU,iBACVC,KAAe,sBAGfR,KAAiBJ,KAASA,GAAO,cAAc;AASnD,SAASa,GAAWpB,GAAO;AACzB,SAAIA,KAAS,OACJA,MAAU,SAAYmB,KAAeD,KAEtCP,MAAkBA,MAAkB,OAAOX,CAAK,IACpDY,GAAUZ,CAAK,IACfiB,GAAejB,CAAK;AAC1B;ACDA,SAASqB,GAAarB,GAAO;AAC3B,SAAOA,KAAS,QAAQ,OAAOA,KAAS;AAC1C;ACtBgB,SAAAsB,GACdC,GACAC,GACAC,GACS;AACL,MAAAD,EAAe,WAAWD,EAAe;AACpC,WAAA;AAGT,WAASG,IAAa,GAAGA,IAAaF,EAAe,QAAQE;AAC3D;AAAA;AAAA,MAEE,KAAK,IAAIF,EAAeE,CAAU,IAAKH,EAAeG,CAAU,CAAE,IAClED;AAAA;AAEO,aAAA;AAIJ,SAAA;AACT;AAEgB,SAAAE,GACdC,GACAC,GACAJ,GACS;AAQP,MANGG,MAAW,UAAaC,KAAYD,KAAUC,MAAW,WAM5DD,KAAA,gBAAAA,EAAQ,iBAAgB,WACxBC,KAAA,gBAAAA,EAAQ,iBAAgB,WACxBD,KAAA,gBAAAA,EAAQ,cAAa,WACrBC,KAAA,gBAAAA,EAAQ,cAAa;AAEd,WAAA;AAIL,MAAAD,MAAW,UAAaC,MAAW;AAC9B,WAAA;AAGT,MAAIC,IAAe;AACH,SAAAA,KAAA,KAAK,IAAIF,EAAO,YAAY,CAAC,IAAIC,EAAO,YAAY,CAAC,CAAC,GACtDC,KAAA,KAAK,IAAIF,EAAO,YAAY,CAAC,IAAIC,EAAO,YAAY,CAAC,CAAC,GACtDC,KAAA,KAAK,IAAIF,EAAO,YAAY,CAAC,IAAIC,EAAO,YAAY,CAAC,CAAC,GACtDC,KAAA,KAAK,IAAIF,EAAO,SAAS,CAAC,IAAIC,EAAO,SAAS,CAAC,CAAC,GAChDC,KAAA,KAAK,IAAIF,EAAO,SAAS,CAAC,IAAIC,EAAO,SAAS,CAAC,CAAC,GAChDC,KAAA,KAAK,IAAIF,EAAO,SAAS,CAAC,IAAIC,EAAO,SAAS,CAAC,CAAC,GAEzDC,KAAgBL;AACzB;AAGgB,SAAAM,GACdC,GACAC,GACAR,GACS;AACT,SACEO,EAAe,sBAAsBC,EAAe,qBACpDD,EAAe,QAAQC,EAAe,OACtCN;AAAA,IACEK,EAAe;AAAA,IACfC,EAAe;AAAA,IACfR;AAAA,EACF;AAEJ;AAEgB,SAAAS,GACdC,GACAC,GACe;AACf,QAAMC,IAAwB,IAAIC;AAAA,IAChCF,EAAyB,CAAC;AAAA,IAC1BA,EAAyB,CAAC;AAAA,IAC1BA,EAAyB,CAAC;AAAA,EAC5B,GAEMG,IAAoB,IAAID;AAAA,IAC5BH,EAAqB,CAAC;AAAA,IACtBA,EAAqB,CAAC;AAAA,IACtBA,EAAqB,CAAC;AAAA,EACxB,GAEMK,IAAeH,EAAsB,OAAO,GAC5CI,IAAcJ,EAAsB,UAAU;AAEhD,MAAAK,IAAWH,EAAkB,OAAO,GACpCI,IAAUJ,EAAkB,UAAU;AAG1C,EAAII,EAAQ,IAAIF,CAAW,IAAI,MAC7BC,IAAW,CAACA,GACFC,IAAAA,EAAQ,eAAe,EAAI;AAKvC,MAAIC,IAAkBF,IAAWF;AAE/B,SAAAI,KAAA,IAAM,KAAK,KAAK,KAAK,OAAOA,IAAkB,KAAK,OAAO,IAAM,KAAK,GAAG,GAE1EF,IAAWF,IAAeI,GAEnB,CAAC,GAAGD,EAAQ,eAAeD,CAAQ,CAAC;AAC7C;ACpGO,SAASG,GAAiBC,GAAmC;AAC9D,MAAA;AACK,WAAA,KAAK,UAAUA,CAAI;AAAA,EAAA,QACpB;AACC;AAAA,EAAA;AAEX;ACCgB,SAAAC,GAAkBC,GAAUC,GAAoB;AACxD,QAAA,IAAI,MAAMA,IAAM,IAAI,KAAK,UAAUD,CAAC,CAAC,EAAE;AAC/C;AAEO,SAASE,GAAiBC,GAAc;;AAC7C,SAAIA,aAAeC,MAAcD,EAAI,SAAS,gBACrC,4EACEA,aAAeC,MAAcD,EAAI,WACnC,IAAGE,IAAAF,EAAI,aAAJ,gBAAAE,EAAc,MAAM,KAAIC,IAAAH,EAAI,aAAJ,gBAAAG,EAAc,UAAU,UAASC,IAAAJ,EAAI,aAAJ,gBAAAI,EAAc,OAAO,GAAG,KAAK,KAAK,WAAUC,IAAAL,EAAI,aAAJ,gBAAAK,EAAc,IAAI,CAAC,KACzHL,aAAe,QACjBA,EAAI,UAEJ,qBAAqBN,GAAiBM,CAAG,KAAKA,CAAG;AAE5D;AChCa,MAAAM,KAAe,CAACjE,MAIvB;AACE,QAAAkE,IAAclE,EAAM,eAAe,KAEnC,CAACmE,GAAwBC,CAAyB,IAAIC,GAAS,EAAK,GACpEC,IAAQC,GAAS;AAEvB,SAAAC,GAAU,MAAM;AACR,UAAAC,IAAU,WAAW,MAAM;AAC/B,MAAAL,EAA0B,EAAI;AAAA,OAC7BF,CAAW;AAEP,WAAA,MAAM,aAAaO,CAAO;AAAA,EAAA,CAClC,GAGCC,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,YAAW;AAAA,MACX,gBAAe;AAAA,MACf,IAAI,EAAE,OAAOL,EAAM,QAAQ,KAAK,QAAQ;AAAA,MAEvC,YAAM,QACLI,gBAAAA,EAAA;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,gBAAgB5E,EAAM;AAAA,UACtB,OAAOA,EAAM;AAAA,QAAA;AAAA,MAAA,IAIb6E,gBAAAA,EAAA,KAAAC,YAAA,EAAA,UAAA;AAAA,QAAAJ,gBAAAA,EAAA,IAACK,IAAiB,EAAA,IAAI,EAAE,cAAc,UAAU;AAAA,QAC/C,CAAC,CAAC/E,EAAM,WAAY0E,gBAAAA,EAAA,IAAA,OAAA,EAAK,YAAM,SAAQ;AAAA,QACxCA,gBAAAA,EAAA;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAI;AAAA,cACF,YAAYR,IAAyB,YAAY;AAAA,cACjD,WAAW;AAAA,cACX,OAAOG,EAAM,QAAQ,KAAK;AAAA,YAC5B;AAAA,YAEC,UAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH,EACF,CAAA;AAAA,IAAA;AAAA,EAEJ;AAEJ,GAEaM,KAAsB,CAAC5E,MAG9B;AACE,QAAAgF,IAAetB,GAAiB1D,EAAM,KAAK,GAC3CiF,IAAQjF,EAAM,iBAAiB,QAAQA,EAAM,MAAM,QAAQ,MAC3DsE,IAAQC,GAAS;AAGrB,SAAAM,gBAAAA,EAAA;AAAA,IAACF;AAAA,IAAA;AAAA,MACC,IAAI;AAAA,QACF,WAAW;AAAA,QACX,UAAU;AAAA,QACV,SAAS;AAAA,QACT,UAAU;AAAA,QACV,OAAOL,EAAM,QAAQ,MAAM;AAAA,QAC3B,SAAS;AAAA,UACP,YAAY;AAAA,UACZ,WAAW;AAAA,UACX,eAAe;AAAA,QAAA;AAAA,MAEnB;AAAA,MAEE,UAAA;AAAA,SAAMtE,EAAA,iBACJ,eAAekF,GAAWC,GAAWnF,EAAM,cAAc,CAAC,CAAC,QAC3D,MAAMgF;AAAA,8BACT,MAAG,EAAA;AAAA,QACHC,KAAUP,gBAAAA,EAAAA,IAAA,OAAA,EAAK,UAAMO,EAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACxB;AAEJ;ACrFe,SAASG,GAAeC,GAAWC,GAAW;AAC3D,SAAI,QAAQ,IAAI,aAAa,eACpB,MAAM,OAER,YAAqBC,GAAM;AAChC,WAAOF,EAAU,GAAGE,CAAI,KAAKD,EAAU,GAAGC,CAAI;AAAA,EAC/C;AACH;ACJA,SAASC,GAAgBC,GAAS;AAChC,SAAO,OAAOA,KAAY;AAC5B;ACUA,SAASC,GAAiBC,GAAaC,GAAYC,GAAY;AAC7D,SAAIF,MAAgB,UAAaH,GAAgBG,CAAW,IACnDC,IAEF;AAAA,IACL,GAAGA;AAAA,IACH,YAAY;AAAA,MACV,GAAGA,EAAW;AAAA,MACd,GAAGC;AAAA,IACT;AAAA,EACG;AACH;ACnBA,SAASC,GAAqBC,GAAQC,IAAc,IAAI;AACtD,MAAID,MAAW;AACb,WAAO,CAAE;AAEX,QAAMvE,IAAS,CAAE;AACjB,gBAAO,KAAKuE,CAAM,EAAE,OAAO,CAAAE,MAAQA,EAAK,MAAM,UAAU,KAAK,OAAOF,EAAOE,CAAI,KAAM,cAAc,CAACD,EAAY,SAASC,CAAI,CAAC,EAAE,QAAQ,CAAAA,MAAQ;AAC9I,IAAAzE,EAAOyE,CAAI,IAAIF,EAAOE,CAAI;AAAA,EAC9B,CAAG,GACMzE;AACT;ACTA,SAAS0E,GAAkBH,GAAQ;AACjC,MAAIA,MAAW;AACb,WAAO,CAAE;AAEX,QAAMvE,IAAS,CAAE;AACjB,gBAAO,KAAKuE,CAAM,EAAE,OAAO,CAAAE,MAAQ,EAAEA,EAAK,MAAM,UAAU,KAAK,OAAOF,EAAOE,CAAI,KAAM,WAAW,EAAE,QAAQ,CAAAA,MAAQ;AAClH,IAAAzE,EAAOyE,CAAI,IAAIF,EAAOE,CAAI;AAAA,EAC9B,CAAG,GACMzE;AACT;ACAA,SAAS2E,GAAeC,GAAY;AAClC,QAAM;AAAA,IACJ,cAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,wBAAAC;AAAA,IACA,WAAAC;AAAA,EACJ,IAAML;AACJ,MAAI,CAACC,GAAc;AAGjB,UAAMK,KAAgBC,EAAKL,KAAA,gBAAAA,EAAiB,WAAWG,GAAWD,KAAA,gBAAAA,EAAwB,WAAWD,KAAA,gBAAAA,EAAmB,SAAS,GAC3HK,IAAc;AAAA,MAClB,GAAGN,KAAA,gBAAAA,EAAiB;AAAA,MACpB,GAAGE,KAAA,gBAAAA,EAAwB;AAAA,MAC3B,GAAGD,KAAA,gBAAAA,EAAmB;AAAA,IACvB,GACKvG,IAAQ;AAAA,MACZ,GAAGsG;AAAA,MACH,GAAGE;AAAA,MACH,GAAGD;AAAA,IACJ;AACD,WAAIG,GAAc,SAAS,MACzB1G,EAAM,YAAY0G,KAEhB,OAAO,KAAKE,CAAW,EAAE,SAAS,MACpC5G,EAAM,QAAQ4G,IAET;AAAA,MACL,OAAA5G;AAAA,MACA,aAAa;AAAA,IACd;AAAA,EACL;AAKE,QAAM6G,IAAgBf,GAAqB;AAAA,IACzC,GAAGU;AAAA,IACH,GAAGD;AAAA,EACP,CAAG,GACKO,IAAsCZ,GAAkBK,CAAiB,GACzEQ,IAAiCb,GAAkBM,CAAsB,GACzEQ,IAAoBX,EAAaQ,CAAa,GAM9CH,IAAgBC,EAAKK,KAAA,gBAAAA,EAAmB,WAAWV,KAAA,gBAAAA,EAAiB,WAAWG,GAAWD,KAAA,gBAAAA,EAAwB,WAAWD,KAAA,gBAAAA,EAAmB,SAAS,GACzJK,IAAc;AAAA,IAClB,GAAGI,KAAA,gBAAAA,EAAmB;AAAA,IACtB,GAAGV,KAAA,gBAAAA,EAAiB;AAAA,IACpB,GAAGE,KAAA,gBAAAA,EAAwB;AAAA,IAC3B,GAAGD,KAAA,gBAAAA,EAAmB;AAAA,EACvB,GACKvG,IAAQ;AAAA,IACZ,GAAGgH;AAAA,IACH,GAAGV;AAAA,IACH,GAAGS;AAAA,IACH,GAAGD;AAAA,EACJ;AACD,SAAIJ,EAAc,SAAS,MACzB1G,EAAM,YAAY0G,IAEhB,OAAO,KAAKE,CAAW,EAAE,SAAS,MACpC5G,EAAM,QAAQ4G,IAET;AAAA,IACL,OAAA5G;AAAA,IACA,aAAagH,EAAkB;AAAA,EAChC;AACH;ACpFA,SAASC,GAAsBC,GAAgBrB,GAAYsB,GAAW;AACpE,SAAI,OAAOD,KAAmB,aACrBA,EAAerB,GAAYsB,CAAS,IAEtCD;AACT;ACKA,SAASE,EAAahB,GAAY;;AAChC,QAAM;AAAA,IACJ,aAAAT;AAAA,IACA,mBAAAY;AAAA,IACA,YAAAV;AAAA,IACA,wBAAAwB,IAAyB;AAAA,IACzB,GAAGC;AAAA,EACP,IAAMlB,GACEmB,IAA0BF,IAAyB,CAAA,IAAKJ,GAAsBV,GAAmBV,CAAU,GAC3G;AAAA,IACJ,OAAO2B;AAAA,IACP,aAAAC;AAAA,EACD,IAAGtB,GAAe;AAAA,IACjB,GAAGmB;AAAA,IACH,mBAAmBC;AAAA,EACvB,CAAG,GACKG,IAAMC,GAAWF,GAAaF,KAAA,gBAAAA,EAAyB,MAAK1D,IAAAuC,EAAW,oBAAX,gBAAAvC,EAA4B,GAAG;AAKjG,SAJc6B,GAAiBC,GAAa;AAAA,IAC1C,GAAG6B;AAAA,IACH,KAAAE;AAAA,EACD,GAAE7B,CAAU;AAEf;ACjCe,SAAS+B,GAAenC,GAAS;AAC9C,MAAI;AACF,WAAOA,EAAQ,QAAQ,gBAAgB;AAAA,EACxC,QAAe;AAGd,IAAI,QAAQ,IAAI,aAAa,gBAAgB,CAAC,QAAQ,KAAK,OAAO,UAAU,SAAS,KACnF,QAAQ,KAAK,CAAC,4EAA4E,wDAAwD,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA,EAEpK;AACE,SAAO;AACT;ACdA,MAAMoC,KAAiB;AAAA,EACrB,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO;AACT;ACVA,SAASC,GAAeC,GAAQC,GAAQC,IAAe,CAACC,GAAGC,MAAMD,MAAMC,GAAG;AACxE,SAAOJ,EAAO,WAAWC,EAAO,UAAUD,EAAO,MAAM,CAACvH,GAAO4H,MAAUH,EAAazH,GAAOwH,EAAOI,CAAK,CAAC,CAAC;AAC7G;ACWA,MAAMC,KAAmC;AACzC,SAASC,GAAYC,GAAcC,GAAMC,GAAWC,GAAKC,GAAK;AAC5D,SAAOF,MAAc,IAAI,KAAK,IAAIF,IAAeC,GAAMG,CAAG,IAAI,KAAK,IAAIJ,IAAeC,GAAME,CAAG;AACjG;AACA,SAASE,GAAIV,GAAGC,GAAG;AACjB,SAAOD,IAAIC;AACb;AACA,SAASU,GAAYC,GAAQP,GAAc;AACzC,QAAM;AAAA,IACJ,OAAOQ;AAAA,EACR,IAAGD,EAAO,OAAO,CAACE,GAAKxI,GAAO4H,MAAU;AACvC,UAAMa,IAAW,KAAK,IAAIV,IAAe/H,CAAK;AAC9C,WAAIwI,MAAQ,QAAQC,IAAWD,EAAI,YAAYC,MAAaD,EAAI,WACvD;AAAA,MACL,UAAAC;AAAA,MACA,OAAAb;AAAA,IACD,IAEIY;AAAA,EACX,GAAK,IAAI,KAAK,CAAE;AACd,SAAOD;AACT;AACA,SAASG,GAAYC,GAAOC,GAAS;AAEnC,MAAIA,EAAQ,YAAY,UAAaD,EAAM,gBAAgB;AACzD,UAAME,IAAaF;AACnB,aAASG,IAAI,GAAGA,IAAID,EAAW,eAAe,QAAQC,KAAK,GAAG;AAC5D,YAAMC,IAAQF,EAAW,eAAeC,CAAC;AACzC,UAAIC,EAAM,eAAeH,EAAQ;AAC/B,eAAO;AAAA,UACL,GAAGG,EAAM;AAAA,UACT,GAAGA,EAAM;AAAA,QACV;AAAA,IAET;AACI,WAAO;AAAA,EACX;AAGE,SAAO;AAAA,IACL,GAAGJ,EAAM;AAAA,IACT,GAAGA,EAAM;AAAA,EACV;AACH;AACO,SAASK,GAAehJ,GAAOkI,GAAKC,GAAK;AAC9C,UAAQnI,IAAQkI,KAAO,OAAOC,IAAMD;AACtC;AACA,SAASe,GAAeC,GAAShB,GAAKC,GAAK;AACzC,UAAQA,IAAMD,KAAOgB,IAAUhB;AACjC;AACA,SAASiB,GAAoBC,GAAK;AAGhC,MAAI,KAAK,IAAIA,CAAG,IAAI,GAAG;AACrB,UAAMC,IAAQD,EAAI,cAAa,EAAG,MAAM,IAAI,GACtCE,IAAqBD,EAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AAChD,YAAQC,IAAqBA,EAAmB,SAAS,KAAK,SAASD,EAAM,CAAC,GAAG,EAAE;AAAA,EACvF;AACE,QAAME,IAAcH,EAAI,SAAQ,EAAG,MAAM,GAAG,EAAE,CAAC;AAC/C,SAAOG,IAAcA,EAAY,SAAS;AAC5C;AACA,SAASC,GAAiBxJ,GAAOgI,GAAME,GAAK;AAC1C,QAAMuB,IAAU,KAAK,OAAOzJ,IAAQkI,KAAOF,CAAI,IAAIA,IAAOE;AAC1D,SAAO,OAAOuB,EAAQ,QAAQN,GAAoBnB,CAAI,CAAC,CAAC;AAC1D;AACA,SAAS0B,GAAc;AAAA,EACrB,QAAApB;AAAA,EACA,UAAAnI;AAAA,EACA,OAAAyH;AACF,GAAG;AACD,QAAM+B,IAASrB,EAAO,MAAO;AAC7B,SAAAqB,EAAO/B,CAAK,IAAIzH,GACTwJ,EAAO,KAAKvB,EAAG;AACxB;AACA,SAASwB,GAAW;AAAA,EAClB,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,WAAAC;AACF,GAAG;;AACD,QAAMC,IAAMC,GAAcJ,EAAU,OAAO;AAC3C,GAAI,GAACxG,IAAAwG,EAAU,YAAV,QAAAxG,EAAmB,SAAS2G,EAAI,mBAAkB,QAAO1G,IAAA0G,KAAA,gBAAAA,EAAK,kBAAL,gBAAA1G,EAAoB,aAAa,aAAa,MAAMwG,QAChHvG,IAAAsG,EAAU,YAAV,QAAAtG,EAAmB,cAAc,8BAA8BuG,CAAW,MAAM,UAE9EC,KACFA,EAAUD,CAAW;AAEzB;AACA,SAASI,GAAe/J,GAAUgK,GAAU;AAC1C,SAAI,OAAOhK,KAAa,YAAY,OAAOgK,KAAa,WAC/ChK,MAAagK,IAElB,OAAOhK,KAAa,YAAY,OAAOgK,KAAa,WAC/C7C,GAAenH,GAAUgK,CAAQ,IAEnC;AACT;AACA,MAAMC,KAAY;AAAA,EAChB,YAAY;AAAA,IACV,QAAQ,CAAAlB,OAAY;AAAA,MAClB,MAAM,GAAGA,CAAO;AAAA,IACtB;AAAA,IACI,MAAM,CAAAA,OAAY;AAAA,MAChB,OAAO,GAAGA,CAAO;AAAA,IAClB;AAAA,EACF;AAAA,EACD,sBAAsB;AAAA,IACpB,QAAQ,CAAAA,OAAY;AAAA,MAClB,OAAO,GAAGA,CAAO;AAAA,IACvB;AAAA,IACI,MAAM,CAAAA,OAAY;AAAA,MAChB,OAAO,GAAGA,CAAO;AAAA,IAClB;AAAA,EACF;AAAA,EACD,UAAU;AAAA,IACR,QAAQ,CAAAA,OAAY;AAAA,MAClB,QAAQ,GAAGA,CAAO;AAAA,IACxB;AAAA,IACI,MAAM,CAAAA,OAAY;AAAA,MAChB,QAAQ,GAAGA,CAAO;AAAA,IACnB;AAAA,EACL;AACA,GACamB,KAAW,CAAArH,MAAKA;AAY7B,IAAIsH;AACJ,SAASC,KAA6B;AACpC,SAAID,OAAkC,WAChC,OAAO,MAAQ,OAAe,OAAO,IAAI,YAAa,aACxDA,KAAgC,IAAI,SAAS,gBAAgB,MAAM,IAEnEA,KAAgC,KAG7BA;AACT;AACO,SAASE,GAAU5E,GAAY;AACpC,QAAM;AAAA,IACJ,mBAAmB6E;AAAA,IACnB,cAAAxK;AAAA,IACA,UAAAyK,IAAW;AAAA,IACX,aAAAC,IAAc;AAAA,IACd,OAAAC,IAAQ;AAAA,IACR,OAAOC,IAAY;AAAA,IACnB,KAAA1C,IAAM;AAAA,IACN,KAAAD,IAAM;AAAA,IACN,MAAAvI;AAAA,IACA,UAAAmL;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC,IAAc;AAAA,IACd,SAAS9D;AAAA,IACT,OAAA+D,IAAQZ;AAAAA,IACR,MAAArC,IAAO;AAAA,IACP,WAAAkD,KAAY;AAAA,IACZ,UAAAC;AAAA,IACA,OAAOC;AAAA,EACX,IAAMxF,GACEgD,IAAUxJ,EAAM,OAAO,MAAS,GAIhC,CAACiM,GAAQtB,EAAS,IAAI3K,EAAM,SAAS,EAAE,GACvC,CAACkM,IAAMC,EAAO,IAAInM,EAAM,SAAS,EAAE,GACnC,CAACoM,IAAUC,EAAW,IAAIrM,EAAM,SAAS,EAAK,GAC9CsM,KAAYtM,EAAM,OAAO,CAAC,GAE1BuM,KAAmBvM,EAAM,OAAO,IAAI,GACpC,CAACwM,GAAcC,CAAa,IAAItM,GAAc;AAAA,IAClD,YAAY6L;AAAA,IACZ,SAASnL,KAAgBiI;AAAA,IACzB,MAAM;AAAA,EACV,CAAG,GACK4D,IAAehB,MAAa,CAACnC,GAAO3I,GAAO+L,MAAe;AAK9D,UAAMC,IAAcrD,EAAM,eAAeA,GAEnCsD,IAAc,IAAID,EAAY,YAAYA,EAAY,MAAMA,CAAW;AAC7E,WAAO,eAAeC,GAAa,UAAU;AAAA,MAC3C,UAAU;AAAA,MACV,OAAO;AAAA,QACL,OAAAjM;AAAA,QACA,MAAAL;AAAA,MACR;AAAA,IACA,CAAK,GACDgM,GAAiB,UAAU3L,GAC3B8K,EAASmB,GAAajM,GAAO+L,CAAU;AAAA,EAC3C,IACQG,KAAQ,MAAM,QAAQN,CAAY;AACxC,MAAItD,IAAS4D,KAAQN,EAAa,MAAO,EAAC,KAAKxD,EAAG,IAAI,CAACwD,CAAY;AACnE,EAAAtD,IAASA,EAAO,IAAI,CAAAtI,MAASA,KAAS,OAAOkI,IAAMiE,GAAMnM,GAAOkI,GAAKC,CAAG,CAAC;AACzE,QAAMiE,KAAQvB,MAAc,MAAQ7C,MAAS,OAAO,CAAC,GAAG,MAAM,KAAK,OAAOG,IAAMD,KAAOF,CAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAACqE,GAAGzE,OAAW;AAAA,IACpH,OAAOM,IAAMF,IAAOJ;AAAA,EACxB,EAAI,IAAIiD,KAAa,CAAE,GACfyB,IAAcF,GAAM,IAAI,CAAAG,MAAQA,EAAK,KAAK,GAC1C,CAACC,GAAmBC,EAAoB,IAAIrN,EAAM,SAAS,EAAE,GAC7DyK,IAAYzK,EAAM,OAAO,IAAI,GAC7BsN,IAAYvF,GAAWD,IAAK2C,CAAS,GACrC8C,KAA+B,CAAAC,MAAiB,CAAAjE,MAAS;;AAC7D,UAAMf,IAAQ,OAAOe,EAAM,cAAc,aAAa,YAAY,CAAC;AACnE,IAAIvB,GAAeuB,EAAM,MAAM,KAC7B8D,GAAqB7E,CAAK,GAE5B2D,GAAQ3D,CAAK,IACbvE,IAAAuJ,KAAA,gBAAAA,EAAe,YAAf,QAAAvJ,EAAA,KAAAuJ,GAAyBjE;AAAA,EAC1B,GACKkE,KAA8B,CAAAD,MAAiB,CAAAjE,MAAS;;AAC5D,IAAKvB,GAAeuB,EAAM,MAAM,KAC9B8D,GAAqB,EAAE,GAEzBlB,GAAQ,EAAE,IACVlI,IAAAuJ,KAAA,gBAAAA,EAAe,WAAf,QAAAvJ,EAAA,KAAAuJ,GAAwBjE;AAAA,EACzB,GACKmE,KAAc,CAACnE,GAAOoE,MAAe;AACzC,UAAMnF,IAAQ,OAAOe,EAAM,cAAc,aAAa,YAAY,CAAC,GAC7D3I,IAAQsI,EAAOV,CAAK,GACpBoF,IAAaV,EAAY,QAAQtM,CAAK;AAC5C,QAAIG,IAAW4M;AACf,QAAIX,MAASpE,KAAQ,MAAM;AACzB,YAAMiF,IAAgBX,EAAYA,EAAY,SAAS,CAAC;AACxD,MAAInM,KAAY8M,IACd9M,IAAW8M,IACF9M,KAAYmM,EAAY,CAAC,IAClCnM,IAAWmM,EAAY,CAAC,IAExBnM,IAAWA,IAAWH,IAAQsM,EAAYU,IAAa,CAAC,IAAIV,EAAYU,IAAa,CAAC;AAAA,IAE9F;AAEI,QADA7M,IAAWgM,GAAMhM,GAAU+H,GAAKC,CAAG,GAC/B+D,IAAO;AAET,MAAIvB,MACFxK,IAAWgM,GAAMhM,GAAUmI,EAAOV,IAAQ,CAAC,KAAK,QAAWU,EAAOV,IAAQ,CAAC,KAAK,KAAQ;AAE1F,YAAMsF,IAAgB/M;AACtB,MAAAA,IAAWuJ,GAAc;AAAA,QACvB,QAAApB;AAAA,QACA,UAAAnI;AAAA,QACA,OAAAyH;AAAA,MACR,CAAO;AACD,UAAIkC,IAAclC;AAGlB,MAAK+C,MACHb,IAAc3J,EAAS,QAAQ+M,CAAa,IAE9CtD,GAAW;AAAA,QACT,WAAAC;AAAA,QACA,aAAAC;AAAA,MACR,CAAO;AAAA,IACP;AACI,IAAA+B,EAAc1L,CAAQ,GACtBsM,GAAqB7E,CAAK,GACtBkE,KAAgB,CAAC5B,GAAe/J,GAAUyL,CAAY,KACxDE,EAAanD,GAAOxI,GAAUyH,CAAK,GAEjCmD,KACFA,EAAkBpC,GAAOgD,GAAiB,WAAWxL,CAAQ;AAAA,EAEhE,GACKgN,KAAiC,CAAAP,MAAiB,CAAAjE,MAAS;;AAC/D,QAAI,CAAC,WAAW,aAAa,aAAa,cAAc,UAAU,YAAY,QAAQ,KAAK,EAAE,SAASA,EAAM,GAAG,GAAG;AAChH,MAAAA,EAAM,eAAgB;AACtB,YAAMf,IAAQ,OAAOe,EAAM,cAAc,aAAa,YAAY,CAAC,GAC7D3I,IAAQsI,EAAOV,CAAK;AAC1B,UAAIzH,IAAW;AAIf,UAAI6H,KAAQ,MAAM;AAChB,cAAMoF,IAAWzE,EAAM,WAAWuC,KAAYlD;AAC9C,gBAAQW,EAAM,KAAG;AAAA,UACf,KAAK;AACH,YAAAxI,IAAW2H,GAAY9H,GAAOoN,GAAU,GAAGlF,GAAKC,CAAG;AACnD;AAAA,UACF,KAAK;AACH,YAAAhI,IAAW2H,GAAY9H,GAAOoN,GAAUxC,IAAQ,KAAK,GAAG1C,GAAKC,CAAG;AAChE;AAAA,UACF,KAAK;AACH,YAAAhI,IAAW2H,GAAY9H,GAAOoN,GAAU,IAAIlF,GAAKC,CAAG;AACpD;AAAA,UACF,KAAK;AACH,YAAAhI,IAAW2H,GAAY9H,GAAOoN,GAAUxC,IAAQ,IAAI,IAAI1C,GAAKC,CAAG;AAChE;AAAA,UACF,KAAK;AACH,YAAAhI,IAAW2H,GAAY9H,GAAOkL,IAAW,GAAGhD,GAAKC,CAAG;AACpD;AAAA,UACF,KAAK;AACH,YAAAhI,IAAW2H,GAAY9H,GAAOkL,IAAW,IAAIhD,GAAKC,CAAG;AACrD;AAAA,UACF,KAAK;AACH,YAAAhI,IAAW+H;AACX;AAAA,UACF,KAAK;AACH,YAAA/H,IAAWgI;AACX;AAAA,QAGZ;AAAA,MACO,WAAUiE,IAAO;AAChB,cAAMa,IAAgBX,EAAYA,EAAY,SAAS,CAAC,GAClDe,IAAmBf,EAAY,QAAQtM,CAAK,GAC5CsN,IAAgB,CAAC1C,IAAQ,eAAe,aAAa,aAAa,YAAY,MAAM,GACpF2C,IAAgB,CAAC3C,IAAQ,cAAc,cAAc,WAAW,UAAU,KAAK;AACrF,QAAI0C,EAAc,SAAS3E,EAAM,GAAG,IAC9B0E,MAAqB,IACvBlN,IAAWmM,EAAY,CAAC,IAExBnM,IAAWmM,EAAYe,IAAmB,CAAC,IAEpCE,EAAc,SAAS5E,EAAM,GAAG,MACrC0E,MAAqBf,EAAY,SAAS,IAC5CnM,IAAW8M,IAEX9M,IAAWmM,EAAYe,IAAmB,CAAC;AAAA,MAGvD;AACM,MAAIlN,KAAY,QACd2M,GAAYnE,GAAOxI,CAAQ;AAAA,IAEnC;AACI,KAAAkD,IAAAuJ,KAAA,gBAAAA,EAAe,cAAf,QAAAvJ,EAAA,KAAAuJ,GAA2BjE;AAAA,EAC5B;AACD,EAAA6E,GAAkB,MAAM;;AACtB,IAAI9C,KAAYb,EAAU,QAAQ,SAAS,SAAS,aAAa,OAK/DxG,IAAA,SAAS,kBAAT,QAAAA,EAAwB;AAAA,EAE9B,GAAK,CAACqH,CAAQ,CAAC,GACTA,KAAYW,MAAW,MACzBtB,GAAU,EAAE,GAEVW,KAAY8B,MAAsB,MACpCC,GAAqB,EAAE;AAEzB,QAAMgB,KAAgC,CAAAb,MAAiB,CAAAjE,MAAS;;AAC9D,KAAAtF,IAAAuJ,EAAc,aAAd,QAAAvJ,EAAA,KAAAuJ,GAAyBjE,IAGzBmE,GAAYnE,GAAOA,EAAM,OAAO,aAAa;AAAA,EAC9C,GACK+E,IAAgBtO,EAAM,OAAO,MAAS;AAC5C,MAAIuO,IAAO3C;AACX,EAAIJ,KAASI,MAAgB,iBAC3B2C,KAAQ;AAEV,QAAMC,IAAoB,CAAC;AAAA,IACzB,QAAAC;AAAA,IACA,MAAAC,IAAO;AAAA,EACX,MAAQ;AACJ,UAAM;AAAA,MACJ,SAASC;AAAA,IACf,IAAQlE,GACE;AAAA,MACJ,OAAAmE;AAAA,MACA,QAAAC;AAAA,MACA,QAAAC;AAAA,MACA,MAAAC;AAAA,IACN,IAAQJ,EAAO,sBAAuB;AAClC,QAAI7E;AACJ,IAAIyE,EAAK,WAAW,UAAU,IAC5BzE,KAAWgF,IAASL,EAAO,KAAKI,IAEhC/E,KAAW2E,EAAO,IAAIM,KAAQH,GAE5BL,EAAK,SAAS,UAAU,MAC1BzE,IAAU,IAAIA;AAEhB,QAAI/I;AAEJ,QADAA,IAAW8I,GAAeC,GAAShB,GAAKC,CAAG,GACvCH;AACF,MAAA7H,IAAWqJ,GAAiBrJ,GAAU6H,GAAME,CAAG;AAAA,SAC1C;AACL,YAAMK,KAAeF,GAAYiE,GAAanM,CAAQ;AACtD,MAAAA,IAAWmM,EAAY/D,EAAY;AAAA,IACzC;AACI,IAAApI,IAAWgM,GAAMhM,GAAU+H,GAAKC,CAAG;AACnC,QAAI2B,IAAc;AAClB,QAAIoC,IAAO;AACT,MAAK4B,IAGHhE,IAAc4D,EAAc,UAF5B5D,IAAczB,GAAYC,GAAQnI,CAAQ,GAMxCwK,MACFxK,IAAWgM,GAAMhM,GAAUmI,EAAOwB,IAAc,CAAC,KAAK,QAAWxB,EAAOwB,IAAc,CAAC,KAAK,KAAQ;AAEtG,YAAMoD,KAAgB/M;AACtB,MAAAA,IAAWuJ,GAAc;AAAA,QACvB,QAAApB;AAAA,QACA,UAAAnI;AAAA,QACA,OAAO2J;AAAA,MACf,CAAO,GAGKa,KAAemD,MACnBhE,IAAc3J,EAAS,QAAQ+M,EAAa,GAC5CQ,EAAc,UAAU5D;AAAA,IAEhC;AACI,WAAO;AAAA,MACL,UAAA3J;AAAA,MACA,aAAA2J;AAAA,IACD;AAAA,EACF,GACKsE,IAAkBC,GAAiB,CAAArC,MAAe;AACtD,UAAM6B,IAASnF,GAAYsD,GAAapD,CAAO;AAC/C,QAAI,CAACiF;AACH;AAMF,QAJAnC,GAAU,WAAW,GAIjBM,EAAY,SAAS,eAAeA,EAAY,YAAY,GAAG;AAEjE,MAAAsC,EAAetC,CAAW;AAC1B;AAAA,IACN;AACI,UAAM;AAAA,MACJ,UAAA7L;AAAA,MACA,aAAA2J;AAAA,IACD,IAAG8D,EAAkB;AAAA,MACpB,QAAAC;AAAA,MACA,MAAM;AAAA,IACZ,CAAK;AACD,IAAAjE,GAAW;AAAA,MACT,WAAAC;AAAA,MACA,aAAAC;AAAA,MACA,WAAAC;AAAA,IACN,CAAK,GACD8B,EAAc1L,CAAQ,GAClB,CAACqL,MAAYE,GAAU,UAAU7D,MACnC4D,GAAY,EAAI,GAEdK,KAAgB,CAAC5B,GAAe/J,GAAUyL,CAAY,KACxDE,EAAaE,GAAa7L,GAAU2J,CAAW;AAAA,EAErD,CAAG,GACKwE,IAAiBD,GAAiB,CAAArC,MAAe;AACrD,UAAM6B,IAASnF,GAAYsD,GAAapD,CAAO;AAE/C,QADA6C,GAAY,EAAK,GACb,CAACoC;AACH;AAEF,UAAM;AAAA,MACJ,UAAA1N;AAAA,IACD,IAAGyN,EAAkB;AAAA,MACpB,QAAAC;AAAA,MACA,MAAM;AAAA,IACZ,CAAK;AACD,IAAA9D,GAAU,EAAE,GACRiC,EAAY,SAAS,cACvBT,GAAQ,EAAE,GAERR,KACFA,EAAkBiB,GAAaL,GAAiB,WAAWxL,CAAQ,GAErEyI,EAAQ,UAAU,QAGlB2F,EAAe;AAAA,EACnB,CAAG,GACKC,IAAmBH,GAAiB,CAAArC,MAAe;AACvD,QAAItB;AACF;AAGF,IAAKH,GAA0B,KAC7ByB,EAAY,eAAgB;AAE9B,UAAMjD,IAAQiD,EAAY,eAAe,CAAC;AAC1C,IAAIjD,KAAS,SAEXH,EAAQ,UAAUG,EAAM;AAE1B,UAAM8E,IAASnF,GAAYsD,GAAapD,CAAO;AAC/C,QAAIiF,MAAW,IAAO;AACpB,YAAM;AAAA,QACJ,UAAA1N;AAAA,QACA,aAAA2J;AAAA,MACD,IAAG8D,EAAkB;AAAA,QACpB,QAAAC;AAAA,MACR,CAAO;AACD,MAAAjE,GAAW;AAAA,QACT,WAAAC;AAAA,QACA,aAAAC;AAAA,QACA,WAAAC;AAAA,MACR,CAAO,GACD8B,EAAc1L,CAAQ,GAClB2L,KAAgB,CAAC5B,GAAe/J,GAAUyL,CAAY,KACxDE,EAAaE,GAAa7L,GAAU2J,CAAW;AAAA,IAEvD;AACI,IAAA4B,GAAU,UAAU;AACpB,UAAM1B,IAAMC,GAAcJ,EAAU,OAAO;AAC3C,IAAAG,EAAI,iBAAiB,aAAaoE,GAAiB;AAAA,MACjD,SAAS;AAAA,IACf,CAAK,GACDpE,EAAI,iBAAiB,YAAYsE,GAAgB;AAAA,MAC/C,SAAS;AAAA,IACf,CAAK;AAAA,EACL,CAAG,GACKC,IAAgBnP,EAAM,YAAY,MAAM;AAC5C,UAAM4K,IAAMC,GAAcJ,EAAU,OAAO;AAC3C,IAAAG,EAAI,oBAAoB,aAAaoE,CAAe,GACpDpE,EAAI,oBAAoB,WAAWsE,CAAc,GACjDtE,EAAI,oBAAoB,aAAaoE,CAAe,GACpDpE,EAAI,oBAAoB,YAAYsE,CAAc;AAAA,EACtD,GAAK,CAACA,GAAgBF,CAAe,CAAC;AACpC,EAAAhP,EAAM,UAAU,MAAM;AACpB,UAAM;AAAA,MACJ,SAAS2O;AAAA,IACf,IAAQlE;AACJ,WAAAkE,EAAO,iBAAiB,cAAcS,GAAkB;AAAA,MACtD,SAASjE,GAA0B;AAAA,IACzC,CAAK,GACM,MAAM;AACX,MAAAwD,EAAO,oBAAoB,cAAcS,CAAgB,GACzDD,EAAe;AAAA,IAChB;AAAA,EACL,GAAK,CAACA,GAAeC,CAAgB,CAAC,GACpCpP,EAAM,UAAU,MAAM;AACpB,IAAIsL,KACF6D,EAAe;AAAA,EAErB,GAAK,CAAC7D,GAAU6D,CAAa,CAAC;AAC5B,QAAME,KAAwB,CAAA7B,MAAiB,CAAAjE,MAAS;;AAUtD,SATAtF,IAAAuJ,EAAc,gBAAd,QAAAvJ,EAAA,KAAAuJ,GAA4BjE,IACxB+B,KAGA/B,EAAM,oBAKNA,EAAM,WAAW;AACnB;AAIF,IAAAA,EAAM,eAAgB;AACtB,UAAMkF,IAASnF,GAAYC,GAAOC,CAAO;AACzC,QAAIiF,MAAW,IAAO;AACpB,YAAM;AAAA,QACJ,UAAA1N;AAAA,QACA,aAAA2J;AAAA,MACD,IAAG8D,EAAkB;AAAA,QACpB,QAAAC;AAAA,MACR,CAAO;AACD,MAAAjE,GAAW;AAAA,QACT,WAAAC;AAAA,QACA,aAAAC;AAAA,QACA,WAAAC;AAAA,MACR,CAAO,GACD8B,EAAc1L,CAAQ,GAClB2L,KAAgB,CAAC5B,GAAe/J,GAAUyL,CAAY,KACxDE,EAAanD,GAAOxI,GAAU2J,CAAW;AAAA,IAEjD;AACI,IAAA4B,GAAU,UAAU;AACpB,UAAM1B,IAAMC,GAAcJ,EAAU,OAAO;AAC3C,IAAAG,EAAI,iBAAiB,aAAaoE,GAAiB;AAAA,MACjD,SAAS;AAAA,IACf,CAAK,GACDpE,EAAI,iBAAiB,WAAWsE,CAAc;AAAA,EAC/C,GACKI,KAAc1F,GAAekD,KAAQ5D,EAAO,CAAC,IAAIJ,GAAKA,GAAKC,CAAG,GAC9DwG,IAAY3F,GAAeV,EAAOA,EAAO,SAAS,CAAC,GAAGJ,GAAKC,CAAG,IAAIuG,IAClEE,KAAe,CAACC,IAAgB,OAAO;AAC3C,UAAMC,IAAmBxJ,GAAqBuJ,CAAa,GACrDE,IAAmB;AAAA,MACvB,aAAaN,GAAsBK,KAAoB,CAAE,CAAA;AAAA,IAC1D,GACKE,IAAsB;AAAA,MAC1B,GAAGF;AAAA,MACH,GAAGC;AAAA,IACJ;AACD,WAAO;AAAA,MACL,GAAGF;AAAA,MACH,KAAKnC;AAAA,MACL,GAAGsC;AAAA,IACJ;AAAA,EACF,GACKC,KAAwB,CAAArC,MAAiB,CAAAjE,MAAS;;AACtD,KAAAtF,IAAAuJ,EAAc,gBAAd,QAAAvJ,EAAA,KAAAuJ,GAA4BjE;AAC5B,UAAMf,IAAQ,OAAOe,EAAM,cAAc,aAAa,YAAY,CAAC;AACnE,IAAA4C,GAAQ3D,CAAK;AAAA,EACd,GACKsH,KAAyB,CAAAtC,MAAiB,CAAAjE,MAAS;;AACvD,KAAAtF,IAAAuJ,EAAc,iBAAd,QAAAvJ,EAAA,KAAAuJ,GAA6BjE,IAC7B4C,GAAQ,EAAE;AAAA,EACX,GACK4D,KAAgB,CAACN,IAAgB,OAAO;AAC5C,UAAMC,IAAmBxJ,GAAqBuJ,CAAa,GACrDE,IAAmB;AAAA,MACvB,aAAaE,GAAsBH,KAAoB,EAAE;AAAA,MACzD,cAAcI,GAAuBJ,KAAoB,CAAE,CAAA;AAAA,IAC5D;AACD,WAAO;AAAA,MACL,GAAGD;AAAA,MACH,GAAGC;AAAA,MACH,GAAGC;AAAA,IACJ;AAAA,EACF,GACKK,KAAgB,CAAAxH,OACb;AAAA;AAAA,IAEL,eAAeyD,MAAW,MAAMA,MAAWzD,IAAQ,SAAS;AAAA,EAC7D;AAEH,MAAIyH;AACJ,SAAIrE,MAAgB,eAClBqE,KAAiBzE,IAAQ,gBAAgB,gBAsCpC;AAAA,IACL,QAAAS;AAAA,IACA,MAAMsC;AAAA,IACN,WAAAvD;AAAA,IACA,UAAAoB;AAAA,IACA,mBAAAgB;AAAA,IACA,qBA1C0B,CAACqC,IAAgB,OAAO;AAClD,YAAMC,IAAmBxJ,GAAqBuJ,CAAa,GACrDE,IAAmB;AAAA,QACvB,UAAUtB,GAA8BqB,KAAoB,EAAE;AAAA,QAC9D,SAASnC,GAA6BmC,KAAoB,EAAE;AAAA,QAC5D,QAAQjC,GAA4BiC,KAAoB,EAAE;AAAA,QAC1D,WAAW3B,GAA+B2B,KAAoB,CAAE,CAAA;AAAA,MACjE,GACKE,IAAsB;AAAA,QAC1B,GAAGF;AAAA,QACH,GAAGC;AAAA,MACJ;AACD,aAAO;AAAA,QACL,UAAA5D;AAAA,QACA,mBAAmBV;AAAA,QACnB,oBAAoBO;AAAA,QACpB,iBAAiBC,EAAM9C,CAAG;AAAA,QAC1B,iBAAiB8C,EAAM/C,CAAG;AAAA,QAC1B,MAAAvI;AAAA,QACA,MAAM;AAAA,QACN,KAAKiG,EAAW;AAAA,QAChB,KAAKA,EAAW;AAAA,QAChB,MAAMA,EAAW,SAAS,QAAQA,EAAW,QAAQ,QAAQA,EAAW,QAAQ;AAAA,QAChF,UAAA8E;AAAA,QACA,GAAGmE;AAAA,QACH,GAAGG;AAAA,QACH,OAAO;AAAA,UACL,GAAG3H;AAAA,UACH,WAAWuD,IAAQ,QAAQ;AAAA;AAAA,UAE3B,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,aAAayE;AAAA,QACrB;AAAA,MACK;AAAA,IACF;AAAA,IAQC,cAAAT;AAAA,IACA,eAAAO;AAAA,IACA,OAAO/C;AAAA,IACP,MAAAd;AAAA,IACA,OAAAY;AAAA,IACA,SAASQ;AAAA,IACT,WAAAiC;AAAA,IACA,aAAAD;AAAA,IACA,QAAApG;AAAA,IACA,eAAA8G;AAAA,EACD;AACH;ACzrBA,SAASpK,GAAgBC,GAAS;AAChC,SAAO,OAAOA,KAAY;AAC5B;ACJA,MAAMqK,KAA8B,CAAAC,MAC3B,CAACA,KAAQ,CAACvK,GAAgBuK,CAAI;ACIvC,SAASC,GAAuBC,GAAK;AACnC,SAAO,OAAOA,EAAI,QAAS;AAC7B;AAUA,SAASC,GAA8BD,GAAKE,IAA8B,IAAI;AAC5E,MAAI,CAACH,GAAuBC,CAAG;AAC7B,WAAO;AAET,aAAWzP,KAAS2P;AAClB,QAAI,CAACF,EAAI,eAAezP,CAAK,KAAK,OAAOyP,EAAIzP,CAAK,KAAM;AACtD,aAAO;AAGX,SAAO;AACT;AAUe,SAAS4P,GAA+BD,IAA8B,IAAI;AACvF,SAAO,CAAC,CAAG,EAAA3P,CAAK,MAAMA,KAAS0P,GAA8B1P,GAAO2P,CAA2B;AACjG;ACtCO,SAASE,GAAsBC,GAAM;AAC1C,SAAOC,GAAqB,aAAaD,CAAI;AAC/C;AACA,MAAME,IAAgBC,GAAuB,aAAa,CAAC,QAAQ,UAAU,gBAAgB,kBAAkB,cAAc,aAAa,gBAAgB,gBAAgB,YAAY,YAAY,gBAAgB,QAAQ,cAAc,UAAU,aAAa,mBAAmB,QAAQ,aAAa,SAAS,qBAAqB,uBAAuB,mBAAmB,qBAAqB,kBAAkB,qBAAqB,SAAS,iBAAiB,cAAc,kBAAkB,cAAc,kBAAkB,oBAAoB,mBAAmB,UAAU,CAAC,GCEjjBC,KAAuB,CAAA1Q,MAAS;AACpC,QAAM;AAAA,IACJ,MAAA8L;AAAA,EACJ,IAAM9L;AAMJ,SALuB;AAAA,IACrB,QAAQ2G,EAAKmF,KAAQ0E,EAAc,cAAc;AAAA,IACjD,QAAQA,EAAc;AAAA,IACtB,OAAOA,EAAc;AAAA,EACtB;AAEH;AAKe,SAASG,GAAiB3Q,GAAO;AAC9C,QAAM;AAAA,IACJ,UAAA4Q;AAAA,IACA,WAAAnK;AAAA,IACA,OAAAjG;AAAA,EACJ,IAAMR,GACE6Q,IAAUH,GAAqB1Q,CAAK;AAC1C,SAAK4Q,IAGe,gBAAAhR,EAAM,aAAagR,GAAU;AAAA,IAC/C,WAAWA,EAAS,MAAM;AAAA,EAC9B,GAAkBE,gBAAAA,EAAK,KAAClR,EAAM,UAAU;AAAA,IACpC,UAAU,CAACgR,EAAS,MAAM,UAAuBG,gBAAAA,EAAAA,IAAK,QAAQ;AAAA,MAC5D,WAAWpK,EAAKkK,EAAQ,QAAQpK,CAAS;AAAA,MACzC,eAAe;AAAA,MACf,UAAuBsK,gBAAAA,EAAI,IAAC,QAAQ;AAAA,QAClC,WAAWF,EAAQ;AAAA,QACnB,UAAuBE,gBAAAA,EAAI,IAAC,QAAQ;AAAA,UAClC,WAAWF,EAAQ;AAAA,UACnB,UAAUrQ;AAAA,QACX,CAAA;AAAA,MACF,CAAA;AAAA,IACP,CAAK,CAAC;AAAA,EACN,CAAG,CAAC,IAhBO;AAiBX;AACA,QAAQ,IAAI,aAAa,iBAAemQ,GAAiB,YAAY;AAAA,EACnE,UAAU9Q,EAAU,QAAQ;AAAA,EAC5B,WAAWA,EAAU;AAAA,EACrB,OAAOA,EAAU;AACnB;AC9BA,SAASgL,GAASrH,GAAG;AACnB,SAAOA;AACT;AACO,MAAMwN,KAAaC,EAAO,QAAQ;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,mBAAmB,CAACjR,GAAOkR,MAAW;AACpC,UAAM;AAAA,MACJ,YAAArL;AAAA,IACN,IAAQ7F;AACJ,WAAO,CAACkR,EAAO,MAAMA,EAAO,QAAQ/L,EAAWU,EAAW,KAAK,CAAC,EAAE,GAAGA,EAAW,SAAS,YAAYqL,EAAO,OAAO/L,EAAWU,EAAW,IAAI,CAAC,EAAE,GAAGA,EAAW,UAAUqL,EAAO,QAAQrL,EAAW,gBAAgB,cAAcqL,EAAO,UAAUrL,EAAW,UAAU,cAAcqL,EAAO,eAAerL,EAAW,UAAU,MAASqL,EAAO,UAAU;AAAA,EAC7V;AACA,CAAC,EAAEC,GAAU,CAAC;AAAA,EACZ,OAAA7M;AACF,OAAO;AAAA,EACL,cAAc;AAAA,EACd,WAAW;AAAA,EACX,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,yBAAyB;AAAA,EACzB,gBAAgB;AAAA,IACd,aAAa;AAAA,EACd;AAAA,EACD,CAAC,KAAKkM,EAAc,QAAQ,EAAE,GAAG;AAAA,IAC/B,eAAe;AAAA,IACf,QAAQ;AAAA,IACR,QAAQlM,EAAM,QAAQA,GAAO,QAAQ,KAAK,GAAG;AAAA,EAC9C;AAAA,EACD,CAAC,KAAKkM,EAAc,QAAQ,EAAE,GAAG;AAAA,IAC/B,CAAC,MAAMA,EAAc,KAAK,QAAQA,EAAc,KAAK,EAAE,GAAG;AAAA,MACxD,YAAY;AAAA,IAClB;AAAA,EACG;AAAA,EACD,UAAU,CAAC,GAAG,OAAO,QAAQlM,EAAM,OAAO,EAAE,OAAO8L,GAA8B,CAAE,EAAE,IAAI,CAAC,CAACgB,CAAK,OAAO;AAAA,IACrG,OAAO;AAAA,MACL,OAAAA;AAAA,IACD;AAAA,IACD,OAAO;AAAA,MACL,QAAQ9M,EAAM,QAAQA,GAAO,QAAQ8M,CAAK,EAAE;AAAA,IAClD;AAAA,EACG,EAAC,GAAG;AAAA,IACH,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA;AAAA,MAET,4BAA4B;AAAA;AAAA,QAE1B,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,MACb,MAAM;AAAA,IACP;AAAA,IACD,OAAO;AAAA,MACL,QAAQ;AAAA,IACd;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,MACb,QAAQ;AAAA,IACT;AAAA,IACD,OAAO;AAAA,MACL,cAAc;AAAA,IACpB;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,SAAS;AAAA;AAAA,MAET,4BAA4B;AAAA;AAAA,QAE1B,SAAS;AAAA,MACjB;AAAA,IACA;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,MACb,MAAM;AAAA,IACP;AAAA,IACD,OAAO;AAAA,MACL,OAAO;AAAA,IACb;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,MACb,QAAQ;AAAA,IACT;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACnB;AAAA,EACG,CAAA;AACH,EAAE,CAAC,GACUC,KAAaJ,EAAO,QAAQ;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAE;AAAA,EACD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,UAAU,CAAC;AAAA,IACT,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,WAAW;AAAA,IACjB;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACjB;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,OAAO;AAAA,IACR;AAAA,IACD,OAAO;AAAA,MACL,SAAS;AAAA,IACf;AAAA,EACG,CAAA;AACH,CAAC,GACYK,KAAcL,EAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAEE,GAAU,CAAC;AAAA,EACZ,OAAA7M;AACF,OACS;AAAA,EACL,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,QAAQ;AAAA,EACR,iBAAiB;AAAA,EACjB,YAAYA,EAAM,YAAY,OAAO,CAAC,QAAQ,SAAS,UAAU,QAAQ,GAAG;AAAA,IAC1E,UAAUA,EAAM,YAAY,SAAS;AAAA,EAC3C,CAAK;AAAA,EACD,UAAU,CAAC;AAAA,IACT,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACD,OAAO;AAAA,MACL,QAAQ;AAAA,IAChB;AAAA,EACA,GAAO;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,QAAQ;AAAA,MACR,KAAK;AAAA,MACL,WAAW;AAAA,IACnB;AAAA,EACA,GAAO;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,OAAO;AAAA,MACP,MAAM;AAAA,MACN,WAAW;AAAA,IACnB;AAAA,EACA,GAAO;AAAA,IACD,OAAO;AAAA,MACL,OAAO;AAAA,IACR;AAAA,IACD,OAAO;AAAA,MACL,SAAS;AAAA,IACjB;AAAA,EACK,GAAE,GAAG,OAAO,QAAQA,EAAM,OAAO,EAAE,OAAO8L,GAAgC,CAAA,EAAE,IAAI,CAAC,CAACgB,CAAK,OAAO;AAAA,IAC7F,OAAO;AAAA,MACL,OAAAA;AAAA,MACA,OAAO;AAAA,IACR;AAAA,IACD,OAAO;AAAA,MACL,GAAI9M,EAAM,OAAO;AAAA,QACf,iBAAiBA,EAAM,KAAK,QAAQ,OAAO,GAAG8M,CAAK,OAAO;AAAA,QAC1D,aAAa9M,EAAM,KAAK,QAAQ,OAAO,GAAG8M,CAAK,OAAO;AAAA,MAChE,IAAY;AAAA,QACF,iBAAiBG,GAAQjN,EAAM,QAAQ8M,CAAK,EAAE,MAAM,IAAI;AAAA,QACxD,aAAaG,GAAQjN,EAAM,QAAQ8M,CAAK,EAAE,MAAM,IAAI;AAAA,QACpD,GAAG9M,EAAM,YAAY,QAAQ;AAAA,UAC3B,iBAAiBkN,GAAOlN,EAAM,QAAQ8M,CAAK,EAAE,MAAM,GAAG;AAAA,QAClE,CAAW;AAAA,QACD,GAAG9M,EAAM,YAAY,QAAQ;AAAA,UAC3B,aAAakN,GAAOlN,EAAM,QAAQ8M,CAAK,EAAE,MAAM,GAAG;AAAA,QACnD,CAAA;AAAA,MACF;AAAA,IACT;AAAA,EACA,EAAM,CAAC;AACJ,EACF,CAAC,GACWK,KAAcR,EAAO,QAAQ;AAAA,EACxC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,mBAAmB,CAACjR,GAAOkR,MAAW;AACpC,UAAM;AAAA,MACJ,YAAArL;AAAA,IACN,IAAQ7F;AACJ,WAAO,CAACkR,EAAO,OAAOA,EAAO,aAAa/L,EAAWU,EAAW,KAAK,CAAC,EAAE,GAAGA,EAAW,SAAS,YAAYqL,EAAO,YAAY/L,EAAWU,EAAW,IAAI,CAAC,EAAE,CAAC;AAAA,EAChK;AACA,CAAC,EAAEsL,GAAU,CAAC;AAAA,EACZ,OAAA7M;AACF,OAAO;AAAA,EACL,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,cAAc;AAAA,EACd,SAAS;AAAA,EACT,iBAAiB;AAAA,EACjB,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,YAAYA,EAAM,YAAY,OAAO,CAAC,cAAc,QAAQ,QAAQ,GAAG;AAAA,IACrE,UAAUA,EAAM,YAAY,SAAS;AAAA,EACzC,CAAG;AAAA,EACD,aAAa;AAAA,IACX,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,YAAYA,EAAM,QAAQA,GAAO,QAAQ,CAAC;AAAA,EAC3C;AAAA,EACD,YAAY;AAAA,IACV,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA;AAAA,IAEd,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,EACZ;AAAA,EACD,CAAC,KAAKkM,EAAc,QAAQ,EAAE,GAAG;AAAA,IAC/B,WAAW;AAAA,MACT,WAAW;AAAA,IACjB;AAAA,EACG;AAAA,EACD,UAAU,CAAC;AAAA,IACT,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACD,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,aAAa;AAAA,QACX,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,KAAK;AAAA,MACL,WAAW;AAAA,IACjB;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACjB;AAAA,EACG,GAAE,GAAG,OAAO,QAAQlM,EAAM,OAAO,EAAE,OAAO8L,GAAgC,CAAA,EAAE,IAAI,CAAC,CAACgB,CAAK,OAAO;AAAA,IAC7F,OAAO;AAAA,MACL,OAAAA;AAAA,IACD;AAAA,IACD,OAAO;AAAA,MACL,CAAC,cAAcZ,EAAc,YAAY,EAAE,GAAG;AAAA,QAC5C,GAAIlM,EAAM,OAAO;AAAA,UACf,WAAW,wBAAwBA,EAAM,KAAK,QAAQ8M,CAAK,EAAE,WAAW;AAAA,QAClF,IAAY;AAAA,UACF,WAAW,mBAAmBM,GAAMpN,EAAM,QAAQ8M,CAAK,EAAE,MAAM,IAAI,CAAC;AAAA,QAC9E;AAAA,QACQ,wBAAwB;AAAA,UACtB,WAAW;AAAA,QACrB;AAAA,MACO;AAAA,MACD,CAAC,KAAKZ,EAAc,MAAM,EAAE,GAAG;AAAA,QAC7B,GAAIlM,EAAM,OAAO;AAAA,UACf,WAAW,yBAAyBA,EAAM,KAAK,QAAQ8M,CAAK,EAAE,WAAW;AAAA,QACnF,IAAY;AAAA,UACF,WAAW,oBAAoBM,GAAMpN,EAAM,QAAQ8M,CAAK,EAAE,MAAM,IAAI,CAAC;AAAA,QACtE;AAAA,MACT;AAAA,IACA;AAAA,EACA,EAAI,CAAC;AACL,EAAE,CAAC,GACGT,KAAmBM,EAAOU,IAAsB;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACR,CAAC,EAAER,GAAU,CAAC;AAAA,EACZ,OAAA7M;AACF,OAAO;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,GAAGA,EAAM,WAAW;AAAA,EACpB,YAAY;AAAA,EACZ,YAAYA,EAAM,YAAY,OAAO,CAAC,WAAW,GAAG;AAAA,IAClD,UAAUA,EAAM,YAAY,SAAS;AAAA,EACzC,CAAG;AAAA,EACD,UAAU;AAAA,EACV,kBAAkBA,EAAM,QAAQA,GAAO,QAAQ,KAAK,GAAG;AAAA,EACvD,cAAc;AAAA,EACd,QAAQA,EAAM,QAAQA,GAAO,QAAQ,OAAO;AAAA,EAC5C,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,UAAU,CAAC;AAAA,IACT,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,WAAW;AAAA,MACX,KAAK;AAAA,MACL,iBAAiB;AAAA,MACjB,aAAa;AAAA,QACX,UAAU;AAAA,QACV,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,QAAQ;AAAA,QACR,MAAM;AAAA,MACP;AAAA,MACD,CAAC,KAAKkM,EAAc,cAAc,EAAE,GAAG;AAAA,QACrC,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,WAAW;AAAA,MACX,OAAO;AAAA,MACP,KAAK;AAAA,MACL,iBAAiB;AAAA,MACjB,aAAa;AAAA,QACX,UAAU;AAAA,QACV,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,KAAK;AAAA,MACN;AAAA,MACD,CAAC,KAAKA,EAAc,cAAc,EAAE,GAAG;AAAA,QACrC,WAAW;AAAA,MACnB;AAAA,IACA;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,IACP;AAAA,IACD,OAAO;AAAA,MACL,UAAUlM,EAAM,WAAW,QAAQ,EAAE;AAAA,MACrC,SAAS;AAAA,IACf;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,MACb,MAAM;AAAA,IACP;AAAA,IACD,OAAO;AAAA,MACL,OAAO;AAAA,IACb;AAAA,EACG,CAAA;AACH,EAAE,CAAC;AACH,QAAQ,IAAI,aAAa,iBAAeqM,GAAiB,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ1F,UAAU9Q,EAAU,QAAQ;AAAA;AAAA;AAAA;AAAA,EAI5B,OAAOA,EAAU,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxB,MAAMA,EAAU,KAAK;AAAA;AAAA;AAAA;AAAA,EAIrB,OAAOA,EAAU;AACnB;AAEO,MAAM+R,KAAaX,EAAO,QAAQ;AAAA,EACvC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,mBAAmB,CAAAhL,MAAQ4L,GAAsB5L,CAAI,KAAKA,MAAS;AAAA,EACnE,mBAAmB,CAACjG,GAAOkR,MAAW;AACpC,UAAM;AAAA,MACJ,YAAAY;AAAA,IACN,IAAQ9R;AACJ,WAAO,CAACkR,EAAO,MAAMY,KAAcZ,EAAO,UAAU;AAAA,EACxD;AACA,CAAC,EAAEC,GAAU,CAAC;AAAA,EACZ,OAAA7M;AACF,OAAO;AAAA,EACL,UAAU;AAAA,EACV,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,iBAAiB;AAAA,EACjB,UAAU,CAAC;AAAA,IACT,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,KAAK;AAAA,MACL,WAAW;AAAA,IACjB;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,IACjB;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,YAAY;AAAA,IACb;AAAA,IACD,OAAO;AAAA,MACL,kBAAkBA,EAAM,QAAQA,GAAO,QAAQ,WAAW;AAAA,MAC1D,SAAS;AAAA,IACf;AAAA,EACG,CAAA;AACH,EAAE,CAAC,GACUyN,KAAkBd,EAAO,QAAQ;AAAA,EAC5C,MAAM;AAAA,EACN,MAAM;AAAA,EACN,mBAAmB,CAAAhL,MAAQ4L,GAAsB5L,CAAI,KAAKA,MAAS;AACrE,CAAC,EAAEkL,GAAU,CAAC;AAAA,EACZ,OAAA7M;AACF,OAAO;AAAA,EACL,GAAGA,EAAM,WAAW;AAAA,EACpB,QAAQA,EAAM,QAAQA,GAAO,QAAQ,KAAK;AAAA,EAC1C,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,UAAU,CAAC;AAAA,IACT,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,KAAK;AAAA,MACL,WAAW;AAAA,MACX,4BAA4B;AAAA,QAC1B,KAAK;AAAA,MACb;AAAA,IACA;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,aAAa;AAAA,IACd;AAAA,IACD,OAAO;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,MACX,4BAA4B;AAAA,QAC1B,MAAM;AAAA,MACd;AAAA,IACA;AAAA,EACA,GAAK;AAAA,IACD,OAAO;AAAA,MACL,iBAAiB;AAAA,IAClB;AAAA,IACD,OAAO;AAAA,MACL,QAAQA,EAAM,QAAQA,GAAO,QAAQ,KAAK;AAAA,IAChD;AAAA,EACG,CAAA;AACH,EAAE,CAAC,GACG0N,KAAoB,CAAAnM,MAAc;AACtC,QAAM;AAAA,IACJ,UAAAqF;AAAA,IACA,UAAAc;AAAA,IACA,QAAAiG;AAAA,IACA,aAAAzG;AAAA,IACA,OAAA0G;AAAA,IACA,SAAArB;AAAA,IACA,OAAAO;AAAA,IACA,MAAAe;AAAA,EACJ,IAAMtM,GACEuM,IAAQ;AAAA,IACZ,MAAM,CAAC,QAAQlH,KAAY,YAAYc,KAAY,YAAYiG,KAAU,UAAUzG,MAAgB,cAAc,YAAY0G,MAAU,cAAc,iBAAiBA,MAAU,MAAS,cAAcd,KAAS,QAAQjM,EAAWiM,CAAK,CAAC,IAAIe,KAAQ,OAAOhN,EAAWgN,CAAI,CAAC,EAAE;AAAA,IAC9Q,MAAM,CAAC,MAAM;AAAA,IACb,OAAO,CAAC,OAAO;AAAA,IACf,MAAM,CAAC,MAAM;AAAA,IACb,YAAY,CAAC,YAAY;AAAA,IACzB,WAAW,CAAC,WAAW;AAAA,IACvB,iBAAiB,CAAC,iBAAiB;AAAA,IACnC,YAAY,CAAC,YAAY;AAAA,IACzB,OAAO,CAAC,SAASjH,KAAY,YAAYiH,KAAQ,YAAYhN,EAAWgN,CAAI,CAAC,IAAIf,KAAS,aAAajM,EAAWiM,CAAK,CAAC,EAAE;AAAA,IAC1H,QAAQ,CAAC,QAAQ;AAAA,IACjB,UAAU,CAAC,UAAU;AAAA,IACrB,cAAc,CAAC,cAAc;AAAA,EAC9B;AACD,SAAOiB,GAAeD,GAAO/B,IAAuBQ,CAAO;AAC7D,GACMyB,KAAU,CAAC;AAAA,EACf,UAAA1B;AACF,MAAMA,GACA2B,KAAsB,gBAAA3S,EAAM,WAAW,SAAgB4S,GAAY9K,GAAK;AAC5E,QAAM1H,IAAQyS,GAAgB;AAAA,IAC5B,OAAOD;AAAA,IACP,MAAM;AAAA,EACV,CAAG,GACKpH,IAAQtL,GAAQ,GAChB;AAAA,IACJ,cAAc4S;AAAA,IACd,kBAAkBC;AAAA,IAClB,mBAAmB1H;AAAA;AAAA,IAEnB,WAAA2H,IAAY;AAAA,IACZ,YAAAC,IAAa,CAAE;AAAA,IACf,iBAAAC,IAAkB,CAAE;AAAA,IACpB,OAAA1B,IAAQ;AAAA,IACR,SAAS2B;AAAA,IACT,WAAAtM;AAAA,IACA,aAAA0E,IAAc;AAAA,IACd,UAAAD,IAAW;AAAA,IACX,cAAA8H;AAAA,IACA,kBAAAC;AAAA,IACA,OAAO5H,KAAY;AAAA,IACnB,KAAA1C,IAAM;AAAA,IACN,KAAAD,IAAM;AAAA,IACN,MAAAvI;AAAA,IACA,UAAAmL;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC,KAAc;AAAA,IACd,WAAAE,KAAY;AAAA,IACZ,MAAAyG,KAAO;AAAA,IACP,MAAA3J,KAAO;AAAA,IACP,OAAAiD,IAAQZ;AAAA,IACR,WAAAqI;AAAA,IACA,OAAAd;AAAA,IACA,UAAAzG;AAAA,IACA,OAAAuG,IAAQ;AAAA,IACR,OAAOtG;AAAA,IACP,mBAAAuH,IAAoB;AAAA,IACpB,kBAAAC,IAAmBvI;AAAA,IACnB,GAAGvD;AAAA,EACP,IAAMtH,GACE6F,IAAa;AAAA,IACjB,GAAG7F;AAAA,IACH,OAAAoL;AAAA,IACA,KAAAzC;AAAA,IACA,KAAAD;AAAA,IACA,SAASqK;AAAA,IACT,UAAA7H;AAAA,IACA,aAAAC;AAAA,IACA,aAAAK;AAAA,IACA,OAAOH;AAAA,IACP,OAAA+F;AAAA,IACA,MAAAe;AAAA,IACA,MAAA3J;AAAA,IACA,WAAAkD;AAAA,IACA,OAAAD;AAAA,IACA,OAAAyG;AAAA,IACA,mBAAAiB;AAAA,IACA,kBAAAC;AAAA,EACD,GACK;AAAA,IACJ,WAAAxI;AAAA,IACA,cAAAwE;AAAA,IACA,qBAAAiE;AAAA,IACA,eAAA1D;AAAA,IACA,MAAA7D;AAAA,IACA,QAAAD;AAAA,IACA,MAAAsC;AAAA,IACA,mBAAAnB;AAAA,IACA,OAAAN;AAAA,IACA,UAAAV;AAAA,IACA,OAAAY;AAAA,IACA,QAAA9D;AAAA,IACA,aAAAoG;AAAA,IACA,WAAAC;AAAA,IACA,eAAAS;AAAA,EACD,IAAG5E,GAAU;AAAA,IACZ,GAAGnF;AAAA,IACH,SAAS6B;AAAA,EACb,CAAG;AACD,EAAA7B,EAAW,SAAS+G,EAAM,SAAS,KAAKA,EAAM,KAAK,CAAAG,MAAQA,EAAK,KAAK,GACrElH,EAAW,WAAWmG,GACtBnG,EAAW,oBAAoBmH;AAC/B,QAAM6D,IAAUmB,GAAkBnM,CAAU,GAGtCyN,MAAWlB,KAAA,gBAAAA,EAAO,SAAQS,EAAW,QAAQ7B,IAC7CuC,MAAWnB,KAAA,gBAAAA,EAAO,SAAQS,EAAW,QAAQxB,IAC7CmC,MAAYpB,KAAA,gBAAAA,EAAO,UAASS,EAAW,SAASvB,IAChDmC,MAAYrB,KAAA,gBAAAA,EAAO,UAASS,EAAW,SAASpB,IAChDiC,MAAiBtB,KAAA,gBAAAA,EAAO,eAAcS,EAAW,cAAclC,IAC/DgD,MAAWvB,KAAA,gBAAAA,EAAO,SAAQS,EAAW,QAAQjB,IAC7CgC,MAAgBxB,KAAA,gBAAAA,EAAO,cAAaS,EAAW,aAAad,IAC5D8B,KAAYzB,KAAA,gBAAAA,EAAO,UAASS,EAAW,SAAS,SAChDiB,KAAgBZ,KAAA,gBAAAA,EAAW,SAAQJ,EAAgB,MACnDiB,KAAgBb,KAAA,gBAAAA,EAAW,SAAQJ,EAAgB,MACnDkB,KAAiBd,KAAA,gBAAAA,EAAW,UAASJ,EAAgB,OACrDmB,KAAiBf,KAAA,gBAAAA,EAAW,UAASJ,EAAgB,OACrDoB,KAAsBhB,KAAA,gBAAAA,EAAW,eAAcJ,EAAgB,YAC/DqB,KAAgBjB,KAAA,gBAAAA,EAAW,SAAQJ,EAAgB,MACnDsB,KAAqBlB,KAAA,gBAAAA,EAAW,cAAaJ,EAAgB,WAC7DuB,KAAiBnB,KAAA,gBAAAA,EAAW,UAASJ,EAAgB,OACrDwB,IAAYlN,EAAa;AAAA,IAC7B,aAAakM;AAAA,IACb,cAAclE;AAAA,IACd,mBAAmB0E;AAAA,IACnB,wBAAwBxM;AAAA,IACxB,iBAAiB;AAAA,MACf,GAAIwI,GAA4BwD,EAAQ,KAAK;AAAA,QAC3C,IAAIV;AAAA,MACL;AAAA,IACF;AAAA,IACD,YAAY;AAAA,MACV,GAAG/M;AAAA,MACH,GAAGiO,KAAA,gBAAAA,EAAe;AAAA,IACnB;AAAA,IACD,WAAW,CAACjD,EAAQ,MAAMpK,EAAS;AAAA,EACvC,CAAG,GACK8N,KAAYnN,EAAa;AAAA,IAC7B,aAAamM;AAAA,IACb,mBAAmBQ;AAAA,IACnB,YAAAlO;AAAA,IACA,WAAWgL,EAAQ;AAAA,EACvB,CAAG,GACK2D,KAAapN,EAAa;AAAA,IAC9B,aAAaoM;AAAA,IACb,mBAAmBQ;AAAA,IACnB,iBAAiB;AAAA,MACf,OAAO;AAAA,QACL,GAAGpJ,EAAUuD,CAAI,EAAE,OAAOe,CAAW;AAAA,QACrC,GAAGtE,EAAUuD,CAAI,EAAE,KAAKgB,EAAS;AAAA,MACzC;AAAA,IACK;AAAA,IACD,YAAY;AAAA,MACV,GAAGtJ;AAAA,MACH,GAAGmO,KAAA,gBAAAA,EAAgB;AAAA,IACpB;AAAA,IACD,WAAWnD,EAAQ;AAAA,EACvB,CAAG,GACK4D,KAAarN,EAAa;AAAA,IAC9B,aAAaqM;AAAA,IACb,cAAc9D;AAAA,IACd,mBAAmBsE;AAAA,IACnB,YAAY;AAAA,MACV,GAAGpO;AAAA,MACH,GAAGoO,KAAA,gBAAAA,EAAgB;AAAA,IACpB;AAAA,IACD,WAAWpD,EAAQ;AAAA,EACvB,CAAG,GACK6D,KAAkBtN,EAAa;AAAA,IACnC,aAAasM;AAAA,IACb,mBAAmBQ;AAAA,IACnB,YAAY;AAAA,MACV,GAAGrO;AAAA,MACH,GAAGqO,KAAA,gBAAAA,EAAqB;AAAA,IACzB;AAAA,IACD,WAAWrD,EAAQ;AAAA,EACvB,CAAG,GACK8D,KAAYvN,EAAa;AAAA,IAC7B,aAAauM;AAAA,IACb,mBAAmBQ;AAAA,IACnB,YAAAtO;AAAA,IACA,WAAWgL,EAAQ;AAAA,EACvB,CAAG,GACK+D,KAAiBxN,EAAa;AAAA,IAClC,aAAawM;AAAA,IACb,mBAAmBQ;AAAA,IACnB,YAAAvO;AAAA,IACA,WAAWgL,EAAQ;AAAA,EACvB,CAAG,GACKgE,KAAmBzN,EAAa;AAAA,IACpC,aAAayM;AAAA,IACb,cAAcR;AAAA,IACd,mBAAmBgB;AAAA,IACnB,YAAAxO;AAAA,EACJ,CAAG;AACD,SAAoBiL,gBAAAA,EAAAA,KAAMwC,IAAU;AAAA,IAClC,GAAGgB;AAAA,IACH,UAAU,CAAcvD,gBAAAA,EAAI,IAACwC,IAAU;AAAA,MACrC,GAAGgB;AAAA,IACT,CAAK,GAAgBxD,gBAAAA,EAAI,IAACyC,IAAW;AAAA,MAC/B,GAAGgB;AAAA,IACJ,CAAA,GAAG5H,EAAM,OAAO,CAAAG,MAAQA,EAAK,SAASrE,KAAOqE,EAAK,SAASpE,CAAG,EAAE,IAAI,CAACoE,GAAM3E,MAAU;AACpF,YAAMsB,KAAUF,GAAeuD,EAAK,OAAOrE,GAAKC,CAAG,GAC7CmM,KAAQlK,EAAUuD,CAAI,EAAE,OAAOzE,EAAO;AAC5C,UAAIoI;AACJ,aAAII,MAAU,KACZJ,IAAahJ,EAAO,SAASiE,EAAK,KAAK,IAEvC+E,IAAaI,MAAU,aAAaxF,IAAQK,EAAK,SAASjE,EAAO,CAAC,KAAKiE,EAAK,SAASjE,EAAOA,EAAO,SAAS,CAAC,IAAIiE,EAAK,SAASjE,EAAO,CAAC,MAAMoJ,MAAU,eAAexF,IAAQK,EAAK,SAASjE,EAAO,CAAC,KAAKiE,EAAK,SAASjE,EAAOA,EAAO,SAAS,CAAC,IAAIiE,EAAK,SAASjE,EAAO,CAAC,IAEvPgI,gBAAAA,EAAK,KAAClR,EAAM,UAAU;AAAA,QACxC,UAAU,CAAcmR,gBAAAA,EAAI,IAAC4C,IAAU;AAAA,UACrC,cAAcvL;AAAA,UACd,GAAGuM;AAAA,UACH,GAAI,CAACnP,GAAgBmO,EAAQ,KAAK;AAAA,YAChC,YAAA7B;AAAA,UACZ;AAAA,UACU,OAAO;AAAA,YACL,GAAGgD;AAAA,YACH,GAAGH,GAAU;AAAA,UACd;AAAA,UACD,WAAWhO,EAAKgO,GAAU,WAAW7C,KAAcjB,EAAQ,UAAU;AAAA,QACtE,CAAA,GAAG9D,EAAK,SAAS,OAAoBgE,gBAAAA,EAAAA,IAAK6C,IAAe;AAAA,UACxD,eAAe;AAAA,UACf,cAAcxL;AAAA,UACd,GAAGwM;AAAA,UACH,GAAI,CAACpP,GAAgBoO,EAAa,KAAK;AAAA,YACrC,iBAAiB9B;AAAA,UAC7B;AAAA,UACU,OAAO;AAAA,YACL,GAAGgD;AAAA,YACH,GAAGF,GAAe;AAAA,UACnB;AAAA,UACD,WAAWjO,EAAKkK,EAAQ,WAAW+D,GAAe,WAAW9C,KAAcjB,EAAQ,eAAe;AAAA,UAClG,UAAU9D,EAAK;AAAA,QAChB,CAAA,IAAI,IAAI;AAAA,MACV,GAAE3E,CAAK;AAAA,IACT,CAAA,GAAGU,EAAO,IAAI,CAACtI,GAAO4H,MAAU;AAC/B,YAAMsB,KAAUF,GAAehJ,GAAOkI,GAAKC,CAAG,GACxCmM,KAAQlK,EAAUuD,CAAI,EAAE,OAAOzE,EAAO,GACtCqL,IAAsB5B,MAAsB,QAAQb,KAAUoB;AACpE;AAAA;AAAA,QAA6O3C,gBAAAA,EAAAA,IAAKgE,GAAqB;AAAA,UACrQ,GAAI,CAACvP,GAAgBuP,CAAmB,KAAK;AAAA,YAC3C,kBAAA3B;AAAA,YACA,mBAAAD;AAAA,YACA,OAAO,OAAOC,KAAqB,aAAaA,EAAiB3H,EAAMjL,CAAK,GAAG4H,CAAK,IAAIgL;AAAA,YACxF,OAAAhL;AAAA,YACA,MAAM0D,OAAS1D,KAASyD,OAAWzD,KAAS+K,MAAsB;AAAA,YAClE,UAAAjI;AAAA,UACV;AAAA,UACQ,GAAGwJ;AAAA,UACH,UAAuB3D,gBAAAA,EAAI,IAAC0C,IAAW;AAAA,YACrC,cAAcrL;AAAA,YACd,GAAGqM;AAAA,YACH,WAAW9N,EAAKkK,EAAQ,OAAO4D,GAAW,WAAW5I,OAAWzD,KAASyI,EAAQ,QAAQ7D,MAAsB5E,KAASyI,EAAQ,YAAY;AAAA,YAC5I,OAAO;AAAA,cACL,GAAGiE;AAAA,cACH,GAAGlF,GAAcxH,CAAK;AAAA,cACtB,GAAGqM,GAAW;AAAA,YACf;AAAA,YACD,UAAuB1D,gBAAAA,EAAI,IAAC8C,GAAW;AAAA,cACrC,cAAczL;AAAA,cACd,cAAc4K,KAAeA,GAAa5K,CAAK,IAAIsK;AAAA,cACnD,iBAAiBjH,EAAMjL,CAAK;AAAA,cAC5B,mBAAmByK;AAAA,cACnB,kBAAkBgI,KAAmBA,GAAiBxH,EAAMjL,CAAK,GAAG4H,CAAK,IAAIuK;AAAA,cAC7E,OAAO7J,EAAOV,CAAK;AAAA,cACnB,GAAGyM;AAAA,YACJ,CAAA;AAAA,UACF,CAAA;AAAA,QACF,GAAEzM,CAAK;AAAA;AAAA,IACd,CAAK,CAAC;AAAA,EACN,CAAG;AACH,CAAC;AACD,QAAQ,IAAI,aAAa,iBAAemK,GAAO,YAAmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQhF,cAAcnN,GAAevF,EAAU,QAAQ,CAAAG,MAC/B,MAAM,QAAQA,EAAM,SAASA,EAAM,YAAY,KAChDA,EAAM,YAAY,KAAK,OAC3B,IAAI,MAAM,iGAAiG,IAE7G,IACR;AAAA;AAAA;AAAA;AAAA,EAID,mBAAmBH,EAAU;AAAA;AAAA;AAAA;AAAA,EAI7B,kBAAkBuF,GAAevF,EAAU,QAAQ,CAAAG,MACnC,MAAM,QAAQA,EAAM,SAASA,EAAM,YAAY,KAChDA,EAAM,gBAAgB,KAAK,OAC/B,IAAI,MAAM,yGAAyG,IAErH,IACR;AAAA;AAAA;AAAA;AAAA,EAID,UAAUH,EAAU;AAAA;AAAA;AAAA;AAAA,EAIpB,SAASA,EAAU;AAAA;AAAA;AAAA;AAAA,EAInB,WAAWA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOrB,OAAOA,EAAgD,UAAU,CAACA,EAAU,MAAM,CAAC,WAAW,aAAa,SAAS,QAAQ,WAAW,SAAS,CAAC,GAAGA,EAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQrK,YAAYA,EAAU,MAAM;AAAA,IAC1B,OAAOA,EAAU;AAAA,IACjB,MAAMA,EAAU;AAAA,IAChB,WAAWA,EAAU;AAAA,IACrB,MAAMA,EAAU;AAAA,IAChB,MAAMA,EAAU;AAAA,IAChB,OAAOA,EAAU;AAAA,IACjB,OAAOA,EAAU;AAAA,IACjB,YAAYA,EAAU;AAAA,EAC1B,CAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,iBAAiBA,EAAU,MAAM;AAAA,IAC/B,OAAOA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC7D,MAAMA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC5D,WAAWA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IACjE,MAAMA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC5D,MAAMA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC5D,OAAOA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC7D,OAAOA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC7D,YAAYA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM;AAAA,MAC/D,UAAUA,EAAU;AAAA,MACpB,WAAWA,EAAU;AAAA,MACrB,MAAMA,EAAU;AAAA,MAChB,OAAOA,EAAU;AAAA,MACjB,OAAOA,EAAU;AAAA,MACjB,mBAAmBA,EAAU,MAAM,CAAC,QAAQ,OAAO,IAAI,CAAC;AAAA,IAC9D,CAAK,CAAC,CAAC;AAAA,EACP,CAAG;AAAA;AAAA;AAAA;AAAA,EAID,cAAcA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAM,GAAGA,EAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKzF,UAAUA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,aAAaA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,cAAcA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQxB,kBAAkBA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAO5B,OAAOA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAM;AAAA,IAC5D,OAAOA,EAAU;AAAA,IACjB,OAAOA,EAAU,OAAO;AAAA,EAC5B,CAAG,CAAC,GAAGA,EAAU,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMpB,KAAKA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMf,KAAKA,EAAU;AAAA;AAAA;AAAA;AAAA,EAIf,MAAMA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUhB,UAAUA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOpB,mBAAmBA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAK7B,aAAaA,EAAU,MAAM,CAAC,cAAc,UAAU,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASvD,OAAOA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKjB,WAAWA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKrB,MAAMA,EAAgD,UAAU,CAACA,EAAU,MAAM,CAAC,SAAS,QAAQ,CAAC,GAAGA,EAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKxH,WAAWA,EAAU,MAAM;AAAA,IACzB,OAAOA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC7D,MAAMA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC5D,WAAWA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IACjE,MAAMA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC5D,MAAMA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC5D,OAAOA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC7D,OAAOA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA,IAC7D,YAAYA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM;AAAA,MAC/D,UAAUA,EAAU;AAAA,MACpB,WAAWA,EAAU;AAAA,MACrB,MAAMA,EAAU;AAAA,MAChB,OAAOA,EAAU;AAAA,MACjB,OAAOA,EAAU;AAAA,MACjB,mBAAmBA,EAAU,MAAM,CAAC,QAAQ,OAAO,IAAI,CAAC;AAAA,IAC9D,CAAK,CAAC,CAAC;AAAA,EACP,CAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMD,OAAOA,EAAU,MAAM;AAAA,IACrB,OAAOA,EAAU;AAAA,IACjB,MAAMA,EAAU;AAAA,IAChB,WAAWA,EAAU;AAAA,IACrB,MAAMA,EAAU;AAAA,IAChB,MAAMA,EAAU;AAAA,IAChB,OAAOA,EAAU;AAAA,IACjB,OAAOA,EAAU;AAAA,IACjB,YAAYA,EAAU;AAAA,EAC1B,CAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASD,MAAMA,EAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,IAAIA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,QAAQA,EAAU,IAAI,CAAC,CAAC,GAAGA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,EAItJ,UAAUA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASpB,OAAOA,EAAU,MAAM,CAAC,YAAY,UAAU,EAAK,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpD,OAAOA,EAAU,UAAU,CAACA,EAAU,QAAQA,EAAU,MAAM,GAAGA,EAAU,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASlF,mBAAmBA,EAAU,MAAM,CAAC,QAAQ,OAAO,IAAI,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcxD,kBAAkBA,EAAU,UAAU,CAACA,EAAU,MAAMA,EAAU,MAAM,CAAC;AAC1E;AC7jCA,IAAImV,KAAY;AA4BhB,SAASC,GAASzU,GAAO;AACvB,SAAO,OAAOA,KAAS,YACpBqB,GAAarB,CAAK,KAAKoB,GAAWpB,CAAK,KAAKwU;AACjD;AChBa,MAAAE,KAAiBC,GAAS,CAACnV,MAA+B;;AACrE,QAAMsE,IAAQC,GAAS,GACjB,EAAE,OAAA6Q,MAAUpV,GACZ,EAAE,GAAAqV,EAAE,IAAIC,GAAe;AAEpB,WAAAC,EAAeC,GAAeC,GAAgC;AACrE,IAAIA,MAAgBzV,EAAM,YAAY,CAACiV,GAASQ,CAAW,KAE3DzV,EAAM,iBAAiByV,CAAW;AAAA,EAAA;AAGpC,gCACG9Q,IAAM,EAAA,WAAU,OAAM,KAAK,GAAG,YAAW,UACvC,UAAA;AAAA,IAAAyQ,EAAM,sBACL1Q,gBAAAA,EAAA;AAAA,MAACgR;AAAA,MAAA;AAAA,QACC,IAAI;AAAA,UACF,QACE3R,KAAAD,KAAAD,IAAAS,EAAM,kBAAN,gBAAAT,EAAqB,iBAArB,gBAAAC,EAAmC,mBAAnC,gBAAAC,EACI;AAAA,UACN,UAAU;AAAA,QACZ;AAAA,QAEC,YAAE,qBAAqB;AAAA,MAAA;AAAA,IAC1B;AAAA,IAEFW,gBAAAA,EAAA;AAAA,MAAC6N;AAAA,MAAA;AAAA,QACC,OAAOvS,EAAM;AAAA,QACb,OAAM;AAAA,QACN,UAAUuV;AAAA,QACV,KAAKvV,EAAM;AAAA,QACX,KAAKA,EAAM;AAAA,QACX,mBAAgB;AAAA,QAChB,UAAUA,EAAM;AAAA,QAChB,IAAI;AAAA,UACF,+BAA+B;AAAA,YAC7B,QAAQ;AAAA,YACR,iBAAiB;AAAA,YACjB,KAAK;AAAA,UAAA;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAAA,IACCoV,EAAM,4BACJpV,EAAM,cACLA,EAAM,YAAYA,EAAM,QAAQ,0BAE/B2V,IAAoB,EAAA,OAAO3V,EAAM,SAAS,YAAY;AAAA,EAAA,GAE7D;AAEJ,CAAC;AAOM,SAAS2V,GAAoB,EAAE,OAAAnV,GAAO,IAAAoV,KAAgC;;AAC3E,QAAMtR,IAAQC,GAAS;AAErB,SAAAG,gBAAAA,EAAA;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,WAAW;AAAA,MACX,gBAAgB;AAAA,MAChB,YAAY;AAAA,MACZ,KAAK;AAAA,MACL,IAAI;AAAA,QACF,SAAS;AAAA,QACT,aAAYd,IAAAS,EAAM,QAAQ,6BAAd,gBAAAT,EAAyC;AAAA,QACrD,cAAc;AAAA,QACd,UAAU;AAAA,QACV,GAAG+R;AAAA,MACL;AAAA,MAEA,UAAAlR,gBAAAA,EAAA;AAAA,QAACgR;AAAA,QAAA;AAAA,UACC,WAAU;AAAA,UACV,IAAI;AAAA,YACF,WAAW;AAAA,YACX,UAAU;AAAA,YACV,SAAS;AAAA,YACT,OAAOpR,EAAM,QAAQ,KAAK;AAAA,YAC1B,YAAY;AAAA,UACd;AAAA,UAEC,UAAA9D;AAAA,QAAA;AAAA,MAAA;AAAA,IACH;AAAA,EACF;AAEJ;","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31]}
@@ -116,7 +116,7 @@ export declare class JoggingStore {
116
116
  saveToLocalStorage(): void;
117
117
  get isLocked(): boolean;
118
118
  get localStorageSave(): {
119
- selectedTabId: "debug" | "joint" | "cartesian";
119
+ selectedTabId: "joint" | "debug" | "cartesian";
120
120
  selectedCoordSystemId: string;
121
121
  selectedTcpId: string;
122
122
  selectedOrientation: string;
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./theming-D5DvGuxX.cjs"),o=require("./VelocitySlider-2Zme2MN7.cjs"),a=require("./ProgramStateIndicator-DYKBcj1s.cjs"),t=require("./index-8UEqiXug.cjs"),r=require("./interpolation-CVSmVNjc.cjs"),n=require("./externalizeComponent-C12Qf79R.cjs");exports.AppHeader=e.AppHeader;exports.ConnectedMotionGroup=e.ConnectedMotionGroup;exports.LogPanel=e.LogPanel;exports.LogStore=e.LogStore;exports.LogViewer=e.LogViewer;exports.NoMotionGroupModal=e.NoMotionGroupModal;exports.RobotListItem=e.RobotListItem;exports.RobotSetupReadinessIndicator=e.RobotSetupReadinessIndicator;exports.RobotSetupReadinessState=e.RobotSetupReadinessState;exports.SafetyBar=e.SafetyBar;exports.SelectableFab=e.SelectableFab;exports.TabBar=e.TabBar;exports.WandelscriptEditor=e.WandelscriptEditor;exports.createDebugMessage=e.createDebugMessage;exports.createErrorMessage=e.createErrorMessage;exports.createInfoMessage=e.createInfoMessage;exports.createLogMessage=e.createLogMessage;exports.createNovaMuiTheme=e.createNovaMuiTheme;exports.createWarningMessage=e.createWarningMessage;exports.LoadingCover=o.LoadingCover;exports.LoadingErrorMessage=o.LoadingErrorMessage;exports.VelocitySlider=o.VelocitySlider;exports.VelocitySliderLabel=o.VelocitySliderLabel;exports.jointValuesEqual=o.jointValuesEqual;exports.poseEqual=o.poseEqual;exports.tcpMotionEqual=o.tcpMotionEqual;exports.unwrapRotationVector=o.unwrapRotationVector;exports.ProgramControl=a.ProgramControl;exports.ProgramState=a.ProgramState;exports.ProgramStateIndicator=a.ProgramStateIndicator;exports.useAnimationFrame=t.useAnimationFrame;exports.useAutorun=t.useAutorun;exports.useMounted=t.useMounted;exports.useReaction=t.useReaction;exports.ValueInterpolator=r.ValueInterpolator;exports.useInterpolation=r.useInterpolation;exports.i18n=n.i18n;
2
+ //# sourceMappingURL=core.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/core.d.ts ADDED
@@ -0,0 +1,23 @@
1
+ export * from "./components/AppHeader";
2
+ export * from "./components/LoadingCover";
3
+ export * from "./components/LogPanel";
4
+ export { LogStore } from "./components/LogStore";
5
+ export * from "./components/LogViewer";
6
+ export * from "./components/modal/NoMotionGroupModal";
7
+ export * from "./components/ProgramControl";
8
+ export * from "./components/ProgramStateIndicator";
9
+ export * from "./components/RobotListItem";
10
+ export * from "./components/RobotSetupReadinessIndicator";
11
+ export * from "./components/safetyBar/SafetyBar";
12
+ export * from "./components/SelectableFab";
13
+ export * from "./components/TabBar";
14
+ export * from "./components/utils/hooks";
15
+ export * from "./components/utils/interpolation";
16
+ export * from "./components/VelocitySlider";
17
+ export * from "./components/wandelscript-editor/WandelscriptEditor";
18
+ export * from "./i18n/config";
19
+ export * from "./lib/ConnectedMotionGroup";
20
+ export * from "./lib/motionStateUpdate";
21
+ export * from "./themes/themeTypes";
22
+ export { createNovaMuiTheme } from "./themes/theming";
23
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AACA,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,cAAc,wBAAwB,CAAA;AACtC,cAAc,uCAAuC,CAAA;AACrD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,oCAAoC,CAAA;AAClD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,2CAA2C,CAAA;AACzD,cAAc,kCAAkC,CAAA;AAChD,cAAc,4BAA4B,CAAA;AAC1C,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kCAAkC,CAAA;AAChD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qDAAqD,CAAA;AACnE,cAAc,eAAe,CAAA;AAC7B,cAAc,4BAA4B,CAAA;AAC1C,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,46 @@
1
+ import { A as o, C as s, a as r, L as t, h as n, N as i, R as u, j as p, i as c, S as g, k as l, T as d, W as m, d as b, g as M, e as S, b as L, c as f, f as R } from "./theming-BO8z_Hpa.js";
2
+ import { L as x, a as E, V as I, b as P, j as A, p as C, t as j, u as q } from "./VelocitySlider-QSg_8eb1.js";
3
+ import { a as N, P as T, b as W } from "./ProgramStateIndicator-CTT-CAcJ.js";
4
+ import { c as v, a as w, u as B, b as F } from "./index-DSz82V23.js";
5
+ import { V as k, u as D } from "./interpolation-DjBX_Si-.js";
6
+ import { i as z } from "./externalizeComponent-RpcZ_G17.js";
7
+ export {
8
+ o as AppHeader,
9
+ s as ConnectedMotionGroup,
10
+ x as LoadingCover,
11
+ E as LoadingErrorMessage,
12
+ r as LogPanel,
13
+ t as LogStore,
14
+ n as LogViewer,
15
+ i as NoMotionGroupModal,
16
+ N as ProgramControl,
17
+ T as ProgramState,
18
+ W as ProgramStateIndicator,
19
+ u as RobotListItem,
20
+ p as RobotSetupReadinessIndicator,
21
+ c as RobotSetupReadinessState,
22
+ g as SafetyBar,
23
+ l as SelectableFab,
24
+ d as TabBar,
25
+ k as ValueInterpolator,
26
+ I as VelocitySlider,
27
+ P as VelocitySliderLabel,
28
+ m as WandelscriptEditor,
29
+ b as createDebugMessage,
30
+ M as createErrorMessage,
31
+ S as createInfoMessage,
32
+ L as createLogMessage,
33
+ f as createNovaMuiTheme,
34
+ R as createWarningMessage,
35
+ z as i18n,
36
+ A as jointValuesEqual,
37
+ C as poseEqual,
38
+ j as tcpMotionEqual,
39
+ q as unwrapRotationVector,
40
+ v as useAnimationFrame,
41
+ w as useAutorun,
42
+ D as useInterpolation,
43
+ B as useMounted,
44
+ F as useReaction
45
+ };
46
+ //# sourceMappingURL=core.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}