@jeremyckahn/farmhand 1.19.28 → 1.19.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{index-1fpav8Oq.js → index-DEgzdLWx.js} +5 -5
- package/dist/assets/{index-1fpav8Oq.js.map → index-DEgzdLWx.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/service-worker.js +1 -1
- package/dist/service-worker.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Field/Field.tsx +2 -0
- package/src/components/QuickSelect/QuickSelect.tsx +1 -1
|
@@ -136,7 +136,7 @@ Add a <Suspense fallback=...> component higher in the tree to provide a loading
|
|
|
136
136
|
10.59L10 14.17L17.59 6.58L19 8L10 17Z`}))},WarningIcon=function(e){return import_react$24.createElement(SvgIcon,Object.assign({},e),import_react$24.createElement(`path`,{d:`M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z`}))},ErrorIcon=function(e){return import_react$24.createElement(SvgIcon,Object.assign({},e),import_react$24.createElement(`path`,{d:`M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,
|
|
137
137
|
6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,
|
|
138
138
|
13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z`}))},InfoIcon=function(e){return import_react$24.createElement(SvgIcon,Object.assign({},e),import_react$24.createElement(`path`,{d:`M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,
|
|
139
|
-
0 22,12A10,10 0 0,0 12,2Z`}))},iconStyles={fontSize:20,marginInlineEnd:8},defaultIconVariants={default:void 0,success:import_react$24.createElement(CheckIcon,{style:iconStyles}),warning:import_react$24.createElement(WarningIcon,{style:iconStyles}),error:import_react$24.createElement(ErrorIcon,{style:iconStyles}),info:import_react$24.createElement(InfoIcon,{style:iconStyles})};function createChainedFunction(e,t){return e.reduce(function(e,n){return n==null?e:function(){var a=[...arguments],o=[].concat(a);t&&o.indexOf(t)===-1&&o.push(t),e.apply(this,o),n.apply(this,o)}},function(){})}var useEnhancedEffect=typeof window<`u`?import_react$24.useLayoutEffect:import_react$24.useEffect;function useEventCallback(e){var t=(0,import_react$24.useRef)(e);return useEnhancedEffect(function(){t.current=e}),(0,import_react$24.useCallback)(function(){return t.current.apply(void 0,arguments)},[])}var Snackbar=(0,import_react$24.forwardRef)(function(e,t){var n=e.children,a=e.autoHideDuration,o=e.ClickAwayListenerProps,s=e.disableWindowBlurListener,l=s===void 0?!1:s,u=e.onClose,d=e.onMouseEnter,f=e.onMouseLeave,m=e.open,h=e.resumeHideDuration,v=_objectWithoutPropertiesLoose$2(e,[`children`,`autoHideDuration`,`ClickAwayListenerProps`,`disableWindowBlurListener`,`onClose`,`onMouseEnter`,`onMouseLeave`,`open`,`resumeHideDuration`]),y=(0,import_react$24.useRef)(),b=useEventCallback(function(){u&&u.apply(void 0,arguments)}),x=useEventCallback(function(e){!u||e==null||(clearTimeout(y.current),y.current=setTimeout(function(){b(null,REASONS.TIMEOUT)},e))});(0,import_react$24.useEffect)(function(){return m&&x(a),function(){clearTimeout(y.current)}},[m,a,x]);var S=function(){clearTimeout(y.current)},C=(0,import_react$24.useCallback)(function(){a!=null&&x(h??a*.5)},[a,h,x]);return(0,import_react$24.useEffect)(function(){if(!l&&m)return window.addEventListener(`focus`,C),window.addEventListener(`blur`,S),function(){window.removeEventListener(`focus`,C),window.removeEventListener(`blur`,S)}},[l,C,m]),(0,import_react$24.createElement)(ClickAwayListener,_extends$2({onClickAway:function(e){u&&u(e,REASONS.CLICKAWAY)}},o),(0,import_react$24.createElement)(`div`,_extends$2({onMouseEnter:function(e){d&&d(e),S()},onMouseLeave:function(e){f&&f(e),C()},ref:t},v),n))}),componentName$1=`SnackbarItem`,classes$1={contentRoot:componentName$1+`-contentRoot`,lessPadding:componentName$1+`-lessPadding`,variantSuccess:componentName$1+`-variantSuccess`,variantError:componentName$1+`-variantError`,variantInfo:componentName$1+`-variantInfo`,variantWarning:componentName$1+`-variantWarning`,message:componentName$1+`-message`,action:componentName$1+`-action`,wrappedRoot:componentName$1+`-wrappedRoot`},StyledSnackbar=styled$1(Snackbar)(function(e){var t,n=e.theme,a=n.palette.mode||n.palette.type,o=emphasize(n.palette.background.default,a===`light`?.8:.98);return t={},t[`&.`+classes$1.wrappedRoot]={position:`relative`,transform:`translateX(0)`,top:0,right:0,bottom:0,left:0},t[`.`+classes$1.contentRoot]=_extends$2({},n.typography.body2,{backgroundColor:o,color:n.palette.getContrastText(o),alignItems:`center`,padding:`6px 16px`,borderRadius:`4px`,boxShadow:`0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)`}),t[`.`+classes$1.lessPadding]={paddingLeft:8*2.5},t[`.`+classes$1.variantSuccess]={backgroundColor:`#43a047`,color:`#fff`},t[`.`+classes$1.variantError]={backgroundColor:`#d32f2f`,color:`#fff`},t[`.`+classes$1.variantInfo]={backgroundColor:`#2196f3`,color:`#fff`},t[`.`+classes$1.variantWarning]={backgroundColor:`#ff9800`,color:`#fff`},t[`.`+classes$1.message]={display:`flex`,alignItems:`center`,padding:`8px 0`},t[`.`+classes$1.action]={display:`flex`,alignItems:`center`,marginLeft:`auto`,paddingLeft:16,marginRight:-8},t}),SnackbarItem=function(e){var t=e.classes,n=_objectWithoutPropertiesLoose$2(e,[`classes`]),a=(0,import_react$24.useRef)(),o=(0,import_react$24.useState)(!0),s=o[0],l=o[1];(0,import_react$24.useEffect)(function(){return function(){a.current&&clearTimeout(a.current)}},[]);var u=createChainedFunction([n.snack.onClose,n.onClose],n.snack.key),d=function(){n.snack.requestClose&&u(null,REASONS.INSTRCUTED)},f=function(){a.current=setTimeout(function(){l(!s)},125)},m=n.style,h=n.ariaAttributes,v=n.className,y=n.hideIconVariant,b=n.iconVariant,x=n.snack,S=n.action,C=n.content,T=n.TransitionComponent,E=n.TransitionProps,D=n.transitionDuration,O=_objectWithoutPropertiesLoose$2(n,[`style`,`dense`,`ariaAttributes`,`className`,`hideIconVariant`,`iconVariant`,`snack`,`action`,`content`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),k=x.key,j=x.open,M=x.className,N=x.variant,F=x.content,I=x.action,L=x.ariaAttributes,R=x.anchorOrigin,z=x.message,B=x.TransitionComponent,V=x.TransitionProps,H=x.transitionDuration,U=_objectWithoutPropertiesLoose$2(x,[`persist`,`key`,`open`,`entered`,`requestClose`,`className`,`variant`,`content`,`action`,`ariaAttributes`,`anchorOrigin`,`message`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),W=_extends$2({},defaultIconVariants,{},b)[N],G=_extends$2({"aria-describedby":`notistack-snackbar`},objectMerge(L,h)),ee=B||T||DEFAULTS.TransitionComponent,K=objectMerge(H,D,DEFAULTS.transitionDuration),q=_extends$2({direction:getTransitionDirection(R)},objectMerge(V,E)),J=I||S;typeof J==`function`&&(J=J(k));var te=F||C;typeof te==`function`&&(te=te(k,x.message));var ne=[`onEnter`,`onEntering`,`onEntered`,`onExit`,`onExiting`,`onExited`].reduce(function(e,t){var a;return _extends$2({},e,(a={},a[t]=createChainedFunction([n.snack[t],n[t]],n.snack.key),a))},{});return import_react$24.createElement(Collapse,{unmountOnExit:!0,timeout:175,in:s,onExited:ne.onExited},import_react$24.createElement(StyledSnackbar,Object.assign({},O,U,{open:j,className:clsx(t.root,classes$1.wrappedRoot,t[transformer.toAnchorOrigin(R)]),onClose:u}),import_react$24.createElement(ee,Object.assign({appear:!0,in:j,timeout:K},q,{onExit:ne.onExit,onExiting:ne.onExiting,onExited:f,onEnter:ne.onEnter,onEntering:ne.onEntering,onEntered:createChainedFunction([ne.onEntered,d])}),te||import_react$24.createElement(SnackbarContent,Object.assign({},G,{role:`alert`,style:m,className:clsx(classes$1.contentRoot,classes$1[transformer.toVariant(N)],t[transformer.toVariant(N)],v,M,!y&&W&&classes$1.lessPadding)}),import_react$24.createElement(`div`,{id:G[`aria-describedby`],className:classes$1.message},y?null:W,z),J&&import_react$24.createElement(`div`,{className:classes$1.action},J)))))},collapse={container:`& > .MuiCollapse-container, & > .MuiCollapse-root`,wrapper:`& > .MuiCollapse-container > .MuiCollapse-wrapper, & > .MuiCollapse-root > .MuiCollapse-wrapper`},xsWidthMargin=16,componentName$2=`SnackbarContainer`,classes$2={root:componentName$2+`-root`,rootDense:componentName$2+`-rootDense`,top:componentName$2+`-top`,bottom:componentName$2+`-bottom`,left:componentName$2+`-left`,right:componentName$2+`-right`,center:componentName$2+`-center`},Root$1=styled$1(`div`)(function(e){var t,n,a,o,s,l,u=e.theme;return l={},l[`&.`+classes$2.root]=(t={boxSizing:`border-box`,display:`flex`,maxHeight:`100%`,position:`fixed`,zIndex:u.zIndex.snackbar,height:`auto`,width:`auto`,transition:`top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms, margin 300ms ease 0ms, max-width 300ms ease 0ms`,pointerEvents:`none`},t[collapse.container]={pointerEvents:`all`},t[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.default+`px 0px`,transition:`padding 300ms ease 0ms`},t.maxWidth=`calc(100% - `+SNACKBAR_INDENTS.view.default*2+`px)`,t[u.breakpoints.down(`sm`)]={width:`100%`,maxWidth:`calc(100% - `+xsWidthMargin*2+`px)`},t),l[`&.`+classes$2.rootDense]=(n={},n[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.dense+`px 0px`},n),l[`&.`+classes$2.top]={top:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column`},l[`&.`+classes$2.bottom]={bottom:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column-reverse`},l[`&.`+classes$2.left]=(a={left:SNACKBAR_INDENTS.view.default},a[u.breakpoints.up(`sm`)]={alignItems:`flex-start`},a[u.breakpoints.down(`sm`)]={left:xsWidthMargin+`px`},a),l[`&.`+classes$2.right]=(o={right:SNACKBAR_INDENTS.view.default},o[u.breakpoints.up(`sm`)]={alignItems:`flex-end`},o[u.breakpoints.down(`sm`)]={right:xsWidthMargin+`px`},o),l[`&.`+classes$2.center]=(s={left:`50%`,transform:`translateX(-50%)`},s[u.breakpoints.up(`sm`)]={alignItems:`center`},s),l}),SnackbarContainer$1=import_react$24.memo(function(e){var t=e.className,n=e.anchorOrigin,a=e.dense,o=_objectWithoutPropertiesLoose$2(e,[`className`,`anchorOrigin`,`dense`]),s=clsx(classes$2[n.vertical],classes$2[n.horizontal],classes$2.root,t,a&&classes$2.rootDense);return import_react$24.createElement(Root$1,Object.assign({className:s},o))}),SnackbarProvider=function(e){_inheritsLoose(t,e);function t(t){var n=e.call(this,t)||this;return n.enqueueSnackbar=function(e,t){t===void 0&&(t={});var a=t,o=a.key,s=a.preventDuplicate,l=_objectWithoutPropertiesLoose$2(a,[`key`,`preventDuplicate`]),u=isDefined(o),d=u?o:new Date().getTime()+Math.random(),f=merge(l,n.props,DEFAULTS),m=_extends$2({key:d},l,{message:e,open:!0,entered:!1,requestClose:!1,variant:f(`variant`),anchorOrigin:f(`anchorOrigin`),autoHideDuration:f(`autoHideDuration`)});return l.persist&&(m.autoHideDuration=void 0),n.setState(function(t){if(s===void 0&&n.props.preventDuplicate||s){var a=function(t){return u?t.key===o:t.message===e},l=t.queue.findIndex(a)>-1,d=t.snacks.findIndex(a)>-1;if(l||d)return t}return n.handleDisplaySnack(_extends$2({},t,{queue:[].concat(t.queue,[m])}))}),d},n.handleDisplaySnack=function(e){return e.snacks.length>=n.maxSnack?n.handleDismissOldest(e):n.processQueue(e)},n.processQueue=function(e){var t=e.queue,n=e.snacks;return t.length>0?_extends$2({},e,{snacks:[].concat(n,[t[0]]),queue:t.slice(1,t.length)}):e},n.handleDismissOldest=function(e){if(e.snacks.some(function(e){return!e.open||e.requestClose}))return e;var t=!1,a=!1;e.snacks.reduce(function(e,t){return e+(t.open&&t.persist?1:0)},0)===n.maxSnack&&(a=!0);var o=e.snacks.map(function(e){return!t&&(!e.persist||a)?(t=!0,e.entered?(e.onClose&&e.onClose(null,REASONS.MAXSNACK,e.key),n.props.onClose&&n.props.onClose(null,REASONS.MAXSNACK,e.key),_extends$2({},e,{open:!1})):_extends$2({},e,{requestClose:!0})):_extends$2({},e)});return _extends$2({},e,{snacks:o})},n.handleEnteredSnack=function(e,t,a){if(!isDefined(a))throw Error(`handleEnteredSnack Cannot be called with undefined key`);n.setState(function(e){return{snacks:e.snacks.map(function(e){return e.key===a?_extends$2({},e,{entered:!0}):_extends$2({},e)})}})},n.handleCloseSnack=function(e,t,a){if(n.props.onClose&&n.props.onClose(e,t,a),t!==REASONS.CLICKAWAY){var o=a===void 0;n.setState(function(e){var t=e.snacks,n=e.queue;return{snacks:t.map(function(e){return!o&&e.key!==a?_extends$2({},e):e.entered?_extends$2({},e,{open:!1}):_extends$2({},e,{requestClose:!0})}),queue:n.filter(function(e){return e.key!==a})}})}},n.closeSnackbar=function(e){var t=n.state.snacks.find(function(t){return t.key===e});isDefined(e)&&t&&t.onClose&&t.onClose(null,REASONS.INSTRUCTED,e),n.handleCloseSnack(null,REASONS.INSTRUCTED,e)},n.handleExitedSnack=function(e,t,a){var o=t||a;if(!isDefined(o))throw Error(`handleExitedSnack Cannot be called with undefined key`);n.setState(function(e){var t=n.processQueue(_extends$2({},e,{snacks:e.snacks.filter(function(e){return e.key!==o})}));return t.queue.length===0?t:n.handleDismissOldest(t)})},n.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:n.enqueueSnackbar.bind(_assertThisInitialized$1(n)),closeSnackbar:n.closeSnackbar.bind(_assertThisInitialized$1(n))}},n}var n=t.prototype;return n.render=function(){var e=this,t=this.state.contextValue,n=this.props,a=n.iconVariant,o=n.dense,s=o===void 0?DEFAULTS.dense:o,l=n.hideIconVariant,u=l===void 0?DEFAULTS.hideIconVariant:l,d=n.domRoot,f=n.children,m=n.classes,h=m===void 0?{}:m,v=_objectWithoutPropertiesLoose$2(n,[`maxSnack`,`preventDuplicate`,`variant`,`anchorOrigin`,`iconVariant`,`dense`,`hideIconVariant`,`domRoot`,`children`,`classes`]),y=this.state.snacks.reduce(function(e,t){var n,a=originKeyExtractor(t.anchorOrigin),o=e[a]||[];return _extends$2({},e,(n={},n[a]=[].concat(o,[t]),n))},{}),b=Object.keys(y).map(function(t){var n=y[t];return import_react$24.createElement(SnackbarContainer$1,{key:t,dense:s,anchorOrigin:n[0].anchorOrigin,className:clsx(h.containerRoot,h[transformer.toContainerAnchorOrigin(t)])},n.map(function(t){return import_react$24.createElement(SnackbarItem,Object.assign({},v,{key:t.key,snack:t,dense:s,iconVariant:a,hideIconVariant:u,classes:omitContainerKeys(h),onClose:e.handleCloseSnack,onExited:createChainedFunction([e.handleExitedSnack,e.props.onExited]),onEntered:createChainedFunction([e.handleEnteredSnack,e.props.onEntered])}))}))});return import_react$24.createElement(SnackbarContext.Provider,{value:t},f,d?(0,import_react_dom.createPortal)(b,d):b)},_createClass$2(t,[{key:`maxSnack`,get:function(){return this.props.maxSnack||DEFAULTS.maxSnack}}]),t}(import_react$24.Component),withSnackbar=function(e){var t=import_react$24.forwardRef(function(t,n){return import_react$24.createElement(SnackbarContext.Consumer,null,function(a){return import_react$24.createElement(e,_extends$2({},t,{ref:n,enqueueSnackbar:a.enqueueSnackbar,closeSnackbar:a.closeSnackbar}))})});return(0,import_hoist_non_react_statics_cjs$1.default)(t,e),t},react_hotkeys_production_min_exports=__exportAll({GlobalHotKeys:()=>GlobalHotKeys$1$1,HotKeys:()=>HotKeys,IgnoreKeys:()=>IgnoreKeys$1,ObserveKeys:()=>ObserveKeys$1,configure:()=>configure$1,getApplicationKeyMap:()=>getApplicationKeyMap,recordKeyCombination:()=>recordKeyCombination,withHotKeys:()=>withHotKeys,withIgnoreKeys:()=>withIgnoreKeys,withObserveKeys:()=>withObserveKeys});function _typeof$4(e){return _typeof$4=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof$4(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),e}function _defineProperty$3(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _extends$1(){return _extends$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_extends$1.apply(this,arguments)}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t],a=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach(function(t){_defineProperty$3(e,t,n[t])})}return e}function _inherits(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function isNativeReflectConstruct(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _construct(e,t,n){return _construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&_setPrototypeOf(o,n.prototype),o},_construct.apply(null,arguments)}function _isNativeFunction(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function _wrapNativeSuper(e){var t=typeof Map==`function`?new Map:void 0;return _wrapNativeSuper=function(e){if(e===null||!_isNativeFunction(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct(e,arguments,_getPrototypeOf(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(n,e)},_wrapNativeSuper(e)}function _objectWithoutPropertiesLoose$1(e,t){if(e==null)return{};var n={},a=Object.keys(e),o,s;for(s=0;s<a.length;s++)o=a[s],!(t.indexOf(o)>=0)&&(n[o]=e[o]);return n}function _objectWithoutProperties$1(e,t){if(e==null)return{};var n=_objectWithoutPropertiesLoose$1(e,t),a,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)a=s[o],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function _assertThisInitialized(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function _possibleConstructorReturn(e,t){return t&&(typeof t==`object`||typeof t==`function`)?t:_assertThisInitialized(e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=_getPrototypeOf(e),e!==null););return e}function _get(e,t,n){return _get=typeof Reflect<`u`&&Reflect.get?Reflect.get:function(e,t,n){var a=_superPropBase(e,t);if(a){var o=Object.getOwnPropertyDescriptor(a,t);return o.get?o.get.call(n):o.value}},_get(e,t,n||e)}function _toConsumableArray$1(e){return _arrayWithoutHoles$1(e)||_iterableToArray$1(e)||_nonIterableSpread$1()}function _arrayWithoutHoles$1(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function _iterableToArray$1(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)===`[object Arguments]`)return Array.from(e)}function _nonIterableSpread$1(){throw TypeError(`Invalid attempt to spread non-iterable instance`)}function dictionaryFrom(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;return e.reduce(function(e,n){return e[n]=t||{value:n},e},{})}function resolveShiftedAlias(e){return ShiftedKeysDictionary[e]||[e.length===1?e.toUpperCase():e]}function hasKey(e,t){return e.hasOwnProperty(t)}function invertArrayDictionary(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(n,a){var o=e[a];return o.forEach(function(e){hasKey(n,e)||(n[e]=[]),n[e].push(a)}),t.includeOriginal&&(!hasKey(n,a)&&(n[a]=[]),n[a]=[].concat(_toConsumableArray$1(n[a]),_toConsumableArray$1(o))),n},{})}function resolveUnshiftedAlias(e){return UnshiftedKeysDictionary[e]||[e.length===1?e.toLowerCase():e]}function isString(e){return typeof e==`string`}function stripSuperfluousWhitespace(e){return isString(e)?e.trim().replace(/\s+/g,` `):e}function standardizeKeyName(e){var t=e.toLowerCase();return MousetrapToReactKeyNamesDictionary[t]||KeyShorthandDictionary[t]||(e.match(/^f\d+$/)?e.toUpperCase():e)}function isNonPrintableKeyName(e){return!!NonPrintableKeysDictionary[e]}function isCustomKeyName(e){return Configuration.option(`_customKeyNamesDict`)[e]}function isValidKey(e){return isNonPrintableKeyName(e)||String.fromCharCode(e.charCodeAt(0))===e||isCustomKeyName(e)}function normalizedCombinationId(e){return e.sort().join(`+`)}function parseCombination(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return e.replace(/^\+|(\s|[^+]\+)\+/,`$1plus`).split(`+`).reduce(function(e,n){var a=standardizeKeyName(n);if(t.ensureValidKeys&&!isValidKey(a))throw new InvalidKeyNameError;return e[a]=!0,e},{})}function resolveUnaltedAlias(e){return UnaltedKeysDictionary[e]||[e]}function resolveAltedAlias(e){return AltedKeysDictionary[e]||[e]}function resolveUnaltShiftedAlias(e){return UnaltShiftedKeysDictionary[e]||resolveUnshiftedAlias(e)}function resolveAltShiftedAlias(e){return AltShiftedKeysDictionary[e]||[e]}function resolveKeyAlias(e){return KeyOSAndLayoutAliasesDictionary$1[e]||[e]}function applicableAliasFunctions(e){if(e.Shift)return e.Alt?[resolveAltShiftedAlias,resolveUnaltShiftedAlias]:[resolveShiftedAlias,resolveUnshiftedAlias];if(e.Alt)return[resolveAltedAlias,resolveUnaltedAlias];var t=function(e){return[e]};return[t,t]}function isUndefined(e){return e===void 0}function isObject(e){return!Array.isArray(e)&&_typeof$4(e)===`object`&&e!==null}function isEmpty$2(e){return isObject(e)?Object.keys(e).length===0:!e||e.length===0}function size(e){return isObject(e)?Object.keys(e).length:e.length}function buildKeyAliases(e){return Object.keys(e).reduce(function(t,n){return resolveKeyAlias(n).forEach(function(a){applicableAliasFunctions(e).forEach(function(e){e(a).forEach(function(e){(e!==n||n!==a)&&(t[e]=n)})})}),t},{})}function arrayFrom(e){return Array.isArray(e)?e:e?[e]:[]}function without(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:[],n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=dictionaryFrom(arrayFrom(t));return Array.isArray(e)?e.reduce(function(e,t){return a[t]&&(n.stringifyFirst||a[t].value===t)||e.push(t),e},[]):isObject(e)?Object.keys(e).reduce(function(t,n){return a[n]||(t[n]=e[n]),t},{}):e}function removeAtIndex(e,t){return[].concat(_toConsumableArray$1(e.slice(0,t)),_toConsumableArray$1(e.slice(t+1)))}function normalizeActionOptions(e,t){if(isObject(e)){var n=e.sequence,a=e.action;return{keySequence:n,keyEventType:isUndefined(a)?KeyEventType[t.defaultKeyEvent]:KeyEventType[a]}}return{keySequence:e,keyEventType:KeyEventType[t.defaultKeyEvent]}}function indexFromEnd(e,t){return e[e.length-(t+1)]}function keyupIsHiddenByCmd(e){return e.length===1||hasKey(KeysWithKeyUpHiddenByCmd,e)}function canBeMatched(e,t){var n=size(t.keyDictionary);return Configuration.option(`allowCombinationSubmatches`)||keyUpIsBeingHidden(e)?e.getNumberOfKeys()>=n:e.getNumberOfKeys()===n}function keyUpIsBeingHidden(e){return!!e.isKeyStillPressed(`Meta`)&&e.some(function(e){return keyupIsHiddenByCmd(e)})}function copyAttributes(e,t,n){return n.forEach(function(n){hasKey(e,n)&&(t[n]=e[n])}),t}function describeKeyEventType(e){switch(parseInt(e,10)){case 0:return`keydown`;case 1:return`keypress`;default:return`keyup`}}function hasKeyPressEvent(e){return!isNonPrintableKeyName(e)}function stateFromEvent(e){return e.simulated?KeyEventState.simulated:KeyEventState.seen}function getEventCharCode(e){var t,n=e.keyCode;return`charCode`in e?(t=e.charCode,t===0&&n===13&&(t=13)):t=n,t===10&&(t=13),32<=t||t===13?t:0}function reactsGetEventKey(e){if(e.key){var t=normalizeKey[e.key]||e.key;if(t!==`Unidentified`)return t}if(e.type===`keypress`){var n=getEventCharCode(e);return n===13?`Enter`:String.fromCharCode(n)}return e.type===`keydown`||e.type===`keyup`?translateToKey[e.keyCode]||`Unidentified`:``}function getKeyName(e){var t=function(){var t=Configuration.option(`customKeyCodes`),n=e.keyCode||e.charCode;return hasKey(t,n)?t[n]:e.nativeEvent?e.key:reactsGetEventKey(e)}();return t===`+`?`plus`:t}function isCmdKey(e){return e===`Meta`}function contains(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{};return Array.isArray(e)||isString(e)?n.stringifyFirst?!isUndefined(e.find(function(e){return e.toString()===t.toString()})):e.indexOf(t)!==-1:isObject(e)?hasKey(e,t):n.stringifyFirst?e.toString()===t.toString():e===t}function capitalize$1(e){return e.replace(/\b\w/g,function(e){return e.toUpperCase()})}function normalizeEventName(e){return`${capitalize$1(e.slice(0,3))}${capitalize$1(e.slice(3))}`}function isFromFocusOnlyComponent(e){return!isUndefined(e)}function backwardsCompatibleContext(e,t){var n=t.deprecatedAPI,a=n.contextTypes,o=n.childContextTypes,s=t.newAPI.contextType;if(import_react.createContext===void 0)e.contextTypes=a,e.childContextTypes=o,e.prototype.getChildContext=function(){return this._childContext};else{var l=import_react.createContext(s);e.contextType=l,e.prototype._originalRender=e.prototype.render,e.prototype.render=function(){var e=this._originalRender();return e?import_react.createElement(l.Provider,{value:this._childContext},e):null}}return e}function withHotKeys(e){function t(e,t){return _objectSpread$1({},o[e]||{},t[e]||{})}function n(e){return t(`handlers`,e)}function a(e){return t(`keyMap`,e)}var o=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},s=function(t){function o(e){var t;return _classCallCheck$1(this,o),t=_possibleConstructorReturn(this,_getPrototypeOf(o).call(this,e)),t._handleFocus=t._handleFocus.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleBlur=t._handleBlur.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyDown=t._handleKeyDown.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyPress=t._handleKeyPress.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyUp=t._handleKeyUp.bind(_assertThisInitialized(_assertThisInitialized(t))),t._componentIsFocused=t._componentIsFocused.bind(_assertThisInitialized(_assertThisInitialized(t))),t._id=KeyEventManager.getInstance().registerKeyMap(e.keyMap),t._childContext={hotKeysParentId:t._id},t}return _inherits(o,t),_createClass$1(o,[{key:`render`,value:function(){var t=this.props;t.keyMap,t.handlers,t.allowChanges,t.root;var n=_objectWithoutProperties$1(t,[`keyMap`,`handlers`,`allowChanges`,`root`]),a={onFocus:this._wrapFunction(`onFocus`,this._handleFocus),onBlur:this._wrapFunction(`onBlur`,this._handleBlur),tabIndex:Configuration.option(`defaultTabIndex`)};return this._shouldBindKeyListeners()&&(a.onKeyDown=this._handleKeyDown,a.onKeyPress=this._handleKeyPress,a.onKeyUp=this._handleKeyUp),import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_shouldBindKeyListeners`,value:function(){var e=a(this.props);return!isEmpty$2(e)||this.props.root||Configuration.option(`enableHardSequences`)&&this._handlersIncludeHardSequences(e,n(this.props))}},{key:`_handlersIncludeHardSequences`,value:function(e,t){return Object.keys(t).some(function(t){return!e[t]&&KeyCombinationSerializer.isValidKeySerialization(t)})}},{key:`_wrapFunction`,value:function(e,t){var n=this;return typeof this.props[e]==`function`?function(a){n.props[e](a),t(a)}:t}},{key:`_focusTreeIdsPush`,value:function(e){this._focusTreeIds||=[],this._focusTreeIds.push(e)}},{key:`_focusTreeIdsShift`,value:function(){this._focusTreeIds&&this._focusTreeIds.shift()}},{key:`_getFocusTreeId`,value:function(){if(this._focusTreeIds)return this._focusTreeIds[0]}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterKeyMap(this._id,this.props.keyMap),this._componentIsFocused()&&(this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`))){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledHotKeys(this._getFocusTreeId(),this._id,n,a,this._getComponentOptions())}}},{key:`_componentIsFocused`,value:function(){return!0===this._focused}},{key:`componentDidMount`,value:function(){var e=KeyEventManager.getInstance(),t=this.context.hotKeysParentId;e.registerComponentMount(this._id,t)}},{key:`_handleFocus`,value:function(){if(this.props.onFocus){var e;(e=this.props).onFocus.apply(e,arguments)}var t=KeyEventManager.getInstance().enableHotKeys(this._id,a(this.props),n(this.props),this._getComponentOptions());isUndefined(t)||this._focusTreeIdsPush(t),this._focused=!0}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterKeyMap(this._id),e.registerComponentUnmount(),this._handleBlur()}},{key:`_handleBlur`,value:function(){if(this.props.onBlur){var e;(e=this.props).onBlur.apply(e,arguments)}KeyEventManager.getInstance().disableHotKeys(this._getFocusTreeId(),this._id)||this._focusTreeIdsShift(),this._focused=!1}},{key:`_handleKeyDown`,value:function(e){KeyEventManager.getInstance().handleKeydown(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyPress`,value:function(e){KeyEventManager.getInstance().handleKeyPress(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyUp`,value:function(e){KeyEventManager.getInstance().handleKeyUp(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),o}(import_react.PureComponent);return _defineProperty$3(s,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,onFocus:import_prop_types.default.func,onBlur:import_prop_types.default.func,allowChanges:import_prop_types.default.bool,root:import_prop_types.default.bool}),backwardsCompatibleContext(s,{deprecatedAPI:{contextTypes:{hotKeysParentId:import_prop_types.default.number},childContextTypes:{hotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{hotKeysParentId:void 0}}})}function withHotKeysIgnoreOverride(e){var t,n,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},o=2<arguments.length?arguments[2]:void 0;return n=t=function(t){function n(e){var t;return _classCallCheck$1(this,n),t=_possibleConstructorReturn(this,_getPrototypeOf(n).call(this,e)),t._handleKeyEvent=t._handleKeyEvent.bind(_assertThisInitialized(_assertThisInitialized(t))),t._reloadDictionaries=t._reloadDictionaries.bind(_assertThisInitialized(_assertThisInitialized(t))),t}return _inherits(n,t),_createClass$1(n,[{key:`render`,value:function(){var t=this.props;t.only,t.except;var n=_objectWithoutProperties$1(t,[`only`,`except`]),a={onKeyDown:this._handleKeyEvent,onKeyPress:this._handleKeyEvent,onKeyUp:this._handleKeyEvent,onFocus:this._reloadDictionaries};return import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_reloadDictionaries`,value:function(){var e=this.props,t=e.only,n=e.except;this._onlyDict=keyDictionary(t),this._exceptDict=keyDictionary(n)}},{key:`_shouldIgnoreEvent`,value:function(e){var t=e.key;return isEmpty$2(this._onlyDict)?!!isEmpty$2(this._exceptDict)||!hasKey(this._exceptDict,t):isEmpty$2(this._exceptDict)?hasKey(this._onlyDict,t):hasKey(this._onlyDict,t)&&!hasKey(this._exceptDict,t)}},{key:`_handleKeyEvent`,value:function(e){this._shouldIgnoreEvent(e)&&KeyEventManager.getInstance()[o](e)}}]),n}(import_react.PureComponent),_defineProperty$3(t,`propTypes`,{only:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)]),except:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)])}),_defineProperty$3(t,`defaultProps`,a),n}function keyDictionary(e){return arrayFrom(e).reduce(function(e,t){var n=standardizeKeyName(t);if(!isValidKey(n))throw new InvalidKeyNameError(t);return[resolveAltShiftedAlias,resolveUnaltShiftedAlias,resolveShiftedAlias,resolveUnshiftedAlias,resolveAltedAlias,resolveUnaltedAlias].forEach(function(t){e[t(n)]=!0}),e},{})}function withIgnoreKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`ignoreEvent`)}function withObserveKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`observeIgnoredEvents`)}function configure$1(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};Configuration.init(e)}function getApplicationKeyMap(){return KeyEventManager.getInstance().getApplicationKeyMap()}function recordKeyCombination(e){return KeyEventManager.getInstance().addKeyCombinationListener(e)}var import_prop_types,import_react,_defaultConfiguration,_configuration,Configuration,Logger,KeyEventType,ModifierFlagsDictionary,ShiftedKeysDictionary,UnshiftedKeysDictionary,KeyOSAndLayoutAliasesDictionary$1,MousetrapToReactKeyNamesDictionary,KeyShorthandDictionary,translateToKey,NonPrintableKeysDictionary,InvalidKeyNameError,KeySequenceParser,AltedKeysDictionary,UnaltedKeysDictionary,AltShiftedKeysDictionary,UnaltShiftedKeysDictionary,KeyCombinationSerializer,KeyEventSequenceIndex,KeyEventState,KeyEventStateArrayManager,KeyCombination,KeyHistory,Registry,ComponentTree,ComponentOptionsListIterator,ComponentOptionsList,KeysWithKeyUpHiddenByCmd,i,KeyCombinationMatcher,KeyHistoryMatcher,ActionResolver,SEQUENCE_ATTRIBUTES,KEYMAP_ATTRIBUTES,AbstractKeyEventStrategy,KeyEventCounter,normalizeKey,EventResponse,EventPropagator,FocusOnlyKeyEventStrategy,GlobalKeyEventStrategy,KeyEventManager,HotKeys,GlobalHotKeys$2,GlobalHotKeys$1$1,IgnoreKeys$1,ObserveKeys$1,init_react_hotkeys_production_min=__esmMin((()=>{for(import_prop_types=__toESM(require_prop_types()),import_react=__toESM(require_react()),_defaultConfiguration={logLevel:`warn`,defaultKeyEvent:`keydown`,defaultComponent:`div`,defaultTabIndex:`-1`,ignoreTags:[`input`,`select`,`textarea`],enableHardSequences:!1,ignoreKeymapAndHandlerChangesByDefault:!0,ignoreEventsCondition:function(e){var t=e.target;if(t&&t.tagName){var n=t.tagName.toLowerCase();return Configuration.option(`_ignoreTagsDict`)[n]||t.isContentEditable}return!1},ignoreRepeatedEventsWhenKeyHeldDown:!0,simulateMissingKeyPressEvents:!0,stopEventPropagationAfterHandling:!0,stopEventPropagationAfterIgnoring:!0,allowCombinationSubmatches:!1,customKeyCodes:{}},_configuration=_objectSpread$1({},_defaultConfiguration),_configuration._ignoreTagsDict=dictionaryFrom(_configuration.ignoreTags,!0),Configuration=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`init`,value:function(e){var t=this,n=e.ignoreTags,a=e.customKeyCodes;n&&(e._ignoreTagsDict=dictionaryFrom(e.ignoreTags)),a&&(e._customKeyNamesDict=dictionaryFrom(Object.values(e.customKeyCodes))),[`verbose`,`debug`,`info`].indexOf(e.logLevel)!==-1&&console.warn(`React HotKeys: You have requested log level '${e.logLevel}' but for performance reasons, logging below severity level 'warning' is disabled in production. Please use the development build for complete logs.`),Object.keys(e).forEach(function(n){t.set(n,e[n])})}},{key:`set`,value:function(e,t){_configuration[e]=t}},{key:`reset`,value:function(e){_configuration[e]=_defaultConfiguration[e]}},{key:`option`,value:function(e){return _configuration[e]}}]),e}(),Logger=function(){function e(){var t=this,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:`warn`;if(_classCallCheck$1(this,e),_defineProperty$3(this,`verbose`,this.noop),_defineProperty$3(this,`debug`,this.noop),_defineProperty$3(this,`info`,this.noop),_defineProperty$3(this,`warn`,this.noop),_defineProperty$3(this,`error`,this.noop),this.logLevel=this.constructor.levels[n],this.logLevel>=this.constructor.levels.error)this.error=console.error;else return;if(this.logLevel>=this.constructor.levels.warn)this.warn=console.warn;else return;[`info`,`debug`,`verbose`].some(function(e){return!(t.logLevel>=t.constructor.levels[e])||(t[e]=console.log,!1)})}return _createClass$1(e,[{key:`noop`,value:function(){}}]),e}(),_defineProperty$3(Logger,`logIcons`,[`📕`,`📗`,`📘`,`📙`]),_defineProperty$3(Logger,`componentIcons`,[`🔺`,`⭐️`,`🔷`,`🔶`,`⬛️`]),_defineProperty$3(Logger,`eventIcons`,[`❤️`,`💚`,`💙`,`💛`,`💜`,`🧡`]),_defineProperty$3(Logger,`levels`,{none:0,error:1,warn:2,info:3,debug:4,verbose:5}),KeyEventType={keydown:0,keypress:1,keyup:2},ModifierFlagsDictionary={Shift:[`shiftKey`],Meta:[`metaKey`],Control:[`ctrlKey`],Alt:[`altKey`]},ShiftedKeysDictionary={"`":[`~`],1:[`!`],2:[`@`,`"`],3:[`#`,`£`],4:[`$`],5:[`%`],6:[`^`],7:[`&`],8:[`*`],9:[`(`],0:[`)`],"-":[`_`],"=":[`plus`],";":[`:`],"'":[`"`,`@`],",":[`<`],".":[`>`],"/":[`?`],"\\":[`|`],"[":[`{`],"]":[`}`],"#":[`~`]},UnshiftedKeysDictionary=invertArrayDictionary(ShiftedKeysDictionary),KeyOSAndLayoutAliasesDictionary$1=invertArrayDictionary({},{includeOriginal:!0}),MousetrapToReactKeyNamesDictionary={tab:`Tab`,capslock:`CapsLock`,shift:`Shift`,meta:`Meta`,alt:`Alt`,ctrl:`Control`,space:` `,spacebar:` `,escape:`Escape`,esc:`Escape`,left:`ArrowLeft`,right:`ArrowRight`,up:`ArrowUp`,down:`ArrowDown`,return:`Enter`,del:`Delete`,command:`Meta`,option:`Alt`,enter:`Enter`,backspace:`Backspace`,ins:`Insert`,pageup:`PageUp`,pagedown:`PageDown`,end:`End`,home:`Home`,contextmenu:`ContextMenu`,numlock:`Clear`},KeyShorthandDictionary={cmd:`Meta`},translateToKey={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},NonPrintableKeysDictionary=dictionaryFrom(Object.values(translateToKey),!0),InvalidKeyNameError=function(e){function t(){var e,n;_classCallCheck$1(this,t);var a=[...arguments];return n=_possibleConstructorReturn(this,(e=_getPrototypeOf(t)).call.apply(e,[this].concat(a))),_defineProperty$3(_assertThisInitialized(_assertThisInitialized(n)),`name`,`InvalidKeyNameError`),n}return _inherits(t,e),t}(_wrapNativeSuper(Error)),KeySequenceParser=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`parse`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=stripSuperfluousWhitespace(e).split(` `);try{var a=n.slice(0,n.length-1),o=n[n.length-1],s=a.map(function(e){var n=parseCombination(e,t);return normalizedCombinationId(Object.keys(n))}).join(` `),l=parseCombination(o,t),u={id:normalizedCombinationId(Object.keys(l)),keyDictionary:l,keyEventType:t.keyEventType,size:Object.keys(l).length};return{sequence:{prefix:s,size:a.length+1},combination:u}}catch{return{sequence:null,combination:null}}}}]),e}(),AltedKeysDictionary={"`":["`"],1:[`¡`],2:[`™`],3:[`£`],4:[`¢`],5:[`∞`],6:[`§`],7:[`¶`],8:[`•`],9:[`ª`],0:[`º`],"-":[`–`],"=":[`≠`],a:[`å`],b:[`∫`],c:[`ç`],d:[`∂`],e:[`´`],f:[`ƒ`],g:[`©`],h:[`˙`],i:[`ˆ`],j:[`∆`],k:[`˚`],l:[`¬`],m:[`µ`],n:[`˜`],o:[`ø`],p:[`π`],q:[`œ`],r:[`®`],s:[`ß`],t:[`†`],u:[`¨`],v:[`√`],w:[`∑`],x:[`≈`],y:[`¥`],z:[`Ω`],"[":[`“`],"]":[`‘`],"\\":[`«`],"'":[`æ`],";":[`…`],",":[`≤`],".":[`≥`],"/":[`÷`]},UnaltedKeysDictionary=invertArrayDictionary(AltedKeysDictionary),AltShiftedKeysDictionary={"`":["`"],1:[`⁄`],2:[`€`],3:[`‹`],4:[`›`],5:[`fi`],6:[`fl`],7:[`‡`],8:[`°`],9:[`·`],0:[`‚`],"-":[`—`],"=":[`±`],a:[`Å`],b:[`ı`],c:[`Ç`],d:[`Î`],e:[`´`],f:[`Ï`],g:[`˝`],h:[`Ó`],i:[`ˆ`],j:[`Ô`],k:[``],l:[`Ò`],m:[`Â`],n:[`˜`],o:[`Ø`],p:[`π`],q:[`Œ`],r:[`‰`],s:[`Í`],t:[`Î`],u:[`¨`],v:[`◊`],w:[`„`],x:[`˛`],y:[`Á`],z:[`¸`],"[":[`”`],"]":[`’`],"\\":[`»`],"'":[`Æ`],";":[`Ú`],",":[`¯`],".":[`˘`]},UnaltShiftedKeysDictionary=invertArrayDictionary(AltShiftedKeysDictionary),KeyCombinationSerializer=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`serialize`,value:function(e){var t=e.Shift,n=e.Alt,a={};return Object.keys(e).sort().forEach(function(e){var o=[];if(t)if(n){var s=resolveUnaltShiftedAlias(e),l=resolveAltShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(s),_toConsumableArray$1(l))}else{var u=resolveUnshiftedAlias(e),d=resolveShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(u),_toConsumableArray$1(d))}else if(n){var f=resolveUnaltedAlias(e),m=resolveAltedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(f),_toConsumableArray$1(m))}else{o.push(e);var h=KeyOSAndLayoutAliasesDictionary$1[e];h&&(o=[].concat(_toConsumableArray$1(o),_toConsumableArray$1(h)))}var v=Object.keys(a);0<v.length?v.forEach(function(e){o.forEach(function(t){a[e+`+${t}`]=_objectSpread$1({},a[e],_defineProperty$3({},t,!0))}),delete a[e]}):o.forEach(function(e){a[e]=_defineProperty$3({},e,!0)})}),Object.values(a).map(function(e){return Object.keys(e).sort().join(`+`)})}},{key:`isValidKeySerialization`,value:function(e){return 0<e.length&&!!KeySequenceParser.parse(e,{ensureValidKeys:!0}).combination}}]),e}(),KeyEventSequenceIndex={previous:0,current:1},KeyEventState={unseen:0,seen:1,simulated:2},KeyEventStateArrayManager=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`newRecord`,value:function(e,t){var n=[KeyEventState.unseen,KeyEventState.unseen,KeyEventState.unseen];if(!isUndefined(e))for(var a=0;a<=e;a++)n[a]=t;return n}},{key:`setBit`,value:function(e,t,n){return e[t]=n,e}},{key:`clone`,value:function(e){for(var t=this.newRecord(),n=0;n<e.length;n++)t[n]=e[n];return t}}]),e}(),KeyCombination=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this._keys=t,this._includesKeyUp=!1,this._update()}return _createClass$1(e,[{key:`getIds`,value:function(){return this._ids}},{key:`getKeyAliases`,value:function(){return this._keyAliases}},{key:`getNormalizedKeyName`,value:function(e){return this._keys[e]?e:this._keyAliases[e]||e}},{key:`getNumberOfKeys`,value:function(){return size(this._keys)}},{key:`any`,value:function(){return 0<Object.keys(this._getKeyStates()).length}},{key:`isEnding`,value:function(){return this._includesKeyUp}},{key:`hasEnded`,value:function(){return isEmpty$2(this.keysStillPressedDict())}},{key:`addKey`,value:function(e,t){this._setKeyState(e,[KeyEventStateArrayManager.newRecord(),KeyEventStateArrayManager.newRecord(KeyEventType.keydown,t)])}},{key:`setKeyState`,value:function(e,t,n){var a=this._getKeyState(e);if(this.isKeyIncluded(e)){var o=KeyEventStateArrayManager.clone(a[1]),s=KeyEventStateArrayManager.clone(o);KeyEventStateArrayManager.setBit(s,t,n),this._setKeyState(e,[o,s])}else this.addKey(e,n);t===KeyEventType.keyup&&(this._includesKeyUp=!0)}},{key:`forEachKey`,value:function(e){return Object.keys(this._keys).forEach(e)}},{key:`some`,value:function(e){return Object.keys(this._keys).some(e)}},{key:`getKeyDictionary`,value:function(){return dictionaryFrom(Object.keys(this._getKeyStates()),!0)}},{key:`keysStillPressedDict`,value:function(){var e=this;return Object.keys(this._keys).reduce(function(t,n){return e.isKeyStillPressed(n)&&(t[n]=e._getKeyState(n)),t},{})}},{key:`isKeyIncluded`,value:function(e){return!!this._getKeyState(e)}},{key:`isKeyStillPressed`,value:function(e){return this.isEventTriggered(e,KeyEventType.keypress)&&!this.isKeyReleased(e)}},{key:`isKeyReleased`,value:function(e){return this.isEventTriggered(e,KeyEventType.keyup)}},{key:`isEventTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.current,t)}},{key:`wasEventPreviouslyTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.previous,t)}},{key:`isKeyPressSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keypress)}},{key:`isKeyUpSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keyup)}},{key:`describe`,value:function(){return this.getIds()[0]}},{key:`toJSON`,value:function(){return{keys:this._getKeyStates(),ids:this.getIds(),keyAliases:this.getKeyAliases()}}},{key:`_getKeyStateType`,value:function(e,t,n){var a=this._getKeyState(e);return a&&a[t][n]}},{key:`_update`,value:function(){this._ids=KeyCombinationSerializer.serialize(this._keys),this._keyAliases=buildKeyAliases(this._keys)}},{key:`_isKeyEventSimulated`,value:function(e,t){return this.isEventTriggered(e,t)===KeyEventState.simulated}},{key:`_getKeyStates`,value:function(){return this._keys}},{key:`_getKeyState`,value:function(e){var t=this._keys[e];if(t)return t;var n=this._keyAliases[e];if(n)return this._keys[n]}},{key:`_setKeyState`,value:function(e,t){var n=this.getNormalizedKeyName(e);this._keys[n]=t,this._update()}}]),e}(),KeyHistory=function(){function e(t){var n=t.maxLength,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;_classCallCheck$1(this,e),this._records=[],this._maxLength=n,a?this._push(a):this._push(new KeyCombination)}return _createClass$1(e,[{key:`getMostRecentCombinations`,value:function(e){return this._records.slice(-e,-1)}},{key:`any`,value:function(){return this._records.some(function(e){return e.any()})}},{key:`getLength`,value:function(){return this._records.length}},{key:`getCurrentCombination`,value:function(){return this._records[this.getLength()-1]}},{key:`addKeyToCurrentCombination`,value:function(e,t,n){this._ensureInitialKeyCombination(),this.getCurrentCombination().setKeyState(e,t,n)}},{key:`setMaxLength`,value:function(e){this._maxLength=e,this._trimHistory()}},{key:`startNewKeyCombination`,value:function(e,t){this._ensureInitialKeyCombination();var n=new KeyCombination(this.getCurrentCombination().keysStillPressedDict());n.addKey(e,t),this._push(n)}},{key:`toJSON`,value:function(){return this._records.map(function(e){return e.toJSON()})}},{key:`_ensureInitialKeyCombination`,value:function(){this.getLength()===0&&this._push(new KeyCombination)}},{key:`_push`,value:function(e){this._trimHistory(),this._records.push(e)}},{key:`_trimHistory`,value:function(){for(;this.getLength()>this._maxLength;)this._shift()}},{key:`_shift`,value:function(){this._records.shift()}}]),e}(),Registry=function(){function e(){_classCallCheck$1(this,e),this._registry={}}return _createClass$1(e,[{key:`get`,value:function(e){return this._registry[e]}},{key:`set`,value:function(e,t){this._registry[e]=t}},{key:`remove`,value:function(e){delete this._registry[e]}},{key:`toJSON`,value:function(){return this._registry}}]),e}(),ComponentTree=function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`add`,value:function(e,n){_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,{childIds:[],parentId:null,keyMap:n})}},{key:`update`,value:function(e,n){var a=_get(_getPrototypeOf(t.prototype),`get`,this).call(this,e);_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,_objectSpread$1({},a,{keyMap:n}))}},{key:`setParent`,value:function(e,t){this.get(e).parentId=t,this._addChildId(t,e)}},{key:`remove`,value:function(e){var n=this._getParentId(e);this._removeChildId(n,e),_get(_getPrototypeOf(t.prototype),`remove`,this).call(this,e)}},{key:`_getParentId`,value:function(e){var t=this.get(e);return t&&t.parentId}},{key:`_addChildId`,value:function(e,t){this.get(e).childIds.push(t)}},{key:`_removeChildId`,value:function(e,t){var n=this.get(e);n&&(n.childIds=without(n.childIds,t))}}]),t}(Registry),ComponentOptionsListIterator=function(){function e(t){_classCallCheck$1(this,e),this._list=t,this._position=-1}return _createClass$1(e,[{key:`getPosition`,value:function(){return this._position}},{key:`getComponent`,value:function(){return this._list.getAtPosition(this.getPosition())}},{key:`next`,value:function(){return this.getPosition()+1<this._list.getLength()?(this._position++,this.getComponent()):null}}]),e}(),ComponentOptionsList=function(){function e(){_classCallCheck$1(this,e),this._list=[],this._idToIndex={},this._longestSequence=1,this._longestSequenceComponentId=null,this._keyMapEventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`getNewIterator`,value:function(){return new ComponentOptionsListIterator(this)}},{key:`add`,value:function(e,t,n,a){if(this.containsId(e))return this.update(e,t,n,a);var o=this._build(e,t,n,a);this._list.push(o);var s=this._getLastIndex();return this._idToIndex[e]=s}},{key:`containsId`,value:function(e){return!!this.get(e)}},{key:`get`,value:function(e){return this.getAtPosition(this.getIndexById(e))}},{key:`getIndexById`,value:function(e){return this._idToIndex[e]}},{key:`update`,value:function(e,t,n,a){var o=this._isUpdatingComponentWithLongestSequence(e),s=this.getLongestSequence(),l=this._build(e,t,n,a);o&&l.sequenceLength!==s&&(l.sequenceLength>s?this._longestSequence=l.sequenceLength:this._recalculateLongestSequence()),this._list[this.getIndexById(e)]=l}},{key:`remove`,value:function(e){var t=this._isUpdatingComponentWithLongestSequence(e);this.removeAtPosition(this.getIndexById(e)),t&&this._recalculateLongestSequence()}},{key:`any`,value:function(){return this.getLength()!==0}},{key:`isRoot`,value:function(e){return this.getIndexById(e)>=this.getLength()-1}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`anyActionsForEventType`,value:function(e){return!!this._keyMapEventRecord[e]}},{key:`getLength`,value:function(){return this._list.length}},{key:`getAtPosition`,value:function(e){return this._list[e]}},{key:`removeAtPosition`,value:function(e){this._list=removeAtIndex(this._list,e);for(var t=e;t<this.getLength();)this._idToIndex[this.getAtPosition(t).componentId]=t,t++}},{key:`toJSON`,value:function(){return this._list}},{key:`_getLastIndex`,value:function(){return this.getLength()-1}},{key:`_build`,value:function(e,t,n,a){var o=this._applyHardSequences(t,n),s=o.keyMap,l=o.handlers;return{actions:this._buildActionDictionary(_objectSpread$1({},t,s),a,e),handlers:l,componentId:e,options:a}}},{key:`_isUpdatingComponentWithLongestSequence`,value:function(e){return e===this._getLongestSequenceComponentId()}},{key:`_getLongestSequenceComponentId`,value:function(){return this._longestSequenceComponentId}},{key:`_recalculateLongestSequence`,value:function(){for(var e=this.getNewIterator();e.next();){var t=e.getComponent(),n=t.longestSequence,a=t.componentId;n>this.getLongestSequence()&&(this._longestSequenceComponentId=a,this._longestSequence=n)}}},{key:`_applyHardSequences`,value:function(e,t){return Configuration.option(`enableHardSequences`)?Object.keys(t).reduce(function(n,a){return!e[a]&&KeyCombinationSerializer.isValidKeySerialization(a)&&(n.keyMap[a]=a),n.handlers[a]=t[a],n},{keyMap:{},handlers:{}}):{keyMap:e,handlers:t}}},{key:`_buildActionDictionary`,value:function(e,t,n){var a=this;return Object.keys(e).reduce(function(o,s){var l=e[s];return function(){return isObject(l)&&hasKey(l,`sequences`)?arrayFrom(l.sequences):arrayFrom(l)}().forEach(function(e){var l=normalizeActionOptions(e,t),u=l.keySequence,d=l.keyEventType;a._addActionOptions(o,n,s,u,d)}),o},{})}},{key:`_addActionOptions`,value:function(e,t,n,a,o){var s=KeySequenceParser.parse(a,{keyEventType:o}),l=s.sequence,u=s.combination;l.size>this.getLongestSequence()&&(this._longestSequence=l.size,this._longestSequenceComponentId=t),this._keyMapEventRecord[o]=KeyEventState.seen,e[n]||(e[n]=[]),e[n].push(_objectSpread$1({prefix:l.prefix,actionName:n,sequenceLength:l.size},u))}}]),e}(),KeysWithKeyUpHiddenByCmd={Enter:!0,Backspace:!0,ArrowRight:!0,ArrowLeft:!0,ArrowUp:!0,ArrowDown:!0,CapsLock:!0},i=1;13>i;i++)KeysWithKeyUpHiddenByCmd[`F${i}`]=!0;KeyCombinationMatcher=function(){function e(){_classCallCheck$1(this,e),this._actionConfigs={},this._order=null}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){if(this._includesMatcherForCombination(e.id)){var n=e.keyEventType,a=e.actionName,o=e.id;this._addHandlerToActionConfig(o,{keyEventType:n,actionName:a,handler:t})}else this._addNewActionConfig(e,t)}},{key:`findMatch`,value:function(e,t,n){this._order||this._setOrder();var a=!0,o=!1,s=void 0;try{for(var l,u=this._order[Symbol.iterator]();!(a=(l=u.next()).done);a=!0){var d=l.value,f=this._actionConfigs[d];if(this._matchesActionConfig(e,t,n,f))return f}}catch(e){o=!0,s=e}finally{try{a||u.return==null||u.return()}finally{if(o)throw s}}return null}},{key:`toJSON`,value:function(){return{actionConfigs:this._actionConfigs,order:this._order}}},{key:`_matchesActionConfig`,value:function(e,t,n,a){if(!canBeMatched(e,a)||!a.events[n])return!1;var o=!1;return Object.keys(a.keyDictionary).every(function(a){return!!e.isEventTriggered(a,n)&&(t&&t===e.getNormalizedKeyName(a)&&(o=!e.wasEventPreviouslyTriggered(a,n)),!0)})&&o}},{key:`_setOrder`,value:function(){var e=Object.values(this._actionConfigs).reduce(function(e,t){var n=t.id,a=t.size;return e[a]||(e[a]=[]),e[a].push(n),e},{});this._order=Object.keys(e).sort(function(e,t){return t-e}).reduce(function(t,n){return t.concat(e[n])},[])}},{key:`_addNewActionConfig`,value:function(e,t){var n=e.prefix,a=e.sequenceLength,o=e.id,s=e.keyDictionary,l=e.size,u=e.keyEventType,d=e.actionName;this._setCombinationMatcher(o,{prefix:n,sequenceLength:a,id:o,keyDictionary:s,size:l,events:{}}),this._addHandlerToActionConfig(o,{keyEventType:u,actionName:d,handler:t})}},{key:`_addHandlerToActionConfig`,value:function(e,t){var n=t.keyEventType,a=t.actionName,o=t.handler,s=this._getCombinationMatcher(e);this._setCombinationMatcher(e,_objectSpread$1({},s,{events:_objectSpread$1({},s.events,_defineProperty$3({},n,{actionName:a,handler:o}))}))}},{key:`_setCombinationMatcher`,value:function(e,t){this._actionConfigs[e]=t}},{key:`_getCombinationMatcher`,value:function(e){return this._actionConfigs[e]}},{key:`_includesMatcherForCombination`,value:function(e){return!!this._getCombinationMatcher(e)}}]),e}(),KeyHistoryMatcher=function(){function e(){_classCallCheck$1(this,e),this._combinationMatchers={},this._eventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){this._getOrCreateCombinationMatcher(e.prefix).addMatch(e,t),KeyEventStateArrayManager.setBit(this._eventRecord,e.keyEventType,KeyEventState.seen),(!this._longestSequence||this._longestSequence<e.sequenceLength)&&(this._longestSequence=e.sequenceLength)}},{key:`findMatch`,value:function(e,t,n){var a=this._findCombinationMatcher(e);return a?a.findMatch(e.getCurrentCombination(),e.getCurrentCombination().getNormalizedKeyName(t),n):null}},{key:`hasMatchesForEventType`,value:function(e){return!!this._eventRecord[e]}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`toJSON`,value:function(){var e=this;return Object.keys(this._combinationMatchers).reduce(function(t,n){return t[n]=e._combinationMatchers[n].toJSON(),t},{})}},{key:`_getOrCreateCombinationMatcher`,value:function(e){return this._combinationMatchers[e]||(this._combinationMatchers[e]=new KeyCombinationMatcher),this._combinationMatchers[e]}},{key:`_findCombinationMatcher`,value:function(e){var t=e.getMostRecentCombinations(this.getLongestSequence());if(t.length===0)return this._combinationMatchers[``];for(var n=t.map(function(e){return e.getIds()}),a=n.map(function(e){return e.length}),o=Array(n.length).fill(0),s=!1;!s;){var l=o.map(function(e,t){return n[t][e]}).join(` `);if(this._combinationMatchers[l])return this._combinationMatchers[l];for(var u=0,d=!0;d&&u<o.length;){var f=(indexFromEnd(o,u)+1)%(indexFromEnd(a,u)||1);o[o.length-(u+1)]=f,d=f==0,d&&u++}s=u===o.length}}}]),e}(),ActionResolver=function(){function e(t){_classCallCheck$1(this,e),this._keyMapMatchers=[],this._unmatchedHandlerStatus=[],this._handlersDictionary={},this._keySequencesDictionary={};for(var n=t.getNewIterator();n.next();){var a=n.getComponent().handlers;this._unmatchedHandlerStatus.push([Object.keys(a).length,{}]),this._keyMapMatchers.push(new KeyHistoryMatcher)}this._componentList=t,this._componentListIterator=t.getNewIterator()}return _createClass$1(e,[{key:`getKeyHistoryMatcher`,value:function(e){if(this._componentHasUnmatchedHandlers(e))for(;this._componentListIterator.next();)this._addHandlersFromComponent(),this._addActionsFromComponent();return this._getKeyHistoryMatcher(e)}},{key:`componentHasActionsBoundToEventType`,value:function(e,t){return this.getKeyHistoryMatcher(e).hasMatchesForEventType(t)}},{key:`findMatchingKeySequenceInComponent`,value:function(e,t,n,a){return this.componentHasActionsBoundToEventType(e,a)?this.getKeyHistoryMatcher(e).findMatch(t,n,a):null}},{key:`_getKeyHistoryMatcher`,value:function(e){return this._keyMapMatchers[e]}},{key:`_addActionsFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().actions;Object.keys(t).forEach(function(n){var a=e._getHandlers(n);if(a){var o=a[0],s=e._componentList.getAtPosition(o).handlers[n],l=e._getKeyHistoryMatcher(o);t[n].forEach(function(t){var n=[t.prefix,t.id].join(` `);e._isClosestHandlerFound(n,t)||(l.addMatch(t,s),e._addKeySequence(n,[o,t.keyEventType]))}),a.forEach(function(t){var a=e._getUnmatchedHandlerStatus(t);a[1][n]||(a[1][n]=!0,a[0]--)})}})}},{key:`_getHandlers`,value:function(e){return this._handlersDictionary[e]}},{key:`_addHandlersFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().handlers;Object.keys(t).forEach(function(t){e._addHandler(t)})}},{key:`_addHandler`,value:function(e){this._handlersDictionary[e]||(this._handlersDictionary[e]=[]),this._handlersDictionary[e].push(this._componentListIterator.getPosition())}},{key:`_addKeySequence`,value:function(e,t){this._keySequencesDictionary[e]||(this._keySequencesDictionary[e]=[]),this._keySequencesDictionary[e].push(t)}},{key:`_componentHasUnmatchedHandlers`,value:function(e){return 0<this._getUnmatchedHandlerStatus(e)[0]}},{key:`_getUnmatchedHandlerStatus`,value:function(e){return this._unmatchedHandlerStatus[e]}},{key:`_isClosestHandlerFound`,value:function(e,t){return this._keySequencesDictionary[e]&&this._keySequencesDictionary[e].some(function(e){return e[1]===t.keyEventType})}}]),e}(),SEQUENCE_ATTRIBUTES=[`sequence`,`action`],KEYMAP_ATTRIBUTES=[`name`,`description`,`group`],AbstractKeyEventStrategy=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},n=1<arguments.length?arguments[1]:void 0;_classCallCheck$1(this,e),this.logger=t.logger||new Logger(`warn`),this.componentId=-1,this.keyEventManager=n,this._componentTree=new ComponentTree,this.rootComponentId=null,this._reset(),this.resetKeyHistory()}return _createClass$1(e,[{key:`_reset`,value:function(){this.componentList=new ComponentOptionsList,this._initHandlerResolutionState()}},{key:`_newKeyHistory`,value:function(){return new KeyHistory({maxLength:this.componentList.getLongestSequence()})}},{key:`getKeyHistory`,value:function(){return this._keyHistory||=this._newKeyHistory(),this._keyHistory}},{key:`_initHandlerResolutionState`,value:function(){this._actionResolver=null}},{key:`resetKeyHistory`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};this.keypressEventsToSimulate=[],this.keyupEventsToSimulate=[],this._keyHistory=this.getKeyHistory().any()&&!e.force?new KeyHistory({maxLength:this.componentList.getLongestSequence()},new KeyCombination(this.getCurrentCombination().keysStillPressedDict())):this._newKeyHistory()}},{key:`getApplicationKeyMap`,value:function(){return this.rootComponentId===null?{}:this._buildApplicationKeyMap([this.rootComponentId],{})}},{key:`_buildApplicationKeyMap`,value:function(e,t){var n=this;return e.forEach(function(e){var a=n._componentTree.get(e),o=a.childIds,s=a.keyMap;s&&Object.keys(s).forEach(function(e){var a=s[e];t[e]={},isObject(a)?hasKey(a,`sequences`)?(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=n._createSequenceFromConfig(a.sequences)):(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=[copyAttributes(a,{},SEQUENCE_ATTRIBUTES)]):t[e].sequences=n._createSequenceFromConfig(a)}),n._buildApplicationKeyMap(o,t)}),t}},{key:`_createSequenceFromConfig`,value:function(e){return arrayFrom(e).map(function(e){return isObject(e)?copyAttributes(e,{},SEQUENCE_ATTRIBUTES):{sequence:e}})}},{key:`registerKeyMap`,value:function(e){return this.componentId+=1,this._componentTree.add(this.componentId,e),this.componentId}},{key:`reregisterKeyMap`,value:function(e,t){this._componentTree.update(e,t)}},{key:`registerComponentMount`,value:function(e,t){isUndefined(t)?this.rootComponentId=e:this._componentTree.setParent(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._componentTree.remove(e),e===this.rootComponentId&&(this.rootComponentId=null)}},{key:`_addComponent`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;this.componentList.add(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence())}},{key:`_allKeysAreReleased`,value:function(){return this.getCurrentCombination().hasEnded()}},{key:`getCurrentCombination`,value:function(){return this.getKeyHistory().getCurrentCombination()}},{key:`_shouldSimulate`,value:function(e,t){var n=hasKeyPressEvent(t),a=this.getCurrentCombination();return e===KeyEventType.keypress?!n||n&&a.isKeyStillPressed(`Meta`):e===KeyEventType.keyup&&keyupIsHiddenByCmd(t)&&a.isKeyReleased(`Meta`)}},{key:`_cloneAndMergeEvent`,value:function(e,t){return _objectSpread$1({},Object.keys(ModifierFlagsDictionary).reduce(function(t,n){return t[n]=e[n],t},{}),t)}},{key:`_callClosestMatchingHandler`,value:function(e,t,n,a,o){for(this._actionResolver||=new ActionResolver(this.componentList);o<=a;){this._actionResolver.getKeyHistoryMatcher(o);var s=this._actionResolver.findMatchingKeySequenceInComponent(o,this.getKeyHistory(),t,n);if(this.getCurrentCombination(),s){var l=s.events[n];return Configuration.option(`allowCombinationSubmatches`)&&KeyCombinationSerializer.serialize(s.keyDictionary),l.handler(e),this._stopEventPropagationAfterHandlingIfEnabled(e,o),!0}this._actionResolver.componentHasActionsBoundToEventType(o,n),o++}}},{key:`_stopEventPropagationAfterHandlingIfEnabled`,value:function(e,t){return!!Configuration.option(`stopEventPropagationAfterHandling`)&&(this._stopEventPropagation(e,t),!0)}},{key:`_stopEventPropagation`,value:function(){throw Error(`_stopEventPropagation must be overridden by a subclass`)}},{key:`_checkForModifierFlagDiscrepancies`,value:function(e,t,n){var a=this;Object.keys(ModifierFlagsDictionary).forEach(function(o){if(t!==o||n!==KeyEventType.keyup){var s=a.getCurrentCombination(),l=s.isKeyStillPressed(o);ModifierFlagsDictionary[o].forEach(function(t){!1===e[t]&&l&&s.setKeyState(o,KeyEventType.keyup,stateFromEvent(e))})}})}},{key:`_logPrefix`,value:function(){}}]),e}(),KeyEventCounter=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`getId`,value:function(){return isUndefined(this._id)&&(this._id=0),this._id}},{key:`incrementId`,value:function(){this._id=this.getId()+1}}]),e}(),normalizeKey={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},EventResponse={unseen:0,ignored:1,seen:2,recorded:3,handled:4},EventPropagator=function(){function e(t,n){var a=n.logger,o=n.logPrefix;_classCallCheck$1(this,e),this._componentList=t,this._previousPropagation=null,this.logger=a,this._logPrefix=o,this._reset()}return _createClass$1(e,[{key:`_reset`,value:function(){this._previousPosition=-1,this._position=-1,this._actionHandled=!1,this._ignoreEvent=!1,this._observeIgnoredEvents=!1,this._stopping=!1,this._componentId=null,this._key=null,this._type=null}},{key:`isFirstPropagationStep`,value:function(){var e=this.getPreviousPosition();return e===-1||e>=this._position}},{key:`isForKey`,value:function(e){return this._key===e}},{key:`isForEventType`,value:function(e){return this._type===e}},{key:`startNewPropagationStep`,value:function(e,t,n,a){return this._position=this._componentList.getIndexById(e),this._componentId=e,this.isFirstPropagationStep()&&(KeyEventCounter.incrementId(),this._key=t.key,this._type=a),!(t.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))||(this.ignoreEvent(t),!1)}},{key:`finishPropagationStep`,value:function(){this.isStopped()||this._componentList.isRoot(this._componentId)?(this._previousPropagation=this._clone(),this._reset()):this._previousPosition=this._position}},{key:`getPreviousPropagation`,value:function(){return this._previousPropagation||=this._clone({copyState:!1}),this._previousPropagation}},{key:`getPreviousPosition`,value:function(){return this._previousPosition}},{key:`observeIgnoredEvents`,value:function(){this._observeIgnoredEvents=!0}},{key:`ignoreEvent`,value:function(e){return this.setIgnoreEvent(!0),!!(this.isIgnoringEvent()&&Configuration.option(`stopEventPropagationAfterIgnoring`))&&(this.stop(e),this.finishPropagationStep(),!0)}},{key:`setIgnoreEvent`,value:function(e){this._ignoreEvent=e}},{key:`isIgnoringEvent`,value:function(){return!this._observeIgnoredEvents&&this._ignoreEvent}},{key:`isStopped`,value:function(){return this._stopping}},{key:`stop`,value:function(e){return!this.isStopped()&&(this._stopping=!0,e.simulated||e.stopPropagation(),!0)}},{key:`isPendingPropagation`,value:function(){var e=this.getPreviousPosition();return e!==-1&&e+1<this._position}},{key:`isHandled`,value:function(){return this._actionHandled}},{key:`setHandled`,value:function(){this._actionHandled=!0}},{key:`_clone`,value:function(){var t=(0<arguments.length&&arguments[0]!==void 0?arguments[0]:{}).copyState,n=new e(this._componentList,{logger:this.logger,logPrefix:this._logPrefix});return(t===void 0||t)&&Object.assign(n,this),n}}]),e}(),FocusOnlyKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.focusTreeId=0,e}return _inherits(t,e),_createClass$1(t,[{key:`_reset`,value:function(){_get(_getPrototypeOf(t.prototype),`_reset`,this).call(this),this.keypressEventsToSimulate=[],this.focusTreeId+=1,this.eventPropagator=new EventPropagator(this.componentList,{logger:this.logger,logPrefix:this._logPrefix.bind(this)})}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;if(this.resetOnNextFocus&&=(this._reset(),!1),!this.componentList.containsId(e))return this._addComponent(e,t,n,a),this.focusTreeId}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;e===this.focusTreeId&&this.componentList.containsId(t)&&(this.componentList.update(t,n,a,o),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._initHandlerResolutionState())}},{key:`disableHotKeys`,value:function(e,t){return this.resetOnNextFocus||=!0,this.eventPropagator.isPendingPropagation()}},{key:`handleKeydown`,value:function(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=getKeyName(e);if(t!==this.focusTreeId)return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keydown)){if(this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keydown)===EventResponse.handled){var s=stateFromEvent(e),l=this.getCurrentCombination();l.isKeyIncluded(o)||l.isEnding()?this._startAndLogNewKeyCombination(o,t,n,s):this._addToAndLogCurrentKeyCombination(o,KeyEventType.keydown,t,n,s),this._callHandlerIfActionNotHandled(e,o,KeyEventType.keydown,n,t)}return this._simulateKeyPressForNonPrintableKeys(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),!1}}},{key:`_howToHandleKeyEvent`,value:function(e,t,n,a,o,s){if(this.eventPropagator.isFirstPropagationStep()){if(o.ignoreEventsCondition(e)&&this.eventPropagator.ignoreEvent(e))return this._eventIsToBeIgnored(e,n,a,s);this._checkForModifierFlagDiscrepancies(e,a,s)}else if(this.eventPropagator.isIgnoringEvent())return this._eventIsToBeIgnored(e,n,a,s);return EventResponse.handled}},{key:`_eventIsToBeIgnored`,value:function(e,t,n,a){return EventResponse.ignored}},{key:`handleKeyPress`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyPressSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keypress)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keypress);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keypress,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keypress,n,t),this.eventPropagator.finishPropagationStep(),l}}},{key:`handleKeyUp`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyUpSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keyup)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keyup);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keyup,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keyup,n,t),this._simulateKeyUpEventsHiddenByCmd(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),l}}},{key:`closeHangingKeyCombination`,value:function(e,t){var n=this.getCurrentCombination();n.isKeyIncluded(e)&&!n.isEventTriggered(e,t)&&n.setKeyState(e,t,KeyEventState.simulated)}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t,n,a,o){this._handleEventSimulation(`keypressEventsToSimulate`,`simulatePendingKeyPressEvents`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t,n,a,o){var s=this;isCmdKey(t)&&this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||s._handleEventSimulation(`keyupEventsToSimulate`,`simulatePendingKeyUpEvents`,s._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})})}},{key:`_stopEventPropagation`,value:function(e,t){this.eventPropagator.stop(e)}},{key:`getEventPropagator`,value:function(){return this.eventPropagator}},{key:`_startAndLogNewKeyCombination`,value:function(e,t,n,a){this.getKeyHistory().startNewKeyCombination(e,a)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n,a,o){this.getKeyHistory().addKeyToCurrentCombination(e,t,o)}},{key:`_handleEventSimulation`,value:function(e,t,n,a){var o=a.event,s=a.key,l=a.focusTreeId,u=a.componentId,d=a.options;if(n&&Configuration.option(`simulateMissingKeyPressEvents`)){var f=this._cloneAndMergeEvent(o,{key:s,simulated:!0});this[e].push({event:f,focusTreeId:l,componentId:u,options:d})}(this.componentList.isRoot(u)||this.eventPropagator.isStopped())&&!this.keyEventManager.isGlobalListenersBound()&&this[t]()}},{key:`simulatePendingKeyPressEvents`,value:function(){this._simulatePendingKeyEvents(`keypressEventsToSimulate`,`handleKeyPress`)}},{key:`simulatePendingKeyUpEvents`,value:function(){this._simulatePendingKeyEvents(`keyupEventsToSimulate`,`handleKeyUp`)}},{key:`_simulatePendingKeyEvents`,value:function(e,t){var n=this;0<this[e].length&&KeyEventCounter.incrementId(),this[e].forEach(function(e){var a=e.event,o=e.focusTreeId,s=e.componentId,l=e.options;n[t](a,o,s,l)}),this[e]=[]}},{key:`_callHandlerIfActionNotHandled`,value:function(e,t,n,a,o){if(this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&!this.eventPropagator.isHandled()){var s=this.eventPropagator.getPreviousPosition(),l=this.componentList.getIndexById(a);this._callClosestMatchingHandler(e,t,n,l,s===-1?0:s)&&this.eventPropagator.setHandled()}}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.logIcons,a=Logger.eventIcons,o=Logger.componentIcons,s=`HotKeys (`;if(!1!==t.focusTreeId){var l=isUndefined(t.focusTreeId)?this.focusTreeId:t.focusTreeId;s+=`F${l}${n[l%n.length]}-`}if(!1!==t.eventId){var u=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;s+=`E${u}${a[u%a.length]}-`}s+=`C${e}${o[e%o.length]}`;var d=this.componentList.getIndexById(e);return isUndefined(d)||(s+=`-P${d}${o[d%o.length]}:`),`${s})`}}]),t}(AbstractKeyEventStrategy),GlobalKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.listenersBound=!1,e.eventOptions={ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)},e.listeners={},e}return _inherits(t,e),_createClass$1(t,[{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this._addComponent(e,t,n,a),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`updateEnabledHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this.componentList.update(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`disableHotKeys`,value:function(e){this.componentList.remove(e),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`_updateDocumentHandlers`,value:function(){var e=this,t=this._listenersShouldBeBound();!this.listenersBound&&t?(Object.values(KeyEventType).forEach(function(t){var n=describeKeyEventType(t);document[`on${n}`]=function(t){e.keyEventManager[`handleGlobal${normalizeEventName(n)}`](t)}}),this.listenersBound=!0):this.listenersBound&&!t&&(Object.values(KeyEventType).forEach(function(e){var t=describeKeyEventType(e);delete document[`on${t}`]}),this.listenersBound=!1)}},{key:`_listenersShouldBeBound`,value:function(){return this.componentList.any()||this.listeners.keyCombination}},{key:`handleKeydown`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;this._checkForModifierFlagDiscrepancies(e,t,KeyEventType.keydown);var n=this._howReactAppRespondedTo(e,t,KeyEventType.keydown);if(!(n===EventResponse.unseen&&this.eventOptions.ignoreEventsCondition(e))){if(n!==EventResponse.ignored){var a=stateFromEvent(e),o=this.getCurrentCombination();o.isKeyIncluded(t)||o.isEnding()?this._startAndLogNewKeyCombination(t,a):this._addToAndLogCurrentKeyCombination(t,KeyEventType.keydown,a)}contains([EventResponse.ignored,EventResponse.handled],n)||this._callHandlerIfExists(e,t,KeyEventType.keydown),this._simulateKeyPressForNonPrintableKeys(e,t)}}},{key:`_howReactAppRespondedTo`,value:function(e,t,n){var a=this.keyEventManager.reactAppHistoryWithEvent(t,n);return a===EventResponse.handled||a===EventResponse.ignored||a===EventResponse.seen||KeyEventCounter.incrementId(),a}},{key:`handleKeyPress`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;var n=this.getCurrentCombination();if(n.isKeyPressSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keypress);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keypress,stateFromEvent(e)),a===EventResponse.unseen&&(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keypress),this.eventOptions.ignoreEventsCondition(e))||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keypress)}},{key:`handleKeyUp`,value:function(e){var t=getKeyName(e),n=this.getCurrentCombination();if(n.isKeyUpSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keyup);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keyup,stateFromEvent(e)),a===EventResponse.unseen?(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keyup),this.eventOptions.ignoreEventsCondition(e)||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup)):!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup),this._simulateKeyUpEventsHiddenByCmd(e,t),this.listeners.keyCombination&&this._allKeysAreReleased()&&this.listeners.keyCombination({keys:n.getKeyDictionary(),id:n.describe()})}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t){this.keyEventManager.simulatePendingKeyPressEvents(),this._handleEventSimulation(`handleKeyPress`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t){var n=this;isCmdKey(t)&&(this.keyEventManager.simulatePendingKeyUpEvents(),this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||n._handleEventSimulation(`handleKeyUp`,n._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t})}))}},{key:`_startAndLogNewKeyCombination`,value:function(e,t){this.getKeyHistory().startNewKeyCombination(e,t)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n){this.getKeyHistory().addKeyToCurrentCombination(e,t,n)}},{key:`_handleEventSimulation`,value:function(e,t,n){var a=n.event,o=n.key;if(t&&Configuration.option(`simulateMissingKeyPressEvents`)){var s=this._cloneAndMergeEvent(a,{key:o,simulated:!0});this[e](s)}}},{key:`_callHandlerIfExists`,value:function(e,t,n){this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&this._callClosestMatchingHandler(e,t,n)}},{key:`_callClosestMatchingHandler`,value:function(e,n,a){for(var o,s=this.componentList.getNewIterator();s.next();)if(o=_get(_getPrototypeOf(t.prototype),`_callClosestMatchingHandler`,this).call(this,e,n,a,s.getPosition(),0),o)return}},{key:`_stopEventPropagation`,value:function(e,t){e.simulated||e.stopPropagation()}},{key:`addKeyCombinationListener`,value:function(e){var t=this,n=function(){delete t.listeners.keyCombination};return this.listeners.keyCombination=function(t){e(t),n()},this._updateDocumentHandlers(),n}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.eventIcons,a=Logger.componentIcons,o=`HotKeys (GLOBAL`;if(!1!==t.eventId){var s=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;o=`${o}-E${s}${n[s%n.length]}`}return isUndefined(e)?`${o}):`:`${o}-C${e}${a[e%a.length]}):`}}]),t}(AbstractKeyEventStrategy),KeyEventManager=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this.logger=t.logger||new Logger(Configuration.option(`logLevel`)),this._focusOnlyEventStrategy=new FocusOnlyKeyEventStrategy({configuration:t,logger:this.logger},this),this._globalEventStrategy=new GlobalKeyEventStrategy({configuration:t,logger:this.logger},this),this.mountedComponentsCount=0}return _createClass$1(e,null,[{key:`getInstance`,value:function(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this.instance||=new e(t),this.instance}},{key:`clear`,value:function(){delete this.instance}}]),_createClass$1(e,[{key:`getApplicationKeyMap`,value:function(){return Object.assign(this._globalEventStrategy.getApplicationKeyMap(),this._focusOnlyEventStrategy.getApplicationKeyMap())}},{key:`registerKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._focusOnlyEventStrategy.registerKeyMap(e)}},{key:`reregisterKeyMap`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};this._focusOnlyEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._focusOnlyEventStrategy.deregisterKeyMap(e)}},{key:`registerComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._focusOnlyEventStrategy.registerComponentMount(e,t)}},{key:`registerComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`_incrementComponentCount`,value:function(){var e=this,t=this.mountedComponentsCount;this.mountedComponentsCount+=1,t===0&&this.mountedComponentsCount===1&&(window.onblur=function(){return e._clearKeyHistory()})}},{key:`_decrementComponentCount`,value:function(){var e=this.mountedComponentsCount;--this.mountedComponentsCount,e===1&&this.mountedComponentsCount===0&&delete window.onblur}},{key:`_clearKeyHistory`,value:function(){this._focusOnlyEventStrategy.resetKeyHistory({force:!0}),this._globalEventStrategy.resetKeyHistory({force:!0})}},{key:`registerGlobalKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._globalEventStrategy.registerKeyMap(e)}},{key:`registerGlobalComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`registerGlobalComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._globalEventStrategy.registerComponentMount(e,t)}},{key:`reregisterGlobalKeyMap`,value:function(e,t){this._globalEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterGlobalKeyMap`,value:function(e){this._globalEventStrategy.deregisterKeyMap(e)}},{key:`addKeyCombinationListener`,value:function(e){return this._globalEventStrategy.addKeyCombinationListener(e)}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;return this._focusOnlyEventStrategy.enableHotKeys(e,t,n,a)}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;return this._focusOnlyEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableHotKeys`,value:function(e,t){return this._focusOnlyEventStrategy.disableHotKeys(e,t)}},{key:`handleKeydown`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeydown(e,t,n,a)}},{key:`handleKeyPress`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyPress(e,t,n,a)}},{key:`handleKeyUp`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyUp(e,t,n,a)}},{key:`enableGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.enableHotKeys(e,t,n,a,o)}},{key:`updateEnabledGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableGlobalHotKeys`,value:function(e){return this._globalEventStrategy.disableHotKeys(e)}},{key:`handleGlobalKeyDown`,value:function(e){return this._globalEventStrategy.handleKeydown(e)}},{key:`handleGlobalKeyPress`,value:function(e){return this._globalEventStrategy.handleKeyPress(e)}},{key:`handleGlobalKeyUp`,value:function(e){return this._globalEventStrategy.handleKeyUp(e)}},{key:`ignoreEvent`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().ignoreEvent(e)}},{key:`observeIgnoredEvents`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().observeIgnoredEvents(e)}},{key:`closeHangingKeyCombination`,value:function(e,t){this._focusOnlyEventStrategy.closeHangingKeyCombination(e,t)}},{key:`reactAppHistoryWithEvent`,value:function(e,t){var n=this._focusOnlyEventStrategy.eventPropagator.getPreviousPropagation();return n.isForKey(e)&&n.isForEventType(t)?n.isHandled()?EventResponse.handled:n.isIgnoringEvent()?EventResponse.ignored:EventResponse.seen:EventResponse.unseen}},{key:`simulatePendingKeyPressEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyPressEvents()}},{key:`simulatePendingKeyUpEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyUpEvents()}},{key:`isGlobalListenersBound`,value:function(){return this._globalEventStrategy.listenersBound}}]),e}(),HotKeys=withHotKeys(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=e.innerRef,a=e.component,o=_objectWithoutProperties$1(e,[`hotKeys`,`innerRef`,`component`]),s=a||Configuration.option(`defaultComponent`);return import_react.createElement(s,_objectSpread$1({},t,{ref:n},o))}}]),t}(import_react.Component)),HotKeys.propTypes={innerRef:import_prop_types.default.oneOfType([import_prop_types.default.object,import_prop_types.default.func])},GlobalHotKeys$2=function(e){function t(e){var n;return _classCallCheck$1(this,t),n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)),n._id=KeyEventManager.getInstance().registerGlobalKeyMap(e.keyMap),n._childContext={globalHotKeysParentId:n._id},n}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){return this.props.children||null}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterGlobalKeyMap(this._id,this.props.keyMap),this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`)){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledGlobalHotKeys(this._id,n,a,this._getComponentOptions(),this._getEventOptions())}}},{key:`componentDidMount`,value:function(){var e=this.props,t=e.keyMap,n=e.handlers,a=this.context.globalHotKeysParentId,o=KeyEventManager.getInstance();o.registerGlobalComponentMount(this._id,a),o.enableGlobalHotKeys(this._id,t,n,this._getComponentOptions(),this._getEventOptions())}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterGlobalKeyMap(this._id),e.disableGlobalHotKeys(this._id),e.registerGlobalComponentUnmount()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),t}(import_react.Component),_defineProperty$3(GlobalHotKeys$2,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,allowChanges:import_prop_types.default.bool}),GlobalHotKeys$1$1=backwardsCompatibleContext(GlobalHotKeys$2,{deprecatedAPI:{contextTypes:{globalHotKeysParentId:import_prop_types.default.number},childContextTypes:{globalHotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{globalHotKeysParentId:void 0}}}),IgnoreKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`ignoreEvent`),ObserveKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`observeIgnoredEvents`)})),require_index_es=__commonJSMin(((e,t)=>{t.exports=(init_react_hotkeys_production_min(),__toCommonJS(react_hotkeys_production_min_exports))})),import_index_es=require_index_es(),cropType={ASPARAGUS:`ASPARAGUS`,CARROT:`CARROT`,CORN:`CORN`,GARLIC:`GARLIC`,GRAPE:`GRAPE`,JALAPENO:`JALAPENO`,OLIVE:`OLIVE`,ONION:`ONION`,PEA:`PEA`,POTATO:`POTATO`,PUMPKIN:`PUMPKIN`,SOYBEAN:`SOYBEAN`,SPINACH:`SPINACH`,SUNFLOWER:`SUNFLOWER`,STRAWBERRY:`STRAWBERRY`,SWEET_POTATO:`SWEET_POTATO`,TOMATO:`TOMATO`,WATERMELON:`WATERMELON`,WHEAT:`WHEAT`,WEED:`WEED`},recipeType={FERMENTATION:`FERMENTATION`,FORGE:`FORGE`,KITCHEN:`KITCHEN`,RECYCLING:`RECYCLING`,WINE:`WINE`},fieldMode={CLEANUP:`CLEANUP`,FERTILIZE:`FERTILIZE`,HARVEST:`HARVEST`,MINE:`MINE`,OBSERVE:`OBSERVE`,PLANT:`PLANT`,SET_SPRINKLER:`SET_SPRINKLER`,SET_SCARECROW:`SET_SCARECROW`,WATER:`WATER`},stageFocusType={NONE:`NONE`,HOME:`HOME`,FIELD:`FIELD`,FOREST:`FOREST`,SHOP:`SHOP`,COW_PEN:`COW_PEN`,INVENTORY:`INVENTORY`,WORKSHOP:`WORKSHOP`,CELLAR:`CELLAR`},cropLifeStage={SEED:`SEED`,GROWING:`GROWING`,GROWN:`GROWN`},itemType={COW_FEED:`COW_FEED`,CRAFTED_ITEM:`CRAFTED_ITEM`,CROP:`CROP`,FERTILIZER:`FERTILIZER`,FUEL:`FUEL`,HUGGING_MACHINE:`HUGGING_MACHINE`,MILK:`MILK`,ORE:`ORE`,SCARECROW:`SCARECROW`,SPRINKLER:`SPRINKLER`,STONE:`STONE`,TOOL_UPGRADE:`TOOL_UPGRADE`,WEED:`WEED`},fertilizerType={NONE:`NONE`,STANDARD:`STANDARD`,RAINBOW:`RAINBOW`},genders={FEMALE:`FEMALE`,MALE:`MALE`},cowColors={BLUE:`BLUE`,BROWN:`BROWN`,GREEN:`GREEN`,ORANGE:`ORANGE`,PURPLE:`PURPLE`,RAINBOW:`RAINBOW`,WHITE:`WHITE`,YELLOW:`YELLOW`},{RAINBOW,...standardCowColors}=cowColors,dialogView={NONE:`NONE`,ACCOUNTING:`ACCOUNTING`,ACHIEVEMENTS:`ACHIEVEMENTS`,FARMERS_LOG:`FARMERS_LOG`,KEYBINDINGS:`KEYBINDINGS`,ONLINE_PEERS:`ONLINE_PEERS`,PRICE_EVENTS:`PRICE_EVENTS`,SETTINGS:`SETTINGS`,STATS:`STATS`},toolType={SCYTHE:`SCYTHE`,SHOVEL:`SHOVEL`,HOE:`HOE`,WATERING_CAN:`WATERING_CAN`},toolLevel={UNAVAILABLE:`UNAVAILABLE`,DEFAULT:`DEFAULT`,BRONZE:`BRONZE`,IRON:`IRON`,SILVER:`SILVER`,GOLD:`GOLD`},cowTradeRejectionReason={REQUESTED_COW_UNAVAILABLE:`REQUESTED_COW_UNAVAILABLE`},cropFamily={GRAPE:`GRAPE`},grapeVariety={CHARDONNAY:`CHARDONNAY`,SAUVIGNON_BLANC:`SAUVIGNON_BLANC`,CABERNET_SAUVIGNON:`CABERNET_SAUVIGNON`,TEMPRANILLO:`TEMPRANILLO`,NEBBIOLO:`NEBBIOLO`},{freeze:freeze$9}=Object,BREAKPOINTS={XS:0,SM:600,MD:960,LG:1280,XL:1920},LOAN_GARNISHMENT_RATE=.05,LOAN_INTEREST_RATE=.02,FERTILIZER_BONUS=.5,PURCHASEABLE_FIELD_SIZES=freeze$9(new Map([[1,{columns:8,rows:12,price:1e3}],[2,{columns:10,rows:16,price:5e3}],[3,{columns:12,rows:18,price:2e4}]])),PURCHASABLE_FOREST_SIZES=freeze$9(new Map([[1,{columns:4,rows:2,price:1e5}],[2,{columns:4,rows:3,price:2e5}],[3,{columns:4,rows:4,price:3e5}]])),LARGEST_PURCHASABLE_FIELD_SIZE=PURCHASEABLE_FIELD_SIZES.get(PURCHASEABLE_FIELD_SIZES.size),PURCHASEABLE_COMBINES=freeze$9(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_COMPOSTERS=freeze$9(new Map([[1,{type:`Basic`,price:1e3}]])),PURCHASEABLE_SMELTERS=freeze$9(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_COW_PENS=freeze$9(new Map([[1,{cows:10,price:1500}],[2,{cows:20,price:1e4}],[3,{cows:30,price:5e4}]])),PURCHASEABLE_CELLARS=freeze$9(new Map([[1,{space:10,price:25e4}],[2,{space:20,price:75e4}],[3,{space:30,price:2e6}]])),CROW_CHANCE=.4,PRECIPITATION_CHANCE=.1,STORM_CHANCE=.5,SCARECROW_ITEM_ID=`scarecrow`,SPRINKLER_ITEM_ID=`sprinkler`,COW_STARTING_WEIGHT_BASE=1800,MALE_COW_WEIGHT_MULTIPLIER=1.1,COW_HUG_BENEFIT=.05,COW_WEIGHT_MULTIPLIER_FEED_BENEFIT=.1,COW_WEIGHT_MULTIPLIER_MINIMUM=.5,COW_WEIGHT_MULTIPLIER_MAXIMUM=1.5,COW_FEED_ITEM_ID=`cow-feed`,HUGGING_MACHINE_ITEM_ID=`hugging-machine`,COW_MINIMUM_HAPPINESS_TO_BREED=.8,NOTIFICATION_DURATION=6e3,PRICE_EVENT_CHANCE=.2,STAGE_TITLE_MAP={[stageFocusType.HOME]:`Home`,[stageFocusType.FIELD]:`Field`,[stageFocusType.FOREST]:`Forest`,[stageFocusType.SHOP]:`Shop`,[stageFocusType.COW_PEN]:`Cows`,[stageFocusType.WORKSHOP]:`Workshop`,[stageFocusType.CELLAR]:`Cellar`},RECIPE_INGREDIENT_VALUE_MULTIPLIER=1.25,I_AM_RICH_BONUSES=[.05,.1,.25],PERSISTED_STATE_KEYS=`allowCustomPeerCowNames.cellarInventory.completedAchievements.cowBreedingPen.cowColorsPurchased.cowForSale.cowInventory.cowsSold.cowsTraded.cropsHarvested.dayCount.experience.farmName.field.forest.historicalDailyLosses.historicalDailyRevenue.historicalValueAdjustments.hoveredPlotRangeSize.playerId.inventory.inventoryLimit.isCombineEnabled.itemsSold.cellarItemsSold.learnedRecipes.loanBalance.loansTakenOut.money.newDayNotifications.notificationLog.priceCrashes.priceSurges.profitabilityStreak.purchasedCombine.purchasedComposter.purchasedCowPen.purchasedCellar.purchasedField.purchasedForest.purchasedSmelter.record7dayProfitAverage.recordProfitabilityStreak.recordSingleDayProfit.revenue.showHomeScreen.showNotifications.todaysLosses.todaysPurchases.todaysRevenue.todaysStartingInventory.toolLevels.useAlternateEndDayButtonPosition.valueAdjustments.version`.split(`.`),PEER_METADATA_STATE_KEYS=[`cowsSold`,`cropsHarvested`,`dayCount`,`experience`,`playerId`,`money`,`pendingPeerMessages`,`version`],DEFAULT_ROOM=`global`,LEFT=`left`,RIGHT=`right`,TOOLBELT_FIELD_MODES=new Set([fieldMode.CLEANUP,fieldMode.HARVEST,fieldMode.WATER,fieldMode.MINE]),RESOURCE_SPAWN_CHANCE=.3,ORE_SPAWN_CHANCE=.25,COAL_SPAWN_CHANCE=.15,STONE_SPAWN_CHANCE=.4,SALT_ROCK_SPAWN_CHANCE=.3,BRONZE_SPAWN_CHANCE=.4,GOLD_SPAWN_CHANCE=.07,IRON_SPAWN_CHANCE=.33,SILVER_SPAWN_CHANCE=.2,HOE_LEVEL_TO_SEED_RECLAIM_RATE={[toolLevel.DEFAULT]:0,[toolLevel.BRONZE]:.25,[toolLevel.IRON]:.5,[toolLevel.SILVER]:.75,[toolLevel.GOLD]:1},COW_COLORS_HEX_MAP={[cowColors.BLUE]:`#8ff0f9`,[cowColors.BROWN]:`#b45f28`,[cowColors.GREEN]:`#65f295`,[cowColors.ORANGE]:`#ff7031`,[cowColors.PURPLE]:`#d884f2`,[cowColors.WHITE]:`#ffffff`,[cowColors.YELLOW]:`#fff931`},COW_TRADE_TIMEOUT=1e4,WEEDS_SPAWN_CHANCE=.15,KEG_INTEREST_RATE=.02,KEG_SPOILAGE_RATE_MULTIPLIER=.001,WINE_INTEREST_RATE=.015,EXPERIENCE_VALUES={CELLAR_ACQUIRED:10,CELLAR_EXPANDED:5,COMPOSTER_ACQUIRED:10,COW_BRED:1,COW_PEN_ACQUIRED:10,COW_PEN_EXPANDED:5,COW_TRADED:1,FERMENTATION_RECIPE_MADE:1,FIELD_EXPANDED:5,FOREST_EXPANDED:10,FORGE_RECIPE_MADE:3,ITEM_SOLD:1,KEG_SOLD:2,KITCHEN_RECIPE_MADE:2,LOAN_PAID_OFF:25,NEW_YEAR:5,RAINBOW_COW_BRED:2,RECYCLING_RECIPE_MADE:1,SMELTER_ACQUIRED:10},STANDARD_VIEW_LIST=[stageFocusType.SHOP,stageFocusType.FIELD],Z_INDEX={END_DAY_BUTTON:1100},HEARTBEAT_INTERVAL_PERIOD=10*1e3,blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAv0lEQVRoQ+2aOw6AIBBEofAiHtqzeBrvYGNjsUaDBsFqMWw2eZZWDJ/HzGicVpFxCNWz7CF4eB/nTcTLYL/GeQk4p9+riEeAVxEvAR5FVAK8iYhQKAOwBQigkPVlB4WsqQWFchcIhRRIxgtZbJscHHihe9tarQSJrAzTvVcCCvWe8fLMQSEo1FiqkchIZOkQaWkGhaAQFEr1unW7oKUZvZD1ytEL0Qs1fg0lkWk9zF9ZGi+EF8IL4YVs/2pxT6EDTzqfZhoHJYMAAAAASUVORK5CYIIA`,light_blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAiklEQVRoge3UsQnAMAwFUUd4Du8/Q8bJEK4CTpEuAYOrs+BUPjW/uuPsY7RafnfdpWTwaPV9fi+Lx46jVjx2HLXiMXtm8Jg9M3jsOGrFrRDtVoh2K0S7FaLdCtFuhWi3QrRbIdqtEO1WiHYrRLsVot0K0W6FaLdCtFsh2q0Q7VaIditEuxWiPX2FHsE1Al0X/e79AAAAAElFTkSuQmCC`,colors={itemBackground:`#f7b459`,heart:`#ff4040`,error:`#ce0000`,cardBackground:`#ffe3a1`,cardBackgroundNested:`#ffd46e`,cow:{blue:`#8ff0f9`,brown:`#b45f28`,green:`#65f295`,orange:`#ff7031`,purple:`#d884f2`,white:`#ffffff`,yellow:`#fff931`}},breakpoints={smallPhone:320,mediumPhone:400,largePhone:450,sm:600,md:960,lg:1280,xl:1920},layout={cardMaxWidth:550,sidebarWidth:`22em`,narrowSidebarWidth:320,fieldSpaceForRightSideControls:`4.5em`},fillSx={bottom:0,left:0,position:`absolute`,right:0,top:0},squareImgSx={backgroundRepeat:`no-repeat`,backgroundSize:`cover`,display:`block`,width:`100%`},cardStyleSx=e=>({background:colors.cardBackground,border:`solid 2px #b68000`,transition:e.transitions.create(`background`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut})}),cardStyleSelectedSx={background:lighten$6(colors.cardBackground,.4)},centerTabsSx={margin:`0 auto`,maxWidth:600,"& .MuiTabs-flexContainer":{justifyContent:`center`},"& > .MuiTabs-root":{marginTop:`4em`},'& [role="tabpanel"]':{background:`rgba(255, 255, 255, 0.5)`,borderRadius:`0 0 0.5em 0.5em`,padding:`0.5em 0.5em 0.5em`,"& .card-list > li:last-child":{marginBottom:0}}},spriteShadowSx={filter:`drop-shadow(2px 2px 2px rgba(100, 100, 100, 0.4))`};init_createTheme();var globalStyleOverrides={body:{overscrollBehavior:`contain`},"ul, ol":{listStyle:`none`,margin:0,padding:0},p:{margin:0},".markdown":{"& p":{margin:`1em 0`},"& ul li":{listStyle:`disc`,marginLeft:`1em`},"& strong":{fontWeight:`bold`}},img:{imageRendering:`pixelated`},strong:{fontWeight:`bold`},".visually_hidden:not(:focus):not(:active)":{clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,height:`1px`,overflow:`hidden`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`},"h4, h5, h6, p, p.MuiTypography-root":{fontFamily:`"Public Sans", sans-serif`},"h3, h4, h5, h6":{fontWeight:`bold`},h2:{fontSize:`1.4em`},"h3, h4":{margin:`1em 0`},"p, .MuiTypography-body2":{lineHeight:`1.5em`},"ul.card-list":{flexGrow:1,marginBottom:`1em`,"& li":{margin:`1em 0`},"& > li":{margin:`1em auto`,maxWidth:layout.cardMaxWidth}},'input[type="number"]':{minWidth:`140px`},th:{fontWeight:`bold`},"h1, h2, h3, h4, h5, h6, legend, td, th, .MuiTypography-h1, .MuiTypography-h2, .MuiTypography-h3, .MuiTypography-h4, .MuiTypography-h5, .MuiTypography-h6, .MuiButtonBase-root":{fontFamily:`"Francois One", sans-serif`},".danger-text":{color:colors.error},hr:{background:`none`},".MuiDivider-vertical":{width:`auto`},".Farmhand.notification-container":{marginTop:`8em`,paddingTop:0,[`@media (min-width: ${breakpoints.md}px)`]:{marginTop:`4em`,marginRight:`4em`},"& .MuiCollapse-wrapperInner":{width:`100%`},"& .MuiCollapse-wrapper":{marginBottom:0}},".spacer":{minHeight:`7.5em`}},mui_theme_default=createTheme({palette:{mode:`light`},shape:{},typography:{fontFamily:`"Public Sans", sans-serif`,button:{fontFamily:`"Francois One", sans-serif`,textTransform:`none`},h6:{fontFamily:`"Francois One", sans-serif`,fontSize:`1.4em`},h5:{fontFamily:`"Francois One", sans-serif`}},components:{MuiCssBaseline:{styleOverrides:globalStyleOverrides},MuiTabs:{styleOverrides:{root:({theme:e})=>({background:`#ffeec6`,borderColor:`#9b6d00`,borderWidth:2,borderStyle:`solid`,borderRadius:`${e.shape.borderRadius}px ${e.shape.borderRadius}px 0 0`})}},MuiInput:{styleOverrides:{root:{margin:`1rem 0`}}},MuiCard:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx,"& .MuiCard-root":{background:colors.cardBackgroundNested}})}},MuiTableContainer:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx})}},MuiCardHeader:{styleOverrides:{avatar:{"& img":spriteShadowSx}}},MuiCardContent:{styleOverrides:{root:{"&:last-child":{padding:`16px`}}}},MuiTableCell:{styleOverrides:{root:{borderColor:`#e9c777`}}},MuiButtonBase:{styleOverrides:{root:{textTransform:`none`}}},MuiPaper:{styleOverrides:{rounded:{backgroundColor:`#fff7e7`}}},MuiTooltip:{styleOverrides:{tooltip:{"& p":{textAlign:`center`}}}},MuiDialog:{styleOverrides:{root:{display:`block`},paper:{backgroundImage:`url(${light_blue_stripe_bg_default})`}}},MuiDivider:{styleOverrides:{root:{margin:`1.5em 0`}}},MuiAlert:{styleOverrides:{root:{marginBottom:`1em`,"@media (min-width: 0px) and (orientation: landscape)":{top:`3.5em`},[`@media (min-width: ${breakpoints.sm}px)`]:{top:`4.5em`},"& p":{margin:`1em 0`,"&:first-of-type":{marginTop:0},"&:last-child":{marginBottom:0}},"& strong":{fontWeight:`bold`},"& li":{marginLeft:`1em`},"& ul li":{listStyle:`disc`},"& ol li":{listStyle:`decimal`}}}}}});init_styled();var Span=styled$1(`span`)({}),Div=styled$1(`div`)({}),P$1=styled$1(`p`)({}),Ol=styled$1(`ol`)({}),Ul=styled$1(`ul`)({}),Li=styled$1(`li`)({}),Img=styled$1(`img`)({}),Form=styled$1(`form`)({}),Header=styled$1(`header`)({}),H3=styled$1(`h3`)({}),A=styled$1(`a`)({}),require_shifty=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a():typeof define==`function`&&define.amd?define(`shifty`,[],a):typeof e==`object`?e.shifty=a():n.shifty=a()})(self,(function(){return function(){var e={933:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.setBezierFunction=t.getCubicBezierTransition=void 0;let a=n(55);t.getCubicBezierTransition=(e=.25,t=.25,n=.75,a=.75)=>o=>function(e,t,n,a,o,s){let l=0,u=0,d=0,f=0,m=0,h=0,v=e=>((l*e+u)*e+d)*e,y=e=>(3*l*e+2*u)*e+d,b=e=>e>=0?e:0-e;return d=3*t,u=3*(a-t)-d,l=1-d-u,h=3*n,m=3*(o-n)-h,f=1-h-m,x=e,S=(e=>1/(200*e))(s),(e=>((f*e+m)*e+h)*e)(((e,t)=>{let n,a,o,s,l,u;for(o=e,u=0;u<8;u++){if(s=v(o)-e,b(s)<t)return o;if(l=y(o),b(l)<1e-6)break;o-=s/l}if(n=0,a=1,o=e,o<n)return n;if(o>a)return a;for(;n<a;){if(s=v(o),b(s-e)<t)return o;e>s?n=o:a=o,o=.5*(a-n)+n}return o})(x,S));var x,S}(o,e,t,n,a,1),t.setBezierFunction=(e,n,o,s,l)=>{let u=(0,t.getCubicBezierTransition)(n,o,s,l);return u.displayName=e,u.x1=n,u.y1=o,u.x2=s,u.y2=l,a.Tweenable.easing[e]=u}},156:function(e,t,n){var a=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)n===`default`||Object.prototype.hasOwnProperty.call(t,n)||a(t,e,n)};Object.defineProperty(t,`__esModule`,{value:!0}),t.VERSION=t.standardEasingFunctions=t.setBezierFunction=t.Scene=t.interpolate=t.tween=t.Tweenable=t.shouldScheduleUpdate=t.processTweens=void 0;let s=n(55);Object.defineProperty(t,`processTweens`,{enumerable:!0,get:function(){return s.processTweens}}),Object.defineProperty(t,`shouldScheduleUpdate`,{enumerable:!0,get:function(){return s.shouldScheduleUpdate}}),Object.defineProperty(t,`Tweenable`,{enumerable:!0,get:function(){return s.Tweenable}}),Object.defineProperty(t,`tween`,{enumerable:!0,get:function(){return s.tween}});var l=n(243);Object.defineProperty(t,`interpolate`,{enumerable:!0,get:function(){return l.interpolate}});var u=n(612);Object.defineProperty(t,`Scene`,{enumerable:!0,get:function(){return u.Scene}});var d=n(933);Object.defineProperty(t,`setBezierFunction`,{enumerable:!0,get:function(){return d.setBezierFunction}});var f=n(809);Object.defineProperty(t,`standardEasingFunctions`,{enumerable:!0,get:function(){return f.standardEasingFunctions}}),o(n(613),t),t.VERSION=`3.0.6`},243:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.interpolate=void 0;let a=n(55),o=new a.Tweenable,{filters:s}=a.Tweenable;t.interpolate=(e,t,n,l=a.Tweenable.easing.linear,u=0)=>{let d=Object.assign({},e),f=(0,a.composeEasingObject)(e,l);o._filters.length=0,o.setState({}),o._currentState=d,o._originalState=e,o._targetState=t,o._easing=f;for(let e in s)s[e].doesApply(o)&&o._filters.push(s[e]);o._applyFilter(`tweenCreated`),o._applyFilter(`beforeTween`);let m=(0,a.tweenProps)(n,d,e,t,1,u,f);return o._applyFilter(`afterTween`),m}},612:function(e,t){Object.defineProperty(t,`__esModule`,{value:!0}),t.Scene=void 0,t.Scene=class{constructor(...e){this._tweenables=[],e.forEach(this.add.bind(this))}get tweenables(){return[...this._tweenables]}get promises(){return this._tweenables.map((e=>e.then()))}add(e){return this._tweenables.push(e),e}remove(e){let t=this._tweenables.indexOf(e);return t>-1&&this._tweenables.splice(t,1),e}empty(){return this.tweenables.map(this.remove.bind(this))}get isPlaying(){return this._tweenables.some((({isPlaying:e})=>e))}tween(){return this._tweenables.forEach((e=>e.tween())),this}pause(){return this._tweenables.forEach((e=>e.pause())),this}resume(){return this._tweenables.filter((({hasEnded:e})=>!e)).forEach((e=>e.resume())),this}stop(e){return this._tweenables.forEach((t=>t.stop(e))),this}}},809:function(e,t){Object.defineProperty(t,`__esModule`,{value:!0}),t.standardEasingFunctions=void 0,t.standardEasingFunctions=Object.freeze({linear:e=>e,easeInQuad:e=>e**2,easeOutQuad:e=>-((e-1)**2-1),easeInOutQuad:e=>(e/=.5)<1?.5*e**2:-.5*((e-=2)*e-2),easeInCubic:e=>e**3,easeOutCubic:e=>(e-1)**3+1,easeInOutCubic:e=>(e/=.5)<1?.5*e**3:.5*((e-2)**3+2),easeInQuart:e=>e**4,easeOutQuart:e=>-((e-1)**4-1),easeInOutQuart:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeInQuint:e=>e**5,easeOutQuint:e=>(e-1)**5+1,easeInOutQuint:e=>(e/=.5)<1?.5*e**5:.5*((e-2)**5+2),easeInSine:e=>1-Math.cos(Math.PI/2*e),easeOutSine:e=>Math.sin(Math.PI/2*e),easeInOutSine:e=>-.5*(Math.cos(Math.PI*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:1-2**(-10*e),easeInOutExpo:e=>e===0?0:e===1?1:(e/=.5)<1?.5*2**(10*(e-1)):.5*(2-2**(-10*--e)),easeInCirc:e=>-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-1)**2),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeOutBounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,easeInBack:e=>{let t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:e=>{let t=1.70158;return--e*e*((t+1)*e+t)+1},easeInOutBack:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},elastic:e=>-1*4**(-8*e)*Math.sin((6*e-1)*(2*Math.PI)/2)+1,swingFromTo:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},swingFrom:e=>{let t=1.70158;return e*e*((t+1)*e-t)},swingTo:e=>{let t=1.70158;return--e*e*((t+1)*e+t)+1},bounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,bouncePast:e=>e<1/2.75?7.5625*e*e:e<2/2.75?2-(7.5625*(e-=1.5/2.75)*e+.75):e<2.5/2.75?2-(7.5625*(e-=2.25/2.75)*e+.9375):2-(7.5625*(e-=2.625/2.75)*e+.984375),easeFromTo:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeFrom:e=>e**4,easeTo:e=>e**.25})},525:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.afterTween=t.beforeTween=t.tweenCreated=t.doesApply=void 0;let a=n(613),o=/(\d|-|\.)/,s=/([^\-0-9.]+)/g,l=/[0-9.-]+/g,u=(()=>{let e=l.source,t=`,\\s*`;return RegExp(`rgba?\\(${e}${t}${e}${t}${e}(${t}${e})?\\)`,`g`)})(),d=/^.*\(/,f=/#([0-9]|[a-f]){3,6}/gi,m=`VAL`,h=(e,t)=>e.map(((e,n)=>`_${t}_${n}`)),v=e=>{let t=e.match(s);return t?(t.length===1||e.charAt(0).match(o))&&t.unshift(``):t=[``,``],t.join(`VAL`)};function y(e){return parseInt(e,16)}let b=e=>`rgb(${(e=>{if((e=e.replace(/#/,``)).length===3){let[t,n,a]=e.split(``);e=t+t+n+n+a+a}return[y(e.substring(0,2)),y(e.substring(2,4)),y(e.substring(4,6))]})(e).join(`,`)})`,x=(e,t,n)=>{let a=t.match(e),o=t.replace(e,`VAL`);return a&&a.forEach((e=>o=o.replace(`VAL`,n(e)))),o},S=e=>{for(let t in e){let n=e[t];typeof n==`string`&&n.match(f)&&(e[t]=x(f,n,b))}},C=e=>{var t,n;let a=e.match(l)??[],o=a.slice(0,3).map((e=>Math.floor(Number(e)))),s=e.match(d)?.[0];if(a.length===3)return`${s}${o.join(`,`)})`;if(a.length===4)return`${s}${o.join(`,`)},${a[3]})`;throw Error(`Invalid rgbChunk: ${e}`)},T=e=>{var t;return e.match(l)??[]},E=(e,t)=>{let n={};return t.forEach((t=>{n[t]=e[t],delete e[t]})),n},D=(e,t)=>t.map((t=>Number(e[t]))),O=(e,t)=>(t.forEach((t=>e=e.replace(`VAL`,String(+t.toFixed(4))))),e);t.doesApply=e=>{for(let t in e._currentState)if(typeof e._currentState[t]==`string`)return!0;return!1},t.tweenCreated=function(e){let{_currentState:t,_originalState:n,_targetState:a}=e;[t,n,a].forEach(S),e._tokenData=(e=>{var t;let n={};for(let t in e){let a=e[t];typeof a==`string`&&(n[t]={formatString:v(a),chunkNames:h(T(a)?.map(Number),t)})}return n})(t)},t.beforeTween=function(e){let{_currentState:t,_originalState:n,_targetState:o,_easing:s,_tokenData:l}=e;typeof s!=`function`&&l&&((e,t)=>{var n;for(let n in t){let{chunkNames:o}=t[n],s=e[n];if(typeof s==`string`){let t=s.split(` `),n=t[t.length-1];for(let s=0;s<o.length;s++){let l=o[s],u=t[s]??n;(0,a.isEasingKey)(u)&&(e[l]=u)}}else o.forEach((t=>e[t]=s));delete e[n]}})(s,l),[t,n,o].forEach((e=>((e,t)=>{for(let n in t)T(String(e[n])).forEach(((a,o)=>e[t[n].chunkNames[o]]=+a)),delete e[n]})(e,l??{})))},t.afterTween=function(e){let{_currentState:t,_originalState:n,_targetState:a,_easing:o,_tokenData:s}=e;[t,n,a].forEach((e=>((e,t)=>{for(let n in t){let{chunkNames:a,formatString:o}=t[n];e[n]=x(u,O(o,D(E(e,a),a)),C)}})(e,s??{}))),typeof o!=`function`&&s&&((e,t)=>{for(let n in t){let{chunkNames:a}=t[n],o=e[a[0]];e[n]=typeof o==`string`?a.map((t=>{let n=e[t];return delete e[t],n})).join(` `):o}})(o,s)}},55:function(e,t,n){var a,o=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!==`default`&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return s(t,e),t};Object.defineProperty(t,`__esModule`,{value:!0}),t.shouldScheduleUpdate=t.tween=t.Tweenable=t.composeEasingObject=t.scheduleUpdate=t.processTweens=t.tweenProps=t.getListTail=t.getListHead=t.resetList=void 0;let u=n(809),d=n(933),f=n(613),m=l(n(525)),h=`linear`,v=1e3/60,y=typeof window<`u`?window:n.g,b=`afterTween`,x=`beforeTween`,S=`string`,C=`function`,T=y.requestAnimationFrame;T||=typeof window>`u`?setTimeout:window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozCancelRequestAnimationFrame&&window.mozRequestAnimationFrame||setTimeout;let E=()=>{},D=null,O=null;t.resetList=()=>{D=O=null},t.getListHead=()=>D,t.getListTail=()=>O,t.tweenProps=(e,t,n,a,o,s,l)=>{var d;let f,m=0,h=e<s?0:(e-s)/o,v;for(let e in t){if(typeof l===C)v=l;else{let t=l[e];v=typeof t===C?t:L.easing[t]??u.standardEasingFunctions.linear}m=v(h),f=n[e],t[e]=f+(a[e]-f)*m}return t};let k=(e,n)=>{var a;let o=e._timestamp??0,s=e._currentState,l=e._delay;if(n<o+l)return;let u=e._duration,d=e._targetState,f=o+l+u,m=n>f?f:n;e._hasEnded=m>=f;let h=u-(f-m);if(e._hasEnded)return e._render(d,h,e._data),e.stop(!0);e._applyFilter(x),m<o+l?o=u=m=1:o+=l,(0,t.tweenProps)(m,s,e._originalState,d,u,o,e._easing),e._applyFilter(b),e._render(s,h,e._data)};t.processTweens=()=>{let e,t=L.now(),n=D;for(;n;)e=n._next,k(n,t),n=e};let{now:j}=Date,M,N=!1;t.scheduleUpdate=()=>{M=j(),N&&T.call(y,t.scheduleUpdate,16.666666666666668),(0,t.processTweens)()},t.composeEasingObject=(e,t=h,n={})=>{if(typeof t===S&&(0,f.isEasingKey)(t))return L.easing[t];if(Array.isArray(t))return(0,d.getCubicBezierTransition)(...t);if(typeof n==`object`)if(typeof t===S||typeof t===C)for(let a in e)n[a]=t;else for(let a in e)n[a]=t[a]||h;return n};let F=(()=>{let e,t;return n=>{e=null,t=null,n===D?(D=n._next,D?D._previous=null:O=null):n===O?(O=n._previous,O?O._next=null:D=null):(e=n._previous,t=n._next,e&&(e._next=t),t&&(t._previous=e)),n._previous=n._next=null}})(),I=typeof Promise===C?Promise:null;class L{constructor(e={},t){this[a]=`Promise`,this._next=null,this._previous=null,this._config={},this._data={},this._delay=0,this._duration=500,this._filters=[],this._timestamp=null,this._hasEnded=!1,this._resolve=null,this._reject=null,this._originalState={},this._targetState={},this._start=E,this._render=E,this._promiseCtor=I,this._promise=null,this._isPlaying=!1,this._pausedAtTime=null,this._easing={},this._currentState=e||{},t&&this.setConfig(t)}_applyFilter(e){var t;for(let n=this._filters.length;n>0;n--){let a=this._filters[n-n];(t=a[e])==null||t.call(a,this)}}tween(e){return this._isPlaying&&this.stop(),!e&&this._config||this.setConfig(e),this._pausedAtTime=null,this._timestamp=L.now(),this._start(this.state,this._data),this._delay&&this._render(this._currentState,0,this._data),this._resume(this._timestamp)}setConfig(e={}){var n;let{_config:a}=this,o;for(o in e)a[o]=e[o];let{promise:s=this._promiseCtor,start:l=E,finish:u,render:d=E}=a;this._data=a.data||this._data,this._isPlaying=!1,this._pausedAtTime=null,this._delay=e.delay||0,this._start=l,this._render=d,this._duration=a.duration||500,this._promiseCtor=s,u&&(this._resolve=u);let{from:f,to:m={}}=e,{_currentState:h,_originalState:v,_targetState:y}=this;for(let e in f)h[e]=f[e];let b=!1;for(let e in h){let t=h[e];b||typeof t!==S||(b=!0),v[e]=t,y[e]=m[e]??t}if(this._easing=(0,t.composeEasingObject)(this._currentState,a.easing,this._easing),this._filters.length=0,b){for(let e in L.filters)L.filters[e].doesApply(this)&&this._filters.push(L.filters[e]);this._applyFilter(`tweenCreated`)}return this}then(e,t){if(!this._promiseCtor)throw Error(`Promise implementation is unavailable`);return this._promise=new this._promiseCtor(((e,t)=>{this._resolve=e,this._reject=t})),this._promise.then(e,t)}catch(e){return this.then().catch(e)}finally(e){return this.then().finally(e)}get state(){return Object.assign({},this._currentState)}setState(e){this._currentState=e}pause(){return this._isPlaying?(this._pausedAtTime=L.now(),this._isPlaying=!1,F(this),this):this}resume(){return this._resume()}_resume(e=L.now()){if(this._timestamp===null)return this.tween();if(this._isPlaying&&this._promise)return this;this._pausedAtTime&&=(this._timestamp+=e-this._pausedAtTime,null),this._isPlaying=!0;let n=!!D;return D===null?(D=this,O=this):(this._previous=O,O&&(O._next=this),O=this),n||(0,t.shouldScheduleUpdate)(!0),this}seek(e){var t;e=Math.max(e,0);let n=L.now();return(this._timestamp??0)+e===0||(this._timestamp=n-e,k(this,n)),this}stop(e=!1){var n;return this._isPlaying?(this._isPlaying=!1,F(this),e&&(this._applyFilter(x),(0,t.tweenProps)(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),this._applyFilter(b),this._applyFilter(`afterTweenEnd`)),(n=this._resolve)==null||n.call(this,{data:this._data,state:this._currentState,tweenable:this}),this._resolve=null,this._reject=null,this):this}cancel(e=!1){var t;let{_currentState:n,_data:a,_isPlaying:o}=this;return o?((t=this._reject)==null||t.call(this,{data:a,state:n,tweenable:this}),this._resolve=null,this._reject=null,this.stop(e)):this}get isPlaying(){return this._isPlaying}get hasEnded(){return this._hasEnded}data(e=null){return e&&(this._data=Object.assign({},e)),this._data}dispose(){for(let e in this)delete this[e]}}t.Tweenable=L,a=Symbol.toStringTag,L.now=()=>(N||(M=j()),M),L.setScheduleFunction=e=>T=e,L.filters={token:m},L.easing=Object.create(u.standardEasingFunctions),t.tween=function(e={}){return new L({},{}).tween(e)},t.shouldScheduleUpdate=e=>{e&&N||(N=e,e&&(0,t.scheduleUpdate)())}},613:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.isEasingKey=void 0;let a=n(55);t.isEasingKey=e=>e in a.Tweenable.easing}},t={};function n(a){var o=t[a];if(o!==void 0)return o.exports;var s=t[a]={exports:{}};return e[a].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if(typeof globalThis==`object`)return globalThis;try{return this||Function(`return this`)()}catch{if(typeof window==`object`)return window}}(),n(156)}()}))}));init_generateUtilityClasses(),init_generateUtilityClass();function getAppBarUtilityClass(e){return generateUtilityClass(`MuiAppBar`,e)}var appBarClasses=generateUtilityClasses(`MuiAppBar`,[`root`,`positionFixed`,`positionAbsolute`,`positionSticky`,`positionStatic`,`positionRelative`,`colorDefault`,`colorPrimary`,`colorSecondary`,`colorInherit`,`colorTransparent`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$56=[`className`,`color`,`enableColorOnDark`,`position`],useUtilityClasses$50=e=>{let{color:t,position:n,classes:a}=e;return composeClasses({root:[`root`,`color${capitalize_default(t)}`,`position${capitalize_default(n)}`]},getAppBarUtilityClass,a)},joinVars=(e,t)=>e?`${e?.replace(`)`,``)}, ${t})`:t,AppBarRoot=styled$1(Paper,{name:`MuiAppBar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${capitalize_default(n.position)}`],t[`color${capitalize_default(n.color)}`]]}})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?e.palette.grey[100]:e.palette.grey[900];return _extends$3({display:`flex`,flexDirection:`column`,width:`100%`,boxSizing:`border-box`,flexShrink:0},t.position===`fixed`&&{position:`fixed`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0,"@media print":{position:`absolute`}},t.position===`absolute`&&{position:`absolute`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`sticky`&&{position:`sticky`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`static`&&{position:`static`},t.position===`relative`&&{position:`relative`},!e.vars&&_extends$3({},t.color===`default`&&{backgroundColor:n,color:e.palette.getContrastText(n)},t.color&&t.color!==`default`&&t.color!==`inherit`&&t.color!==`transparent`&&{backgroundColor:e.palette[t.color].main,color:e.palette[t.color].contrastText},t.color===`inherit`&&{color:`inherit`},e.palette.mode===`dark`&&!t.enableColorOnDark&&{backgroundColor:null,color:null},t.color===`transparent`&&_extends$3({backgroundColor:`transparent`,color:`inherit`},e.palette.mode===`dark`&&{backgroundImage:`none`})),e.vars&&_extends$3({},t.color===`default`&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette.AppBar.defaultBg:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette.AppBar.defaultBg),"--AppBar-color":t.enableColorOnDark?e.vars.palette.text.primary:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette.text.primary)},t.color&&!t.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette[t.color].main:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette[t.color].main),"--AppBar-color":t.enableColorOnDark?e.vars.palette[t.color].contrastText:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette[t.color].contrastText)},![`inherit`,`transparent`].includes(t.color)&&{backgroundColor:`var(--AppBar-background)`},{color:t.color===`inherit`?`inherit`:`var(--AppBar-color)`},t.color===`transparent`&&{backgroundImage:`none`,backgroundColor:`transparent`,color:`inherit`}))}),AppBar$1=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAppBar`}),{className:a,color:o=`primary`,enableColorOnDark:s=!1,position:l=`fixed`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$56),d=_extends$3({},n,{color:o,position:l,enableColorOnDark:s});return(0,import_jsx_runtime.jsx)(AppBarRoot,_extends$3({square:!0,component:`header`,ownerState:d,elevation:4,className:clsx$1(useUtilityClasses$50(d).root,a,l===`fixed`&&`mui-fixed`),ref:t},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getToolbarUtilityClass(e){return generateUtilityClass(`MuiToolbar`,e)}var toolbarClasses=generateUtilityClasses(`MuiToolbar`,[`root`,`gutters`,`regular`,`dense`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled();var _excluded$55=[`className`,`component`,`disableGutters`,`variant`],useUtilityClasses$49=e=>{let{classes:t,disableGutters:n,variant:a}=e;return composeClasses({root:[`root`,!n&&`gutters`,a]},getToolbarUtilityClass,t)},ToolbarRoot=styled$1(`div`,{name:`MuiToolbar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(({theme:e,ownerState:t})=>_extends$3({position:`relative`,display:`flex`,alignItems:`center`},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},t.variant===`dense`&&{minHeight:48}),({theme:e,ownerState:t})=>t.variant===`regular`&&e.mixins.toolbar),Toolbar=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiToolbar`}),{className:a,component:o=`div`,disableGutters:s=!1,variant:l=`regular`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$55),d=_extends$3({},n,{component:o,disableGutters:s,variant:l});return(0,import_jsx_runtime.jsx)(ToolbarRoot,_extends$3({as:o,className:clsx$1(useUtilityClasses$49(d).root,a),ref:t,ownerState:d},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getTypographyUtilityClass(e){return generateUtilityClass(`MuiTypography`,e)}var typographyClasses=generateUtilityClasses(`MuiTypography`,[`root`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`subtitle1`,`subtitle2`,`body1`,`body2`,`inherit`,`button`,`caption`,`overline`,`alignLeft`,`alignRight`,`alignCenter`,`alignJustify`,`noWrap`,`gutterBottom`,`paragraph`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$54=[`align`,`className`,`component`,`gutterBottom`,`noWrap`,`paragraph`,`variant`,`variantMapping`],useUtilityClasses$48=e=>{let{align:t,gutterBottom:n,noWrap:a,paragraph:o,variant:s,classes:l}=e;return composeClasses({root:[`root`,s,e.align!==`inherit`&&`align${capitalize_default(t)}`,n&&`gutterBottom`,a&&`noWrap`,o&&`paragraph`]},getTypographyUtilityClass,l)},TypographyRoot=styled$1(`span`,{name:`MuiTypography`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!==`inherit`&&t[`align${capitalize_default(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(({theme:e,ownerState:t})=>_extends$3({margin:0},t.variant===`inherit`&&{font:`inherit`},t.variant!==`inherit`&&e.typography[t.variant],t.align!==`inherit`&&{textAlign:t.align},t.noWrap&&{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},t.gutterBottom&&{marginBottom:`0.35em`},t.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,h5:`h5`,h6:`h6`,subtitle1:`h6`,subtitle2:`h6`,body1:`p`,body2:`p`,inherit:`p`},colorTransformations={primary:`primary.main`,textPrimary:`text.primary`,secondary:`secondary.main`,textSecondary:`text.secondary`,error:`error.main`},transformDeprecatedColors=e=>colorTransformations[e]||e,Typography=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTypography`}),a=transformDeprecatedColors(n.color),o=extendSxProp(_extends$3({},n,{color:a})),{align:s=`inherit`,className:l,component:u,gutterBottom:d=!1,noWrap:f=!1,paragraph:m=!1,variant:h=`body1`,variantMapping:v=defaultVariantMapping}=o,y=_objectWithoutPropertiesLoose$3(o,_excluded$54),b=_extends$3({},o,{align:s,color:a,className:l,component:u,gutterBottom:d,noWrap:f,paragraph:m,variant:h,variantMapping:v});return(0,import_jsx_runtime.jsx)(TypographyRoot,_extends$3({as:u||(m?`p`:v[h]||defaultVariantMapping[h])||`span`,ref:t,ownerState:b,className:clsx$1(useUtilityClasses$48(b).root,l)},y))});init_createSvgIcon();var CheckCircle_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z`}),`CheckCircle`);init_createSvgIcon();var Warning_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z`}),`Warning`);init_generateUtilityClasses(),init_generateUtilityClass();function getStepIconUtilityClass(e){return generateUtilityClass(`MuiStepIcon`,e)}var stepIconClasses=generateUtilityClasses(`MuiStepIcon`,[`root`,`active`,`completed`,`error`,`text`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_SvgIcon();var _circle,_excluded$53=[`active`,`className`,`completed`,`error`,`icon`],useUtilityClasses$47=e=>{let{classes:t,active:n,completed:a,error:o}=e;return composeClasses({root:[`root`,n&&`active`,a&&`completed`,o&&`error`],text:[`text`]},getStepIconUtilityClass,t)},StepIconRoot=styled$1(SvgIcon,{name:`MuiStepIcon`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>({display:`block`,transition:e.transitions.create(`color`,{duration:e.transitions.duration.shortest}),color:(e.vars||e).palette.text.disabled,[`&.${stepIconClasses.completed}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.active}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.error}`]:{color:(e.vars||e).palette.error.main}})),StepIconText=styled$1(`text`,{name:`MuiStepIcon`,slot:`Text`,overridesResolver:(e,t)=>t.text})(({theme:e})=>({fill:(e.vars||e).palette.primary.contrastText,fontSize:e.typography.caption.fontSize,fontFamily:e.typography.fontFamily})),StepIcon=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiStepIcon`}),{active:a=!1,className:o,completed:s=!1,error:l=!1,icon:u}=n,d=_objectWithoutPropertiesLoose$3(n,_excluded$53),f=_extends$3({},n,{active:a,completed:s,error:l}),m=useUtilityClasses$47(f);if(typeof u==`number`||typeof u==`string`){let e=clsx$1(o,m.root);return l?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:Warning_default,className:e,ref:t,ownerState:f},d)):s?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:CheckCircle_default,className:e,ref:t,ownerState:f},d)):(0,import_jsx_runtime.jsxs)(StepIconRoot,_extends$3({className:e,ref:t,ownerState:f},d,{children:[_circle||=(0,import_jsx_runtime.jsx)(`circle`,{cx:`12`,cy:`12`,r:`12`}),(0,import_jsx_runtime.jsx)(StepIconText,{className:m.text,x:`12`,y:`12`,textAnchor:`middle`,dominantBaseline:`central`,ownerState:f,children:u})]}))}return u}),require_FileSaver_min=__commonJSMin(((e,t)=>{(function(t,n){typeof define==`function`&&define.amd?define([],n):e===void 0?(n(),t.FileSaver={exports:{}}.exports):n()})(e,function(){function e(e,t){return t===void 0?t={autoBom:!1}:typeof t!=`object`&&(console.warn(`Deprecated: Expected third argument to be a object`),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function n(e,t,n){var a=new XMLHttpRequest;a.open(`GET`,e),a.responseType=`blob`,a.onload=function(){u(a.response,t,n)},a.onerror=function(){console.error(`could not download file`)},a.send()}function a(e){var t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function o(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{var t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var s=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:{}.global==={}?{}:void 0,l=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=s.saveAs||(typeof window!=`object`||window!==s?function(){}:`download`in HTMLAnchorElement.prototype&&!l?function(e,t,l){var u=s.URL||s.webkitURL,d=document.createElement(`a`);t=t||e.name||`download`,d.download=t,d.rel=`noopener`,typeof e==`string`?(d.href=e,d.origin===location.origin?o(d):a(d.href)?n(e,t,l):o(d,d.target=`_blank`)):(d.href=u.createObjectURL(e),setTimeout(function(){u.revokeObjectURL(d.href)},4e4),setTimeout(function(){o(d)},0))}:`msSaveOrOpenBlob`in navigator?function(t,s,l){if(s=s||t.name||`download`,typeof t!=`string`)navigator.msSaveOrOpenBlob(e(t,l),s);else if(a(t))n(t,s,l);else{var u=document.createElement(`a`);u.href=t,u.target=`_blank`,setTimeout(function(){o(u)})}}:function(e,t,a,o){if(o||=open(``,`_blank`),o&&(o.document.title=o.document.body.innerText=`downloading...`),typeof e==`string`)return n(e,t,a);var u=e.type===`application/octet-stream`,d=/constructor/i.test(s.HTMLElement)||s.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||u&&d||l)&&typeof FileReader<`u`){var m=new FileReader;m.onloadend=function(){var e=m.result;e=f?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),o?o.location.href=e:location=e,o=null},m.readAsDataURL(e)}else{var h=s.URL||s.webkitURL,v=h.createObjectURL(e);o?o.location=v:location.href=v,o=null,setTimeout(function(){h.revokeObjectURL(v)},4e4)}});s.saveAs=u.saveAs=u,t!==void 0&&(t.exports=u)})})),require_window=__commonJSMin(((e,t)=>{t.exports=typeof window<`u`?window:{}})),import_shifty=require_shifty(),import_FileSaver_min=require_FileSaver_min(),import_window=__toESM(require_window()),PROGRESS_SAVED_MESSAGE=`Progress saved!`,RAIN_MESSAGE=`It rained in the night!`,STORM_MESSAGE=`There was a storm in the night!`,STORM_DESTROYS_SCARECROWS_MESSAGE=`There was a storm in the night! No scarecrows survived!`,FARM_PRODUCTS_TOOLTIP_TEXT=`This figure only includes sales of grown crops, crafted items, and animal products.`,COW_SOLD_TOOLTIP_TEXT=`This figure only includes cows you were not the original owner for.`,DATA_DELETED=`Your local game data has been deleted.`,INVALID_DATA_PROVIDED=`Invalid Farmhand data provided.`,UPDATE_AVAILABLE=`A game update is available! Click this message to reload and see what's new.`,SERVER_ERROR=`There was an issue connecting to the server. Please try again in a moment.`,CONNECTING_TO_SERVER=`Connecting...`,DISCONNECTING_FROM_SERVER=`Disconnecting...`,DISCONNECTED_FROM_SERVER=`You are now playing offline.`,REQUESTED_COW_TRADE_UNAVAILABLE=`The requested cow is no longer available.`,UNKNOWN_COW_TRADE_FAILURE=`Something went wrong with your cow trade request. Please try again!`,COW_ALREADY_OWNED=`It looks like you already have this cow!`,OUT_OF_COW_FEED_NOTIFICATION=`You're out of cow feed! Buy some more before your cows get hungry and run away!`,INVENTORY_FULL_NOTIFICATION=`Your inventory is full!`,SHOVELED=`Shoveled plot`,WATERING_CAN_ALT_TEXT=`A watering can for hydrating plants.`,WATERING_CAN_HIDDEN_TEXT=`Select the watering can to water your crops`,SCYTHE_ALT_TEXT=`A scythe for crop harvesting.`,SCYTHE_HIDDEN_TEXT=`Select the scythe to harvest ripened crops`,HOE_ALT_TEXT=`A hoe for removing crops and disposing of them. Also returns replantable items to your inventory.`,HOE_HIDDEN_TEXT=`Select the hoe to clear crops, or replantable field items`,SHOVEL_ALT_TEXT=`A shovel for digging up rocks.`,SHOVEL_HIDDEN_TEXT=`Select the shovel to dig for ore`,TOOL_LEVEL_INFO={SCYTHE:{DEFAULT:`**Basic**: Harvests one crop per plot.`,BRONZE:`**Bronze**: Harvests two crops per plot.`,IRON:`**Iron**: Harvests three crops per plot.`,SILVER:`**Silver**: Harvests four crops per plot.`,GOLD:`**Gold**: Harvests five crops per plot.`},SHOVEL:{DEFAULT:`**Basic**: Has a 30% chance of digging up resources.`,BRONZE:`**Bronze**: Has a 40% chance of digging up resources.`,IRON:`**Iron**: Has a 50% chance of digging up resources.`,SILVER:`**Silver**: Has a 60% chance of digging up resources.`,GOLD:`**Gold**: Has a 70% chance of digging up resources.`},WATERING_CAN:{DEFAULT:`**Basic**: Keeps plots watered for one day.`,BRONZE:`**Bronze**: Keeps plots watered for two days.`,IRON:`**Iron**: Keeps plots watered for three days.`,SILVER:`**Silver**: Keeps plots watered for four days.`,GOLD:`**Gold**: Keeps plots watered for five days.`},HOE:{DEFAULT:`**Basic**: Destroys crops.`,BRONZE:`**Bronze**: 25% chance to retrieve seeds when digging up crops.`,IRON:`**Iron**: 50% chance to retrieve seeds when digging up crops.`,SILVER:`**Silver**: 75% chance to retrieve seeds when digging up crops.`,GOLD:`**Gold**: 100% chance to retrieve seeds when digging up crops.`}},FORGE_AVAILABLE_NOTIFICATION=`**The Forge** is now available in the Workshop!`,RECYCLING_AVAILABLE_NOTIFICATION=`**Recycling** is now available in the Workshop!`,FOREST_AVAILABLE_NOTIFICATION=`The **Forest** is now available!`,COW_COLOR_NAMES={[cowColors.BLUE]:`Blue`,[cowColors.BROWN]:`Brown`,[cowColors.GREEN]:`Green`,[cowColors.ORANGE]:`Orange`,[cowColors.PURPLE]:`Purple`,[cowColors.RAINBOW]:`Rainbow`,[cowColors.WHITE]:`White`,[cowColors.YELLOW]:`Yellow`},SHOVEL_UNLOCKED=`You've unlocked a new tool for the field, The **Shovel**!`,moneyTotal=(...e)=>e.reduce((e,t)=>e+=Math.round(t*100),0)/100,assignPersistedKey=(e,t,n)=>{let a=t[n];a!==void 0&&(e[n]=a)},reduceByPersistedKeys=e=>PERSISTED_STATE_KEYS.reduce((t,n)=>(assignPersistedKey(t,e,n),t),{}),require_src=__commonJSMin(((e,t)=>{function n(e,t){var n=t&&t.cache?t.cache:v,a=t&&t.serializer?t.serializer:m;return(t&&t.strategy?t.strategy:u)(e,{cache:n,serializer:a})}function a(e){return e==null||typeof e==`number`||typeof e==`boolean`}function o(e,t,n,o){var s=a(o)?o:n(o),l=t.get(s);return l===void 0&&(l=e.call(this,o),t.set(s,l)),l}function s(e,t,n){var a=Array.prototype.slice.call(arguments,3),o=n(a),s=t.get(o);return s===void 0&&(s=e.apply(this,a),t.set(o,s)),s}function l(e,t,n,a,o){return n.bind(t,e,a,o)}function u(e,t){var n=e.length===1?o:s;return l(e,this,n,t.cache.create(),t.serializer)}function d(e,t){var n=s;return l(e,this,n,t.cache.create(),t.serializer)}function f(e,t){var n=o;return l(e,this,n,t.cache.create(),t.serializer)}function m(){return JSON.stringify(arguments)}function h(){this.cache=Object.create(null)}h.prototype.has=function(e){return e in this.cache},h.prototype.get=function(e){return this.cache[e]},h.prototype.set=function(e,t){this.cache[e]=t};var v={create:function(){return new h}};t.exports=n,t.exports.strategies={variadic:d,monadic:f}})),import_src=__toESM(require_src()),MemoizeCache=class{cache={};cacheSize;constructor({cacheSize:e=10}={}){this.cacheSize=e}has(e){return e in this.cache}get(e){return this.cache[e]}set(e,t){Object.keys(this.cache).length>this.cacheSize&&(this.cache={}),this.cache[e]=t}},memoize=(e,t={})=>(0,import_src.default)(e,{cache:{create:()=>new MemoizeCache(t)},...t}),getCropLifecycleDuration=memoize(({cropTimeline:e})=>e.reduce((e,t)=>e+t,0)),{freeze:freeze$8}=Object,crop=({cropTimeline:e=[],growsInto:t,tier:n=1,isSeed:a=!!t,cropLifecycleDuration:o=getCropLifecycleDuration({cropTimeline:e}),id:s=``,name:l=``,...u})=>freeze$8({id:s,name:l,cropTimeline:e,doesPriceFluctuate:!0,tier:n,type:itemType.CROP,value:10+o*n*(a?1:3),...a&&{enablesFieldMode:fieldMode.PLANT,growsInto:t,isPlantableCrop:!0},...u}),fromSeed=({cropTimeline:e,cropType:t,growsInto:n,tier:a=1},{variantIdx:o=0,canBeFermented:s=!1}={})=>({id:(Array.isArray(n)?n:[n])[o]||``,cropTimeline:e||[],cropType:t,doesPriceFluctuate:!0,tier:a,type:itemType.CROP,...s&&e&&{daysToFerment:getCropLifecycleDuration({cropTimeline:e})*a}}),cropVariety=({imageId:e,cropFamily:t,variety:n,...a})=>({imageId:e,cropFamily:t,variety:n,...crop({...a})}),isGrape=e=>`cropFamily`in e&&e.cropFamily===cropFamily.GRAPE,grape=e=>({...e,...cropVariety({...e,cropFamily:cropFamily.GRAPE})}),grapeSeed=crop({cropType:cropType.GRAPE,cropTimeline:[3,4],growsInto:[`grape-chardonnay`,`grape-sauvignon-blanc`,`grape-cabernet-sauvignon`,`grape-tempranillo`,`grape-nebbiolo`],id:`grape-seed`,name:`Grape Seed`,tier:7}),grapeVarietyNameMap={[grapeVariety.CHARDONNAY]:`Chardonnay`,[grapeVariety.SAUVIGNON_BLANC]:`Sauvignon Blanc`,[grapeVariety.CABERNET_SAUVIGNON]:`Cabernet Sauvignon`,[grapeVariety.TEMPRANILLO]:`Tempranillo`,[grapeVariety.NEBBIOLO]:`Nebbiolo`},wineVarietyValueMap={[grapeVariety.CHARDONNAY]:1,[grapeVariety.SAUVIGNON_BLANC]:8,[grapeVariety.CABERNET_SAUVIGNON]:3,[grapeVariety.TEMPRANILLO]:5,[grapeVariety.NEBBIOLO]:10},grapeChardonnay=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-chardonnay`)}),name:`Chardonnay Grape`,imageId:`grape-green`,variety:grapeVariety.CHARDONNAY,wineId:`wine-chardonnay`}),grapeSauvignonBlanc=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-sauvignon-blanc`)}),name:`Sauvignon Blanc Grape`,imageId:`grape-green`,variety:grapeVariety.SAUVIGNON_BLANC,wineId:`wine-sauvignon-blanc`}),grapeCabernetSauvignon=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-cabernet-sauvignon`)}),name:`Cabernet Sauvignon Grape`,imageId:`grape-purple`,variety:grapeVariety.CABERNET_SAUVIGNON,wineId:`wine-cabernet-sauvignon`}),grapeTempranillo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-tempranillo`)}),name:`Tempranillo Grape`,imageId:`grape-purple`,variety:grapeVariety.TEMPRANILLO,wineId:`wine-tempranillo`}),grapeNebbiolo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-nebbiolo`)}),name:`Nebbiolo Grape`,imageId:`grape-purple`,variety:grapeVariety.NEBBIOLO,wineId:`wine-nebbiolo`}),grapeVarietyToGrapeItemMap={[grapeVariety.CHARDONNAY]:grapeChardonnay,[grapeVariety.SAUVIGNON_BLANC]:grapeSauvignonBlanc,[grapeVariety.CABERNET_SAUVIGNON]:grapeCabernetSauvignon,[grapeVariety.TEMPRANILLO]:grapeTempranillo,[grapeVariety.NEBBIOLO]:grapeNebbiolo},getYeastRequiredForWine=e=>wineVarietyValueMap[e]*5,asparagusSeed=crop({cropType:cropType.ASPARAGUS,cropTimeline:[4,2,2,1],growsInto:`asparagus`,id:`asparagus-seed`,name:`Asparagus Seed`,tier:4}),asparagus=crop({...fromSeed(asparagusSeed,{canBeFermented:!0}),name:`Asparagus`}),carrotSeed=crop({cropType:cropType.CARROT,cropTimeline:[2,1,1,1],growsInto:`carrot`,id:`carrot-seed`,name:`Carrot Seed`,tier:1}),carrot=crop({...fromSeed(carrotSeed,{canBeFermented:!0}),name:`Carrot`}),cornSeed=crop({cropType:cropType.CORN,cropTimeline:[3,1,1,1,2,2],growsInto:`corn`,id:`corn-seed`,name:`Corn Kernels`,tier:2}),corn=crop({...fromSeed(cornSeed,{canBeFermented:!0}),name:`Corn`}),garlicSeed=crop({cropType:cropType.GARLIC,cropTimeline:[2,1,1,1],growsInto:`garlic`,id:`garlic-seed`,name:`Garlic Bulb`,tier:5}),garlic=crop({...fromSeed(garlicSeed,{canBeFermented:!0}),name:`Garlic`}),jalapenoSeed=crop({cropType:cropType.JALAPENO,cropTimeline:[2,1,1,1],growsInto:`jalapeno`,id:`jalapeno-seed`,name:`Jalapeño Seed`,tier:4}),jalapeno=crop({...fromSeed(jalapenoSeed,{canBeFermented:!0}),name:`Jalapeño`}),oliveSeed=crop({cropType:cropType.OLIVE,cropTimeline:[3,6],growsInto:`olive`,id:`olive-seed`,name:`Olive Seed`,tier:6}),olive=crop({...fromSeed(oliveSeed,{canBeFermented:!0}),name:`Olive`}),onionSeed=crop({cropType:cropType.ONION,cropTimeline:[3,1,2,1],growsInto:`onion`,id:`onion-seed`,name:`Onion Seeds`,tier:2}),onion=crop({...fromSeed(onionSeed,{canBeFermented:!0}),name:`Onion`}),peaSeed=crop({cropType:cropType.PEA,cropTimeline:[2,3],growsInto:`pea`,id:`pea-seed`,name:`Pea Seed`,tier:5}),pea=crop({...fromSeed(peaSeed,{canBeFermented:!0}),name:`Pea`}),potatoSeed=crop({cropType:cropType.POTATO,cropTimeline:[2,1,1,1],growsInto:`potato`,id:`potato-seed`,name:`Potato Seeds`,tier:2}),potato=crop({...fromSeed(potatoSeed,{canBeFermented:!0}),name:`Potato`}),pumpkinSeed=crop({cropType:cropType.PUMPKIN,cropTimeline:[3,1,1,1,1,1],growsInto:`pumpkin`,id:`pumpkin-seed`,name:`Pumpkin Seed`,tier:1}),pumpkin=crop({...fromSeed(pumpkinSeed,{canBeFermented:!0}),name:`Pumpkin`}),soybeanSeed=crop({cropType:cropType.SOYBEAN,cropTimeline:[2,2],growsInto:`soybean`,id:`soybean-seed`,name:`Soybean Seeds`,tier:3}),soybean=crop({...fromSeed(soybeanSeed,{canBeFermented:!0}),name:`Soybean`}),spinachSeed=crop({cropType:cropType.SPINACH,cropTimeline:[2,4],growsInto:`spinach`,id:`spinach-seed`,name:`Spinach Seed`,tier:1}),spinach=crop({...fromSeed(spinachSeed,{canBeFermented:!0}),name:`Spinach`}),sunflowerSeed=crop({cropType:cropType.SUNFLOWER,cropTimeline:[1,1,1,1,1,1],growsInto:`sunflower`,id:`sunflower-seed`,name:`Sunflower Seed`,tier:6}),sunflower=crop({...fromSeed(sunflowerSeed,{canBeFermented:!0}),name:`Sunflower`}),strawberrySeed=crop({cropType:cropType.STRAWBERRY,cropTimeline:[6,2],growsInto:`strawberry`,id:`strawberry-seed`,name:`Strawberry Seed`,tier:5}),strawberry=crop({...fromSeed(strawberrySeed),name:`Strawberry`}),sweetPotatoSeed=crop({cropType:cropType.SWEET_POTATO,cropTimeline:[2,1,1,2,2],growsInto:`sweet-potato`,id:`sweet-potato-seed`,name:`Sweet Potato Slip`,tier:6}),sweetPotato=crop({...fromSeed(sweetPotatoSeed,{canBeFermented:!0}),name:`Sweet Potato`}),tomatoSeed=crop({cropType:cropType.TOMATO,cropTimeline:[2,1,1,1,2,2,2],growsInto:`tomato`,id:`tomato-seed`,name:`Tomato Seeds`,tier:3}),tomato=crop({...fromSeed(tomatoSeed,{canBeFermented:!0}),name:`Tomato`}),watermelonSeed=crop({cropType:cropType.WATERMELON,cropTimeline:[2,10],growsInto:`watermelon`,id:`watermelon-seed`,name:`Watermelon Seed`,tier:4}),watermelon=crop({...fromSeed(watermelonSeed),name:`Watermelon`}),wheatSeed=crop({cropType:cropType.WHEAT,cropTimeline:[1,1],growsInto:`wheat`,id:`wheat-seed`,name:`Wheat Seeds`,tier:3}),wheat=crop({...fromSeed(wheatSeed),name:`Wheat`}),{freeze:freeze$7}=Object,bronzeOre=freeze$7({description:`A piece of bronze ore.`,doesPriceFluctuate:!0,id:`bronze-ore`,name:`Bronze Ore`,type:itemType.ORE,value:25,spawnChance:BRONZE_SPAWN_CHANCE}),{freeze:freeze$6}=Object,coal$1=freeze$6({description:`A piece of coal.`,doesPriceFluctuate:!1,id:`coal`,name:`Coal`,type:itemType.FUEL,spawnChance:COAL_SPAWN_CHANCE,value:2}),{freeze:freeze$5}=Object,goldOre=freeze$5({description:`A piece of gold ore.`,doesPriceFluctuate:!0,id:`gold-ore`,name:`Gold Ore`,type:itemType.ORE,value:500,spawnChance:GOLD_SPAWN_CHANCE}),{freeze:freeze$4}=Object,ironOre=freeze$4({description:`A piece of iron ore.`,doesPriceFluctuate:!0,id:`iron-ore`,name:`Iron Ore`,type:itemType.ORE,value:40,spawnChance:IRON_SPAWN_CHANCE}),{freeze:freeze$3}=Object,silverOre=freeze$3({description:`A piece of silver ore.`,doesPriceFluctuate:!0,id:`silver-ore`,name:`Silver Ore`,type:itemType.ORE,value:100,spawnChance:SILVER_SPAWN_CHANCE}),{freeze:freeze$2}=Object,stone=freeze$2({description:`A piece of rock.`,doesPriceFluctuate:!1,id:`stone`,name:`Stone`,spawnChance:STONE_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze:freeze$1}=Object,saltRock=freeze$1({description:`A large chunk of salt.`,doesPriceFluctuate:!0,id:`salt-rock`,name:`Salt Rock`,spawnChance:SALT_ROCK_SPAWN_CHANCE,type:itemType.STONE,value:10}),items_exports=__exportAll({asparagus:()=>asparagus,asparagusSeed:()=>asparagusSeed,bronzeOre:()=>bronzeOre,carrot:()=>carrot,carrotSeed:()=>carrotSeed,chocolateMilk:()=>chocolateMilk,coal:()=>coal$1,corn:()=>corn,cornSeed:()=>cornSeed,cowFeed:()=>cowFeed$1,garlic:()=>garlic,garlicSeed:()=>garlicSeed,goldOre:()=>goldOre,grapeCabernetSauvignon:()=>grapeCabernetSauvignon,grapeChardonnay:()=>grapeChardonnay,grapeNebbiolo:()=>grapeNebbiolo,grapeSauvignonBlanc:()=>grapeSauvignonBlanc,grapeSeed:()=>grapeSeed,grapeTempranillo:()=>grapeTempranillo,huggingMachine:()=>huggingMachine,ironOre:()=>ironOre,jalapeno:()=>jalapeno,jalapenoSeed:()=>jalapenoSeed,milk1:()=>milk1,milk2:()=>milk2,milk3:()=>milk3,olive:()=>olive,oliveSeed:()=>oliveSeed,onion:()=>onion,onionSeed:()=>onionSeed,pea:()=>pea,peaSeed:()=>peaSeed,potato:()=>potato,potatoSeed:()=>potatoSeed,pumpkin:()=>pumpkin,pumpkinSeed:()=>pumpkinSeed,rainbowFertilizer:()=>rainbowFertilizer,rainbowMilk1:()=>rainbowMilk1,rainbowMilk2:()=>rainbowMilk2,rainbowMilk3:()=>rainbowMilk3,saltRock:()=>saltRock,scarecrow:()=>scarecrow,silverOre:()=>silverOre,soybean:()=>soybean,soybeanSeed:()=>soybeanSeed,spinach:()=>spinach,spinachSeed:()=>spinachSeed,sprinkler:()=>sprinkler,stone:()=>stone,strawberry:()=>strawberry,strawberrySeed:()=>strawberrySeed,sunflower:()=>sunflower,sunflowerSeed:()=>sunflowerSeed,sweetPotato:()=>sweetPotato,sweetPotatoSeed:()=>sweetPotatoSeed,tomato:()=>tomato,tomatoSeed:()=>tomatoSeed,watermelon:()=>watermelon,watermelonSeed:()=>watermelonSeed,weed:()=>weed,wheat:()=>wheat,wheatSeed:()=>wheatSeed}),{freeze}=Object,{COW_FEED,FERTILIZER,HUGGING_MACHINE,MILK,SCARECROW,SPRINKLER,WEED:WEED$1}=itemType,weed=freeze({id:`weed`,name:`Weed`,value:.1,doesPriceFluctuate:!1,type:WEED$1}),rainbowFertilizer=freeze({description:`Helps crops grow a little faster and automatically replants them upon harvesting. Consumes seeds upon replanting and disappears if none are available. Also works for Scarecrows.`,enablesFieldMode:fieldMode.FERTILIZE,id:`rainbow-fertilizer`,name:`Rainbow Fertilizer`,type:FERTILIZER,value:15}),sprinkler=freeze({description:`Automatically waters adjacent plants every day.`,enablesFieldMode:fieldMode.SET_SPRINKLER,hoveredPlotRangeSize:1,id:`sprinkler`,isReplantable:!0,name:`Sprinkler`,type:SPRINKLER,value:120}),scarecrow=freeze({description:`Prevents crows from eating your crops. One scarecrow covers an entire field, but they are afraid of storms.`,enablesFieldMode:fieldMode.SET_SCARECROW,hoveredPlotRangeSize:2**53-1,id:`scarecrow`,isReplantable:!0,name:`Scarecrow`,type:SCARECROW,value:160}),cowFeed$1=freeze({id:COW_FEED_ITEM_ID,description:`Each cow automatically consumes one unit of Cow Feed per day. Fed cows gain and maintain weight.`,name:`Cow Feed`,type:COW_FEED,value:5}),huggingMachine=freeze({id:HUGGING_MACHINE_ITEM_ID,description:`Automatically hugs one cow three times every day.`,name:`Hugging Machine`,type:HUGGING_MACHINE,value:500}),milk1=freeze({id:`milk-1`,name:`Grade C Milk`,type:MILK,value:40}),milk2=freeze({id:`milk-2`,name:`Grade B Milk`,type:MILK,value:80}),milk3=freeze({id:`milk-3`,name:`Grade A Milk`,type:MILK,value:120}),rainbowMilk1=freeze({id:`rainbow-milk-1`,name:`Grade C Rainbow Milk`,type:MILK,value:60}),rainbowMilk2=freeze({id:`rainbow-milk-2`,name:`Grade B Rainbow Milk`,type:MILK,value:120}),rainbowMilk3=freeze({id:`rainbow-milk-3`,name:`Grade A Rainbow Milk`,type:MILK,value:180}),chocolateMilk=freeze({id:`chocolate-milk`,name:`Chocolate Milk`,type:MILK,value:80}),itemsMap$2={...Object.keys(items_exports).reduce((e,t)=>{let n=items_exports[t];return e[n.id]=n,e},{})},recipes_exports=__exportAll({bread:()=>bread,bronzeIngot:()=>bronzeIngot$1,burger:()=>burger,butter:()=>butter,carrotSoup:()=>carrotSoup,cheese:()=>cheese,chicknPotPie:()=>chicknPotPie,chocolate:()=>chocolate,chocolateSoyMilk:()=>chocolateSoyMilk,compost:()=>compost,fertilizer:()=>fertilizer,flour:()=>flour,frenchOnionSoup:()=>frenchOnionSoup,friedTofu:()=>friedTofu,garlicBread:()=>garlicBread,garlicFries:()=>garlicFries,goldIngot:()=>goldIngot$1,hotSauce:()=>hotSauce,ironIngot:()=>ironIngot$1,jackolantern:()=>jackolantern,oliveOil:()=>oliveOil,onionRings:()=>onionRings,popcorn:()=>popcorn,pumpkinPie:()=>pumpkinPie,rainbowCheese:()=>rainbowCheese,salsa:()=>salsa,salt:()=>salt,silverIngot:()=>silverIngot$1,soyMilk:()=>soyMilk,spaghetti:()=>spaghetti,spicyCheese:()=>spicyCheese,spicyPickledGarlic:()=>spicyPickledGarlic,strawberryJam:()=>strawberryJam,summerSalad:()=>summerSalad,sunButter:()=>sunButter,sweetPotatoFries:()=>sweetPotatoFries,sweetPotatoPie:()=>sweetPotatoPie,tofu:()=>tofu,vegetableOil:()=>vegetableOil,wineCabernetSauvignon:()=>wineCabernetSauvignon,wineChardonnay:()=>wineChardonnay,wineNebbiolo:()=>wineNebbiolo,wineSauvignonBlanc:()=>wineSauvignonBlanc,wineTempranillo:()=>wineTempranillo,yeast:()=>yeast}),itemsMap$1={...itemsMap$2},convertToRecipe=e=>{let t=Object.freeze({type:itemType.CRAFTED_ITEM,value:Object.keys(e.ingredients).reduce((t,n)=>t+RECIPE_INGREDIENT_VALUE_MULTIPLIER*itemsMap$1[n].value*e.ingredients[n],0),...e});return itemsMap$1[e.id]=t,t},salt=convertToRecipe({id:`salt`,name:`Salt`,ingredients:{[saltRock.id]:1},condition:e=>(e.itemsSold[saltRock.id]||0)>=30,description:`Useful for seasoning food and fermentation.`,recipeType:recipeType.KITCHEN}),flour=convertToRecipe({id:`flour`,name:`Flour`,ingredients:{[wheat.id]:10},condition:e=>(e.itemsSold[wheat.id]||0)>=20,recipeType:recipeType.KITCHEN}),yeast=convertToRecipe({id:`yeast`,name:`Yeast`,ingredients:{[flour.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=25,recipeType:recipeType.KITCHEN}),getWineRecipeFromGrape=e=>({...convertToRecipe({id:e.wineId,name:`${grapeVarietyNameMap[e.variety]} Wine`,type:itemType.CRAFTED_ITEM,ingredients:{[e.id]:50,[yeast.id]:getYeastRequiredForWine(e.variety)},recipeType:recipeType.WINE,condition:()=>!1}),variety:e.variety}),bread=convertToRecipe({id:`bread`,name:`Bread`,ingredients:{[flour.id]:10,[yeast.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=30&&(e.itemsSold[yeast.id]||0)>=15,recipeType:recipeType.KITCHEN}),butter=convertToRecipe({id:`butter`,name:`Butter`,ingredients:{[milk3.id]:5},condition:e=>(e.itemsSold[milk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),sunButter=convertToRecipe({id:`sun-butter`,name:`Sun Butter`,ingredients:{[sunflower.id]:25},condition:e=>(e.itemsSold[sunflower.id]||0)>=200,recipeType:recipeType.KITCHEN}),oliveOil=convertToRecipe({id:`olive-oil`,name:`Olive Oil`,ingredients:{[olive.id]:250},condition:e=>(e.itemsSold[olive.id]||0)>=500,recipeType:recipeType.KITCHEN}),cheese=convertToRecipe({id:`cheese`,name:`Cheese`,ingredients:{[milk3.id]:8},condition:e=>(e.itemsSold[milk3.id]||0)>=20,recipeType:recipeType.KITCHEN}),rainbowCheese=convertToRecipe({id:`rainbowCheese`,name:`Rainbow Cheese`,ingredients:{[rainbowMilk3.id]:10},condition:e=>(e.itemsSold[rainbowMilk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),chocolate=convertToRecipe({id:`chocolate`,name:`Chocolate`,ingredients:{[chocolateMilk.id]:10},condition:e=>(e.itemsSold[chocolateMilk.id]||0)>=25,recipeType:recipeType.KITCHEN}),carrotSoup=convertToRecipe({id:`carrot-soup`,name:`Carrot Soup`,ingredients:{[carrot.id]:4},condition:e=>(e.itemsSold[carrot.id]||0)>=10,recipeType:recipeType.KITCHEN}),jackolantern=convertToRecipe({id:`jackolantern`,name:`Jack-o'-lantern`,ingredients:{[pumpkin.id]:1},condition:e=>(e.itemsSold[pumpkin.id]||0)>=50,recipeType:recipeType.KITCHEN}),spaghetti=convertToRecipe({id:`spaghetti`,name:`Spaghetti`,ingredients:{[wheat.id]:10,[tomato.id]:2},condition:e=>(e.itemsSold[wheat.id]||0)>=20&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),frenchOnionSoup=convertToRecipe({id:`french-onion-soup`,name:`French Onion Soup`,ingredients:{[onion.id]:5,[cheese.id]:2,[salt.id]:2},condition:e=>(e.itemsSold[onion.id]||0)>=15&&(e.itemsSold[cheese.id]||0)>=10,recipeType:recipeType.KITCHEN}),burger=convertToRecipe({id:`burger`,name:`Burger`,ingredients:{[bread.id]:1,[cheese.id]:1,[onion.id]:1,[soybean.id]:12,[spinach.id]:1,[tomato.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=5&&(e.itemsSold[cheese.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[soybean.id]||0)>=25&&(e.itemsSold[spinach.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),summerSalad=convertToRecipe({id:`summer-salad`,name:`Summer Salad`,ingredients:{[spinach.id]:6,[corn.id]:1,[carrot.id]:1},condition:e=>(e.itemsSold[spinach.id]||0)>=30&&(e.itemsSold[corn.id]||0)>5&&(e.itemsSold[carrot.id]||0)>5,recipeType:recipeType.KITCHEN}),soyMilk=convertToRecipe({id:`soy-milk`,name:`Soy Milk`,ingredients:{[soybean.id]:20},condition:e=>(e.itemsSold[soybean.id]||0)>=100,recipeType:recipeType.KITCHEN}),chocolateSoyMilk=convertToRecipe({id:`chocolate-soy-milk`,name:`Chocolate Soy Milk`,ingredients:{[soyMilk.id]:1,[chocolate.id]:1},condition:e=>(e.itemsSold[soyMilk.id]||0)>=5&&(e.itemsSold[chocolate.id]||0)>=5,recipeType:recipeType.KITCHEN}),tofu=convertToRecipe({id:`tofu`,name:`Tofu`,ingredients:{[soyMilk.id]:4},condition:e=>(e.itemsSold[soyMilk.id]||0)>=20,recipeType:recipeType.KITCHEN}),chicknPotPie=convertToRecipe({id:`chickn-pot-pie`,name:`Chick'n Pot Pie`,ingredients:{[tofu.id]:6,[pea.id]:10,[carrot.id]:8,[wheat.id]:12,[soyMilk.id]:3},condition:e=>(e.itemsSold[tofu.id]||0)>=30&&(e.itemsSold[pea.id]||0)>=225&&(e.itemsSold[carrot.id]||0)>=300&&(e.itemsSold[wheat.id]||0)>=425&&(e.itemsSold[soyMilk.id]||0)>=15,recipeType:recipeType.KITCHEN}),hotSauce=convertToRecipe({id:`hot-sauce`,name:`Hot Sauce`,ingredients:{[jalapeno.id]:10,[salt.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=50,recipeType:recipeType.KITCHEN}),salsa=convertToRecipe({id:`salsa`,name:`Salsa`,ingredients:{[jalapeno.id]:1,[onion.id]:1,[tomato.id]:1,[corn.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5&&(e.itemsSold[corn.id]||0)>=5,recipeType:recipeType.KITCHEN}),spicyCheese=convertToRecipe({id:`spicy-cheese`,name:`Spicy Cheese`,ingredients:{[jalapeno.id]:4,[milk3.id]:10},condition:e=>(e.itemsSold[jalapeno.id]||0)>=20&&(e.itemsSold[milk3.id]||0)>=50,recipeType:recipeType.KITCHEN}),vegetableOil=convertToRecipe({id:`vegetable-oil`,name:`Vegetable Oil`,ingredients:{[soybean.id]:350},condition:e=>(e.itemsSold[soybean.id]||0)>=900,recipeType:recipeType.KITCHEN}),friedTofu=convertToRecipe({id:`fried-tofu`,name:`Deep Fried Tofu`,ingredients:{[tofu.id]:1,[vegetableOil.id]:2},condition:e=>(e.itemsSold[tofu.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>=50,recipeType:recipeType.KITCHEN}),spicyPickledGarlic=convertToRecipe({id:`spicy-pickled-garlic`,name:`Spicy Pickled Garlic`,ingredients:{[jalapeno.id]:2,[garlic.id]:5},condition:e=>(e.itemsSold[jalapeno.id]||0)>=12&&(e.itemsSold[garlic.id]||0)>=25,recipeType:recipeType.KITCHEN}),garlicFries=convertToRecipe({id:`garlic-fries`,name:`Garlic Fries`,ingredients:{[potato.id]:5,[garlic.id]:3,[vegetableOil.id]:1,[salt.id]:2},condition:e=>(e.itemsSold[potato.id]||0)>=50&&(e.itemsSold[garlic.id]||0)>=30,recipeType:recipeType.KITCHEN}),garlicBread=convertToRecipe({id:`garlic-bread`,name:`Garlic Bread`,ingredients:{[bread.id]:1,[garlic.id]:5,[oliveOil.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=30&&(e.itemsSold[oliveOil.id]||0)>=20&&(e.itemsSold[garlic.id]||0)>=50,recipeType:recipeType.KITCHEN}),strawberryJam=convertToRecipe({id:`strawberry-jam`,name:`Strawberry Jam`,ingredients:{[strawberry.id]:10},condition:e=>(e.itemsSold[strawberry.id]||0)>=60,recipeType:recipeType.KITCHEN}),popcorn=convertToRecipe({id:`popcorn`,name:`Popcorn`,ingredients:{[corn.id]:2,[butter.id]:1},condition:e=>(e.itemsSold[corn.id]||0)>=12&&(e.itemsSold[butter.id]||0)>=6,recipeType:recipeType.KITCHEN}),pumpkinPie=convertToRecipe({id:`pumpkin-pie`,name:`Pumpkin Pie`,ingredients:{[pumpkin.id]:4,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[pumpkin.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoPie=convertToRecipe({id:`sweet-potato-pie`,name:`Sweet Potato Pie`,ingredients:{[sweetPotato.id]:6,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoFries=convertToRecipe({id:`sweet-potato-fries`,name:`Sweet Potato Fries`,ingredients:{[sweetPotato.id]:10,[vegetableOil.id]:1,[salt.id]:1},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=100,recipeType:recipeType.KITCHEN}),onionRings=convertToRecipe({id:`onion-rings`,name:`Onion Rings`,ingredients:{[onion.id]:1,[vegetableOil.id]:1,[wheat.id]:5,[soyMilk.id]:1,[salt.id]:3},condition:e=>(e.itemsSold[onion.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>20&&(e.itemsSold[soyMilk.id]||0)>20&&(e.itemsSold[wheat.id]||0)>30,recipeType:recipeType.KITCHEN}),bronzeIngot$1=convertToRecipe({id:`bronze-ingot`,name:`Bronze Ingot`,ingredients:{[bronzeOre.id]:5,[coal$1.id]:5},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[bronzeOre.id]||0)>=50,recipeType:recipeType.FORGE}),ironIngot$1=convertToRecipe({id:`iron-ingot`,name:`Iron Ingot`,ingredients:{[ironOre.id]:5,[coal$1.id]:12},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[ironOre.id]||0)>=50,recipeType:recipeType.FORGE}),silverIngot$1=convertToRecipe({id:`silver-ingot`,name:`Silver Ingot`,ingredients:{[silverOre.id]:5,[coal$1.id]:8},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[silverOre.id]||0)>=50,recipeType:recipeType.FORGE}),goldIngot$1=convertToRecipe({id:`gold-ingot`,name:`Gold Ingot`,ingredients:{[goldOre.id]:5,[coal$1.id]:10},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[goldOre.id]||0)>=50,recipeType:recipeType.FORGE}),compost=convertToRecipe({id:`compost`,name:`Compost`,ingredients:{[weed.id]:25},condition:e=>e.purchasedComposter>0&&(e.itemsSold[weed.id]||0)>=100,description:`Can be used to make fertilizer.`,recipeType:recipeType.RECYCLING,type:itemType.CRAFTED_ITEM}),fertilizer=convertToRecipe({id:`fertilizer`,name:`Fertilizer`,ingredients:{[compost.id]:10},condition:e=>e.purchasedComposter>0&&(e.itemsSold[compost.id]||0)>=10,description:`Helps crops grow and mature a little faster.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.RECYCLING,type:itemType.FERTILIZER,value:25}),wineChardonnay=getWineRecipeFromGrape({...grapeChardonnay}),wineSauvignonBlanc=getWineRecipeFromGrape({...grapeSauvignonBlanc}),wineCabernetSauvignon=getWineRecipeFromGrape({...grapeCabernetSauvignon}),wineTempranillo=getWineRecipeFromGrape({...grapeTempranillo}),wineNebbiolo=getWineRecipeFromGrape({...grapeNebbiolo}),coalNeededForIngots=(e,t=1)=>{switch(e){case bronzeIngot$1.id:return t*2;case ironIngot$1.id:return Math.round(t*3.5);case silverIngot$1.id:return Math.round(t*2.5);case goldIngot$1.id:return t*3;default:return t}},{bronzeIngot,ironIngot,silverIngot,goldIngot}=recipes_exports,{coal}=items_exports,upgrades={[toolType.HOE]:{[toolLevel.DEFAULT]:{id:`hoe-default`,name:`Basic Hoe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`hoe-bronze`,description:`Gives 25% chance to retrieve seeds when digging up crops`,name:`Bronze Hoe`,ingredients:{[bronzeIngot.id]:8,[coal.id]:coalNeededForIngots(bronzeIngot.id,8)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`hoe-iron`,description:`Gives 50% chance to retrieve seeds when digging up crops`,name:`Iron Hoe`,ingredients:{[ironIngot.id]:8,[coal.id]:coalNeededForIngots(ironIngot.id,8)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`hoe-silver`,description:`Gives 75% chance to retrieve seeds when digging up crops`,name:`Silver Hoe`,ingredients:{[silverIngot.id]:8,[coal.id]:coalNeededForIngots(silverIngot.id,8)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`hoe-gold`,description:`Gives 100% chance to retrieve seeds when digging up crops`,name:`Gold Hoe`,ingredients:{[goldIngot.id]:8,[coal.id]:coalNeededForIngots(goldIngot.id,8)},isMaxLevel:!0}},[toolType.SCYTHE]:{[toolLevel.DEFAULT]:{id:`scythe-default`,name:`Basic Scythe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`scythe-bronze`,description:`Increases crop yield by 1 when harvesting`,name:`Bronze Scythe`,ingredients:{[bronzeIngot.id]:10,[coal.id]:coalNeededForIngots(bronzeIngot.id,10)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`scythe-iron`,description:`Increases crop yield by 2 when harvesting`,name:`Iron Scythe`,ingredients:{[ironIngot.id]:10,[coal.id]:coalNeededForIngots(ironIngot.id,10)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`scythe-silver`,description:`Increases crop yield by 3 when harvesting`,name:`Silver Scythe`,ingredients:{[silverIngot.id]:10,[coal.id]:coalNeededForIngots(silverIngot.id,10)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`scythe-gold`,description:`Increases crop yield by 4 when harvesting`,name:`Gold Scythe`,ingredients:{[goldIngot.id]:10,[coal.id]:coalNeededForIngots(goldIngot.id,10)},isMaxLevel:!0}},[toolType.SHOVEL]:{[toolLevel.DEFAULT]:{id:`shovel-default`,name:`Basic Shovel`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`shovel-bronze`,description:`Increases chance of finding ore`,name:`Bronze Shovel`,ingredients:{[bronzeIngot.id]:15,[coal.id]:coalNeededForIngots(bronzeIngot.id,15)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`shovel-iron`,description:`Increases chance of finding ore`,name:`Iron Shovel`,ingredients:{[ironIngot.id]:15,[coal.id]:coalNeededForIngots(ironIngot.id,15)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`shovel-silver`,description:`Increases chance of finding ore`,name:`Silver Shovel`,ingredients:{[silverIngot.id]:15,[coal.id]:coalNeededForIngots(silverIngot.id,15)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`shovel-gold`,description:`Increases chance of finding ore`,name:`Gold Shovel`,ingredients:{[goldIngot.id]:15,[coal.id]:coalNeededForIngots(goldIngot.id,15)},isMaxLevel:!0}}};for(let e in upgrades){let t=upgrades[e];for(let n in t)Object.assign(t[n],{toolType:e,value:0,doesPriceFluctuate:!1,type:itemType.TOOL_UPGRADE,level:n})}var{ASPARAGUS,CARROT,CORN,GARLIC,GRAPE,JALAPENO,OLIVE,ONION,PEA,POTATO,PUMPKIN,SOYBEAN,SPINACH,SUNFLOWER,STRAWBERRY,SWEET_POTATO,TOMATO,WATERMELON,WHEAT,WEED}=cropType,recipeCategories={[recipeType.KITCHEN]:{},[recipeType.FORGE]:{},[recipeType.FERMENTATION]:{},[recipeType.RECYCLING]:{},[recipeType.WINE]:{}},recipesMap={};for(let e of Object.keys(recipes_exports)){let t=recipes_exports[e];recipeCategories[t.recipeType][t.id]=t,recipesMap[t.id]=t}var upgradesMap={};for(let e of Object.keys(upgrades))for(let t of Object.values(upgrades[e]))upgradesMap[t.id]=t;var itemsMap={...itemsMap$2,...recipesMap,...upgradesMap},fermentableItemsMap=Object.fromEntries(Object.entries(itemsMap).filter(([e])=>`daysToFerment`in itemsMap[e])),cropItemIdToSeedItemMap=Object.entries(itemsMap$2).reduce((e,[t,n])=>{let{growsInto:a}=n;if(a){let n=Array.isArray(a)?a:[a];for(let a of n)e[a]=itemsMap$2[t]}return e},{}),cropTypeToIdMap={[ASPARAGUS]:`asparagus`,[CARROT]:`carrot`,[CORN]:`corn`,[GARLIC]:`garlic`,[GRAPE]:grapeSeed.growsInto,[JALAPENO]:`jalapeno`,[OLIVE]:`olive`,[ONION]:`onion`,[PEA]:`pea`,[POTATO]:`potato`,[PUMPKIN]:`pumpkin`,[SOYBEAN]:`soybean`,[SPINACH]:`spinach`,[STRAWBERRY]:`strawberry`,[SUNFLOWER]:`sunflower`,[SWEET_POTATO]:`sweet-potato`,[TOMATO]:`tomato`,[WATERMELON]:`watermelon`,[WHEAT]:`wheat`,[WEED]:`weed`},isItemAGrownCrop=e=>e.type===itemType.CROP&&!e.growsInto,FARM_PRODUCT_TYPES=[itemType.CRAFTED_ITEM,itemType.FUEL,itemType.MILK,itemType.ORE,itemType.STONE],isItemAFarmProduct=e=>!!(isItemAGrownCrop(e)||FARM_PRODUCT_TYPES.includes(e.type)),farmProductsSold=memoize(e=>Object.entries(e).reduce((e,[t,n])=>e+(isItemAFarmProduct(itemsMap[t])&&n||0),0)),transformStateDataForImport=e=>{let t={...e};[`version`].forEach(e=>delete t[e]),t.experience===0&&(t.experience=farmProductsSold(t.itemsSold||{})),t.showHomeScreen===!1&&t.stageFocus===stageFocusType.HOME&&(t={...t,stageFocus:STANDARD_VIEW_LIST[0]});{let{cowId1:e,cowId2:n}=t.cowBreedingPen,a=t.cowInventory.reduce((e,t)=>(e[t.id]=t,e),{});[e,n].some(e=>e&&!(e in a))&&(t.cowBreedingPen={cowId1:null,cowId2:null,daysUntilBirth:-1})}return t.id&&(t.playerId=t.id,delete t.id),t},require_alea=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=l();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function s(e,t){var n=new a(e),s=t&&t.state,l=n.next;return l.int32=function(){return n.next()*4294967296|0},l.double=function(){return l()+(l()*2097152|0)*11102230246251565e-32},l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}function l(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var a=.02519603282416938*e;e=a>>>0,a-=e,a*=e,e=a>>>0,a-=e,e+=a*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.alea=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor128=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor128=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorwow=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,a==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorwow=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorshift7=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.x,n=t.i,a=e[n],o;return a^=a>>>7,o=a^a<<24,a=e[n+1&7],o^=a^a>>>10,a=e[n+3&7],o^=a^a>>>3,a=e[n+4&7],o^=a^a<<7,a=e[n+7&7],a^=a<<13,o^=a^a<<9,e[n]=o,t.i=n+1&7,o};function n(e,t){var n,a=[];if(t===(t|0))a[0]=t;else for(t=``+t,n=0;n<t.length;++n)a[n&7]=a[n&7]<<15^t.charCodeAt(n)+a[n+1&7]<<13;for(;a.length<8;)a.push(0);for(n=0;n<8&&a[n]===0;++n);for(n==8?a[7]=-1:a[n],e.x=a,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.x&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorshift7=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor4096=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.w,n=t.X,a=t.i,o,s;return t.w=e=e+1640531527|0,s=n[a+34&127],o=n[a=a+1&127],s^=s<<13,o^=o<<17,s^=s>>>15,o^=o>>>12,s=n[a]=s^o,t.i=a,s+(e^e>>>16)|0};function n(e,t){var n,a,o,s,l,u=[],d=128;for(t===(t|0)?(a=t,t=null):(t+=`\0`,a=0,d=Math.max(d,t.length)),o=0,s=-32;s<d;++s)t&&(a^=t.charCodeAt((s+32)%t.length)),s===0&&(l=a),a^=a<<10,a^=a>>>15,a^=a<<4,a^=a>>>13,s>=0&&(l=l+1640531527|0,n=u[s&127]^=a+l,o=n==0?o+1:0);for(o>=128&&(u[(t&&t.length||0)&127]=-1),o=127,s=512;s>0;--s)a=u[o+34&127],n=u[o=o+1&127],a^=a<<13,n^=n<<17,a^=a>>>15,n^=n>>>12,u[o]=a^n;e.w=l,e.X=u,e.i=o}n(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.X&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor4096=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_tychei=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,a=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-a|0,a=a<<24^a>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-a|0,t.d=a<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var a=0;a<n.length+20;a++)t.b^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.tychei=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require___vite_browser_external=__commonJSMin(((e,t)=>{t.exports={}})),require_seedrandom$1=__commonJSMin(((e,t)=>{(function(e,n,a){var o=256,s=6,l=52,u=`random`,d=a.pow(o,s),f=a.pow(2,l),m=f*2,h=o-1,v;function y(e,t,l){var h=[];t=t==1?{entropy:!0}:t||{};var v=C(S(t.entropy?[e,E(n)]:e??T(),3),h),y=new b(h),D=function(){for(var e=y.g(s),t=d,n=0;e<f;)e=(e+n)*o,t*=o,n=y.g(1);for(;e>=m;)e/=2,t/=2,n>>>=1;return(e+n)/t};return D.int32=function(){return y.g(4)|0},D.quick=function(){return y.g(4)/4294967296},D.double=D,C(E(y.S),n),(t.pass||l||function(e,t,n,o){return o&&(o.S&&x(o,y),e.state=function(){return x(y,{})}),n?(a[u]=e,t):e})(D,v,`global`in t?t.global:this==a,t.state)}function b(e){var t,n=e.length,a=this,s=0,l=a.i=a.j=0,u=a.S=[];for(n||(e=[n++]);s<o;)u[s]=s++;for(s=0;s<o;s++)u[s]=u[l=h&l+e[s%n]+(t=u[s])],u[l]=t;(a.g=function(e){for(var t,n=0,s=a.i,l=a.j,u=a.S;e--;)t=u[s=h&s+1],n=n*o+u[h&(u[s]=u[l=h&l+t])+(u[l]=t)];return a.i=s,a.j=l,n})(o)}function x(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function S(e,t){var n=[],a=typeof e,o;if(t&&a==`object`)for(o in e)try{n.push(S(e[o],t-1))}catch{}return n.length?n:a==`string`?e:e+`\0`}function C(e,t){for(var n=e+``,a,o=0;o<n.length;)t[h&o]=h&(a^=t[h&o]*19)+n.charCodeAt(o++);return E(t)}function T(){try{var t;return v&&(t=v.randomBytes)?t=t(o):(t=new Uint8Array(o),(e.crypto||e.msCrypto).getRandomValues(t)),E(t)}catch{var a=e.navigator,s=a&&a.plugins;return[+new Date,e,s,e.screen,E(n)]}}function E(e){return String.fromCharCode.apply(0,e)}if(C(a.random(),n),typeof t==`object`&&t.exports){t.exports=y;try{v=require___vite_browser_external()}catch{}}else typeof define==`function`&&define.amd?define(function(){return y}):a[`seed`+u]=y})(typeof self<`u`?self:e,[],Math)})),require_seedrandom=__commonJSMin(((e,t)=>{var n=require_alea(),a=require_xor128(),o=require_xorwow(),s=require_xorshift7(),l=require_xor4096(),u=require_tychei(),d=require_seedrandom$1();d.alea=n,d.xor128=a,d.xorwow=o,d.xorshift7=s,d.xor4096=l,d.tychei=u,t.exports=d})),import_seedrandom=__toESM(require_seedrandom()),RandomNumberService=class{seededRandom=null;constructor(){let e=new URLSearchParams(import_window.default.location?.search).get(`seed`);e&&this.seedRandomNumber(e)}seedRandomNumber(e){this.seededRandom=(0,import_seedrandom.default)(e)}generateRandomNumber(){return this.seededRandom?this.seededRandom():Math.random()}unseedRandomNumber(){this.seededRandom=null}isRandomNumberLessThan(e){return this.generateRandomNumber()<=e}},randomNumberService=new RandomNumberService,addCowToInventory=(e,t)=>{let{cowInventory:n}=e;return{...e,cowInventory:[...n,t]}};function levelAchieved(e=0){return Math.floor(Math.sqrt(e)/10)+1}var endpoints={getMarketData:`https://farmhand.vercel.app/api/get-market-data`,postDayResults:`https://farmhand.vercel.app/api/post-day-results`},features=Object.keys({BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_API_ROOT:`https://farmhand.vercel.app/`,VITE_FARMHAND_PACKAGE_VERSION:`1.19.28`,VITE_NAME:`@jeremyckahn/farmhand`,VITE_TURN_CREDENTIAL:``,VITE_TURN_USERNAME:``}).reduce((e,t)=>{let n=t.match(/VITE_ENABLE_(.*)/);return n&&(e[n[1]]=!0),e},{}),searchParams=new URLSearchParams(import_window.default.location?.search);for(let e of searchParams.keys()){let t=e.match(/enable_(.*)/);t&&(features[t[1]]=!0)}var rtcConfig={iceServers:[{urls:`stun:stun.relay.metered.ca:80`}]},levels=[];levels[1]={unlocksShopItem:carrotSeed.id},levels[2]={unlocksShopItem:spinachSeed.id},levels[3]={unlocksShopItem:fertilizer.id},levels[4]={unlocksShopItem:pumpkinSeed.id},levels[5]={unlocksShopItem:sprinkler.id},levels[6]={unlocksTool:toolType.SHOVEL},levels[8]={increasesSprinklerRange:!0},levels[10]={unlocksShopItem:cornSeed.id},levels[12]={increasesSprinklerRange:!0},levels[14]={unlocksShopItem:potatoSeed.id},features.FOREST&&(levels[15]={unlocksStageFocusType:stageFocusType.FOREST}),levels[16]={unlocksShopItem:onionSeed.id},levels[18]={unlocksShopItem:soybeanSeed.id},levels[20]={unlocksShopItem:wheatSeed.id},levels[22]={unlocksShopItem:tomatoSeed.id},levels[24]={unlocksShopItem:asparagusSeed.id},levels[26]={unlocksShopItem:jalapenoSeed.id},levels[28]={unlocksShopItem:watermelonSeed.id},levels[30]={unlocksShopItem:peaSeed.id},levels[32]={unlocksShopItem:strawberrySeed.id},levels[34]={unlocksShopItem:garlicSeed.id},levels[36]={unlocksShopItem:sweetPotatoSeed.id},levels[38]={unlocksShopItem:oliveSeed.id},levels[40]={unlocksShopItem:sunflowerSeed.id},levels[42]={unlocksShopItem:grapeSeed.id};for(let e=0;e<levels.length;e++)levels[e]={id:e,...levels[e]};Object.freeze(levels);var unlockableItems=levels.reduce((e,{id:t,unlocksShopItem:n})=>(n&&t!==void 0&&(e[n]=t),e),{}),itemUnlockLevels=Object.entries(unlockableItems).reduce((e,[t,n])=>(e[String(n)]=t,e),{}),getLevelEntitlements=memoize(e=>{let t={sprinklerRange:1,items:{},tools:{},stageFocusType:{}};return levels.find(({unlocksShopItem:n,unlocksStageFocusType:a,unlocksTool:o,id:s,increasesSprinklerRange:l})=>(l&&t.sprinklerRange++,n&&(t.items[n]=!0),o&&(t.tools[o]=!0),a&&(t.stageFocusType[a]=!0),s===e)),t}),random$1=()=>randomNumberService.generateRandomNumber(),generateValueAdjustments=(e={},t={})=>Object.keys(itemsMap).reduce((n,a)=>(itemsMap[a].doesPriceFluctuate&&(e[a]?n[a]=.5:t[a]?n[a]=1.5:n[a]=random$1()+.5),n),{}),chooseRandomIndex=e=>Math.round(random$1()*(e.length-1)),chooseRandom=e=>e[chooseRandomIndex(e)],filterItemIdsToSeeds=e=>e.filter(e=>itemsMap[e]?.type===itemType.CROP),getRandomLevelUpReward=e=>itemsMap[chooseRandom(filterItemIdsToSeeds(Object.keys(getLevelEntitlements(e).items)))],getRandomLevelUpRewardQuantity=e=>e*10,INVALID_AMOUNT_MESSAGE=`Amount is invalid.`,INVALID_SCALE_MESSAGE=`Scale is invalid.`,NON_DECIMAL_CURRENCY_MESSAGE=`Currency is not decimal.`;function assert(e,t){if(!e)throw Error(`[Dinero.js] ${t}`)}function createDinero({calculator:e,onCreate:t,formatter:n={toNumber:Number,toString:String}}){return function a({amount:o,currency:{code:s,base:l,exponent:u},scale:d=u}){let f={code:s,base:l,exponent:u};return t?.({amount:o,currency:f,scale:d}),{calculator:e,formatter:n,create:a,toJSON(){return{amount:o,currency:f,scale:d}}}}}var DineroComparisonOperator=function(e){return e[e.LT=-1]=`LT`,e[e.EQ=0]=`EQ`,e[e.GT=1]=`GT`,e}({});function equal$2(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.EQ}function lessThan$1(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.LT}function absolute(e){let t=equal$2(e),n=lessThan$1(e),a=e.zero();return o=>{if(t(o,a))return a;if(n(o,a)){let t=e.decrement(a);return e.multiply(t,o)}return o}}function isArray(e){return Array.isArray(e)}function computeBase(e){return t=>isArray(t)?t.reduce((t,n)=>e.multiply(t,n)):t}function getDivisors(e){let{multiply:t}=e;return e=>e.reduce((n,a,o)=>{let s=e.slice(o).reduce((e,n)=>t(e,n));return[...n,s]},[])}function toUnits$1(e){let t=getDivisors(e);return function(...[n,a]){let{amount:o,currency:s,scale:l}=n.toJSON(),{power:u,integerDivide:d,modulo:f}=e,m=t((isArray(s.base)?s.base:[s.base]).map(e=>u(e,l))).reduce((e,t,n)=>{let a=e[n],o=d(a,t),s=f(a,t);return[...e.filter((e,t)=>t!==n),o,s]},[o]);return a?a({value:m,currency:s}):m}}function toDecimal$1(e){let t=toUnits$1(e),n=computeBase(e),a=equal$2(e);return function(...[o,s]){let{currency:l,scale:u}=o.toJSON(),d=n(l.base),f=e.zero(),m=Array(10).fill(null).reduce(e.increment,f),h=isArray(l.base),v=a(e.modulo(d,m),f);assert(!h&&v,NON_DECIMAL_CURRENCY_MESSAGE);let y=t(o),b=getDecimal(e,o.formatter)(y,u);return s?s({value:b,currency:l}):b}}function getDecimal(e,t){let n=absolute(e),a=equal$2(e),o=lessThan$1(e),s=e.zero();return(e,l)=>{let u=t.toString(e[0]),d=t.toString(n(e[1])),f=t.toNumber(l),m=`${u}${f>0?`.${d.padStart(f,`0`)}`:``}`,h=a(e[0],s),v=o(e[1],s);return h&&v?`-${m}`:m}}function toDecimal(...[e,t]){let{calculator:n}=e;return toDecimal$1(n)(e,t)}var USD={code:`USD`,base:10,exponent:2},add$1=(e,t)=>e+t,compare$1=(e,t)=>e<t?DineroComparisonOperator.LT:e>t?DineroComparisonOperator.GT:DineroComparisonOperator.EQ,decrement=e=>e-1,increment=e=>e+1,integerDivide=(e,t)=>Math.trunc(e/t),modulo=(e,t)=>e%t,multiply$1=(e,t)=>e*t,power=(e,t)=>e**t,subtract$1=(e,t)=>e-t;function zero(){return 0}var dinero=createDinero({calculator:{add:add$1,compare:compare$1,decrement,increment,integerDivide,modulo,multiply:multiply$1,power,subtract:subtract$1,zero},onCreate({amount:e,scale:t}){assert(Number.isInteger(e),INVALID_AMOUNT_MESSAGE),assert(Number.isInteger(t),INVALID_SCALE_MESSAGE)}}),moneyString=e=>toDecimal(dinero({amount:Math.round(e*100),currency:USD}),({value:e})=>Number(e).toLocaleString(`en-US`,{style:`currency`,currency:`USD`})),fruit_names_default=`Akee.Apple.Apricot.Avocado.Açaí.Banana.Bilberry.Blackberry.Blackcurrant.Blueberry.Boysenberry.Cantaloupe.Cherimoya.Cherry.Chico.Clementine.Cloudberry.Coconut.Crabapple.Cranberry.Cucumber.Currant.Damson.Durian.Elderberry.Feijoa.Fig.Goji.Gooseberry.Grape.Grapefruit.Guava.Honeyberry.Honeydew.Huckleberry.Jabuticaba.Jackfruit.Jambul.Jostaberry.Jujube.Juniper.Kiwano.Kiwi.Kumquat.Lemon.Lime.Longan.Loquat.Lychee.Mandarine.Mango.Mangosteen.Marion.Melon.Mulberry.Nance.Nectarine.Olive.Orange.Papaya.Peach.Pear.Persimmon.Pineapple.Pineberry.Pitaya.Plantain.Plum.Plumcot.Pomegranate.Pomelo.Prune.Pumpkin.Quince.Raisin.Rambutan.Raspberry.Salak.Salal.Salmonberry.Sapote.Satsuma.Soursop.Strawberry.Surinam.Tamarillo.Tamarind.Tangerine.Tomato.Watermelon.Yuzu.Zucchini`.split(`.`),convertStringToInteger$1=e=>e.split(``).reduce((e,t,n)=>e+t.charCodeAt(0)*n,0),getDefaultCowName=({id:e})=>fruit_names_default[convertStringToInteger$1(e)%fruit_names_default.length],getCowDisplayName=(e,t,n)=>e.originalOwnerId!==t&&!n?getDefaultCowName(e):e.name,animalNames=`Aardvark.Albatross.Alligator.Alpaca.Angelfish.Anglerfish.Ant.Anteater.Antelope.Antlion.Ape.Armadillo.Asp.Baboon.Badger.Bandicoot.Barnacle.Barracuda.Basilisk.Bass.Bat.Bear.Beaver.Bee.Beetle.Bird.Bison.Blackbird.Boar.Bobcat.Bonobo.Bug.Butterfly.Buzzard.Camel.Capybara.Cardinal.Caribou.Cat.Caterpillar.Catfish.Cattle.Chameleon.Cheetah.Chickadee.Chicken.Chimpanzee.Chinchilla.Chipmunk.Clam.Clownfish.Cobra.Condor.Coral.Cougar.Coyote.Crab.Crane.Crawdad.Crayfish.Cricket.Crocodile.Crow.Cuckoo.Deer.Dingo.Dinosaur.Dog.Dolphin.Donkey.Dove.Dragon.Dragonfly.Duck.Eagle.Earthworm.Echidna.Egret.Elephant.Elk.Emu.Ermine.Falcon.Ferret.Finch.Firefly.Fish.Flamingo.Fowl.Fox.Frog.Gazelle.Gecko.Gerbil.Gibbon.Giraffe.Goat.Goldfish.Goose.Gopher.Gorilla.Grasshopper.Grouse.Gull.Guppy.Hamster.Hare.Harrier.Hawk.Hedgehog.Heron.Hippopotamus.Horse.Hummingbird.Hyena.Iguana.Impala.Jackal.Jaguar.Jay.Jellyfish.Kangaroo.Kingfisher.Kiwi.Koala.Koi.Ladybug.Lark.Lemming.Lemur.Leopard.Lion.Llama.Lobster.Loon.Lynx.Macaw.Mackerel.Mammal.Manatee.Mandrill.Marlin.Marmoset.Marmot.Marsupial.Mastodon.Meerkat.Mink.Minnow.Mockingbird.Mole.Mongoose.Monkey.Moose.Mosquito.Mouse.Mule.Muskox.Narwhal.Ocelot.Octopus.Opossum.Orangutan.Orca.Ostrich.Otter.Owl.Ox.Panda.Panther.Parakeet.Parrot.Partridge.Peacock.Pelican.Penguin.Pig.Pigeon.Platypus.Pony.Porcupine.Porpoise.Puffin.Puma.Python.Quail.Quokka.Rabbit.Raccoon.Raven.Reindeer.Rhinoceros.Roadrunner.Rooster.Salamander.Salmon.Seahorse.Shark.Sheep.Shrew.Sloth.Snail.Sparrow.Squid.Squirrel.Starfish.Stingray.Stoat.Stork.Sturgeon.Swan.Swift.Swordfish.Tapir.Tarsier.Tern.Tiger.Tortoise.Toucan.Turkey.Turtle.Tyrannosaurus.Vole.Wallaby.Walrus.Warbler.Whale.Wildcat.Wolf.Wolverine.Wombat.Woodpecker.Wren.Yak.Zebra`.split(`.`),adjectives=`Adorable.Adventurous.Agreeable.Alert.Amused.Attractive.Average.Beautiful.Blushing.Brainy.Brave.Bright.Busy.Calm.Careful.Cautious.Charming.Cheerful.Clever.Cloudy.Colorful.Comfortable.Concerned.Cooperative.Courageous.Crazy.Curious.Cute.Delightful.Determined.Distinct.Dizzy.Elated.Elegant.Enchanting.Encouraging.Energetic.Enthusiastic.Excited.Exuberant.Famous.Fancy.Fantastic.Fierce.Fine.Friendly.Funny.Gentle.Gifted.Glamorous.Gleaming.Glorious.Gorgeous.Graceful.Handsome.Happy.Healthy.Helpful.Hilarious.Important.Inquisitive.Jolly.Joyous.Kind.Light.Lively.Lovely.Lucky.Magnificent.Mysterious.Nice.Nutty.Outrageous.Outstanding.Perfect.Pleasant.Poised.Powerful.Precious.Proud.Puzzled.Quaint.Relieved.Shiny.Silly.Sleepy.Smiling.Sparkling.Splendid.Stormy.Strange.Successful.Tame.Thankful.Thoughtful.Tough.Victorious.Vivacious.Wandering.Wide-eyed.Wild.Witty.Zany`.split(`.`),convertStringToInteger=function(e){return e.split(``).reduce(function(e,t,n){return e+t.charCodeAt(0)*n},0)},funAnimalName=function(e,t){var n=t===void 0?{}:t,a=n.adjectives,o=a===void 0?adjectives:a,s=n.animalNames,l=s===void 0?animalNames:s,u=convertStringToInteger(e),d=o[u%o.length],f=l[(u+convertStringToInteger(d))%l.length];return d+` `+f},getPlayerName=memoize(e=>funAnimalName(e)),integerString=e=>toDecimal(dinero({amount:Math.round(e),currency:USD,scale:0}),({value:e})=>Number(e).toLocaleString(`en-US`)),CROWS_DESTROYED=(e,t)=>`Oh no! Crows destroyed ${t} crop${t>1?`s`:``}!`,COW_PEN_PURCHASED=(e,t)=>`Purchased a cow pen with capacity for ${t} cows! You can visit your cow pen by going to the "Cows" page.`,CELLAR_PURCHASED=(e,t)=>`Purchased a cellar with capacity for ${t} kegs! View your keg inventory by going to the "Cellar" page.`,MILKS_PRODUCED=(e,t)=>{let n=`Your cows produced milk:
|
|
139
|
+
0 22,12A10,10 0 0,0 12,2Z`}))},iconStyles={fontSize:20,marginInlineEnd:8},defaultIconVariants={default:void 0,success:import_react$24.createElement(CheckIcon,{style:iconStyles}),warning:import_react$24.createElement(WarningIcon,{style:iconStyles}),error:import_react$24.createElement(ErrorIcon,{style:iconStyles}),info:import_react$24.createElement(InfoIcon,{style:iconStyles})};function createChainedFunction(e,t){return e.reduce(function(e,n){return n==null?e:function(){var a=[...arguments],o=[].concat(a);t&&o.indexOf(t)===-1&&o.push(t),e.apply(this,o),n.apply(this,o)}},function(){})}var useEnhancedEffect=typeof window<`u`?import_react$24.useLayoutEffect:import_react$24.useEffect;function useEventCallback(e){var t=(0,import_react$24.useRef)(e);return useEnhancedEffect(function(){t.current=e}),(0,import_react$24.useCallback)(function(){return t.current.apply(void 0,arguments)},[])}var Snackbar=(0,import_react$24.forwardRef)(function(e,t){var n=e.children,a=e.autoHideDuration,o=e.ClickAwayListenerProps,s=e.disableWindowBlurListener,l=s===void 0?!1:s,u=e.onClose,d=e.onMouseEnter,f=e.onMouseLeave,m=e.open,h=e.resumeHideDuration,v=_objectWithoutPropertiesLoose$2(e,[`children`,`autoHideDuration`,`ClickAwayListenerProps`,`disableWindowBlurListener`,`onClose`,`onMouseEnter`,`onMouseLeave`,`open`,`resumeHideDuration`]),y=(0,import_react$24.useRef)(),b=useEventCallback(function(){u&&u.apply(void 0,arguments)}),x=useEventCallback(function(e){!u||e==null||(clearTimeout(y.current),y.current=setTimeout(function(){b(null,REASONS.TIMEOUT)},e))});(0,import_react$24.useEffect)(function(){return m&&x(a),function(){clearTimeout(y.current)}},[m,a,x]);var S=function(){clearTimeout(y.current)},C=(0,import_react$24.useCallback)(function(){a!=null&&x(h??a*.5)},[a,h,x]);return(0,import_react$24.useEffect)(function(){if(!l&&m)return window.addEventListener(`focus`,C),window.addEventListener(`blur`,S),function(){window.removeEventListener(`focus`,C),window.removeEventListener(`blur`,S)}},[l,C,m]),(0,import_react$24.createElement)(ClickAwayListener,_extends$2({onClickAway:function(e){u&&u(e,REASONS.CLICKAWAY)}},o),(0,import_react$24.createElement)(`div`,_extends$2({onMouseEnter:function(e){d&&d(e),S()},onMouseLeave:function(e){f&&f(e),C()},ref:t},v),n))}),componentName$1=`SnackbarItem`,classes$1={contentRoot:componentName$1+`-contentRoot`,lessPadding:componentName$1+`-lessPadding`,variantSuccess:componentName$1+`-variantSuccess`,variantError:componentName$1+`-variantError`,variantInfo:componentName$1+`-variantInfo`,variantWarning:componentName$1+`-variantWarning`,message:componentName$1+`-message`,action:componentName$1+`-action`,wrappedRoot:componentName$1+`-wrappedRoot`},StyledSnackbar=styled$1(Snackbar)(function(e){var t,n=e.theme,a=n.palette.mode||n.palette.type,o=emphasize(n.palette.background.default,a===`light`?.8:.98);return t={},t[`&.`+classes$1.wrappedRoot]={position:`relative`,transform:`translateX(0)`,top:0,right:0,bottom:0,left:0},t[`.`+classes$1.contentRoot]=_extends$2({},n.typography.body2,{backgroundColor:o,color:n.palette.getContrastText(o),alignItems:`center`,padding:`6px 16px`,borderRadius:`4px`,boxShadow:`0px 3px 5px -1px rgba(0,0,0,0.2),0px 6px 10px 0px rgba(0,0,0,0.14),0px 1px 18px 0px rgba(0,0,0,0.12)`}),t[`.`+classes$1.lessPadding]={paddingLeft:8*2.5},t[`.`+classes$1.variantSuccess]={backgroundColor:`#43a047`,color:`#fff`},t[`.`+classes$1.variantError]={backgroundColor:`#d32f2f`,color:`#fff`},t[`.`+classes$1.variantInfo]={backgroundColor:`#2196f3`,color:`#fff`},t[`.`+classes$1.variantWarning]={backgroundColor:`#ff9800`,color:`#fff`},t[`.`+classes$1.message]={display:`flex`,alignItems:`center`,padding:`8px 0`},t[`.`+classes$1.action]={display:`flex`,alignItems:`center`,marginLeft:`auto`,paddingLeft:16,marginRight:-8},t}),SnackbarItem=function(e){var t=e.classes,n=_objectWithoutPropertiesLoose$2(e,[`classes`]),a=(0,import_react$24.useRef)(),o=(0,import_react$24.useState)(!0),s=o[0],l=o[1];(0,import_react$24.useEffect)(function(){return function(){a.current&&clearTimeout(a.current)}},[]);var u=createChainedFunction([n.snack.onClose,n.onClose],n.snack.key),d=function(){n.snack.requestClose&&u(null,REASONS.INSTRCUTED)},f=function(){a.current=setTimeout(function(){l(!s)},125)},m=n.style,h=n.ariaAttributes,v=n.className,y=n.hideIconVariant,b=n.iconVariant,x=n.snack,S=n.action,C=n.content,T=n.TransitionComponent,E=n.TransitionProps,D=n.transitionDuration,O=_objectWithoutPropertiesLoose$2(n,[`style`,`dense`,`ariaAttributes`,`className`,`hideIconVariant`,`iconVariant`,`snack`,`action`,`content`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),k=x.key,j=x.open,M=x.className,N=x.variant,F=x.content,I=x.action,L=x.ariaAttributes,R=x.anchorOrigin,z=x.message,B=x.TransitionComponent,V=x.TransitionProps,H=x.transitionDuration,U=_objectWithoutPropertiesLoose$2(x,[`persist`,`key`,`open`,`entered`,`requestClose`,`className`,`variant`,`content`,`action`,`ariaAttributes`,`anchorOrigin`,`message`,`TransitionComponent`,`TransitionProps`,`transitionDuration`,`onEnter`,`onEntered`,`onEntering`,`onExit`,`onExited`,`onExiting`]),W=_extends$2({},defaultIconVariants,{},b)[N],G=_extends$2({"aria-describedby":`notistack-snackbar`},objectMerge(L,h)),ee=B||T||DEFAULTS.TransitionComponent,K=objectMerge(H,D,DEFAULTS.transitionDuration),q=_extends$2({direction:getTransitionDirection(R)},objectMerge(V,E)),J=I||S;typeof J==`function`&&(J=J(k));var te=F||C;typeof te==`function`&&(te=te(k,x.message));var ne=[`onEnter`,`onEntering`,`onEntered`,`onExit`,`onExiting`,`onExited`].reduce(function(e,t){var a;return _extends$2({},e,(a={},a[t]=createChainedFunction([n.snack[t],n[t]],n.snack.key),a))},{});return import_react$24.createElement(Collapse,{unmountOnExit:!0,timeout:175,in:s,onExited:ne.onExited},import_react$24.createElement(StyledSnackbar,Object.assign({},O,U,{open:j,className:clsx(t.root,classes$1.wrappedRoot,t[transformer.toAnchorOrigin(R)]),onClose:u}),import_react$24.createElement(ee,Object.assign({appear:!0,in:j,timeout:K},q,{onExit:ne.onExit,onExiting:ne.onExiting,onExited:f,onEnter:ne.onEnter,onEntering:ne.onEntering,onEntered:createChainedFunction([ne.onEntered,d])}),te||import_react$24.createElement(SnackbarContent,Object.assign({},G,{role:`alert`,style:m,className:clsx(classes$1.contentRoot,classes$1[transformer.toVariant(N)],t[transformer.toVariant(N)],v,M,!y&&W&&classes$1.lessPadding)}),import_react$24.createElement(`div`,{id:G[`aria-describedby`],className:classes$1.message},y?null:W,z),J&&import_react$24.createElement(`div`,{className:classes$1.action},J)))))},collapse={container:`& > .MuiCollapse-container, & > .MuiCollapse-root`,wrapper:`& > .MuiCollapse-container > .MuiCollapse-wrapper, & > .MuiCollapse-root > .MuiCollapse-wrapper`},xsWidthMargin=16,componentName$2=`SnackbarContainer`,classes$2={root:componentName$2+`-root`,rootDense:componentName$2+`-rootDense`,top:componentName$2+`-top`,bottom:componentName$2+`-bottom`,left:componentName$2+`-left`,right:componentName$2+`-right`,center:componentName$2+`-center`},Root$1=styled$1(`div`)(function(e){var t,n,a,o,s,l,u=e.theme;return l={},l[`&.`+classes$2.root]=(t={boxSizing:`border-box`,display:`flex`,maxHeight:`100%`,position:`fixed`,zIndex:u.zIndex.snackbar,height:`auto`,width:`auto`,transition:`top 300ms ease 0ms, right 300ms ease 0ms, bottom 300ms ease 0ms, left 300ms ease 0ms, margin 300ms ease 0ms, max-width 300ms ease 0ms`,pointerEvents:`none`},t[collapse.container]={pointerEvents:`all`},t[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.default+`px 0px`,transition:`padding 300ms ease 0ms`},t.maxWidth=`calc(100% - `+SNACKBAR_INDENTS.view.default*2+`px)`,t[u.breakpoints.down(`sm`)]={width:`100%`,maxWidth:`calc(100% - `+xsWidthMargin*2+`px)`},t),l[`&.`+classes$2.rootDense]=(n={},n[collapse.wrapper]={padding:SNACKBAR_INDENTS.snackbar.dense+`px 0px`},n),l[`&.`+classes$2.top]={top:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column`},l[`&.`+classes$2.bottom]={bottom:SNACKBAR_INDENTS.view.default-SNACKBAR_INDENTS.snackbar.default,flexDirection:`column-reverse`},l[`&.`+classes$2.left]=(a={left:SNACKBAR_INDENTS.view.default},a[u.breakpoints.up(`sm`)]={alignItems:`flex-start`},a[u.breakpoints.down(`sm`)]={left:xsWidthMargin+`px`},a),l[`&.`+classes$2.right]=(o={right:SNACKBAR_INDENTS.view.default},o[u.breakpoints.up(`sm`)]={alignItems:`flex-end`},o[u.breakpoints.down(`sm`)]={right:xsWidthMargin+`px`},o),l[`&.`+classes$2.center]=(s={left:`50%`,transform:`translateX(-50%)`},s[u.breakpoints.up(`sm`)]={alignItems:`center`},s),l}),SnackbarContainer$1=import_react$24.memo(function(e){var t=e.className,n=e.anchorOrigin,a=e.dense,o=_objectWithoutPropertiesLoose$2(e,[`className`,`anchorOrigin`,`dense`]),s=clsx(classes$2[n.vertical],classes$2[n.horizontal],classes$2.root,t,a&&classes$2.rootDense);return import_react$24.createElement(Root$1,Object.assign({className:s},o))}),SnackbarProvider=function(e){_inheritsLoose(t,e);function t(t){var n=e.call(this,t)||this;return n.enqueueSnackbar=function(e,t){t===void 0&&(t={});var a=t,o=a.key,s=a.preventDuplicate,l=_objectWithoutPropertiesLoose$2(a,[`key`,`preventDuplicate`]),u=isDefined(o),d=u?o:new Date().getTime()+Math.random(),f=merge(l,n.props,DEFAULTS),m=_extends$2({key:d},l,{message:e,open:!0,entered:!1,requestClose:!1,variant:f(`variant`),anchorOrigin:f(`anchorOrigin`),autoHideDuration:f(`autoHideDuration`)});return l.persist&&(m.autoHideDuration=void 0),n.setState(function(t){if(s===void 0&&n.props.preventDuplicate||s){var a=function(t){return u?t.key===o:t.message===e},l=t.queue.findIndex(a)>-1,d=t.snacks.findIndex(a)>-1;if(l||d)return t}return n.handleDisplaySnack(_extends$2({},t,{queue:[].concat(t.queue,[m])}))}),d},n.handleDisplaySnack=function(e){return e.snacks.length>=n.maxSnack?n.handleDismissOldest(e):n.processQueue(e)},n.processQueue=function(e){var t=e.queue,n=e.snacks;return t.length>0?_extends$2({},e,{snacks:[].concat(n,[t[0]]),queue:t.slice(1,t.length)}):e},n.handleDismissOldest=function(e){if(e.snacks.some(function(e){return!e.open||e.requestClose}))return e;var t=!1,a=!1;e.snacks.reduce(function(e,t){return e+(t.open&&t.persist?1:0)},0)===n.maxSnack&&(a=!0);var o=e.snacks.map(function(e){return!t&&(!e.persist||a)?(t=!0,e.entered?(e.onClose&&e.onClose(null,REASONS.MAXSNACK,e.key),n.props.onClose&&n.props.onClose(null,REASONS.MAXSNACK,e.key),_extends$2({},e,{open:!1})):_extends$2({},e,{requestClose:!0})):_extends$2({},e)});return _extends$2({},e,{snacks:o})},n.handleEnteredSnack=function(e,t,a){if(!isDefined(a))throw Error(`handleEnteredSnack Cannot be called with undefined key`);n.setState(function(e){return{snacks:e.snacks.map(function(e){return e.key===a?_extends$2({},e,{entered:!0}):_extends$2({},e)})}})},n.handleCloseSnack=function(e,t,a){if(n.props.onClose&&n.props.onClose(e,t,a),t!==REASONS.CLICKAWAY){var o=a===void 0;n.setState(function(e){var t=e.snacks,n=e.queue;return{snacks:t.map(function(e){return!o&&e.key!==a?_extends$2({},e):e.entered?_extends$2({},e,{open:!1}):_extends$2({},e,{requestClose:!0})}),queue:n.filter(function(e){return e.key!==a})}})}},n.closeSnackbar=function(e){var t=n.state.snacks.find(function(t){return t.key===e});isDefined(e)&&t&&t.onClose&&t.onClose(null,REASONS.INSTRUCTED,e),n.handleCloseSnack(null,REASONS.INSTRUCTED,e)},n.handleExitedSnack=function(e,t,a){var o=t||a;if(!isDefined(o))throw Error(`handleExitedSnack Cannot be called with undefined key`);n.setState(function(e){var t=n.processQueue(_extends$2({},e,{snacks:e.snacks.filter(function(e){return e.key!==o})}));return t.queue.length===0?t:n.handleDismissOldest(t)})},n.state={snacks:[],queue:[],contextValue:{enqueueSnackbar:n.enqueueSnackbar.bind(_assertThisInitialized$1(n)),closeSnackbar:n.closeSnackbar.bind(_assertThisInitialized$1(n))}},n}var n=t.prototype;return n.render=function(){var e=this,t=this.state.contextValue,n=this.props,a=n.iconVariant,o=n.dense,s=o===void 0?DEFAULTS.dense:o,l=n.hideIconVariant,u=l===void 0?DEFAULTS.hideIconVariant:l,d=n.domRoot,f=n.children,m=n.classes,h=m===void 0?{}:m,v=_objectWithoutPropertiesLoose$2(n,[`maxSnack`,`preventDuplicate`,`variant`,`anchorOrigin`,`iconVariant`,`dense`,`hideIconVariant`,`domRoot`,`children`,`classes`]),y=this.state.snacks.reduce(function(e,t){var n,a=originKeyExtractor(t.anchorOrigin),o=e[a]||[];return _extends$2({},e,(n={},n[a]=[].concat(o,[t]),n))},{}),b=Object.keys(y).map(function(t){var n=y[t];return import_react$24.createElement(SnackbarContainer$1,{key:t,dense:s,anchorOrigin:n[0].anchorOrigin,className:clsx(h.containerRoot,h[transformer.toContainerAnchorOrigin(t)])},n.map(function(t){return import_react$24.createElement(SnackbarItem,Object.assign({},v,{key:t.key,snack:t,dense:s,iconVariant:a,hideIconVariant:u,classes:omitContainerKeys(h),onClose:e.handleCloseSnack,onExited:createChainedFunction([e.handleExitedSnack,e.props.onExited]),onEntered:createChainedFunction([e.handleEnteredSnack,e.props.onEntered])}))}))});return import_react$24.createElement(SnackbarContext.Provider,{value:t},f,d?(0,import_react_dom.createPortal)(b,d):b)},_createClass$2(t,[{key:`maxSnack`,get:function(){return this.props.maxSnack||DEFAULTS.maxSnack}}]),t}(import_react$24.Component),withSnackbar=function(e){var t=import_react$24.forwardRef(function(t,n){return import_react$24.createElement(SnackbarContext.Consumer,null,function(a){return import_react$24.createElement(e,_extends$2({},t,{ref:n,enqueueSnackbar:a.enqueueSnackbar,closeSnackbar:a.closeSnackbar}))})});return(0,import_hoist_non_react_statics_cjs$1.default)(t,e),t},react_hotkeys_production_min_exports=__exportAll({GlobalHotKeys:()=>GlobalHotKeys$1$1,HotKeys:()=>HotKeys,IgnoreKeys:()=>IgnoreKeys$1,ObserveKeys:()=>ObserveKeys$1,configure:()=>configure$1,getApplicationKeyMap:()=>getApplicationKeyMap,recordKeyCombination:()=>recordKeyCombination,withHotKeys:()=>withHotKeys,withIgnoreKeys:()=>withIgnoreKeys,withObserveKeys:()=>withObserveKeys});function _typeof$4(e){return _typeof$4=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},_typeof$4(e)}function _classCallCheck$1(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function _defineProperties$1(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function _createClass$1(e,t,n){return t&&_defineProperties$1(e.prototype,t),n&&_defineProperties$1(e,n),e}function _defineProperty$3(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _extends$1(){return _extends$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},_extends$1.apply(this,arguments)}function _objectSpread$1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t],a=Object.keys(n);typeof Object.getOwnPropertySymbols==`function`&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach(function(t){_defineProperty$3(e,t,n[t])})}return e}function _inherits(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&_setPrototypeOf(e,t)}function _getPrototypeOf(e){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},_getPrototypeOf(e)}function _setPrototypeOf(e,t){return _setPrototypeOf=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},_setPrototypeOf(e,t)}function isNativeReflectConstruct(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function _construct(e,t,n){return _construct=isNativeReflectConstruct()?Reflect.construct:function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&_setPrototypeOf(o,n.prototype),o},_construct.apply(null,arguments)}function _isNativeFunction(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function _wrapNativeSuper(e){var t=typeof Map==`function`?new Map:void 0;return _wrapNativeSuper=function(e){if(e===null||!_isNativeFunction(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return _construct(e,arguments,_getPrototypeOf(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),_setPrototypeOf(n,e)},_wrapNativeSuper(e)}function _objectWithoutPropertiesLoose$1(e,t){if(e==null)return{};var n={},a=Object.keys(e),o,s;for(s=0;s<a.length;s++)o=a[s],!(t.indexOf(o)>=0)&&(n[o]=e[o]);return n}function _objectWithoutProperties$1(e,t){if(e==null)return{};var n=_objectWithoutPropertiesLoose$1(e,t),a,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)a=s[o],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}function _assertThisInitialized(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function _possibleConstructorReturn(e,t){return t&&(typeof t==`object`||typeof t==`function`)?t:_assertThisInitialized(e)}function _superPropBase(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=_getPrototypeOf(e),e!==null););return e}function _get(e,t,n){return _get=typeof Reflect<`u`&&Reflect.get?Reflect.get:function(e,t,n){var a=_superPropBase(e,t);if(a){var o=Object.getOwnPropertyDescriptor(a,t);return o.get?o.get.call(n):o.value}},_get(e,t,n||e)}function _toConsumableArray$1(e){return _arrayWithoutHoles$1(e)||_iterableToArray$1(e)||_nonIterableSpread$1()}function _arrayWithoutHoles$1(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}}function _iterableToArray$1(e){if(Symbol.iterator in Object(e)||Object.prototype.toString.call(e)===`[object Arguments]`)return Array.from(e)}function _nonIterableSpread$1(){throw TypeError(`Invalid attempt to spread non-iterable instance`)}function dictionaryFrom(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;return e.reduce(function(e,n){return e[n]=t||{value:n},e},{})}function resolveShiftedAlias(e){return ShiftedKeysDictionary[e]||[e.length===1?e.toUpperCase():e]}function hasKey(e,t){return e.hasOwnProperty(t)}function invertArrayDictionary(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(n,a){var o=e[a];return o.forEach(function(e){hasKey(n,e)||(n[e]=[]),n[e].push(a)}),t.includeOriginal&&(!hasKey(n,a)&&(n[a]=[]),n[a]=[].concat(_toConsumableArray$1(n[a]),_toConsumableArray$1(o))),n},{})}function resolveUnshiftedAlias(e){return UnshiftedKeysDictionary[e]||[e.length===1?e.toLowerCase():e]}function isString(e){return typeof e==`string`}function stripSuperfluousWhitespace(e){return isString(e)?e.trim().replace(/\s+/g,` `):e}function standardizeKeyName(e){var t=e.toLowerCase();return MousetrapToReactKeyNamesDictionary[t]||KeyShorthandDictionary[t]||(e.match(/^f\d+$/)?e.toUpperCase():e)}function isNonPrintableKeyName(e){return!!NonPrintableKeysDictionary[e]}function isCustomKeyName(e){return Configuration.option(`_customKeyNamesDict`)[e]}function isValidKey(e){return isNonPrintableKeyName(e)||String.fromCharCode(e.charCodeAt(0))===e||isCustomKeyName(e)}function normalizedCombinationId(e){return e.sort().join(`+`)}function parseCombination(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};return e.replace(/^\+|(\s|[^+]\+)\+/,`$1plus`).split(`+`).reduce(function(e,n){var a=standardizeKeyName(n);if(t.ensureValidKeys&&!isValidKey(a))throw new InvalidKeyNameError;return e[a]=!0,e},{})}function resolveUnaltedAlias(e){return UnaltedKeysDictionary[e]||[e]}function resolveAltedAlias(e){return AltedKeysDictionary[e]||[e]}function resolveUnaltShiftedAlias(e){return UnaltShiftedKeysDictionary[e]||resolveUnshiftedAlias(e)}function resolveAltShiftedAlias(e){return AltShiftedKeysDictionary[e]||[e]}function resolveKeyAlias(e){return KeyOSAndLayoutAliasesDictionary$1[e]||[e]}function applicableAliasFunctions(e){if(e.Shift)return e.Alt?[resolveAltShiftedAlias,resolveUnaltShiftedAlias]:[resolveShiftedAlias,resolveUnshiftedAlias];if(e.Alt)return[resolveAltedAlias,resolveUnaltedAlias];var t=function(e){return[e]};return[t,t]}function isUndefined(e){return e===void 0}function isObject(e){return!Array.isArray(e)&&_typeof$4(e)===`object`&&e!==null}function isEmpty$2(e){return isObject(e)?Object.keys(e).length===0:!e||e.length===0}function size(e){return isObject(e)?Object.keys(e).length:e.length}function buildKeyAliases(e){return Object.keys(e).reduce(function(t,n){return resolveKeyAlias(n).forEach(function(a){applicableAliasFunctions(e).forEach(function(e){e(a).forEach(function(e){(e!==n||n!==a)&&(t[e]=n)})})}),t},{})}function arrayFrom(e){return Array.isArray(e)?e:e?[e]:[]}function without(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:[],n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=dictionaryFrom(arrayFrom(t));return Array.isArray(e)?e.reduce(function(e,t){return a[t]&&(n.stringifyFirst||a[t].value===t)||e.push(t),e},[]):isObject(e)?Object.keys(e).reduce(function(t,n){return a[n]||(t[n]=e[n]),t},{}):e}function removeAtIndex(e,t){return[].concat(_toConsumableArray$1(e.slice(0,t)),_toConsumableArray$1(e.slice(t+1)))}function normalizeActionOptions(e,t){if(isObject(e)){var n=e.sequence,a=e.action;return{keySequence:n,keyEventType:isUndefined(a)?KeyEventType[t.defaultKeyEvent]:KeyEventType[a]}}return{keySequence:e,keyEventType:KeyEventType[t.defaultKeyEvent]}}function indexFromEnd(e,t){return e[e.length-(t+1)]}function keyupIsHiddenByCmd(e){return e.length===1||hasKey(KeysWithKeyUpHiddenByCmd,e)}function canBeMatched(e,t){var n=size(t.keyDictionary);return Configuration.option(`allowCombinationSubmatches`)||keyUpIsBeingHidden(e)?e.getNumberOfKeys()>=n:e.getNumberOfKeys()===n}function keyUpIsBeingHidden(e){return!!e.isKeyStillPressed(`Meta`)&&e.some(function(e){return keyupIsHiddenByCmd(e)})}function copyAttributes(e,t,n){return n.forEach(function(n){hasKey(e,n)&&(t[n]=e[n])}),t}function describeKeyEventType(e){switch(parseInt(e,10)){case 0:return`keydown`;case 1:return`keypress`;default:return`keyup`}}function hasKeyPressEvent(e){return!isNonPrintableKeyName(e)}function stateFromEvent(e){return e.simulated?KeyEventState.simulated:KeyEventState.seen}function getEventCharCode(e){var t,n=e.keyCode;return`charCode`in e?(t=e.charCode,t===0&&n===13&&(t=13)):t=n,t===10&&(t=13),32<=t||t===13?t:0}function reactsGetEventKey(e){if(e.key){var t=normalizeKey[e.key]||e.key;if(t!==`Unidentified`)return t}if(e.type===`keypress`){var n=getEventCharCode(e);return n===13?`Enter`:String.fromCharCode(n)}return e.type===`keydown`||e.type===`keyup`?translateToKey[e.keyCode]||`Unidentified`:``}function getKeyName(e){var t=function(){var t=Configuration.option(`customKeyCodes`),n=e.keyCode||e.charCode;return hasKey(t,n)?t[n]:e.nativeEvent?e.key:reactsGetEventKey(e)}();return t===`+`?`plus`:t}function isCmdKey(e){return e===`Meta`}function contains(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{};return Array.isArray(e)||isString(e)?n.stringifyFirst?!isUndefined(e.find(function(e){return e.toString()===t.toString()})):e.indexOf(t)!==-1:isObject(e)?hasKey(e,t):n.stringifyFirst?e.toString()===t.toString():e===t}function capitalize$1(e){return e.replace(/\b\w/g,function(e){return e.toUpperCase()})}function normalizeEventName(e){return`${capitalize$1(e.slice(0,3))}${capitalize$1(e.slice(3))}`}function isFromFocusOnlyComponent(e){return!isUndefined(e)}function backwardsCompatibleContext(e,t){var n=t.deprecatedAPI,a=n.contextTypes,o=n.childContextTypes,s=t.newAPI.contextType;if(import_react.createContext===void 0)e.contextTypes=a,e.childContextTypes=o,e.prototype.getChildContext=function(){return this._childContext};else{var l=import_react.createContext(s);e.contextType=l,e.prototype._originalRender=e.prototype.render,e.prototype.render=function(){var e=this._originalRender();return e?import_react.createElement(l.Provider,{value:this._childContext},e):null}}return e}function withHotKeys(e){function t(e,t){return _objectSpread$1({},o[e]||{},t[e]||{})}function n(e){return t(`handlers`,e)}function a(e){return t(`keyMap`,e)}var o=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},s=function(t){function o(e){var t;return _classCallCheck$1(this,o),t=_possibleConstructorReturn(this,_getPrototypeOf(o).call(this,e)),t._handleFocus=t._handleFocus.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleBlur=t._handleBlur.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyDown=t._handleKeyDown.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyPress=t._handleKeyPress.bind(_assertThisInitialized(_assertThisInitialized(t))),t._handleKeyUp=t._handleKeyUp.bind(_assertThisInitialized(_assertThisInitialized(t))),t._componentIsFocused=t._componentIsFocused.bind(_assertThisInitialized(_assertThisInitialized(t))),t._id=KeyEventManager.getInstance().registerKeyMap(e.keyMap),t._childContext={hotKeysParentId:t._id},t}return _inherits(o,t),_createClass$1(o,[{key:`render`,value:function(){var t=this.props;t.keyMap,t.handlers,t.allowChanges,t.root;var n=_objectWithoutProperties$1(t,[`keyMap`,`handlers`,`allowChanges`,`root`]),a={onFocus:this._wrapFunction(`onFocus`,this._handleFocus),onBlur:this._wrapFunction(`onBlur`,this._handleBlur),tabIndex:Configuration.option(`defaultTabIndex`)};return this._shouldBindKeyListeners()&&(a.onKeyDown=this._handleKeyDown,a.onKeyPress=this._handleKeyPress,a.onKeyUp=this._handleKeyUp),import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_shouldBindKeyListeners`,value:function(){var e=a(this.props);return!isEmpty$2(e)||this.props.root||Configuration.option(`enableHardSequences`)&&this._handlersIncludeHardSequences(e,n(this.props))}},{key:`_handlersIncludeHardSequences`,value:function(e,t){return Object.keys(t).some(function(t){return!e[t]&&KeyCombinationSerializer.isValidKeySerialization(t)})}},{key:`_wrapFunction`,value:function(e,t){var n=this;return typeof this.props[e]==`function`?function(a){n.props[e](a),t(a)}:t}},{key:`_focusTreeIdsPush`,value:function(e){this._focusTreeIds||=[],this._focusTreeIds.push(e)}},{key:`_focusTreeIdsShift`,value:function(){this._focusTreeIds&&this._focusTreeIds.shift()}},{key:`_getFocusTreeId`,value:function(){if(this._focusTreeIds)return this._focusTreeIds[0]}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterKeyMap(this._id,this.props.keyMap),this._componentIsFocused()&&(this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`))){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledHotKeys(this._getFocusTreeId(),this._id,n,a,this._getComponentOptions())}}},{key:`_componentIsFocused`,value:function(){return!0===this._focused}},{key:`componentDidMount`,value:function(){var e=KeyEventManager.getInstance(),t=this.context.hotKeysParentId;e.registerComponentMount(this._id,t)}},{key:`_handleFocus`,value:function(){if(this.props.onFocus){var e;(e=this.props).onFocus.apply(e,arguments)}var t=KeyEventManager.getInstance().enableHotKeys(this._id,a(this.props),n(this.props),this._getComponentOptions());isUndefined(t)||this._focusTreeIdsPush(t),this._focused=!0}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterKeyMap(this._id),e.registerComponentUnmount(),this._handleBlur()}},{key:`_handleBlur`,value:function(){if(this.props.onBlur){var e;(e=this.props).onBlur.apply(e,arguments)}KeyEventManager.getInstance().disableHotKeys(this._getFocusTreeId(),this._id)||this._focusTreeIdsShift(),this._focused=!1}},{key:`_handleKeyDown`,value:function(e){KeyEventManager.getInstance().handleKeydown(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyPress`,value:function(e){KeyEventManager.getInstance().handleKeyPress(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_handleKeyUp`,value:function(e){KeyEventManager.getInstance().handleKeyUp(e,this._getFocusTreeId(),this._id,this._getEventOptions())&&this._focusTreeIdsShift()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),o}(import_react.PureComponent);return _defineProperty$3(s,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,onFocus:import_prop_types.default.func,onBlur:import_prop_types.default.func,allowChanges:import_prop_types.default.bool,root:import_prop_types.default.bool}),backwardsCompatibleContext(s,{deprecatedAPI:{contextTypes:{hotKeysParentId:import_prop_types.default.number},childContextTypes:{hotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{hotKeysParentId:void 0}}})}function withHotKeysIgnoreOverride(e){var t,n,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},o=2<arguments.length?arguments[2]:void 0;return n=t=function(t){function n(e){var t;return _classCallCheck$1(this,n),t=_possibleConstructorReturn(this,_getPrototypeOf(n).call(this,e)),t._handleKeyEvent=t._handleKeyEvent.bind(_assertThisInitialized(_assertThisInitialized(t))),t._reloadDictionaries=t._reloadDictionaries.bind(_assertThisInitialized(_assertThisInitialized(t))),t}return _inherits(n,t),_createClass$1(n,[{key:`render`,value:function(){var t=this.props;t.only,t.except;var n=_objectWithoutProperties$1(t,[`only`,`except`]),a={onKeyDown:this._handleKeyEvent,onKeyPress:this._handleKeyEvent,onKeyUp:this._handleKeyEvent,onFocus:this._reloadDictionaries};return import_react.createElement(e,_extends$1({hotKeys:a},n))}},{key:`_reloadDictionaries`,value:function(){var e=this.props,t=e.only,n=e.except;this._onlyDict=keyDictionary(t),this._exceptDict=keyDictionary(n)}},{key:`_shouldIgnoreEvent`,value:function(e){var t=e.key;return isEmpty$2(this._onlyDict)?!!isEmpty$2(this._exceptDict)||!hasKey(this._exceptDict,t):isEmpty$2(this._exceptDict)?hasKey(this._onlyDict,t):hasKey(this._onlyDict,t)&&!hasKey(this._exceptDict,t)}},{key:`_handleKeyEvent`,value:function(e){this._shouldIgnoreEvent(e)&&KeyEventManager.getInstance()[o](e)}}]),n}(import_react.PureComponent),_defineProperty$3(t,`propTypes`,{only:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)]),except:import_prop_types.default.oneOfType([import_prop_types.default.string,import_prop_types.default.arrayOf(import_prop_types.default.string)])}),_defineProperty$3(t,`defaultProps`,a),n}function keyDictionary(e){return arrayFrom(e).reduce(function(e,t){var n=standardizeKeyName(t);if(!isValidKey(n))throw new InvalidKeyNameError(t);return[resolveAltShiftedAlias,resolveUnaltShiftedAlias,resolveShiftedAlias,resolveUnshiftedAlias,resolveAltedAlias,resolveUnaltedAlias].forEach(function(t){e[t(n)]=!0}),e},{})}function withIgnoreKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`ignoreEvent`)}function withObserveKeys(e){return withHotKeysIgnoreOverride(e,1<arguments.length&&arguments[1]!==void 0?arguments[1]:{only:[],except:[]},`observeIgnoredEvents`)}function configure$1(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};Configuration.init(e)}function getApplicationKeyMap(){return KeyEventManager.getInstance().getApplicationKeyMap()}function recordKeyCombination(e){return KeyEventManager.getInstance().addKeyCombinationListener(e)}var import_prop_types,import_react,_defaultConfiguration,_configuration,Configuration,Logger,KeyEventType,ModifierFlagsDictionary,ShiftedKeysDictionary,UnshiftedKeysDictionary,KeyOSAndLayoutAliasesDictionary$1,MousetrapToReactKeyNamesDictionary,KeyShorthandDictionary,translateToKey,NonPrintableKeysDictionary,InvalidKeyNameError,KeySequenceParser,AltedKeysDictionary,UnaltedKeysDictionary,AltShiftedKeysDictionary,UnaltShiftedKeysDictionary,KeyCombinationSerializer,KeyEventSequenceIndex,KeyEventState,KeyEventStateArrayManager,KeyCombination,KeyHistory,Registry,ComponentTree,ComponentOptionsListIterator,ComponentOptionsList,KeysWithKeyUpHiddenByCmd,i,KeyCombinationMatcher,KeyHistoryMatcher,ActionResolver,SEQUENCE_ATTRIBUTES,KEYMAP_ATTRIBUTES,AbstractKeyEventStrategy,KeyEventCounter,normalizeKey,EventResponse,EventPropagator,FocusOnlyKeyEventStrategy,GlobalKeyEventStrategy,KeyEventManager,HotKeys,GlobalHotKeys$2,GlobalHotKeys$1$1,IgnoreKeys$1,ObserveKeys$1,init_react_hotkeys_production_min=__esmMin((()=>{for(import_prop_types=__toESM(require_prop_types()),import_react=__toESM(require_react()),_defaultConfiguration={logLevel:`warn`,defaultKeyEvent:`keydown`,defaultComponent:`div`,defaultTabIndex:`-1`,ignoreTags:[`input`,`select`,`textarea`],enableHardSequences:!1,ignoreKeymapAndHandlerChangesByDefault:!0,ignoreEventsCondition:function(e){var t=e.target;if(t&&t.tagName){var n=t.tagName.toLowerCase();return Configuration.option(`_ignoreTagsDict`)[n]||t.isContentEditable}return!1},ignoreRepeatedEventsWhenKeyHeldDown:!0,simulateMissingKeyPressEvents:!0,stopEventPropagationAfterHandling:!0,stopEventPropagationAfterIgnoring:!0,allowCombinationSubmatches:!1,customKeyCodes:{}},_configuration=_objectSpread$1({},_defaultConfiguration),_configuration._ignoreTagsDict=dictionaryFrom(_configuration.ignoreTags,!0),Configuration=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`init`,value:function(e){var t=this,n=e.ignoreTags,a=e.customKeyCodes;n&&(e._ignoreTagsDict=dictionaryFrom(e.ignoreTags)),a&&(e._customKeyNamesDict=dictionaryFrom(Object.values(e.customKeyCodes))),[`verbose`,`debug`,`info`].indexOf(e.logLevel)!==-1&&console.warn(`React HotKeys: You have requested log level '${e.logLevel}' but for performance reasons, logging below severity level 'warning' is disabled in production. Please use the development build for complete logs.`),Object.keys(e).forEach(function(n){t.set(n,e[n])})}},{key:`set`,value:function(e,t){_configuration[e]=t}},{key:`reset`,value:function(e){_configuration[e]=_defaultConfiguration[e]}},{key:`option`,value:function(e){return _configuration[e]}}]),e}(),Logger=function(){function e(){var t=this,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:`warn`;if(_classCallCheck$1(this,e),_defineProperty$3(this,`verbose`,this.noop),_defineProperty$3(this,`debug`,this.noop),_defineProperty$3(this,`info`,this.noop),_defineProperty$3(this,`warn`,this.noop),_defineProperty$3(this,`error`,this.noop),this.logLevel=this.constructor.levels[n],this.logLevel>=this.constructor.levels.error)this.error=console.error;else return;if(this.logLevel>=this.constructor.levels.warn)this.warn=console.warn;else return;[`info`,`debug`,`verbose`].some(function(e){return!(t.logLevel>=t.constructor.levels[e])||(t[e]=console.log,!1)})}return _createClass$1(e,[{key:`noop`,value:function(){}}]),e}(),_defineProperty$3(Logger,`logIcons`,[`📕`,`📗`,`📘`,`📙`]),_defineProperty$3(Logger,`componentIcons`,[`🔺`,`⭐️`,`🔷`,`🔶`,`⬛️`]),_defineProperty$3(Logger,`eventIcons`,[`❤️`,`💚`,`💙`,`💛`,`💜`,`🧡`]),_defineProperty$3(Logger,`levels`,{none:0,error:1,warn:2,info:3,debug:4,verbose:5}),KeyEventType={keydown:0,keypress:1,keyup:2},ModifierFlagsDictionary={Shift:[`shiftKey`],Meta:[`metaKey`],Control:[`ctrlKey`],Alt:[`altKey`]},ShiftedKeysDictionary={"`":[`~`],1:[`!`],2:[`@`,`"`],3:[`#`,`£`],4:[`$`],5:[`%`],6:[`^`],7:[`&`],8:[`*`],9:[`(`],0:[`)`],"-":[`_`],"=":[`plus`],";":[`:`],"'":[`"`,`@`],",":[`<`],".":[`>`],"/":[`?`],"\\":[`|`],"[":[`{`],"]":[`}`],"#":[`~`]},UnshiftedKeysDictionary=invertArrayDictionary(ShiftedKeysDictionary),KeyOSAndLayoutAliasesDictionary$1=invertArrayDictionary({},{includeOriginal:!0}),MousetrapToReactKeyNamesDictionary={tab:`Tab`,capslock:`CapsLock`,shift:`Shift`,meta:`Meta`,alt:`Alt`,ctrl:`Control`,space:` `,spacebar:` `,escape:`Escape`,esc:`Escape`,left:`ArrowLeft`,right:`ArrowRight`,up:`ArrowUp`,down:`ArrowDown`,return:`Enter`,del:`Delete`,command:`Meta`,option:`Alt`,enter:`Enter`,backspace:`Backspace`,ins:`Insert`,pageup:`PageUp`,pagedown:`PageDown`,end:`End`,home:`Home`,contextmenu:`ContextMenu`,numlock:`Clear`},KeyShorthandDictionary={cmd:`Meta`},translateToKey={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},NonPrintableKeysDictionary=dictionaryFrom(Object.values(translateToKey),!0),InvalidKeyNameError=function(e){function t(){var e,n;_classCallCheck$1(this,t);var a=[...arguments];return n=_possibleConstructorReturn(this,(e=_getPrototypeOf(t)).call.apply(e,[this].concat(a))),_defineProperty$3(_assertThisInitialized(_assertThisInitialized(n)),`name`,`InvalidKeyNameError`),n}return _inherits(t,e),t}(_wrapNativeSuper(Error)),KeySequenceParser=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`parse`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=stripSuperfluousWhitespace(e).split(` `);try{var a=n.slice(0,n.length-1),o=n[n.length-1],s=a.map(function(e){var n=parseCombination(e,t);return normalizedCombinationId(Object.keys(n))}).join(` `),l=parseCombination(o,t),u={id:normalizedCombinationId(Object.keys(l)),keyDictionary:l,keyEventType:t.keyEventType,size:Object.keys(l).length};return{sequence:{prefix:s,size:a.length+1},combination:u}}catch{return{sequence:null,combination:null}}}}]),e}(),AltedKeysDictionary={"`":["`"],1:[`¡`],2:[`™`],3:[`£`],4:[`¢`],5:[`∞`],6:[`§`],7:[`¶`],8:[`•`],9:[`ª`],0:[`º`],"-":[`–`],"=":[`≠`],a:[`å`],b:[`∫`],c:[`ç`],d:[`∂`],e:[`´`],f:[`ƒ`],g:[`©`],h:[`˙`],i:[`ˆ`],j:[`∆`],k:[`˚`],l:[`¬`],m:[`µ`],n:[`˜`],o:[`ø`],p:[`π`],q:[`œ`],r:[`®`],s:[`ß`],t:[`†`],u:[`¨`],v:[`√`],w:[`∑`],x:[`≈`],y:[`¥`],z:[`Ω`],"[":[`“`],"]":[`‘`],"\\":[`«`],"'":[`æ`],";":[`…`],",":[`≤`],".":[`≥`],"/":[`÷`]},UnaltedKeysDictionary=invertArrayDictionary(AltedKeysDictionary),AltShiftedKeysDictionary={"`":["`"],1:[`⁄`],2:[`€`],3:[`‹`],4:[`›`],5:[`fi`],6:[`fl`],7:[`‡`],8:[`°`],9:[`·`],0:[`‚`],"-":[`—`],"=":[`±`],a:[`Å`],b:[`ı`],c:[`Ç`],d:[`Î`],e:[`´`],f:[`Ï`],g:[`˝`],h:[`Ó`],i:[`ˆ`],j:[`Ô`],k:[``],l:[`Ò`],m:[`Â`],n:[`˜`],o:[`Ø`],p:[`π`],q:[`Œ`],r:[`‰`],s:[`Í`],t:[`Î`],u:[`¨`],v:[`◊`],w:[`„`],x:[`˛`],y:[`Á`],z:[`¸`],"[":[`”`],"]":[`’`],"\\":[`»`],"'":[`Æ`],";":[`Ú`],",":[`¯`],".":[`˘`]},UnaltShiftedKeysDictionary=invertArrayDictionary(AltShiftedKeysDictionary),KeyCombinationSerializer=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`serialize`,value:function(e){var t=e.Shift,n=e.Alt,a={};return Object.keys(e).sort().forEach(function(e){var o=[];if(t)if(n){var s=resolveUnaltShiftedAlias(e),l=resolveAltShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(s),_toConsumableArray$1(l))}else{var u=resolveUnshiftedAlias(e),d=resolveShiftedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(u),_toConsumableArray$1(d))}else if(n){var f=resolveUnaltedAlias(e),m=resolveAltedAlias(e);o=[].concat(_toConsumableArray$1(o),[e],_toConsumableArray$1(f),_toConsumableArray$1(m))}else{o.push(e);var h=KeyOSAndLayoutAliasesDictionary$1[e];h&&(o=[].concat(_toConsumableArray$1(o),_toConsumableArray$1(h)))}var v=Object.keys(a);0<v.length?v.forEach(function(e){o.forEach(function(t){a[e+`+${t}`]=_objectSpread$1({},a[e],_defineProperty$3({},t,!0))}),delete a[e]}):o.forEach(function(e){a[e]=_defineProperty$3({},e,!0)})}),Object.values(a).map(function(e){return Object.keys(e).sort().join(`+`)})}},{key:`isValidKeySerialization`,value:function(e){return 0<e.length&&!!KeySequenceParser.parse(e,{ensureValidKeys:!0}).combination}}]),e}(),KeyEventSequenceIndex={previous:0,current:1},KeyEventState={unseen:0,seen:1,simulated:2},KeyEventStateArrayManager=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`newRecord`,value:function(e,t){var n=[KeyEventState.unseen,KeyEventState.unseen,KeyEventState.unseen];if(!isUndefined(e))for(var a=0;a<=e;a++)n[a]=t;return n}},{key:`setBit`,value:function(e,t,n){return e[t]=n,e}},{key:`clone`,value:function(e){for(var t=this.newRecord(),n=0;n<e.length;n++)t[n]=e[n];return t}}]),e}(),KeyCombination=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this._keys=t,this._includesKeyUp=!1,this._update()}return _createClass$1(e,[{key:`getIds`,value:function(){return this._ids}},{key:`getKeyAliases`,value:function(){return this._keyAliases}},{key:`getNormalizedKeyName`,value:function(e){return this._keys[e]?e:this._keyAliases[e]||e}},{key:`getNumberOfKeys`,value:function(){return size(this._keys)}},{key:`any`,value:function(){return 0<Object.keys(this._getKeyStates()).length}},{key:`isEnding`,value:function(){return this._includesKeyUp}},{key:`hasEnded`,value:function(){return isEmpty$2(this.keysStillPressedDict())}},{key:`addKey`,value:function(e,t){this._setKeyState(e,[KeyEventStateArrayManager.newRecord(),KeyEventStateArrayManager.newRecord(KeyEventType.keydown,t)])}},{key:`setKeyState`,value:function(e,t,n){var a=this._getKeyState(e);if(this.isKeyIncluded(e)){var o=KeyEventStateArrayManager.clone(a[1]),s=KeyEventStateArrayManager.clone(o);KeyEventStateArrayManager.setBit(s,t,n),this._setKeyState(e,[o,s])}else this.addKey(e,n);t===KeyEventType.keyup&&(this._includesKeyUp=!0)}},{key:`forEachKey`,value:function(e){return Object.keys(this._keys).forEach(e)}},{key:`some`,value:function(e){return Object.keys(this._keys).some(e)}},{key:`getKeyDictionary`,value:function(){return dictionaryFrom(Object.keys(this._getKeyStates()),!0)}},{key:`keysStillPressedDict`,value:function(){var e=this;return Object.keys(this._keys).reduce(function(t,n){return e.isKeyStillPressed(n)&&(t[n]=e._getKeyState(n)),t},{})}},{key:`isKeyIncluded`,value:function(e){return!!this._getKeyState(e)}},{key:`isKeyStillPressed`,value:function(e){return this.isEventTriggered(e,KeyEventType.keypress)&&!this.isKeyReleased(e)}},{key:`isKeyReleased`,value:function(e){return this.isEventTriggered(e,KeyEventType.keyup)}},{key:`isEventTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.current,t)}},{key:`wasEventPreviouslyTriggered`,value:function(e,t){return this._getKeyStateType(e,KeyEventSequenceIndex.previous,t)}},{key:`isKeyPressSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keypress)}},{key:`isKeyUpSimulated`,value:function(e){return this._isKeyEventSimulated(e,KeyEventType.keyup)}},{key:`describe`,value:function(){return this.getIds()[0]}},{key:`toJSON`,value:function(){return{keys:this._getKeyStates(),ids:this.getIds(),keyAliases:this.getKeyAliases()}}},{key:`_getKeyStateType`,value:function(e,t,n){var a=this._getKeyState(e);return a&&a[t][n]}},{key:`_update`,value:function(){this._ids=KeyCombinationSerializer.serialize(this._keys),this._keyAliases=buildKeyAliases(this._keys)}},{key:`_isKeyEventSimulated`,value:function(e,t){return this.isEventTriggered(e,t)===KeyEventState.simulated}},{key:`_getKeyStates`,value:function(){return this._keys}},{key:`_getKeyState`,value:function(e){var t=this._keys[e];if(t)return t;var n=this._keyAliases[e];if(n)return this._keys[n]}},{key:`_setKeyState`,value:function(e,t){var n=this.getNormalizedKeyName(e);this._keys[n]=t,this._update()}}]),e}(),KeyHistory=function(){function e(t){var n=t.maxLength,a=1<arguments.length&&arguments[1]!==void 0?arguments[1]:null;_classCallCheck$1(this,e),this._records=[],this._maxLength=n,a?this._push(a):this._push(new KeyCombination)}return _createClass$1(e,[{key:`getMostRecentCombinations`,value:function(e){return this._records.slice(-e,-1)}},{key:`any`,value:function(){return this._records.some(function(e){return e.any()})}},{key:`getLength`,value:function(){return this._records.length}},{key:`getCurrentCombination`,value:function(){return this._records[this.getLength()-1]}},{key:`addKeyToCurrentCombination`,value:function(e,t,n){this._ensureInitialKeyCombination(),this.getCurrentCombination().setKeyState(e,t,n)}},{key:`setMaxLength`,value:function(e){this._maxLength=e,this._trimHistory()}},{key:`startNewKeyCombination`,value:function(e,t){this._ensureInitialKeyCombination();var n=new KeyCombination(this.getCurrentCombination().keysStillPressedDict());n.addKey(e,t),this._push(n)}},{key:`toJSON`,value:function(){return this._records.map(function(e){return e.toJSON()})}},{key:`_ensureInitialKeyCombination`,value:function(){this.getLength()===0&&this._push(new KeyCombination)}},{key:`_push`,value:function(e){this._trimHistory(),this._records.push(e)}},{key:`_trimHistory`,value:function(){for(;this.getLength()>this._maxLength;)this._shift()}},{key:`_shift`,value:function(){this._records.shift()}}]),e}(),Registry=function(){function e(){_classCallCheck$1(this,e),this._registry={}}return _createClass$1(e,[{key:`get`,value:function(e){return this._registry[e]}},{key:`set`,value:function(e,t){this._registry[e]=t}},{key:`remove`,value:function(e){delete this._registry[e]}},{key:`toJSON`,value:function(){return this._registry}}]),e}(),ComponentTree=function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`add`,value:function(e,n){_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,{childIds:[],parentId:null,keyMap:n})}},{key:`update`,value:function(e,n){var a=_get(_getPrototypeOf(t.prototype),`get`,this).call(this,e);_get(_getPrototypeOf(t.prototype),`set`,this).call(this,e,_objectSpread$1({},a,{keyMap:n}))}},{key:`setParent`,value:function(e,t){this.get(e).parentId=t,this._addChildId(t,e)}},{key:`remove`,value:function(e){var n=this._getParentId(e);this._removeChildId(n,e),_get(_getPrototypeOf(t.prototype),`remove`,this).call(this,e)}},{key:`_getParentId`,value:function(e){var t=this.get(e);return t&&t.parentId}},{key:`_addChildId`,value:function(e,t){this.get(e).childIds.push(t)}},{key:`_removeChildId`,value:function(e,t){var n=this.get(e);n&&(n.childIds=without(n.childIds,t))}}]),t}(Registry),ComponentOptionsListIterator=function(){function e(t){_classCallCheck$1(this,e),this._list=t,this._position=-1}return _createClass$1(e,[{key:`getPosition`,value:function(){return this._position}},{key:`getComponent`,value:function(){return this._list.getAtPosition(this.getPosition())}},{key:`next`,value:function(){return this.getPosition()+1<this._list.getLength()?(this._position++,this.getComponent()):null}}]),e}(),ComponentOptionsList=function(){function e(){_classCallCheck$1(this,e),this._list=[],this._idToIndex={},this._longestSequence=1,this._longestSequenceComponentId=null,this._keyMapEventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`getNewIterator`,value:function(){return new ComponentOptionsListIterator(this)}},{key:`add`,value:function(e,t,n,a){if(this.containsId(e))return this.update(e,t,n,a);var o=this._build(e,t,n,a);this._list.push(o);var s=this._getLastIndex();return this._idToIndex[e]=s}},{key:`containsId`,value:function(e){return!!this.get(e)}},{key:`get`,value:function(e){return this.getAtPosition(this.getIndexById(e))}},{key:`getIndexById`,value:function(e){return this._idToIndex[e]}},{key:`update`,value:function(e,t,n,a){var o=this._isUpdatingComponentWithLongestSequence(e),s=this.getLongestSequence(),l=this._build(e,t,n,a);o&&l.sequenceLength!==s&&(l.sequenceLength>s?this._longestSequence=l.sequenceLength:this._recalculateLongestSequence()),this._list[this.getIndexById(e)]=l}},{key:`remove`,value:function(e){var t=this._isUpdatingComponentWithLongestSequence(e);this.removeAtPosition(this.getIndexById(e)),t&&this._recalculateLongestSequence()}},{key:`any`,value:function(){return this.getLength()!==0}},{key:`isRoot`,value:function(e){return this.getIndexById(e)>=this.getLength()-1}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`anyActionsForEventType`,value:function(e){return!!this._keyMapEventRecord[e]}},{key:`getLength`,value:function(){return this._list.length}},{key:`getAtPosition`,value:function(e){return this._list[e]}},{key:`removeAtPosition`,value:function(e){this._list=removeAtIndex(this._list,e);for(var t=e;t<this.getLength();)this._idToIndex[this.getAtPosition(t).componentId]=t,t++}},{key:`toJSON`,value:function(){return this._list}},{key:`_getLastIndex`,value:function(){return this.getLength()-1}},{key:`_build`,value:function(e,t,n,a){var o=this._applyHardSequences(t,n),s=o.keyMap,l=o.handlers;return{actions:this._buildActionDictionary(_objectSpread$1({},t,s),a,e),handlers:l,componentId:e,options:a}}},{key:`_isUpdatingComponentWithLongestSequence`,value:function(e){return e===this._getLongestSequenceComponentId()}},{key:`_getLongestSequenceComponentId`,value:function(){return this._longestSequenceComponentId}},{key:`_recalculateLongestSequence`,value:function(){for(var e=this.getNewIterator();e.next();){var t=e.getComponent(),n=t.longestSequence,a=t.componentId;n>this.getLongestSequence()&&(this._longestSequenceComponentId=a,this._longestSequence=n)}}},{key:`_applyHardSequences`,value:function(e,t){return Configuration.option(`enableHardSequences`)?Object.keys(t).reduce(function(n,a){return!e[a]&&KeyCombinationSerializer.isValidKeySerialization(a)&&(n.keyMap[a]=a),n.handlers[a]=t[a],n},{keyMap:{},handlers:{}}):{keyMap:e,handlers:t}}},{key:`_buildActionDictionary`,value:function(e,t,n){var a=this;return Object.keys(e).reduce(function(o,s){var l=e[s];return function(){return isObject(l)&&hasKey(l,`sequences`)?arrayFrom(l.sequences):arrayFrom(l)}().forEach(function(e){var l=normalizeActionOptions(e,t),u=l.keySequence,d=l.keyEventType;a._addActionOptions(o,n,s,u,d)}),o},{})}},{key:`_addActionOptions`,value:function(e,t,n,a,o){var s=KeySequenceParser.parse(a,{keyEventType:o}),l=s.sequence,u=s.combination;l.size>this.getLongestSequence()&&(this._longestSequence=l.size,this._longestSequenceComponentId=t),this._keyMapEventRecord[o]=KeyEventState.seen,e[n]||(e[n]=[]),e[n].push(_objectSpread$1({prefix:l.prefix,actionName:n,sequenceLength:l.size},u))}}]),e}(),KeysWithKeyUpHiddenByCmd={Enter:!0,Backspace:!0,ArrowRight:!0,ArrowLeft:!0,ArrowUp:!0,ArrowDown:!0,CapsLock:!0},i=1;13>i;i++)KeysWithKeyUpHiddenByCmd[`F${i}`]=!0;KeyCombinationMatcher=function(){function e(){_classCallCheck$1(this,e),this._actionConfigs={},this._order=null}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){if(this._includesMatcherForCombination(e.id)){var n=e.keyEventType,a=e.actionName,o=e.id;this._addHandlerToActionConfig(o,{keyEventType:n,actionName:a,handler:t})}else this._addNewActionConfig(e,t)}},{key:`findMatch`,value:function(e,t,n){this._order||this._setOrder();var a=!0,o=!1,s=void 0;try{for(var l,u=this._order[Symbol.iterator]();!(a=(l=u.next()).done);a=!0){var d=l.value,f=this._actionConfigs[d];if(this._matchesActionConfig(e,t,n,f))return f}}catch(e){o=!0,s=e}finally{try{a||u.return==null||u.return()}finally{if(o)throw s}}return null}},{key:`toJSON`,value:function(){return{actionConfigs:this._actionConfigs,order:this._order}}},{key:`_matchesActionConfig`,value:function(e,t,n,a){if(!canBeMatched(e,a)||!a.events[n])return!1;var o=!1;return Object.keys(a.keyDictionary).every(function(a){return!!e.isEventTriggered(a,n)&&(t&&t===e.getNormalizedKeyName(a)&&(o=!e.wasEventPreviouslyTriggered(a,n)),!0)})&&o}},{key:`_setOrder`,value:function(){var e=Object.values(this._actionConfigs).reduce(function(e,t){var n=t.id,a=t.size;return e[a]||(e[a]=[]),e[a].push(n),e},{});this._order=Object.keys(e).sort(function(e,t){return t-e}).reduce(function(t,n){return t.concat(e[n])},[])}},{key:`_addNewActionConfig`,value:function(e,t){var n=e.prefix,a=e.sequenceLength,o=e.id,s=e.keyDictionary,l=e.size,u=e.keyEventType,d=e.actionName;this._setCombinationMatcher(o,{prefix:n,sequenceLength:a,id:o,keyDictionary:s,size:l,events:{}}),this._addHandlerToActionConfig(o,{keyEventType:u,actionName:d,handler:t})}},{key:`_addHandlerToActionConfig`,value:function(e,t){var n=t.keyEventType,a=t.actionName,o=t.handler,s=this._getCombinationMatcher(e);this._setCombinationMatcher(e,_objectSpread$1({},s,{events:_objectSpread$1({},s.events,_defineProperty$3({},n,{actionName:a,handler:o}))}))}},{key:`_setCombinationMatcher`,value:function(e,t){this._actionConfigs[e]=t}},{key:`_getCombinationMatcher`,value:function(e){return this._actionConfigs[e]}},{key:`_includesMatcherForCombination`,value:function(e){return!!this._getCombinationMatcher(e)}}]),e}(),KeyHistoryMatcher=function(){function e(){_classCallCheck$1(this,e),this._combinationMatchers={},this._eventRecord=KeyEventStateArrayManager.newRecord()}return _createClass$1(e,[{key:`addMatch`,value:function(e,t){this._getOrCreateCombinationMatcher(e.prefix).addMatch(e,t),KeyEventStateArrayManager.setBit(this._eventRecord,e.keyEventType,KeyEventState.seen),(!this._longestSequence||this._longestSequence<e.sequenceLength)&&(this._longestSequence=e.sequenceLength)}},{key:`findMatch`,value:function(e,t,n){var a=this._findCombinationMatcher(e);return a?a.findMatch(e.getCurrentCombination(),e.getCurrentCombination().getNormalizedKeyName(t),n):null}},{key:`hasMatchesForEventType`,value:function(e){return!!this._eventRecord[e]}},{key:`getLongestSequence`,value:function(){return this._longestSequence}},{key:`toJSON`,value:function(){var e=this;return Object.keys(this._combinationMatchers).reduce(function(t,n){return t[n]=e._combinationMatchers[n].toJSON(),t},{})}},{key:`_getOrCreateCombinationMatcher`,value:function(e){return this._combinationMatchers[e]||(this._combinationMatchers[e]=new KeyCombinationMatcher),this._combinationMatchers[e]}},{key:`_findCombinationMatcher`,value:function(e){var t=e.getMostRecentCombinations(this.getLongestSequence());if(t.length===0)return this._combinationMatchers[``];for(var n=t.map(function(e){return e.getIds()}),a=n.map(function(e){return e.length}),o=Array(n.length).fill(0),s=!1;!s;){var l=o.map(function(e,t){return n[t][e]}).join(` `);if(this._combinationMatchers[l])return this._combinationMatchers[l];for(var u=0,d=!0;d&&u<o.length;){var f=(indexFromEnd(o,u)+1)%(indexFromEnd(a,u)||1);o[o.length-(u+1)]=f,d=f==0,d&&u++}s=u===o.length}}}]),e}(),ActionResolver=function(){function e(t){_classCallCheck$1(this,e),this._keyMapMatchers=[],this._unmatchedHandlerStatus=[],this._handlersDictionary={},this._keySequencesDictionary={};for(var n=t.getNewIterator();n.next();){var a=n.getComponent().handlers;this._unmatchedHandlerStatus.push([Object.keys(a).length,{}]),this._keyMapMatchers.push(new KeyHistoryMatcher)}this._componentList=t,this._componentListIterator=t.getNewIterator()}return _createClass$1(e,[{key:`getKeyHistoryMatcher`,value:function(e){if(this._componentHasUnmatchedHandlers(e))for(;this._componentListIterator.next();)this._addHandlersFromComponent(),this._addActionsFromComponent();return this._getKeyHistoryMatcher(e)}},{key:`componentHasActionsBoundToEventType`,value:function(e,t){return this.getKeyHistoryMatcher(e).hasMatchesForEventType(t)}},{key:`findMatchingKeySequenceInComponent`,value:function(e,t,n,a){return this.componentHasActionsBoundToEventType(e,a)?this.getKeyHistoryMatcher(e).findMatch(t,n,a):null}},{key:`_getKeyHistoryMatcher`,value:function(e){return this._keyMapMatchers[e]}},{key:`_addActionsFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().actions;Object.keys(t).forEach(function(n){var a=e._getHandlers(n);if(a){var o=a[0],s=e._componentList.getAtPosition(o).handlers[n],l=e._getKeyHistoryMatcher(o);t[n].forEach(function(t){var n=[t.prefix,t.id].join(` `);e._isClosestHandlerFound(n,t)||(l.addMatch(t,s),e._addKeySequence(n,[o,t.keyEventType]))}),a.forEach(function(t){var a=e._getUnmatchedHandlerStatus(t);a[1][n]||(a[1][n]=!0,a[0]--)})}})}},{key:`_getHandlers`,value:function(e){return this._handlersDictionary[e]}},{key:`_addHandlersFromComponent`,value:function(){var e=this,t=this._componentListIterator.getComponent().handlers;Object.keys(t).forEach(function(t){e._addHandler(t)})}},{key:`_addHandler`,value:function(e){this._handlersDictionary[e]||(this._handlersDictionary[e]=[]),this._handlersDictionary[e].push(this._componentListIterator.getPosition())}},{key:`_addKeySequence`,value:function(e,t){this._keySequencesDictionary[e]||(this._keySequencesDictionary[e]=[]),this._keySequencesDictionary[e].push(t)}},{key:`_componentHasUnmatchedHandlers`,value:function(e){return 0<this._getUnmatchedHandlerStatus(e)[0]}},{key:`_getUnmatchedHandlerStatus`,value:function(e){return this._unmatchedHandlerStatus[e]}},{key:`_isClosestHandlerFound`,value:function(e,t){return this._keySequencesDictionary[e]&&this._keySequencesDictionary[e].some(function(e){return e[1]===t.keyEventType})}}]),e}(),SEQUENCE_ATTRIBUTES=[`sequence`,`action`],KEYMAP_ATTRIBUTES=[`name`,`description`,`group`],AbstractKeyEventStrategy=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},n=1<arguments.length?arguments[1]:void 0;_classCallCheck$1(this,e),this.logger=t.logger||new Logger(`warn`),this.componentId=-1,this.keyEventManager=n,this._componentTree=new ComponentTree,this.rootComponentId=null,this._reset(),this.resetKeyHistory()}return _createClass$1(e,[{key:`_reset`,value:function(){this.componentList=new ComponentOptionsList,this._initHandlerResolutionState()}},{key:`_newKeyHistory`,value:function(){return new KeyHistory({maxLength:this.componentList.getLongestSequence()})}},{key:`getKeyHistory`,value:function(){return this._keyHistory||=this._newKeyHistory(),this._keyHistory}},{key:`_initHandlerResolutionState`,value:function(){this._actionResolver=null}},{key:`resetKeyHistory`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};this.keypressEventsToSimulate=[],this.keyupEventsToSimulate=[],this._keyHistory=this.getKeyHistory().any()&&!e.force?new KeyHistory({maxLength:this.componentList.getLongestSequence()},new KeyCombination(this.getCurrentCombination().keysStillPressedDict())):this._newKeyHistory()}},{key:`getApplicationKeyMap`,value:function(){return this.rootComponentId===null?{}:this._buildApplicationKeyMap([this.rootComponentId],{})}},{key:`_buildApplicationKeyMap`,value:function(e,t){var n=this;return e.forEach(function(e){var a=n._componentTree.get(e),o=a.childIds,s=a.keyMap;s&&Object.keys(s).forEach(function(e){var a=s[e];t[e]={},isObject(a)?hasKey(a,`sequences`)?(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=n._createSequenceFromConfig(a.sequences)):(copyAttributes(a,t[e],KEYMAP_ATTRIBUTES),t[e].sequences=[copyAttributes(a,{},SEQUENCE_ATTRIBUTES)]):t[e].sequences=n._createSequenceFromConfig(a)}),n._buildApplicationKeyMap(o,t)}),t}},{key:`_createSequenceFromConfig`,value:function(e){return arrayFrom(e).map(function(e){return isObject(e)?copyAttributes(e,{},SEQUENCE_ATTRIBUTES):{sequence:e}})}},{key:`registerKeyMap`,value:function(e){return this.componentId+=1,this._componentTree.add(this.componentId,e),this.componentId}},{key:`reregisterKeyMap`,value:function(e,t){this._componentTree.update(e,t)}},{key:`registerComponentMount`,value:function(e,t){isUndefined(t)?this.rootComponentId=e:this._componentTree.setParent(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._componentTree.remove(e),e===this.rootComponentId&&(this.rootComponentId=null)}},{key:`_addComponent`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;this.componentList.add(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence())}},{key:`_allKeysAreReleased`,value:function(){return this.getCurrentCombination().hasEnded()}},{key:`getCurrentCombination`,value:function(){return this.getKeyHistory().getCurrentCombination()}},{key:`_shouldSimulate`,value:function(e,t){var n=hasKeyPressEvent(t),a=this.getCurrentCombination();return e===KeyEventType.keypress?!n||n&&a.isKeyStillPressed(`Meta`):e===KeyEventType.keyup&&keyupIsHiddenByCmd(t)&&a.isKeyReleased(`Meta`)}},{key:`_cloneAndMergeEvent`,value:function(e,t){return _objectSpread$1({},Object.keys(ModifierFlagsDictionary).reduce(function(t,n){return t[n]=e[n],t},{}),t)}},{key:`_callClosestMatchingHandler`,value:function(e,t,n,a,o){for(this._actionResolver||=new ActionResolver(this.componentList);o<=a;){this._actionResolver.getKeyHistoryMatcher(o);var s=this._actionResolver.findMatchingKeySequenceInComponent(o,this.getKeyHistory(),t,n);if(this.getCurrentCombination(),s){var l=s.events[n];return Configuration.option(`allowCombinationSubmatches`)&&KeyCombinationSerializer.serialize(s.keyDictionary),l.handler(e),this._stopEventPropagationAfterHandlingIfEnabled(e,o),!0}this._actionResolver.componentHasActionsBoundToEventType(o,n),o++}}},{key:`_stopEventPropagationAfterHandlingIfEnabled`,value:function(e,t){return!!Configuration.option(`stopEventPropagationAfterHandling`)&&(this._stopEventPropagation(e,t),!0)}},{key:`_stopEventPropagation`,value:function(){throw Error(`_stopEventPropagation must be overridden by a subclass`)}},{key:`_checkForModifierFlagDiscrepancies`,value:function(e,t,n){var a=this;Object.keys(ModifierFlagsDictionary).forEach(function(o){if(t!==o||n!==KeyEventType.keyup){var s=a.getCurrentCombination(),l=s.isKeyStillPressed(o);ModifierFlagsDictionary[o].forEach(function(t){!1===e[t]&&l&&s.setKeyState(o,KeyEventType.keyup,stateFromEvent(e))})}})}},{key:`_logPrefix`,value:function(){}}]),e}(),KeyEventCounter=function(){function e(){_classCallCheck$1(this,e)}return _createClass$1(e,null,[{key:`getId`,value:function(){return isUndefined(this._id)&&(this._id=0),this._id}},{key:`incrementId`,value:function(){this._id=this.getId()+1}}]),e}(),normalizeKey={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},EventResponse={unseen:0,ignored:1,seen:2,recorded:3,handled:4},EventPropagator=function(){function e(t,n){var a=n.logger,o=n.logPrefix;_classCallCheck$1(this,e),this._componentList=t,this._previousPropagation=null,this.logger=a,this._logPrefix=o,this._reset()}return _createClass$1(e,[{key:`_reset`,value:function(){this._previousPosition=-1,this._position=-1,this._actionHandled=!1,this._ignoreEvent=!1,this._observeIgnoredEvents=!1,this._stopping=!1,this._componentId=null,this._key=null,this._type=null}},{key:`isFirstPropagationStep`,value:function(){var e=this.getPreviousPosition();return e===-1||e>=this._position}},{key:`isForKey`,value:function(e){return this._key===e}},{key:`isForEventType`,value:function(e){return this._type===e}},{key:`startNewPropagationStep`,value:function(e,t,n,a){return this._position=this._componentList.getIndexById(e),this._componentId=e,this.isFirstPropagationStep()&&(KeyEventCounter.incrementId(),this._key=t.key,this._type=a),!(t.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))||(this.ignoreEvent(t),!1)}},{key:`finishPropagationStep`,value:function(){this.isStopped()||this._componentList.isRoot(this._componentId)?(this._previousPropagation=this._clone(),this._reset()):this._previousPosition=this._position}},{key:`getPreviousPropagation`,value:function(){return this._previousPropagation||=this._clone({copyState:!1}),this._previousPropagation}},{key:`getPreviousPosition`,value:function(){return this._previousPosition}},{key:`observeIgnoredEvents`,value:function(){this._observeIgnoredEvents=!0}},{key:`ignoreEvent`,value:function(e){return this.setIgnoreEvent(!0),!!(this.isIgnoringEvent()&&Configuration.option(`stopEventPropagationAfterIgnoring`))&&(this.stop(e),this.finishPropagationStep(),!0)}},{key:`setIgnoreEvent`,value:function(e){this._ignoreEvent=e}},{key:`isIgnoringEvent`,value:function(){return!this._observeIgnoredEvents&&this._ignoreEvent}},{key:`isStopped`,value:function(){return this._stopping}},{key:`stop`,value:function(e){return!this.isStopped()&&(this._stopping=!0,e.simulated||e.stopPropagation(),!0)}},{key:`isPendingPropagation`,value:function(){var e=this.getPreviousPosition();return e!==-1&&e+1<this._position}},{key:`isHandled`,value:function(){return this._actionHandled}},{key:`setHandled`,value:function(){this._actionHandled=!0}},{key:`_clone`,value:function(){var t=(0<arguments.length&&arguments[0]!==void 0?arguments[0]:{}).copyState,n=new e(this._componentList,{logger:this.logger,logPrefix:this._logPrefix});return(t===void 0||t)&&Object.assign(n,this),n}}]),e}(),FocusOnlyKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.focusTreeId=0,e}return _inherits(t,e),_createClass$1(t,[{key:`_reset`,value:function(){_get(_getPrototypeOf(t.prototype),`_reset`,this).call(this),this.keypressEventsToSimulate=[],this.focusTreeId+=1,this.eventPropagator=new EventPropagator(this.componentList,{logger:this.logger,logPrefix:this._logPrefix.bind(this)})}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;if(this.resetOnNextFocus&&=(this._reset(),!1),!this.componentList.containsId(e))return this._addComponent(e,t,n,a),this.focusTreeId}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;e===this.focusTreeId&&this.componentList.containsId(t)&&(this.componentList.update(t,n,a,o),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._initHandlerResolutionState())}},{key:`disableHotKeys`,value:function(e,t){return this.resetOnNextFocus||=!0,this.eventPropagator.isPendingPropagation()}},{key:`handleKeydown`,value:function(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=getKeyName(e);if(t!==this.focusTreeId)return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keydown)){if(this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keydown)===EventResponse.handled){var s=stateFromEvent(e),l=this.getCurrentCombination();l.isKeyIncluded(o)||l.isEnding()?this._startAndLogNewKeyCombination(o,t,n,s):this._addToAndLogCurrentKeyCombination(o,KeyEventType.keydown,t,n,s),this._callHandlerIfActionNotHandled(e,o,KeyEventType.keydown,n,t)}return this._simulateKeyPressForNonPrintableKeys(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),!1}}},{key:`_howToHandleKeyEvent`,value:function(e,t,n,a,o,s){if(this.eventPropagator.isFirstPropagationStep()){if(o.ignoreEventsCondition(e)&&this.eventPropagator.ignoreEvent(e))return this._eventIsToBeIgnored(e,n,a,s);this._checkForModifierFlagDiscrepancies(e,a,s)}else if(this.eventPropagator.isIgnoringEvent())return this._eventIsToBeIgnored(e,n,a,s);return EventResponse.handled}},{key:`_eventIsToBeIgnored`,value:function(e,t,n,a){return EventResponse.ignored}},{key:`handleKeyPress`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyPressSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keypress)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keypress);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keypress,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keypress,n,t),this.eventPropagator.finishPropagationStep(),l}}},{key:`handleKeyUp`,value:function(e,t,n,a){var o=getKeyName(e),s=this.getCurrentCombination();if(s.isKeyUpSimulated(o))return this.eventPropagator.ignoreEvent(e),!0;if(this.eventPropagator.startNewPropagationStep(n,e,o,KeyEventType.keyup)){var l=t!==this.focusTreeId,u=this._howToHandleKeyEvent(e,t,n,o,a,KeyEventType.keyup);return this.eventPropagator.isFirstPropagationStep(n)&&s.isKeyIncluded(o)&&this._addToAndLogCurrentKeyCombination(o,KeyEventType.keyup,t,n,stateFromEvent(e)),u===EventResponse.handled&&this._callHandlerIfActionNotHandled(e,o,KeyEventType.keyup,n,t),this._simulateKeyUpEventsHiddenByCmd(e,o,t,n,a),this.eventPropagator.finishPropagationStep(),l}}},{key:`closeHangingKeyCombination`,value:function(e,t){var n=this.getCurrentCombination();n.isKeyIncluded(e)&&!n.isEventTriggered(e,t)&&n.setKeyState(e,t,KeyEventState.simulated)}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t,n,a,o){this._handleEventSimulation(`keypressEventsToSimulate`,`simulatePendingKeyPressEvents`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t,n,a,o){var s=this;isCmdKey(t)&&this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||s._handleEventSimulation(`keyupEventsToSimulate`,`simulatePendingKeyUpEvents`,s._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t,focusTreeId:n,componentId:a,options:o})})}},{key:`_stopEventPropagation`,value:function(e,t){this.eventPropagator.stop(e)}},{key:`getEventPropagator`,value:function(){return this.eventPropagator}},{key:`_startAndLogNewKeyCombination`,value:function(e,t,n,a){this.getKeyHistory().startNewKeyCombination(e,a)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n,a,o){this.getKeyHistory().addKeyToCurrentCombination(e,t,o)}},{key:`_handleEventSimulation`,value:function(e,t,n,a){var o=a.event,s=a.key,l=a.focusTreeId,u=a.componentId,d=a.options;if(n&&Configuration.option(`simulateMissingKeyPressEvents`)){var f=this._cloneAndMergeEvent(o,{key:s,simulated:!0});this[e].push({event:f,focusTreeId:l,componentId:u,options:d})}(this.componentList.isRoot(u)||this.eventPropagator.isStopped())&&!this.keyEventManager.isGlobalListenersBound()&&this[t]()}},{key:`simulatePendingKeyPressEvents`,value:function(){this._simulatePendingKeyEvents(`keypressEventsToSimulate`,`handleKeyPress`)}},{key:`simulatePendingKeyUpEvents`,value:function(){this._simulatePendingKeyEvents(`keyupEventsToSimulate`,`handleKeyUp`)}},{key:`_simulatePendingKeyEvents`,value:function(e,t){var n=this;0<this[e].length&&KeyEventCounter.incrementId(),this[e].forEach(function(e){var a=e.event,o=e.focusTreeId,s=e.componentId,l=e.options;n[t](a,o,s,l)}),this[e]=[]}},{key:`_callHandlerIfActionNotHandled`,value:function(e,t,n,a,o){if(this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&!this.eventPropagator.isHandled()){var s=this.eventPropagator.getPreviousPosition(),l=this.componentList.getIndexById(a);this._callClosestMatchingHandler(e,t,n,l,s===-1?0:s)&&this.eventPropagator.setHandled()}}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.logIcons,a=Logger.eventIcons,o=Logger.componentIcons,s=`HotKeys (`;if(!1!==t.focusTreeId){var l=isUndefined(t.focusTreeId)?this.focusTreeId:t.focusTreeId;s+=`F${l}${n[l%n.length]}-`}if(!1!==t.eventId){var u=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;s+=`E${u}${a[u%a.length]}-`}s+=`C${e}${o[e%o.length]}`;var d=this.componentList.getIndexById(e);return isUndefined(d)||(s+=`-P${d}${o[d%o.length]}:`),`${s})`}}]),t}(AbstractKeyEventStrategy),GlobalKeyEventStrategy=function(e){function t(){var e,n=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},a=1<arguments.length?arguments[1]:void 0;return _classCallCheck$1(this,t),e=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,n,a)),e.listenersBound=!1,e.eventOptions={ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)},e.listeners={},e}return _inherits(t,e),_createClass$1(t,[{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this._addComponent(e,t,n,a),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`updateEnabledHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;this.eventOptions=o,this.componentList.update(e,t,n,a),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`disableHotKeys`,value:function(e){this.componentList.remove(e),this.getKeyHistory().setMaxLength(this.componentList.getLongestSequence()),this._updateDocumentHandlers(),this._initHandlerResolutionState()}},{key:`_updateDocumentHandlers`,value:function(){var e=this,t=this._listenersShouldBeBound();!this.listenersBound&&t?(Object.values(KeyEventType).forEach(function(t){var n=describeKeyEventType(t);document[`on${n}`]=function(t){e.keyEventManager[`handleGlobal${normalizeEventName(n)}`](t)}}),this.listenersBound=!0):this.listenersBound&&!t&&(Object.values(KeyEventType).forEach(function(e){var t=describeKeyEventType(e);delete document[`on${t}`]}),this.listenersBound=!1)}},{key:`_listenersShouldBeBound`,value:function(){return this.componentList.any()||this.listeners.keyCombination}},{key:`handleKeydown`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;this._checkForModifierFlagDiscrepancies(e,t,KeyEventType.keydown);var n=this._howReactAppRespondedTo(e,t,KeyEventType.keydown);if(!(n===EventResponse.unseen&&this.eventOptions.ignoreEventsCondition(e))){if(n!==EventResponse.ignored){var a=stateFromEvent(e),o=this.getCurrentCombination();o.isKeyIncluded(t)||o.isEnding()?this._startAndLogNewKeyCombination(t,a):this._addToAndLogCurrentKeyCombination(t,KeyEventType.keydown,a)}contains([EventResponse.ignored,EventResponse.handled],n)||this._callHandlerIfExists(e,t,KeyEventType.keydown),this._simulateKeyPressForNonPrintableKeys(e,t)}}},{key:`_howReactAppRespondedTo`,value:function(e,t,n){var a=this.keyEventManager.reactAppHistoryWithEvent(t,n);return a===EventResponse.handled||a===EventResponse.ignored||a===EventResponse.seen||KeyEventCounter.incrementId(),a}},{key:`handleKeyPress`,value:function(e){var t=getKeyName(e);if(e.repeat&&Configuration.option(`ignoreRepeatedEventsWhenKeyHeldDown`))return!0;var n=this.getCurrentCombination();if(n.isKeyPressSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keypress);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keypress,stateFromEvent(e)),a===EventResponse.unseen&&(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keypress),this.eventOptions.ignoreEventsCondition(e))||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keypress)}},{key:`handleKeyUp`,value:function(e){var t=getKeyName(e),n=this.getCurrentCombination();if(n.isKeyUpSimulated(t))return!0;var a=this._howReactAppRespondedTo(e,t,KeyEventType.keyup);n.isKeyIncluded(t)&&this._addToAndLogCurrentKeyCombination(t,KeyEventType.keyup,stateFromEvent(e)),a===EventResponse.unseen?(this.keyEventManager.closeHangingKeyCombination(t,KeyEventType.keyup),this.eventOptions.ignoreEventsCondition(e)||!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup)):!contains([EventResponse.ignored,EventResponse.handled],a)&&this._callHandlerIfExists(e,t,KeyEventType.keyup),this._simulateKeyUpEventsHiddenByCmd(e,t),this.listeners.keyCombination&&this._allKeysAreReleased()&&this.listeners.keyCombination({keys:n.getKeyDictionary(),id:n.describe()})}},{key:`_simulateKeyPressForNonPrintableKeys`,value:function(e,t){this.keyEventManager.simulatePendingKeyPressEvents(),this._handleEventSimulation(`handleKeyPress`,this._shouldSimulate(KeyEventType.keypress,t),{event:e,key:t})}},{key:`_simulateKeyUpEventsHiddenByCmd`,value:function(e,t){var n=this;isCmdKey(t)&&(this.keyEventManager.simulatePendingKeyUpEvents(),this.getCurrentCombination().forEachKey(function(t){isCmdKey(t)||n._handleEventSimulation(`handleKeyUp`,n._shouldSimulate(KeyEventType.keyup,t),{event:e,key:t})}))}},{key:`_startAndLogNewKeyCombination`,value:function(e,t){this.getKeyHistory().startNewKeyCombination(e,t)}},{key:`_addToAndLogCurrentKeyCombination`,value:function(e,t,n){this.getKeyHistory().addKeyToCurrentCombination(e,t,n)}},{key:`_handleEventSimulation`,value:function(e,t,n){var a=n.event,o=n.key;if(t&&Configuration.option(`simulateMissingKeyPressEvents`)){var s=this._cloneAndMergeEvent(a,{key:o,simulated:!0});this[e](s)}}},{key:`_callHandlerIfExists`,value:function(e,t,n){this.getCurrentCombination().describe(),this.componentList.anyActionsForEventType(n)&&this._callClosestMatchingHandler(e,t,n)}},{key:`_callClosestMatchingHandler`,value:function(e,n,a){for(var o,s=this.componentList.getNewIterator();s.next();)if(o=_get(_getPrototypeOf(t.prototype),`_callClosestMatchingHandler`,this).call(this,e,n,a,s.getPosition(),0),o)return}},{key:`_stopEventPropagation`,value:function(e,t){e.simulated||e.stopPropagation()}},{key:`addKeyCombinationListener`,value:function(e){var t=this,n=function(){delete t.listeners.keyCombination};return this.listeners.keyCombination=function(t){e(t),n()},this._updateDocumentHandlers(),n}},{key:`_logPrefix`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=Logger.eventIcons,a=Logger.componentIcons,o=`HotKeys (GLOBAL`;if(!1!==t.eventId){var s=isUndefined(t.eventId)?KeyEventCounter.getId():t.eventId;o=`${o}-E${s}${n[s%n.length]}`}return isUndefined(e)?`${o}):`:`${o}-C${e}${a[e%a.length]}):`}}]),t}(AbstractKeyEventStrategy),KeyEventManager=function(){function e(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};_classCallCheck$1(this,e),this.logger=t.logger||new Logger(Configuration.option(`logLevel`)),this._focusOnlyEventStrategy=new FocusOnlyKeyEventStrategy({configuration:t,logger:this.logger},this),this._globalEventStrategy=new GlobalKeyEventStrategy({configuration:t,logger:this.logger},this),this.mountedComponentsCount=0}return _createClass$1(e,null,[{key:`getInstance`,value:function(){var t=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this.instance||=new e(t),this.instance}},{key:`clear`,value:function(){delete this.instance}}]),_createClass$1(e,[{key:`getApplicationKeyMap`,value:function(){return Object.assign(this._globalEventStrategy.getApplicationKeyMap(),this._focusOnlyEventStrategy.getApplicationKeyMap())}},{key:`registerKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._focusOnlyEventStrategy.registerKeyMap(e)}},{key:`reregisterKeyMap`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{};this._focusOnlyEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterKeyMap`,value:function(e){this._focusOnlyEventStrategy.deregisterKeyMap(e)}},{key:`registerComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._focusOnlyEventStrategy.registerComponentMount(e,t)}},{key:`registerComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`_incrementComponentCount`,value:function(){var e=this,t=this.mountedComponentsCount;this.mountedComponentsCount+=1,t===0&&this.mountedComponentsCount===1&&(window.onblur=function(){return e._clearKeyHistory()})}},{key:`_decrementComponentCount`,value:function(){var e=this.mountedComponentsCount;--this.mountedComponentsCount,e===1&&this.mountedComponentsCount===0&&delete window.onblur}},{key:`_clearKeyHistory`,value:function(){this._focusOnlyEventStrategy.resetKeyHistory({force:!0}),this._globalEventStrategy.resetKeyHistory({force:!0})}},{key:`registerGlobalKeyMap`,value:function(){var e=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return this._globalEventStrategy.registerKeyMap(e)}},{key:`registerGlobalComponentUnmount`,value:function(){this._decrementComponentCount()}},{key:`registerGlobalComponentMount`,value:function(e,t){return this._incrementComponentCount(),this._globalEventStrategy.registerComponentMount(e,t)}},{key:`reregisterGlobalKeyMap`,value:function(e,t){this._globalEventStrategy.reregisterKeyMap(e,t)}},{key:`deregisterGlobalKeyMap`,value:function(e){this._globalEventStrategy.deregisterKeyMap(e)}},{key:`addKeyCombinationListener`,value:function(e){return this._globalEventStrategy.addKeyCombinationListener(e)}},{key:`enableHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0;return this._focusOnlyEventStrategy.enableHotKeys(e,t,n,a)}},{key:`updateEnabledHotKeys`,value:function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:{},o=4<arguments.length?arguments[4]:void 0;return this._focusOnlyEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableHotKeys`,value:function(e,t){return this._focusOnlyEventStrategy.disableHotKeys(e,t)}},{key:`handleKeydown`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeydown(e,t,n,a)}},{key:`handleKeyPress`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyPress(e,t,n,a)}},{key:`handleKeyUp`,value:function(e,t,n,a){if(isFromFocusOnlyComponent(t))return this._focusOnlyEventStrategy.handleKeyUp(e,t,n,a)}},{key:`enableGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.enableHotKeys(e,t,n,a,o)}},{key:`updateEnabledGlobalHotKeys`,value:function(e){var t=1<arguments.length&&arguments[1]!==void 0?arguments[1]:{},n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:{},a=3<arguments.length?arguments[3]:void 0,o=4<arguments.length?arguments[4]:void 0;return this._globalEventStrategy.updateEnabledHotKeys(e,t,n,a,o)}},{key:`disableGlobalHotKeys`,value:function(e){return this._globalEventStrategy.disableHotKeys(e)}},{key:`handleGlobalKeyDown`,value:function(e){return this._globalEventStrategy.handleKeydown(e)}},{key:`handleGlobalKeyPress`,value:function(e){return this._globalEventStrategy.handleKeyPress(e)}},{key:`handleGlobalKeyUp`,value:function(e){return this._globalEventStrategy.handleKeyUp(e)}},{key:`ignoreEvent`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().ignoreEvent(e)}},{key:`observeIgnoredEvents`,value:function(e){this._focusOnlyEventStrategy.getEventPropagator().observeIgnoredEvents(e)}},{key:`closeHangingKeyCombination`,value:function(e,t){this._focusOnlyEventStrategy.closeHangingKeyCombination(e,t)}},{key:`reactAppHistoryWithEvent`,value:function(e,t){var n=this._focusOnlyEventStrategy.eventPropagator.getPreviousPropagation();return n.isForKey(e)&&n.isForEventType(t)?n.isHandled()?EventResponse.handled:n.isIgnoringEvent()?EventResponse.ignored:EventResponse.seen:EventResponse.unseen}},{key:`simulatePendingKeyPressEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyPressEvents()}},{key:`simulatePendingKeyUpEvents`,value:function(){this._focusOnlyEventStrategy.simulatePendingKeyUpEvents()}},{key:`isGlobalListenersBound`,value:function(){return this._globalEventStrategy.listenersBound}}]),e}(),HotKeys=withHotKeys(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=e.innerRef,a=e.component,o=_objectWithoutProperties$1(e,[`hotKeys`,`innerRef`,`component`]),s=a||Configuration.option(`defaultComponent`);return import_react.createElement(s,_objectSpread$1({},t,{ref:n},o))}}]),t}(import_react.Component)),HotKeys.propTypes={innerRef:import_prop_types.default.oneOfType([import_prop_types.default.object,import_prop_types.default.func])},GlobalHotKeys$2=function(e){function t(e){var n;return _classCallCheck$1(this,t),n=_possibleConstructorReturn(this,_getPrototypeOf(t).call(this,e)),n._id=KeyEventManager.getInstance().registerGlobalKeyMap(e.keyMap),n._childContext={globalHotKeysParentId:n._id},n}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){return this.props.children||null}},{key:`componentDidUpdate`,value:function(){var e=KeyEventManager.getInstance();if(e.reregisterGlobalKeyMap(this._id,this.props.keyMap),this.props.allowChanges||!Configuration.option(`ignoreKeymapAndHandlerChangesByDefault`)){var t=this.props,n=t.keyMap,a=t.handlers;e.updateEnabledGlobalHotKeys(this._id,n,a,this._getComponentOptions(),this._getEventOptions())}}},{key:`componentDidMount`,value:function(){var e=this.props,t=e.keyMap,n=e.handlers,a=this.context.globalHotKeysParentId,o=KeyEventManager.getInstance();o.registerGlobalComponentMount(this._id,a),o.enableGlobalHotKeys(this._id,t,n,this._getComponentOptions(),this._getEventOptions())}},{key:`componentWillUnmount`,value:function(){var e=KeyEventManager.getInstance();e.deregisterGlobalKeyMap(this._id),e.disableGlobalHotKeys(this._id),e.registerGlobalComponentUnmount()}},{key:`_getComponentOptions`,value:function(){return{defaultKeyEvent:Configuration.option(`defaultKeyEvent`)}}},{key:`_getEventOptions`,value:function(){return{ignoreEventsCondition:Configuration.option(`ignoreEventsCondition`)}}}]),t}(import_react.Component),_defineProperty$3(GlobalHotKeys$2,`propTypes`,{keyMap:import_prop_types.default.object,handlers:import_prop_types.default.object,allowChanges:import_prop_types.default.bool}),GlobalHotKeys$1$1=backwardsCompatibleContext(GlobalHotKeys$2,{deprecatedAPI:{contextTypes:{globalHotKeysParentId:import_prop_types.default.number},childContextTypes:{globalHotKeysParentId:import_prop_types.default.number}},newAPI:{contextType:{globalHotKeysParentId:void 0}}}),IgnoreKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`ignoreEvent`),ObserveKeys$1=withHotKeysIgnoreOverride(function(e){function t(){return _classCallCheck$1(this,t),_possibleConstructorReturn(this,_getPrototypeOf(t).apply(this,arguments))}return _inherits(t,e),_createClass$1(t,[{key:`render`,value:function(){var e=this.props,t=e.hotKeys,n=_objectWithoutProperties$1(e,[`hotKeys`]),a=n.component||Configuration.option(`defaultComponent`);return import_react.createElement(a,_objectSpread$1({},t,n))}}]),t}(import_react.Component),{},`observeIgnoredEvents`)})),require_index_es=__commonJSMin(((e,t)=>{t.exports=(init_react_hotkeys_production_min(),__toCommonJS(react_hotkeys_production_min_exports))})),import_index_es=require_index_es(),cropType={ASPARAGUS:`ASPARAGUS`,CARROT:`CARROT`,CORN:`CORN`,GARLIC:`GARLIC`,GRAPE:`GRAPE`,JALAPENO:`JALAPENO`,OLIVE:`OLIVE`,ONION:`ONION`,PEA:`PEA`,POTATO:`POTATO`,PUMPKIN:`PUMPKIN`,SOYBEAN:`SOYBEAN`,SPINACH:`SPINACH`,SUNFLOWER:`SUNFLOWER`,STRAWBERRY:`STRAWBERRY`,SWEET_POTATO:`SWEET_POTATO`,TOMATO:`TOMATO`,WATERMELON:`WATERMELON`,WHEAT:`WHEAT`,WEED:`WEED`},recipeType={FERMENTATION:`FERMENTATION`,FORGE:`FORGE`,KITCHEN:`KITCHEN`,RECYCLING:`RECYCLING`,WINE:`WINE`},fieldMode={CLEANUP:`CLEANUP`,FERTILIZE:`FERTILIZE`,HARVEST:`HARVEST`,MINE:`MINE`,OBSERVE:`OBSERVE`,PLANT:`PLANT`,SET_SPRINKLER:`SET_SPRINKLER`,SET_SCARECROW:`SET_SCARECROW`,WATER:`WATER`},stageFocusType={NONE:`NONE`,HOME:`HOME`,FIELD:`FIELD`,FOREST:`FOREST`,SHOP:`SHOP`,COW_PEN:`COW_PEN`,INVENTORY:`INVENTORY`,WORKSHOP:`WORKSHOP`,CELLAR:`CELLAR`},cropLifeStage={SEED:`SEED`,GROWING:`GROWING`,GROWN:`GROWN`},itemType={COW_FEED:`COW_FEED`,CRAFTED_ITEM:`CRAFTED_ITEM`,CROP:`CROP`,FERTILIZER:`FERTILIZER`,FUEL:`FUEL`,HUGGING_MACHINE:`HUGGING_MACHINE`,MILK:`MILK`,ORE:`ORE`,SCARECROW:`SCARECROW`,SPRINKLER:`SPRINKLER`,STONE:`STONE`,TOOL_UPGRADE:`TOOL_UPGRADE`,WEED:`WEED`},fertilizerType={NONE:`NONE`,STANDARD:`STANDARD`,RAINBOW:`RAINBOW`},genders={FEMALE:`FEMALE`,MALE:`MALE`},cowColors={BLUE:`BLUE`,BROWN:`BROWN`,GREEN:`GREEN`,ORANGE:`ORANGE`,PURPLE:`PURPLE`,RAINBOW:`RAINBOW`,WHITE:`WHITE`,YELLOW:`YELLOW`},{RAINBOW,...standardCowColors}=cowColors,dialogView={NONE:`NONE`,ACCOUNTING:`ACCOUNTING`,ACHIEVEMENTS:`ACHIEVEMENTS`,FARMERS_LOG:`FARMERS_LOG`,KEYBINDINGS:`KEYBINDINGS`,ONLINE_PEERS:`ONLINE_PEERS`,PRICE_EVENTS:`PRICE_EVENTS`,SETTINGS:`SETTINGS`,STATS:`STATS`},toolType={SCYTHE:`SCYTHE`,SHOVEL:`SHOVEL`,HOE:`HOE`,WATERING_CAN:`WATERING_CAN`},toolLevel={UNAVAILABLE:`UNAVAILABLE`,DEFAULT:`DEFAULT`,BRONZE:`BRONZE`,IRON:`IRON`,SILVER:`SILVER`,GOLD:`GOLD`},cowTradeRejectionReason={REQUESTED_COW_UNAVAILABLE:`REQUESTED_COW_UNAVAILABLE`},cropFamily={GRAPE:`GRAPE`},grapeVariety={CHARDONNAY:`CHARDONNAY`,SAUVIGNON_BLANC:`SAUVIGNON_BLANC`,CABERNET_SAUVIGNON:`CABERNET_SAUVIGNON`,TEMPRANILLO:`TEMPRANILLO`,NEBBIOLO:`NEBBIOLO`},{freeze:freeze$9}=Object,BREAKPOINTS={XS:0,SM:600,MD:960,LG:1280,XL:1920},LOAN_GARNISHMENT_RATE=.05,LOAN_INTEREST_RATE=.02,FERTILIZER_BONUS=.5,PURCHASEABLE_FIELD_SIZES=freeze$9(new Map([[1,{columns:8,rows:12,price:1e3}],[2,{columns:10,rows:16,price:5e3}],[3,{columns:12,rows:18,price:2e4}]])),PURCHASABLE_FOREST_SIZES=freeze$9(new Map([[1,{columns:4,rows:2,price:1e5}],[2,{columns:4,rows:3,price:2e5}],[3,{columns:4,rows:4,price:3e5}]])),LARGEST_PURCHASABLE_FIELD_SIZE=PURCHASEABLE_FIELD_SIZES.get(PURCHASEABLE_FIELD_SIZES.size),PURCHASEABLE_COMBINES=freeze$9(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_COMPOSTERS=freeze$9(new Map([[1,{type:`Basic`,price:1e3}]])),PURCHASEABLE_SMELTERS=freeze$9(new Map([[1,{type:`Basic`,price:25e4}]])),PURCHASEABLE_COW_PENS=freeze$9(new Map([[1,{cows:10,price:1500}],[2,{cows:20,price:1e4}],[3,{cows:30,price:5e4}]])),PURCHASEABLE_CELLARS=freeze$9(new Map([[1,{space:10,price:25e4}],[2,{space:20,price:75e4}],[3,{space:30,price:2e6}]])),CROW_CHANCE=.4,PRECIPITATION_CHANCE=.1,STORM_CHANCE=.5,SCARECROW_ITEM_ID=`scarecrow`,SPRINKLER_ITEM_ID=`sprinkler`,COW_STARTING_WEIGHT_BASE=1800,MALE_COW_WEIGHT_MULTIPLIER=1.1,COW_HUG_BENEFIT=.05,COW_WEIGHT_MULTIPLIER_FEED_BENEFIT=.1,COW_WEIGHT_MULTIPLIER_MINIMUM=.5,COW_WEIGHT_MULTIPLIER_MAXIMUM=1.5,COW_FEED_ITEM_ID=`cow-feed`,HUGGING_MACHINE_ITEM_ID=`hugging-machine`,COW_MINIMUM_HAPPINESS_TO_BREED=.8,NOTIFICATION_DURATION=6e3,PRICE_EVENT_CHANCE=.2,STAGE_TITLE_MAP={[stageFocusType.HOME]:`Home`,[stageFocusType.FIELD]:`Field`,[stageFocusType.FOREST]:`Forest`,[stageFocusType.SHOP]:`Shop`,[stageFocusType.COW_PEN]:`Cows`,[stageFocusType.WORKSHOP]:`Workshop`,[stageFocusType.CELLAR]:`Cellar`},RECIPE_INGREDIENT_VALUE_MULTIPLIER=1.25,I_AM_RICH_BONUSES=[.05,.1,.25],PERSISTED_STATE_KEYS=`allowCustomPeerCowNames.cellarInventory.completedAchievements.cowBreedingPen.cowColorsPurchased.cowForSale.cowInventory.cowsSold.cowsTraded.cropsHarvested.dayCount.experience.farmName.field.forest.historicalDailyLosses.historicalDailyRevenue.historicalValueAdjustments.hoveredPlotRangeSize.playerId.inventory.inventoryLimit.isCombineEnabled.itemsSold.cellarItemsSold.learnedRecipes.loanBalance.loansTakenOut.money.newDayNotifications.notificationLog.priceCrashes.priceSurges.profitabilityStreak.purchasedCombine.purchasedComposter.purchasedCowPen.purchasedCellar.purchasedField.purchasedForest.purchasedSmelter.record7dayProfitAverage.recordProfitabilityStreak.recordSingleDayProfit.revenue.showHomeScreen.showNotifications.todaysLosses.todaysPurchases.todaysRevenue.todaysStartingInventory.toolLevels.useAlternateEndDayButtonPosition.valueAdjustments.version`.split(`.`),PEER_METADATA_STATE_KEYS=[`cowsSold`,`cropsHarvested`,`dayCount`,`experience`,`playerId`,`money`,`pendingPeerMessages`,`version`],DEFAULT_ROOM=`global`,LEFT=`left`,RIGHT=`right`,TOOLBELT_FIELD_MODES=new Set([fieldMode.CLEANUP,fieldMode.HARVEST,fieldMode.WATER,fieldMode.MINE]),RESOURCE_SPAWN_CHANCE=.3,ORE_SPAWN_CHANCE=.25,COAL_SPAWN_CHANCE=.15,STONE_SPAWN_CHANCE=.4,SALT_ROCK_SPAWN_CHANCE=.3,BRONZE_SPAWN_CHANCE=.4,GOLD_SPAWN_CHANCE=.07,IRON_SPAWN_CHANCE=.33,SILVER_SPAWN_CHANCE=.2,HOE_LEVEL_TO_SEED_RECLAIM_RATE={[toolLevel.DEFAULT]:0,[toolLevel.BRONZE]:.25,[toolLevel.IRON]:.5,[toolLevel.SILVER]:.75,[toolLevel.GOLD]:1},COW_COLORS_HEX_MAP={[cowColors.BLUE]:`#8ff0f9`,[cowColors.BROWN]:`#b45f28`,[cowColors.GREEN]:`#65f295`,[cowColors.ORANGE]:`#ff7031`,[cowColors.PURPLE]:`#d884f2`,[cowColors.WHITE]:`#ffffff`,[cowColors.YELLOW]:`#fff931`},COW_TRADE_TIMEOUT=1e4,WEEDS_SPAWN_CHANCE=.15,KEG_INTEREST_RATE=.02,KEG_SPOILAGE_RATE_MULTIPLIER=.001,WINE_INTEREST_RATE=.015,EXPERIENCE_VALUES={CELLAR_ACQUIRED:10,CELLAR_EXPANDED:5,COMPOSTER_ACQUIRED:10,COW_BRED:1,COW_PEN_ACQUIRED:10,COW_PEN_EXPANDED:5,COW_TRADED:1,FERMENTATION_RECIPE_MADE:1,FIELD_EXPANDED:5,FOREST_EXPANDED:10,FORGE_RECIPE_MADE:3,ITEM_SOLD:1,KEG_SOLD:2,KITCHEN_RECIPE_MADE:2,LOAN_PAID_OFF:25,NEW_YEAR:5,RAINBOW_COW_BRED:2,RECYCLING_RECIPE_MADE:1,SMELTER_ACQUIRED:10},STANDARD_VIEW_LIST=[stageFocusType.SHOP,stageFocusType.FIELD],Z_INDEX={END_DAY_BUTTON:1100},HEARTBEAT_INTERVAL_PERIOD=10*1e3,blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAv0lEQVRoQ+2aOw6AIBBEofAiHtqzeBrvYGNjsUaDBsFqMWw2eZZWDJ/HzGicVpFxCNWz7CF4eB/nTcTLYL/GeQk4p9+riEeAVxEvAR5FVAK8iYhQKAOwBQigkPVlB4WsqQWFchcIhRRIxgtZbJscHHihe9tarQSJrAzTvVcCCvWe8fLMQSEo1FiqkchIZOkQaWkGhaAQFEr1unW7oKUZvZD1ytEL0Qs1fg0lkWk9zF9ZGi+EF8IL4YVs/2pxT6EDTzqfZhoHJYMAAAAASUVORK5CYIIA`,light_blue_stripe_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAiklEQVRoge3UsQnAMAwFUUd4Du8/Q8bJEK4CTpEuAYOrs+BUPjW/uuPsY7RafnfdpWTwaPV9fi+Lx46jVjx2HLXiMXtm8Jg9M3jsOGrFrRDtVoh2K0S7FaLdCtFuhWi3QrRbIdqtEO1WiHYrRLsVot0K0W6FaLdCtFsh2q0Q7VaIditEuxWiPX2FHsE1Al0X/e79AAAAAElFTkSuQmCC`,colors={itemBackground:`#f7b459`,heart:`#ff4040`,error:`#ce0000`,cardBackground:`#ffe3a1`,cardBackgroundNested:`#ffd46e`,cow:{blue:`#8ff0f9`,brown:`#b45f28`,green:`#65f295`,orange:`#ff7031`,purple:`#d884f2`,white:`#ffffff`,yellow:`#fff931`}},breakpoints={smallPhone:320,mediumPhone:400,largePhone:450,sm:600,md:960,lg:1280,xl:1920},layout={cardMaxWidth:550,sidebarWidth:`22em`,narrowSidebarWidth:320,fieldSpaceForRightSideControls:`4.5em`},fillSx={bottom:0,left:0,position:`absolute`,right:0,top:0},squareImgSx={backgroundRepeat:`no-repeat`,backgroundSize:`cover`,display:`block`,width:`100%`},cardStyleSx=e=>({background:colors.cardBackground,border:`solid 2px #b68000`,transition:e.transitions.create(`background`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut})}),cardStyleSelectedSx={background:lighten$6(colors.cardBackground,.4)},centerTabsSx={margin:`0 auto`,maxWidth:600,"& .MuiTabs-flexContainer":{justifyContent:`center`},"& > .MuiTabs-root":{marginTop:`4em`},'& [role="tabpanel"]':{background:`rgba(255, 255, 255, 0.5)`,borderRadius:`0 0 0.5em 0.5em`,padding:`0.5em 0.5em 0.5em`,"& .card-list > li:last-child":{marginBottom:0}}},spriteShadowSx={filter:`drop-shadow(2px 2px 2px rgba(100, 100, 100, 0.4))`};init_createTheme();var globalStyleOverrides={body:{overscrollBehavior:`contain`},"ul, ol":{listStyle:`none`,margin:0,padding:0},p:{margin:0},".markdown":{"& p":{margin:`1em 0`},"& ul li":{listStyle:`disc`,marginLeft:`1em`},"& strong":{fontWeight:`bold`}},img:{imageRendering:`pixelated`},strong:{fontWeight:`bold`},".visually_hidden:not(:focus):not(:active)":{clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,height:`1px`,overflow:`hidden`,position:`absolute`,whiteSpace:`nowrap`,width:`1px`},"h4, h5, h6, p, p.MuiTypography-root":{fontFamily:`"Public Sans", sans-serif`},"h3, h4, h5, h6":{fontWeight:`bold`},h2:{fontSize:`1.4em`},"h3, h4":{margin:`1em 0`},"p, .MuiTypography-body2":{lineHeight:`1.5em`},"ul.card-list":{flexGrow:1,marginBottom:`1em`,"& li":{margin:`1em 0`},"& > li":{margin:`1em auto`,maxWidth:layout.cardMaxWidth}},'input[type="number"]':{minWidth:`140px`},th:{fontWeight:`bold`},"h1, h2, h3, h4, h5, h6, legend, td, th, .MuiTypography-h1, .MuiTypography-h2, .MuiTypography-h3, .MuiTypography-h4, .MuiTypography-h5, .MuiTypography-h6, .MuiButtonBase-root":{fontFamily:`"Francois One", sans-serif`},".danger-text":{color:colors.error},hr:{background:`none`},".MuiDivider-vertical":{width:`auto`},".Farmhand.notification-container":{marginTop:`8em`,paddingTop:0,[`@media (min-width: ${breakpoints.md}px)`]:{marginTop:`4em`,marginRight:`4em`},"& .MuiCollapse-wrapperInner":{width:`100%`},"& .MuiCollapse-wrapper":{marginBottom:0}},".spacer":{minHeight:`7.5em`}},mui_theme_default=createTheme({palette:{mode:`light`},shape:{},typography:{fontFamily:`"Public Sans", sans-serif`,button:{fontFamily:`"Francois One", sans-serif`,textTransform:`none`},h6:{fontFamily:`"Francois One", sans-serif`,fontSize:`1.4em`},h5:{fontFamily:`"Francois One", sans-serif`}},components:{MuiCssBaseline:{styleOverrides:globalStyleOverrides},MuiTabs:{styleOverrides:{root:({theme:e})=>({background:`#ffeec6`,borderColor:`#9b6d00`,borderWidth:2,borderStyle:`solid`,borderRadius:`${e.shape.borderRadius}px ${e.shape.borderRadius}px 0 0`})}},MuiInput:{styleOverrides:{root:{margin:`1rem 0`}}},MuiCard:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx,"& .MuiCard-root":{background:colors.cardBackgroundNested}})}},MuiTableContainer:{styleOverrides:{root:({theme:e})=>({...cardStyleSx(e),"&.is-selected":cardStyleSelectedSx})}},MuiCardHeader:{styleOverrides:{avatar:{"& img":spriteShadowSx}}},MuiCardContent:{styleOverrides:{root:{"&:last-child":{padding:`16px`}}}},MuiTableCell:{styleOverrides:{root:{borderColor:`#e9c777`}}},MuiButtonBase:{styleOverrides:{root:{textTransform:`none`}}},MuiPaper:{styleOverrides:{rounded:{backgroundColor:`#fff7e7`}}},MuiTooltip:{styleOverrides:{tooltip:{"& p":{textAlign:`center`}}}},MuiDialog:{styleOverrides:{root:{display:`block`},paper:{backgroundImage:`url(${light_blue_stripe_bg_default})`}}},MuiDivider:{styleOverrides:{root:{margin:`1.5em 0`}}},MuiAlert:{styleOverrides:{root:{marginBottom:`1em`,"@media (min-width: 0px) and (orientation: landscape)":{top:`3.5em`},[`@media (min-width: ${breakpoints.sm}px)`]:{top:`4.5em`},"& p":{margin:`1em 0`,"&:first-of-type":{marginTop:0},"&:last-child":{marginBottom:0}},"& strong":{fontWeight:`bold`},"& li":{marginLeft:`1em`},"& ul li":{listStyle:`disc`},"& ol li":{listStyle:`decimal`}}}}}});init_styled();var Span=styled$1(`span`)({}),Div=styled$1(`div`)({}),P$1=styled$1(`p`)({}),Ol=styled$1(`ol`)({}),Ul=styled$1(`ul`)({}),Li=styled$1(`li`)({}),Img=styled$1(`img`)({}),Form=styled$1(`form`)({}),Header=styled$1(`header`)({}),H3=styled$1(`h3`)({}),A=styled$1(`a`)({}),require_shifty=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a():typeof define==`function`&&define.amd?define(`shifty`,[],a):typeof e==`object`?e.shifty=a():n.shifty=a()})(self,(function(){return function(){var e={933:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.setBezierFunction=t.getCubicBezierTransition=void 0;let a=n(55);t.getCubicBezierTransition=(e=.25,t=.25,n=.75,a=.75)=>o=>function(e,t,n,a,o,s){let l=0,u=0,d=0,f=0,m=0,h=0,v=e=>((l*e+u)*e+d)*e,y=e=>(3*l*e+2*u)*e+d,b=e=>e>=0?e:0-e;return d=3*t,u=3*(a-t)-d,l=1-d-u,h=3*n,m=3*(o-n)-h,f=1-h-m,x=e,S=(e=>1/(200*e))(s),(e=>((f*e+m)*e+h)*e)(((e,t)=>{let n,a,o,s,l,u;for(o=e,u=0;u<8;u++){if(s=v(o)-e,b(s)<t)return o;if(l=y(o),b(l)<1e-6)break;o-=s/l}if(n=0,a=1,o=e,o<n)return n;if(o>a)return a;for(;n<a;){if(s=v(o),b(s-e)<t)return o;e>s?n=o:a=o,o=.5*(a-n)+n}return o})(x,S));var x,S}(o,e,t,n,a,1),t.setBezierFunction=(e,n,o,s,l)=>{let u=(0,t.getCubicBezierTransition)(n,o,s,l);return u.displayName=e,u.x1=n,u.y1=o,u.x2=s,u.y2=l,a.Tweenable.easing[e]=u}},156:function(e,t,n){var a=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),o=this&&this.__exportStar||function(e,t){for(var n in e)n===`default`||Object.prototype.hasOwnProperty.call(t,n)||a(t,e,n)};Object.defineProperty(t,`__esModule`,{value:!0}),t.VERSION=t.standardEasingFunctions=t.setBezierFunction=t.Scene=t.interpolate=t.tween=t.Tweenable=t.shouldScheduleUpdate=t.processTweens=void 0;let s=n(55);Object.defineProperty(t,`processTweens`,{enumerable:!0,get:function(){return s.processTweens}}),Object.defineProperty(t,`shouldScheduleUpdate`,{enumerable:!0,get:function(){return s.shouldScheduleUpdate}}),Object.defineProperty(t,`Tweenable`,{enumerable:!0,get:function(){return s.Tweenable}}),Object.defineProperty(t,`tween`,{enumerable:!0,get:function(){return s.tween}});var l=n(243);Object.defineProperty(t,`interpolate`,{enumerable:!0,get:function(){return l.interpolate}});var u=n(612);Object.defineProperty(t,`Scene`,{enumerable:!0,get:function(){return u.Scene}});var d=n(933);Object.defineProperty(t,`setBezierFunction`,{enumerable:!0,get:function(){return d.setBezierFunction}});var f=n(809);Object.defineProperty(t,`standardEasingFunctions`,{enumerable:!0,get:function(){return f.standardEasingFunctions}}),o(n(613),t),t.VERSION=`3.0.6`},243:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.interpolate=void 0;let a=n(55),o=new a.Tweenable,{filters:s}=a.Tweenable;t.interpolate=(e,t,n,l=a.Tweenable.easing.linear,u=0)=>{let d=Object.assign({},e),f=(0,a.composeEasingObject)(e,l);o._filters.length=0,o.setState({}),o._currentState=d,o._originalState=e,o._targetState=t,o._easing=f;for(let e in s)s[e].doesApply(o)&&o._filters.push(s[e]);o._applyFilter(`tweenCreated`),o._applyFilter(`beforeTween`);let m=(0,a.tweenProps)(n,d,e,t,1,u,f);return o._applyFilter(`afterTween`),m}},612:function(e,t){Object.defineProperty(t,`__esModule`,{value:!0}),t.Scene=void 0,t.Scene=class{constructor(...e){this._tweenables=[],e.forEach(this.add.bind(this))}get tweenables(){return[...this._tweenables]}get promises(){return this._tweenables.map((e=>e.then()))}add(e){return this._tweenables.push(e),e}remove(e){let t=this._tweenables.indexOf(e);return t>-1&&this._tweenables.splice(t,1),e}empty(){return this.tweenables.map(this.remove.bind(this))}get isPlaying(){return this._tweenables.some((({isPlaying:e})=>e))}tween(){return this._tweenables.forEach((e=>e.tween())),this}pause(){return this._tweenables.forEach((e=>e.pause())),this}resume(){return this._tweenables.filter((({hasEnded:e})=>!e)).forEach((e=>e.resume())),this}stop(e){return this._tweenables.forEach((t=>t.stop(e))),this}}},809:function(e,t){Object.defineProperty(t,`__esModule`,{value:!0}),t.standardEasingFunctions=void 0,t.standardEasingFunctions=Object.freeze({linear:e=>e,easeInQuad:e=>e**2,easeOutQuad:e=>-((e-1)**2-1),easeInOutQuad:e=>(e/=.5)<1?.5*e**2:-.5*((e-=2)*e-2),easeInCubic:e=>e**3,easeOutCubic:e=>(e-1)**3+1,easeInOutCubic:e=>(e/=.5)<1?.5*e**3:.5*((e-2)**3+2),easeInQuart:e=>e**4,easeOutQuart:e=>-((e-1)**4-1),easeInOutQuart:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeInQuint:e=>e**5,easeOutQuint:e=>(e-1)**5+1,easeInOutQuint:e=>(e/=.5)<1?.5*e**5:.5*((e-2)**5+2),easeInSine:e=>1-Math.cos(Math.PI/2*e),easeOutSine:e=>Math.sin(Math.PI/2*e),easeInOutSine:e=>-.5*(Math.cos(Math.PI*e)-1),easeInExpo:e=>e===0?0:2**(10*(e-1)),easeOutExpo:e=>e===1?1:1-2**(-10*e),easeInOutExpo:e=>e===0?0:e===1?1:(e/=.5)<1?.5*2**(10*(e-1)):.5*(2-2**(-10*--e)),easeInCirc:e=>-(Math.sqrt(1-e*e)-1),easeOutCirc:e=>Math.sqrt(1-(e-1)**2),easeInOutCirc:e=>(e/=.5)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1),easeOutBounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,easeInBack:e=>{let t=1.70158;return e*e*((t+1)*e-t)},easeOutBack:e=>{let t=1.70158;return--e*e*((t+1)*e+t)+1},easeInOutBack:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},elastic:e=>-1*4**(-8*e)*Math.sin((6*e-1)*(2*Math.PI)/2)+1,swingFromTo:e=>{let t=1.70158;return(e/=.5)<1?e*e*((1+(t*=1.525))*e-t)*.5:.5*((e-=2)*e*((1+(t*=1.525))*e+t)+2)},swingFrom:e=>{let t=1.70158;return e*e*((t+1)*e-t)},swingTo:e=>{let t=1.70158;return--e*e*((t+1)*e+t)+1},bounce:e=>e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375,bouncePast:e=>e<1/2.75?7.5625*e*e:e<2/2.75?2-(7.5625*(e-=1.5/2.75)*e+.75):e<2.5/2.75?2-(7.5625*(e-=2.25/2.75)*e+.9375):2-(7.5625*(e-=2.625/2.75)*e+.984375),easeFromTo:e=>(e/=.5)<1?.5*e**4:-.5*((e-=2)*e**3-2),easeFrom:e=>e**4,easeTo:e=>e**.25})},525:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.afterTween=t.beforeTween=t.tweenCreated=t.doesApply=void 0;let a=n(613),o=/(\d|-|\.)/,s=/([^\-0-9.]+)/g,l=/[0-9.-]+/g,u=(()=>{let e=l.source,t=`,\\s*`;return RegExp(`rgba?\\(${e}${t}${e}${t}${e}(${t}${e})?\\)`,`g`)})(),d=/^.*\(/,f=/#([0-9]|[a-f]){3,6}/gi,m=`VAL`,h=(e,t)=>e.map(((e,n)=>`_${t}_${n}`)),v=e=>{let t=e.match(s);return t?(t.length===1||e.charAt(0).match(o))&&t.unshift(``):t=[``,``],t.join(`VAL`)};function y(e){return parseInt(e,16)}let b=e=>`rgb(${(e=>{if((e=e.replace(/#/,``)).length===3){let[t,n,a]=e.split(``);e=t+t+n+n+a+a}return[y(e.substring(0,2)),y(e.substring(2,4)),y(e.substring(4,6))]})(e).join(`,`)})`,x=(e,t,n)=>{let a=t.match(e),o=t.replace(e,`VAL`);return a&&a.forEach((e=>o=o.replace(`VAL`,n(e)))),o},S=e=>{for(let t in e){let n=e[t];typeof n==`string`&&n.match(f)&&(e[t]=x(f,n,b))}},C=e=>{var t,n;let a=e.match(l)??[],o=a.slice(0,3).map((e=>Math.floor(Number(e)))),s=e.match(d)?.[0];if(a.length===3)return`${s}${o.join(`,`)})`;if(a.length===4)return`${s}${o.join(`,`)},${a[3]})`;throw Error(`Invalid rgbChunk: ${e}`)},T=e=>{var t;return e.match(l)??[]},E=(e,t)=>{let n={};return t.forEach((t=>{n[t]=e[t],delete e[t]})),n},D=(e,t)=>t.map((t=>Number(e[t]))),O=(e,t)=>(t.forEach((t=>e=e.replace(`VAL`,String(+t.toFixed(4))))),e);t.doesApply=e=>{for(let t in e._currentState)if(typeof e._currentState[t]==`string`)return!0;return!1},t.tweenCreated=function(e){let{_currentState:t,_originalState:n,_targetState:a}=e;[t,n,a].forEach(S),e._tokenData=(e=>{var t;let n={};for(let t in e){let a=e[t];typeof a==`string`&&(n[t]={formatString:v(a),chunkNames:h(T(a)?.map(Number),t)})}return n})(t)},t.beforeTween=function(e){let{_currentState:t,_originalState:n,_targetState:o,_easing:s,_tokenData:l}=e;typeof s!=`function`&&l&&((e,t)=>{var n;for(let n in t){let{chunkNames:o}=t[n],s=e[n];if(typeof s==`string`){let t=s.split(` `),n=t[t.length-1];for(let s=0;s<o.length;s++){let l=o[s],u=t[s]??n;(0,a.isEasingKey)(u)&&(e[l]=u)}}else o.forEach((t=>e[t]=s));delete e[n]}})(s,l),[t,n,o].forEach((e=>((e,t)=>{for(let n in t)T(String(e[n])).forEach(((a,o)=>e[t[n].chunkNames[o]]=+a)),delete e[n]})(e,l??{})))},t.afterTween=function(e){let{_currentState:t,_originalState:n,_targetState:a,_easing:o,_tokenData:s}=e;[t,n,a].forEach((e=>((e,t)=>{for(let n in t){let{chunkNames:a,formatString:o}=t[n];e[n]=x(u,O(o,D(E(e,a),a)),C)}})(e,s??{}))),typeof o!=`function`&&s&&((e,t)=>{for(let n in t){let{chunkNames:a}=t[n],o=e[a[0]];e[n]=typeof o==`string`?a.map((t=>{let n=e[t];return delete e[t],n})).join(` `):o}})(o,s)}},55:function(e,t,n){var a,o=this&&this.__createBinding||(Object.create?function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!(`get`in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}:function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}:function(e,t){e.default=t}),l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!==`default`&&Object.prototype.hasOwnProperty.call(e,n)&&o(t,e,n);return s(t,e),t};Object.defineProperty(t,`__esModule`,{value:!0}),t.shouldScheduleUpdate=t.tween=t.Tweenable=t.composeEasingObject=t.scheduleUpdate=t.processTweens=t.tweenProps=t.getListTail=t.getListHead=t.resetList=void 0;let u=n(809),d=n(933),f=n(613),m=l(n(525)),h=`linear`,v=1e3/60,y=typeof window<`u`?window:n.g,b=`afterTween`,x=`beforeTween`,S=`string`,C=`function`,T=y.requestAnimationFrame;T||=typeof window>`u`?setTimeout:window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||window.mozCancelRequestAnimationFrame&&window.mozRequestAnimationFrame||setTimeout;let E=()=>{},D=null,O=null;t.resetList=()=>{D=O=null},t.getListHead=()=>D,t.getListTail=()=>O,t.tweenProps=(e,t,n,a,o,s,l)=>{var d;let f,m=0,h=e<s?0:(e-s)/o,v;for(let e in t){if(typeof l===C)v=l;else{let t=l[e];v=typeof t===C?t:L.easing[t]??u.standardEasingFunctions.linear}m=v(h),f=n[e],t[e]=f+(a[e]-f)*m}return t};let k=(e,n)=>{var a;let o=e._timestamp??0,s=e._currentState,l=e._delay;if(n<o+l)return;let u=e._duration,d=e._targetState,f=o+l+u,m=n>f?f:n;e._hasEnded=m>=f;let h=u-(f-m);if(e._hasEnded)return e._render(d,h,e._data),e.stop(!0);e._applyFilter(x),m<o+l?o=u=m=1:o+=l,(0,t.tweenProps)(m,s,e._originalState,d,u,o,e._easing),e._applyFilter(b),e._render(s,h,e._data)};t.processTweens=()=>{let e,t=L.now(),n=D;for(;n;)e=n._next,k(n,t),n=e};let{now:j}=Date,M,N=!1;t.scheduleUpdate=()=>{M=j(),N&&T.call(y,t.scheduleUpdate,16.666666666666668),(0,t.processTweens)()},t.composeEasingObject=(e,t=h,n={})=>{if(typeof t===S&&(0,f.isEasingKey)(t))return L.easing[t];if(Array.isArray(t))return(0,d.getCubicBezierTransition)(...t);if(typeof n==`object`)if(typeof t===S||typeof t===C)for(let a in e)n[a]=t;else for(let a in e)n[a]=t[a]||h;return n};let F=(()=>{let e,t;return n=>{e=null,t=null,n===D?(D=n._next,D?D._previous=null:O=null):n===O?(O=n._previous,O?O._next=null:D=null):(e=n._previous,t=n._next,e&&(e._next=t),t&&(t._previous=e)),n._previous=n._next=null}})(),I=typeof Promise===C?Promise:null;class L{constructor(e={},t){this[a]=`Promise`,this._next=null,this._previous=null,this._config={},this._data={},this._delay=0,this._duration=500,this._filters=[],this._timestamp=null,this._hasEnded=!1,this._resolve=null,this._reject=null,this._originalState={},this._targetState={},this._start=E,this._render=E,this._promiseCtor=I,this._promise=null,this._isPlaying=!1,this._pausedAtTime=null,this._easing={},this._currentState=e||{},t&&this.setConfig(t)}_applyFilter(e){var t;for(let n=this._filters.length;n>0;n--){let a=this._filters[n-n];(t=a[e])==null||t.call(a,this)}}tween(e){return this._isPlaying&&this.stop(),!e&&this._config||this.setConfig(e),this._pausedAtTime=null,this._timestamp=L.now(),this._start(this.state,this._data),this._delay&&this._render(this._currentState,0,this._data),this._resume(this._timestamp)}setConfig(e={}){var n;let{_config:a}=this,o;for(o in e)a[o]=e[o];let{promise:s=this._promiseCtor,start:l=E,finish:u,render:d=E}=a;this._data=a.data||this._data,this._isPlaying=!1,this._pausedAtTime=null,this._delay=e.delay||0,this._start=l,this._render=d,this._duration=a.duration||500,this._promiseCtor=s,u&&(this._resolve=u);let{from:f,to:m={}}=e,{_currentState:h,_originalState:v,_targetState:y}=this;for(let e in f)h[e]=f[e];let b=!1;for(let e in h){let t=h[e];b||typeof t!==S||(b=!0),v[e]=t,y[e]=m[e]??t}if(this._easing=(0,t.composeEasingObject)(this._currentState,a.easing,this._easing),this._filters.length=0,b){for(let e in L.filters)L.filters[e].doesApply(this)&&this._filters.push(L.filters[e]);this._applyFilter(`tweenCreated`)}return this}then(e,t){if(!this._promiseCtor)throw Error(`Promise implementation is unavailable`);return this._promise=new this._promiseCtor(((e,t)=>{this._resolve=e,this._reject=t})),this._promise.then(e,t)}catch(e){return this.then().catch(e)}finally(e){return this.then().finally(e)}get state(){return Object.assign({},this._currentState)}setState(e){this._currentState=e}pause(){return this._isPlaying?(this._pausedAtTime=L.now(),this._isPlaying=!1,F(this),this):this}resume(){return this._resume()}_resume(e=L.now()){if(this._timestamp===null)return this.tween();if(this._isPlaying&&this._promise)return this;this._pausedAtTime&&=(this._timestamp+=e-this._pausedAtTime,null),this._isPlaying=!0;let n=!!D;return D===null?(D=this,O=this):(this._previous=O,O&&(O._next=this),O=this),n||(0,t.shouldScheduleUpdate)(!0),this}seek(e){var t;e=Math.max(e,0);let n=L.now();return(this._timestamp??0)+e===0||(this._timestamp=n-e,k(this,n)),this}stop(e=!1){var n;return this._isPlaying?(this._isPlaying=!1,F(this),e&&(this._applyFilter(x),(0,t.tweenProps)(1,this._currentState,this._originalState,this._targetState,1,0,this._easing),this._applyFilter(b),this._applyFilter(`afterTweenEnd`)),(n=this._resolve)==null||n.call(this,{data:this._data,state:this._currentState,tweenable:this}),this._resolve=null,this._reject=null,this):this}cancel(e=!1){var t;let{_currentState:n,_data:a,_isPlaying:o}=this;return o?((t=this._reject)==null||t.call(this,{data:a,state:n,tweenable:this}),this._resolve=null,this._reject=null,this.stop(e)):this}get isPlaying(){return this._isPlaying}get hasEnded(){return this._hasEnded}data(e=null){return e&&(this._data=Object.assign({},e)),this._data}dispose(){for(let e in this)delete this[e]}}t.Tweenable=L,a=Symbol.toStringTag,L.now=()=>(N||(M=j()),M),L.setScheduleFunction=e=>T=e,L.filters={token:m},L.easing=Object.create(u.standardEasingFunctions),t.tween=function(e={}){return new L({},{}).tween(e)},t.shouldScheduleUpdate=e=>{e&&N||(N=e,e&&(0,t.scheduleUpdate)())}},613:function(e,t,n){Object.defineProperty(t,`__esModule`,{value:!0}),t.isEasingKey=void 0;let a=n(55);t.isEasingKey=e=>e in a.Tweenable.easing}},t={};function n(a){var o=t[a];if(o!==void 0)return o.exports;var s=t[a]={exports:{}};return e[a].call(s.exports,s,s.exports,n),s.exports}return n.g=function(){if(typeof globalThis==`object`)return globalThis;try{return this||Function(`return this`)()}catch{if(typeof window==`object`)return window}}(),n(156)}()}))}));init_generateUtilityClasses(),init_generateUtilityClass();function getAppBarUtilityClass(e){return generateUtilityClass(`MuiAppBar`,e)}var appBarClasses=generateUtilityClasses(`MuiAppBar`,[`root`,`positionFixed`,`positionAbsolute`,`positionSticky`,`positionStatic`,`positionRelative`,`colorDefault`,`colorPrimary`,`colorSecondary`,`colorInherit`,`colorTransparent`,`colorError`,`colorInfo`,`colorSuccess`,`colorWarning`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$56=[`className`,`color`,`enableColorOnDark`,`position`],useUtilityClasses$50=e=>{let{color:t,position:n,classes:a}=e;return composeClasses({root:[`root`,`color${capitalize_default(t)}`,`position${capitalize_default(n)}`]},getAppBarUtilityClass,a)},joinVars=(e,t)=>e?`${e?.replace(`)`,``)}, ${t})`:t,AppBarRoot=styled$1(Paper,{name:`MuiAppBar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`position${capitalize_default(n.position)}`],t[`color${capitalize_default(n.color)}`]]}})(({theme:e,ownerState:t})=>{let n=e.palette.mode===`light`?e.palette.grey[100]:e.palette.grey[900];return _extends$3({display:`flex`,flexDirection:`column`,width:`100%`,boxSizing:`border-box`,flexShrink:0},t.position===`fixed`&&{position:`fixed`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0,"@media print":{position:`absolute`}},t.position===`absolute`&&{position:`absolute`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`sticky`&&{position:`sticky`,zIndex:(e.vars||e).zIndex.appBar,top:0,left:`auto`,right:0},t.position===`static`&&{position:`static`},t.position===`relative`&&{position:`relative`},!e.vars&&_extends$3({},t.color===`default`&&{backgroundColor:n,color:e.palette.getContrastText(n)},t.color&&t.color!==`default`&&t.color!==`inherit`&&t.color!==`transparent`&&{backgroundColor:e.palette[t.color].main,color:e.palette[t.color].contrastText},t.color===`inherit`&&{color:`inherit`},e.palette.mode===`dark`&&!t.enableColorOnDark&&{backgroundColor:null,color:null},t.color===`transparent`&&_extends$3({backgroundColor:`transparent`,color:`inherit`},e.palette.mode===`dark`&&{backgroundImage:`none`})),e.vars&&_extends$3({},t.color===`default`&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette.AppBar.defaultBg:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette.AppBar.defaultBg),"--AppBar-color":t.enableColorOnDark?e.vars.palette.text.primary:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette.text.primary)},t.color&&!t.color.match(/^(default|inherit|transparent)$/)&&{"--AppBar-background":t.enableColorOnDark?e.vars.palette[t.color].main:joinVars(e.vars.palette.AppBar.darkBg,e.vars.palette[t.color].main),"--AppBar-color":t.enableColorOnDark?e.vars.palette[t.color].contrastText:joinVars(e.vars.palette.AppBar.darkColor,e.vars.palette[t.color].contrastText)},![`inherit`,`transparent`].includes(t.color)&&{backgroundColor:`var(--AppBar-background)`},{color:t.color===`inherit`?`inherit`:`var(--AppBar-color)`},t.color===`transparent`&&{backgroundImage:`none`,backgroundColor:`transparent`,color:`inherit`}))}),AppBar$1=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiAppBar`}),{className:a,color:o=`primary`,enableColorOnDark:s=!1,position:l=`fixed`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$56),d=_extends$3({},n,{color:o,position:l,enableColorOnDark:s});return(0,import_jsx_runtime.jsx)(AppBarRoot,_extends$3({square:!0,component:`header`,ownerState:d,elevation:4,className:clsx$1(useUtilityClasses$50(d).root,a,l===`fixed`&&`mui-fixed`),ref:t},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getToolbarUtilityClass(e){return generateUtilityClass(`MuiToolbar`,e)}var toolbarClasses=generateUtilityClasses(`MuiToolbar`,[`root`,`gutters`,`regular`,`dense`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_DefaultPropsProvider(),init_styled();var _excluded$55=[`className`,`component`,`disableGutters`,`variant`],useUtilityClasses$49=e=>{let{classes:t,disableGutters:n,variant:a}=e;return composeClasses({root:[`root`,!n&&`gutters`,a]},getToolbarUtilityClass,t)},ToolbarRoot=styled$1(`div`,{name:`MuiToolbar`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,!n.disableGutters&&t.gutters,t[n.variant]]}})(({theme:e,ownerState:t})=>_extends$3({position:`relative`,display:`flex`,alignItems:`center`},!t.disableGutters&&{paddingLeft:e.spacing(2),paddingRight:e.spacing(2),[e.breakpoints.up(`sm`)]:{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}},t.variant===`dense`&&{minHeight:48}),({theme:e,ownerState:t})=>t.variant===`regular`&&e.mixins.toolbar),Toolbar=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiToolbar`}),{className:a,component:o=`div`,disableGutters:s=!1,variant:l=`regular`}=n,u=_objectWithoutPropertiesLoose$3(n,_excluded$55),d=_extends$3({},n,{component:o,disableGutters:s,variant:l});return(0,import_jsx_runtime.jsx)(ToolbarRoot,_extends$3({as:o,className:clsx$1(useUtilityClasses$49(d).root,a),ref:t,ownerState:d},u))});init_generateUtilityClasses(),init_generateUtilityClass();function getTypographyUtilityClass(e){return generateUtilityClass(`MuiTypography`,e)}var typographyClasses=generateUtilityClasses(`MuiTypography`,[`root`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`subtitle1`,`subtitle2`,`body1`,`body2`,`inherit`,`button`,`caption`,`overline`,`alignLeft`,`alignRight`,`alignCenter`,`alignJustify`,`noWrap`,`gutterBottom`,`paragraph`]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_capitalize();var _excluded$54=[`align`,`className`,`component`,`gutterBottom`,`noWrap`,`paragraph`,`variant`,`variantMapping`],useUtilityClasses$48=e=>{let{align:t,gutterBottom:n,noWrap:a,paragraph:o,variant:s,classes:l}=e;return composeClasses({root:[`root`,s,e.align!==`inherit`&&`align${capitalize_default(t)}`,n&&`gutterBottom`,a&&`noWrap`,o&&`paragraph`]},getTypographyUtilityClass,l)},TypographyRoot=styled$1(`span`,{name:`MuiTypography`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,n.variant&&t[n.variant],n.align!==`inherit`&&t[`align${capitalize_default(n.align)}`],n.noWrap&&t.noWrap,n.gutterBottom&&t.gutterBottom,n.paragraph&&t.paragraph]}})(({theme:e,ownerState:t})=>_extends$3({margin:0},t.variant===`inherit`&&{font:`inherit`},t.variant!==`inherit`&&e.typography[t.variant],t.align!==`inherit`&&{textAlign:t.align},t.noWrap&&{overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`},t.gutterBottom&&{marginBottom:`0.35em`},t.paragraph&&{marginBottom:16})),defaultVariantMapping={h1:`h1`,h2:`h2`,h3:`h3`,h4:`h4`,h5:`h5`,h6:`h6`,subtitle1:`h6`,subtitle2:`h6`,body1:`p`,body2:`p`,inherit:`p`},colorTransformations={primary:`primary.main`,textPrimary:`text.primary`,secondary:`secondary.main`,textSecondary:`text.secondary`,error:`error.main`},transformDeprecatedColors=e=>colorTransformations[e]||e,Typography=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiTypography`}),a=transformDeprecatedColors(n.color),o=extendSxProp(_extends$3({},n,{color:a})),{align:s=`inherit`,className:l,component:u,gutterBottom:d=!1,noWrap:f=!1,paragraph:m=!1,variant:h=`body1`,variantMapping:v=defaultVariantMapping}=o,y=_objectWithoutPropertiesLoose$3(o,_excluded$54),b=_extends$3({},o,{align:s,color:a,className:l,component:u,gutterBottom:d,noWrap:f,paragraph:m,variant:h,variantMapping:v});return(0,import_jsx_runtime.jsx)(TypographyRoot,_extends$3({as:u||(m?`p`:v[h]||defaultVariantMapping[h])||`span`,ref:t,ownerState:b,className:clsx$1(useUtilityClasses$48(b).root,l)},y))});init_createSvgIcon();var CheckCircle_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M12 0a12 12 0 1 0 0 24 12 12 0 0 0 0-24zm-2 17l-5-5 1.4-1.4 3.6 3.6 7.6-7.6L19 8l-9 9z`}),`CheckCircle`);init_createSvgIcon();var Warning_default=createSvgIcon((0,import_jsx_runtime.jsx)(`path`,{d:`M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z`}),`Warning`);init_generateUtilityClasses(),init_generateUtilityClass();function getStepIconUtilityClass(e){return generateUtilityClass(`MuiStepIcon`,e)}var stepIconClasses=generateUtilityClasses(`MuiStepIcon`,[`root`,`active`,`completed`,`error`,`text`]);init_extends(),init_objectWithoutPropertiesLoose(),init_clsx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider(),init_SvgIcon();var _circle,_excluded$53=[`active`,`className`,`completed`,`error`,`icon`],useUtilityClasses$47=e=>{let{classes:t,active:n,completed:a,error:o}=e;return composeClasses({root:[`root`,n&&`active`,a&&`completed`,o&&`error`],text:[`text`]},getStepIconUtilityClass,t)},StepIconRoot=styled$1(SvgIcon,{name:`MuiStepIcon`,slot:`Root`,overridesResolver:(e,t)=>t.root})(({theme:e})=>({display:`block`,transition:e.transitions.create(`color`,{duration:e.transitions.duration.shortest}),color:(e.vars||e).palette.text.disabled,[`&.${stepIconClasses.completed}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.active}`]:{color:(e.vars||e).palette.primary.main},[`&.${stepIconClasses.error}`]:{color:(e.vars||e).palette.error.main}})),StepIconText=styled$1(`text`,{name:`MuiStepIcon`,slot:`Text`,overridesResolver:(e,t)=>t.text})(({theme:e})=>({fill:(e.vars||e).palette.primary.contrastText,fontSize:e.typography.caption.fontSize,fontFamily:e.typography.fontFamily})),StepIcon=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiStepIcon`}),{active:a=!1,className:o,completed:s=!1,error:l=!1,icon:u}=n,d=_objectWithoutPropertiesLoose$3(n,_excluded$53),f=_extends$3({},n,{active:a,completed:s,error:l}),m=useUtilityClasses$47(f);if(typeof u==`number`||typeof u==`string`){let e=clsx$1(o,m.root);return l?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:Warning_default,className:e,ref:t,ownerState:f},d)):s?(0,import_jsx_runtime.jsx)(StepIconRoot,_extends$3({as:CheckCircle_default,className:e,ref:t,ownerState:f},d)):(0,import_jsx_runtime.jsxs)(StepIconRoot,_extends$3({className:e,ref:t,ownerState:f},d,{children:[_circle||=(0,import_jsx_runtime.jsx)(`circle`,{cx:`12`,cy:`12`,r:`12`}),(0,import_jsx_runtime.jsx)(StepIconText,{className:m.text,x:`12`,y:`12`,textAnchor:`middle`,dominantBaseline:`central`,ownerState:f,children:u})]}))}return u}),require_FileSaver_min=__commonJSMin(((e,t)=>{(function(t,n){typeof define==`function`&&define.amd?define([],n):e===void 0?(n(),t.FileSaver={exports:{}}.exports):n()})(e,function(){function e(e,t){return t===void 0?t={autoBom:!1}:typeof t!=`object`&&(console.warn(`Deprecated: Expected third argument to be a object`),t={autoBom:!t}),t.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(e.type)?new Blob([``,e],{type:e.type}):e}function n(e,t,n){var a=new XMLHttpRequest;a.open(`GET`,e),a.responseType=`blob`,a.onload=function(){u(a.response,t,n)},a.onerror=function(){console.error(`could not download file`)},a.send()}function a(e){var t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return 200<=t.status&&299>=t.status}function o(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{var t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}var s=typeof window==`object`&&window.window===window?window:typeof self==`object`&&self.self===self?self:{}.global==={}?{}:void 0,l=s.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),u=s.saveAs||(typeof window!=`object`||window!==s?function(){}:`download`in HTMLAnchorElement.prototype&&!l?function(e,t,l){var u=s.URL||s.webkitURL,d=document.createElement(`a`);t=t||e.name||`download`,d.download=t,d.rel=`noopener`,typeof e==`string`?(d.href=e,d.origin===location.origin?o(d):a(d.href)?n(e,t,l):o(d,d.target=`_blank`)):(d.href=u.createObjectURL(e),setTimeout(function(){u.revokeObjectURL(d.href)},4e4),setTimeout(function(){o(d)},0))}:`msSaveOrOpenBlob`in navigator?function(t,s,l){if(s=s||t.name||`download`,typeof t!=`string`)navigator.msSaveOrOpenBlob(e(t,l),s);else if(a(t))n(t,s,l);else{var u=document.createElement(`a`);u.href=t,u.target=`_blank`,setTimeout(function(){o(u)})}}:function(e,t,a,o){if(o||=open(``,`_blank`),o&&(o.document.title=o.document.body.innerText=`downloading...`),typeof e==`string`)return n(e,t,a);var u=e.type===`application/octet-stream`,d=/constructor/i.test(s.HTMLElement)||s.safari,f=/CriOS\/[\d]+/.test(navigator.userAgent);if((f||u&&d||l)&&typeof FileReader<`u`){var m=new FileReader;m.onloadend=function(){var e=m.result;e=f?e:e.replace(/^data:[^;]*;/,`data:attachment/file;`),o?o.location.href=e:location=e,o=null},m.readAsDataURL(e)}else{var h=s.URL||s.webkitURL,v=h.createObjectURL(e);o?o.location=v:location.href=v,o=null,setTimeout(function(){h.revokeObjectURL(v)},4e4)}});s.saveAs=u.saveAs=u,t!==void 0&&(t.exports=u)})})),require_window=__commonJSMin(((e,t)=>{t.exports=typeof window<`u`?window:{}})),import_shifty=require_shifty(),import_FileSaver_min=require_FileSaver_min(),import_window=__toESM(require_window()),PROGRESS_SAVED_MESSAGE=`Progress saved!`,RAIN_MESSAGE=`It rained in the night!`,STORM_MESSAGE=`There was a storm in the night!`,STORM_DESTROYS_SCARECROWS_MESSAGE=`There was a storm in the night! No scarecrows survived!`,FARM_PRODUCTS_TOOLTIP_TEXT=`This figure only includes sales of grown crops, crafted items, and animal products.`,COW_SOLD_TOOLTIP_TEXT=`This figure only includes cows you were not the original owner for.`,DATA_DELETED=`Your local game data has been deleted.`,INVALID_DATA_PROVIDED=`Invalid Farmhand data provided.`,UPDATE_AVAILABLE=`A game update is available! Click this message to reload and see what's new.`,SERVER_ERROR=`There was an issue connecting to the server. Please try again in a moment.`,CONNECTING_TO_SERVER=`Connecting...`,DISCONNECTING_FROM_SERVER=`Disconnecting...`,DISCONNECTED_FROM_SERVER=`You are now playing offline.`,REQUESTED_COW_TRADE_UNAVAILABLE=`The requested cow is no longer available.`,UNKNOWN_COW_TRADE_FAILURE=`Something went wrong with your cow trade request. Please try again!`,COW_ALREADY_OWNED=`It looks like you already have this cow!`,OUT_OF_COW_FEED_NOTIFICATION=`You're out of cow feed! Buy some more before your cows get hungry and run away!`,INVENTORY_FULL_NOTIFICATION=`Your inventory is full!`,SHOVELED=`Shoveled plot`,WATERING_CAN_ALT_TEXT=`A watering can for hydrating plants.`,WATERING_CAN_HIDDEN_TEXT=`Select the watering can to water your crops`,SCYTHE_ALT_TEXT=`A scythe for crop harvesting.`,SCYTHE_HIDDEN_TEXT=`Select the scythe to harvest ripened crops`,HOE_ALT_TEXT=`A hoe for removing crops and disposing of them. Also returns replantable items to your inventory.`,HOE_HIDDEN_TEXT=`Select the hoe to clear crops, or replantable field items`,SHOVEL_ALT_TEXT=`A shovel for digging up rocks.`,SHOVEL_HIDDEN_TEXT=`Select the shovel to dig for ore`,TOOL_LEVEL_INFO={SCYTHE:{DEFAULT:`**Basic**: Harvests one crop per plot.`,BRONZE:`**Bronze**: Harvests two crops per plot.`,IRON:`**Iron**: Harvests three crops per plot.`,SILVER:`**Silver**: Harvests four crops per plot.`,GOLD:`**Gold**: Harvests five crops per plot.`},SHOVEL:{DEFAULT:`**Basic**: Has a 30% chance of digging up resources.`,BRONZE:`**Bronze**: Has a 40% chance of digging up resources.`,IRON:`**Iron**: Has a 50% chance of digging up resources.`,SILVER:`**Silver**: Has a 60% chance of digging up resources.`,GOLD:`**Gold**: Has a 70% chance of digging up resources.`},WATERING_CAN:{DEFAULT:`**Basic**: Keeps plots watered for one day.`,BRONZE:`**Bronze**: Keeps plots watered for two days.`,IRON:`**Iron**: Keeps plots watered for three days.`,SILVER:`**Silver**: Keeps plots watered for four days.`,GOLD:`**Gold**: Keeps plots watered for five days.`},HOE:{DEFAULT:`**Basic**: Destroys crops.`,BRONZE:`**Bronze**: 25% chance to retrieve seeds when digging up crops.`,IRON:`**Iron**: 50% chance to retrieve seeds when digging up crops.`,SILVER:`**Silver**: 75% chance to retrieve seeds when digging up crops.`,GOLD:`**Gold**: 100% chance to retrieve seeds when digging up crops.`}},FORGE_AVAILABLE_NOTIFICATION=`**The Forge** is now available in the Workshop!`,RECYCLING_AVAILABLE_NOTIFICATION=`**Recycling** is now available in the Workshop!`,FOREST_AVAILABLE_NOTIFICATION=`The **Forest** is now available!`,COW_COLOR_NAMES={[cowColors.BLUE]:`Blue`,[cowColors.BROWN]:`Brown`,[cowColors.GREEN]:`Green`,[cowColors.ORANGE]:`Orange`,[cowColors.PURPLE]:`Purple`,[cowColors.RAINBOW]:`Rainbow`,[cowColors.WHITE]:`White`,[cowColors.YELLOW]:`Yellow`},SHOVEL_UNLOCKED=`You've unlocked a new tool for the field, The **Shovel**!`,moneyTotal=(...e)=>e.reduce((e,t)=>e+=Math.round(t*100),0)/100,assignPersistedKey=(e,t,n)=>{let a=t[n];a!==void 0&&(e[n]=a)},reduceByPersistedKeys=e=>PERSISTED_STATE_KEYS.reduce((t,n)=>(assignPersistedKey(t,e,n),t),{}),require_src=__commonJSMin(((e,t)=>{function n(e,t){var n=t&&t.cache?t.cache:v,a=t&&t.serializer?t.serializer:m;return(t&&t.strategy?t.strategy:u)(e,{cache:n,serializer:a})}function a(e){return e==null||typeof e==`number`||typeof e==`boolean`}function o(e,t,n,o){var s=a(o)?o:n(o),l=t.get(s);return l===void 0&&(l=e.call(this,o),t.set(s,l)),l}function s(e,t,n){var a=Array.prototype.slice.call(arguments,3),o=n(a),s=t.get(o);return s===void 0&&(s=e.apply(this,a),t.set(o,s)),s}function l(e,t,n,a,o){return n.bind(t,e,a,o)}function u(e,t){var n=e.length===1?o:s;return l(e,this,n,t.cache.create(),t.serializer)}function d(e,t){var n=s;return l(e,this,n,t.cache.create(),t.serializer)}function f(e,t){var n=o;return l(e,this,n,t.cache.create(),t.serializer)}function m(){return JSON.stringify(arguments)}function h(){this.cache=Object.create(null)}h.prototype.has=function(e){return e in this.cache},h.prototype.get=function(e){return this.cache[e]},h.prototype.set=function(e,t){this.cache[e]=t};var v={create:function(){return new h}};t.exports=n,t.exports.strategies={variadic:d,monadic:f}})),import_src=__toESM(require_src()),MemoizeCache=class{cache={};cacheSize;constructor({cacheSize:e=10}={}){this.cacheSize=e}has(e){return e in this.cache}get(e){return this.cache[e]}set(e,t){Object.keys(this.cache).length>this.cacheSize&&(this.cache={}),this.cache[e]=t}},memoize=(e,t={})=>(0,import_src.default)(e,{cache:{create:()=>new MemoizeCache(t)},...t}),getCropLifecycleDuration=memoize(({cropTimeline:e})=>e.reduce((e,t)=>e+t,0)),{freeze:freeze$8}=Object,crop=({cropTimeline:e=[],growsInto:t,tier:n=1,isSeed:a=!!t,cropLifecycleDuration:o=getCropLifecycleDuration({cropTimeline:e}),id:s=``,name:l=``,...u})=>freeze$8({id:s,name:l,cropTimeline:e,doesPriceFluctuate:!0,tier:n,type:itemType.CROP,value:10+o*n*(a?1:3),...a&&{enablesFieldMode:fieldMode.PLANT,growsInto:t,isPlantableCrop:!0},...u}),fromSeed=({cropTimeline:e,cropType:t,growsInto:n,tier:a=1},{variantIdx:o=0,canBeFermented:s=!1}={})=>({id:(Array.isArray(n)?n:[n])[o]||``,cropTimeline:e||[],cropType:t,doesPriceFluctuate:!0,tier:a,type:itemType.CROP,...s&&e&&{daysToFerment:getCropLifecycleDuration({cropTimeline:e})*a}}),cropVariety=({imageId:e,cropFamily:t,variety:n,...a})=>({imageId:e,cropFamily:t,variety:n,...crop({...a})}),isGrape=e=>`cropFamily`in e&&e.cropFamily===cropFamily.GRAPE,grape=e=>({...e,...cropVariety({...e,cropFamily:cropFamily.GRAPE})}),grapeSeed=crop({cropType:cropType.GRAPE,cropTimeline:[3,4],growsInto:[`grape-chardonnay`,`grape-sauvignon-blanc`,`grape-cabernet-sauvignon`,`grape-tempranillo`,`grape-nebbiolo`],id:`grape-seed`,name:`Grape Seed`,tier:7}),grapeVarietyNameMap={[grapeVariety.CHARDONNAY]:`Chardonnay`,[grapeVariety.SAUVIGNON_BLANC]:`Sauvignon Blanc`,[grapeVariety.CABERNET_SAUVIGNON]:`Cabernet Sauvignon`,[grapeVariety.TEMPRANILLO]:`Tempranillo`,[grapeVariety.NEBBIOLO]:`Nebbiolo`},wineVarietyValueMap={[grapeVariety.CHARDONNAY]:1,[grapeVariety.SAUVIGNON_BLANC]:8,[grapeVariety.CABERNET_SAUVIGNON]:3,[grapeVariety.TEMPRANILLO]:5,[grapeVariety.NEBBIOLO]:10},grapeChardonnay=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-chardonnay`)}),name:`Chardonnay Grape`,imageId:`grape-green`,variety:grapeVariety.CHARDONNAY,wineId:`wine-chardonnay`}),grapeSauvignonBlanc=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-sauvignon-blanc`)}),name:`Sauvignon Blanc Grape`,imageId:`grape-green`,variety:grapeVariety.SAUVIGNON_BLANC,wineId:`wine-sauvignon-blanc`}),grapeCabernetSauvignon=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-cabernet-sauvignon`)}),name:`Cabernet Sauvignon Grape`,imageId:`grape-purple`,variety:grapeVariety.CABERNET_SAUVIGNON,wineId:`wine-cabernet-sauvignon`}),grapeTempranillo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-tempranillo`)}),name:`Tempranillo Grape`,imageId:`grape-purple`,variety:grapeVariety.TEMPRANILLO,wineId:`wine-tempranillo`}),grapeNebbiolo=grape({...fromSeed(grapeSeed,{variantIdx:grapeSeed.growsInto?.indexOf(`grape-nebbiolo`)}),name:`Nebbiolo Grape`,imageId:`grape-purple`,variety:grapeVariety.NEBBIOLO,wineId:`wine-nebbiolo`}),grapeVarietyToGrapeItemMap={[grapeVariety.CHARDONNAY]:grapeChardonnay,[grapeVariety.SAUVIGNON_BLANC]:grapeSauvignonBlanc,[grapeVariety.CABERNET_SAUVIGNON]:grapeCabernetSauvignon,[grapeVariety.TEMPRANILLO]:grapeTempranillo,[grapeVariety.NEBBIOLO]:grapeNebbiolo},getYeastRequiredForWine=e=>wineVarietyValueMap[e]*5,asparagusSeed=crop({cropType:cropType.ASPARAGUS,cropTimeline:[4,2,2,1],growsInto:`asparagus`,id:`asparagus-seed`,name:`Asparagus Seed`,tier:4}),asparagus=crop({...fromSeed(asparagusSeed,{canBeFermented:!0}),name:`Asparagus`}),carrotSeed=crop({cropType:cropType.CARROT,cropTimeline:[2,1,1,1],growsInto:`carrot`,id:`carrot-seed`,name:`Carrot Seed`,tier:1}),carrot=crop({...fromSeed(carrotSeed,{canBeFermented:!0}),name:`Carrot`}),cornSeed=crop({cropType:cropType.CORN,cropTimeline:[3,1,1,1,2,2],growsInto:`corn`,id:`corn-seed`,name:`Corn Kernels`,tier:2}),corn=crop({...fromSeed(cornSeed,{canBeFermented:!0}),name:`Corn`}),garlicSeed=crop({cropType:cropType.GARLIC,cropTimeline:[2,1,1,1],growsInto:`garlic`,id:`garlic-seed`,name:`Garlic Bulb`,tier:5}),garlic=crop({...fromSeed(garlicSeed,{canBeFermented:!0}),name:`Garlic`}),jalapenoSeed=crop({cropType:cropType.JALAPENO,cropTimeline:[2,1,1,1],growsInto:`jalapeno`,id:`jalapeno-seed`,name:`Jalapeño Seed`,tier:4}),jalapeno=crop({...fromSeed(jalapenoSeed,{canBeFermented:!0}),name:`Jalapeño`}),oliveSeed=crop({cropType:cropType.OLIVE,cropTimeline:[3,6],growsInto:`olive`,id:`olive-seed`,name:`Olive Seed`,tier:6}),olive=crop({...fromSeed(oliveSeed,{canBeFermented:!0}),name:`Olive`}),onionSeed=crop({cropType:cropType.ONION,cropTimeline:[3,1,2,1],growsInto:`onion`,id:`onion-seed`,name:`Onion Seeds`,tier:2}),onion=crop({...fromSeed(onionSeed,{canBeFermented:!0}),name:`Onion`}),peaSeed=crop({cropType:cropType.PEA,cropTimeline:[2,3],growsInto:`pea`,id:`pea-seed`,name:`Pea Seed`,tier:5}),pea=crop({...fromSeed(peaSeed,{canBeFermented:!0}),name:`Pea`}),potatoSeed=crop({cropType:cropType.POTATO,cropTimeline:[2,1,1,1],growsInto:`potato`,id:`potato-seed`,name:`Potato Seeds`,tier:2}),potato=crop({...fromSeed(potatoSeed,{canBeFermented:!0}),name:`Potato`}),pumpkinSeed=crop({cropType:cropType.PUMPKIN,cropTimeline:[3,1,1,1,1,1],growsInto:`pumpkin`,id:`pumpkin-seed`,name:`Pumpkin Seed`,tier:1}),pumpkin=crop({...fromSeed(pumpkinSeed,{canBeFermented:!0}),name:`Pumpkin`}),soybeanSeed=crop({cropType:cropType.SOYBEAN,cropTimeline:[2,2],growsInto:`soybean`,id:`soybean-seed`,name:`Soybean Seeds`,tier:3}),soybean=crop({...fromSeed(soybeanSeed,{canBeFermented:!0}),name:`Soybean`}),spinachSeed=crop({cropType:cropType.SPINACH,cropTimeline:[2,4],growsInto:`spinach`,id:`spinach-seed`,name:`Spinach Seed`,tier:1}),spinach=crop({...fromSeed(spinachSeed,{canBeFermented:!0}),name:`Spinach`}),sunflowerSeed=crop({cropType:cropType.SUNFLOWER,cropTimeline:[1,1,1,1,1,1],growsInto:`sunflower`,id:`sunflower-seed`,name:`Sunflower Seed`,tier:6}),sunflower=crop({...fromSeed(sunflowerSeed,{canBeFermented:!0}),name:`Sunflower`}),strawberrySeed=crop({cropType:cropType.STRAWBERRY,cropTimeline:[6,2],growsInto:`strawberry`,id:`strawberry-seed`,name:`Strawberry Seed`,tier:5}),strawberry=crop({...fromSeed(strawberrySeed),name:`Strawberry`}),sweetPotatoSeed=crop({cropType:cropType.SWEET_POTATO,cropTimeline:[2,1,1,2,2],growsInto:`sweet-potato`,id:`sweet-potato-seed`,name:`Sweet Potato Slip`,tier:6}),sweetPotato=crop({...fromSeed(sweetPotatoSeed,{canBeFermented:!0}),name:`Sweet Potato`}),tomatoSeed=crop({cropType:cropType.TOMATO,cropTimeline:[2,1,1,1,2,2,2],growsInto:`tomato`,id:`tomato-seed`,name:`Tomato Seeds`,tier:3}),tomato=crop({...fromSeed(tomatoSeed,{canBeFermented:!0}),name:`Tomato`}),watermelonSeed=crop({cropType:cropType.WATERMELON,cropTimeline:[2,10],growsInto:`watermelon`,id:`watermelon-seed`,name:`Watermelon Seed`,tier:4}),watermelon=crop({...fromSeed(watermelonSeed),name:`Watermelon`}),wheatSeed=crop({cropType:cropType.WHEAT,cropTimeline:[1,1],growsInto:`wheat`,id:`wheat-seed`,name:`Wheat Seeds`,tier:3}),wheat=crop({...fromSeed(wheatSeed),name:`Wheat`}),{freeze:freeze$7}=Object,bronzeOre=freeze$7({description:`A piece of bronze ore.`,doesPriceFluctuate:!0,id:`bronze-ore`,name:`Bronze Ore`,type:itemType.ORE,value:25,spawnChance:BRONZE_SPAWN_CHANCE}),{freeze:freeze$6}=Object,coal$1=freeze$6({description:`A piece of coal.`,doesPriceFluctuate:!1,id:`coal`,name:`Coal`,type:itemType.FUEL,spawnChance:COAL_SPAWN_CHANCE,value:2}),{freeze:freeze$5}=Object,goldOre=freeze$5({description:`A piece of gold ore.`,doesPriceFluctuate:!0,id:`gold-ore`,name:`Gold Ore`,type:itemType.ORE,value:500,spawnChance:GOLD_SPAWN_CHANCE}),{freeze:freeze$4}=Object,ironOre=freeze$4({description:`A piece of iron ore.`,doesPriceFluctuate:!0,id:`iron-ore`,name:`Iron Ore`,type:itemType.ORE,value:40,spawnChance:IRON_SPAWN_CHANCE}),{freeze:freeze$3}=Object,silverOre=freeze$3({description:`A piece of silver ore.`,doesPriceFluctuate:!0,id:`silver-ore`,name:`Silver Ore`,type:itemType.ORE,value:100,spawnChance:SILVER_SPAWN_CHANCE}),{freeze:freeze$2}=Object,stone=freeze$2({description:`A piece of rock.`,doesPriceFluctuate:!1,id:`stone`,name:`Stone`,spawnChance:STONE_SPAWN_CHANCE,type:itemType.STONE,value:10}),{freeze:freeze$1}=Object,saltRock=freeze$1({description:`A large chunk of salt.`,doesPriceFluctuate:!0,id:`salt-rock`,name:`Salt Rock`,spawnChance:SALT_ROCK_SPAWN_CHANCE,type:itemType.STONE,value:10}),items_exports=__exportAll({asparagus:()=>asparagus,asparagusSeed:()=>asparagusSeed,bronzeOre:()=>bronzeOre,carrot:()=>carrot,carrotSeed:()=>carrotSeed,chocolateMilk:()=>chocolateMilk,coal:()=>coal$1,corn:()=>corn,cornSeed:()=>cornSeed,cowFeed:()=>cowFeed$1,garlic:()=>garlic,garlicSeed:()=>garlicSeed,goldOre:()=>goldOre,grapeCabernetSauvignon:()=>grapeCabernetSauvignon,grapeChardonnay:()=>grapeChardonnay,grapeNebbiolo:()=>grapeNebbiolo,grapeSauvignonBlanc:()=>grapeSauvignonBlanc,grapeSeed:()=>grapeSeed,grapeTempranillo:()=>grapeTempranillo,huggingMachine:()=>huggingMachine,ironOre:()=>ironOre,jalapeno:()=>jalapeno,jalapenoSeed:()=>jalapenoSeed,milk1:()=>milk1,milk2:()=>milk2,milk3:()=>milk3,olive:()=>olive,oliveSeed:()=>oliveSeed,onion:()=>onion,onionSeed:()=>onionSeed,pea:()=>pea,peaSeed:()=>peaSeed,potato:()=>potato,potatoSeed:()=>potatoSeed,pumpkin:()=>pumpkin,pumpkinSeed:()=>pumpkinSeed,rainbowFertilizer:()=>rainbowFertilizer,rainbowMilk1:()=>rainbowMilk1,rainbowMilk2:()=>rainbowMilk2,rainbowMilk3:()=>rainbowMilk3,saltRock:()=>saltRock,scarecrow:()=>scarecrow,silverOre:()=>silverOre,soybean:()=>soybean,soybeanSeed:()=>soybeanSeed,spinach:()=>spinach,spinachSeed:()=>spinachSeed,sprinkler:()=>sprinkler,stone:()=>stone,strawberry:()=>strawberry,strawberrySeed:()=>strawberrySeed,sunflower:()=>sunflower,sunflowerSeed:()=>sunflowerSeed,sweetPotato:()=>sweetPotato,sweetPotatoSeed:()=>sweetPotatoSeed,tomato:()=>tomato,tomatoSeed:()=>tomatoSeed,watermelon:()=>watermelon,watermelonSeed:()=>watermelonSeed,weed:()=>weed,wheat:()=>wheat,wheatSeed:()=>wheatSeed}),{freeze}=Object,{COW_FEED,FERTILIZER,HUGGING_MACHINE,MILK,SCARECROW,SPRINKLER,WEED:WEED$1}=itemType,weed=freeze({id:`weed`,name:`Weed`,value:.1,doesPriceFluctuate:!1,type:WEED$1}),rainbowFertilizer=freeze({description:`Helps crops grow a little faster and automatically replants them upon harvesting. Consumes seeds upon replanting and disappears if none are available. Also works for Scarecrows.`,enablesFieldMode:fieldMode.FERTILIZE,id:`rainbow-fertilizer`,name:`Rainbow Fertilizer`,type:FERTILIZER,value:15}),sprinkler=freeze({description:`Automatically waters adjacent plants every day.`,enablesFieldMode:fieldMode.SET_SPRINKLER,hoveredPlotRangeSize:1,id:`sprinkler`,isReplantable:!0,name:`Sprinkler`,type:SPRINKLER,value:120}),scarecrow=freeze({description:`Prevents crows from eating your crops. One scarecrow covers an entire field, but they are afraid of storms.`,enablesFieldMode:fieldMode.SET_SCARECROW,hoveredPlotRangeSize:2**53-1,id:`scarecrow`,isReplantable:!0,name:`Scarecrow`,type:SCARECROW,value:160}),cowFeed$1=freeze({id:COW_FEED_ITEM_ID,description:`Each cow automatically consumes one unit of Cow Feed per day. Fed cows gain and maintain weight.`,name:`Cow Feed`,type:COW_FEED,value:5}),huggingMachine=freeze({id:HUGGING_MACHINE_ITEM_ID,description:`Automatically hugs one cow three times every day.`,name:`Hugging Machine`,type:HUGGING_MACHINE,value:500}),milk1=freeze({id:`milk-1`,name:`Grade C Milk`,type:MILK,value:40}),milk2=freeze({id:`milk-2`,name:`Grade B Milk`,type:MILK,value:80}),milk3=freeze({id:`milk-3`,name:`Grade A Milk`,type:MILK,value:120}),rainbowMilk1=freeze({id:`rainbow-milk-1`,name:`Grade C Rainbow Milk`,type:MILK,value:60}),rainbowMilk2=freeze({id:`rainbow-milk-2`,name:`Grade B Rainbow Milk`,type:MILK,value:120}),rainbowMilk3=freeze({id:`rainbow-milk-3`,name:`Grade A Rainbow Milk`,type:MILK,value:180}),chocolateMilk=freeze({id:`chocolate-milk`,name:`Chocolate Milk`,type:MILK,value:80}),itemsMap$2={...Object.keys(items_exports).reduce((e,t)=>{let n=items_exports[t];return e[n.id]=n,e},{})},recipes_exports=__exportAll({bread:()=>bread,bronzeIngot:()=>bronzeIngot$1,burger:()=>burger,butter:()=>butter,carrotSoup:()=>carrotSoup,cheese:()=>cheese,chicknPotPie:()=>chicknPotPie,chocolate:()=>chocolate,chocolateSoyMilk:()=>chocolateSoyMilk,compost:()=>compost,fertilizer:()=>fertilizer,flour:()=>flour,frenchOnionSoup:()=>frenchOnionSoup,friedTofu:()=>friedTofu,garlicBread:()=>garlicBread,garlicFries:()=>garlicFries,goldIngot:()=>goldIngot$1,hotSauce:()=>hotSauce,ironIngot:()=>ironIngot$1,jackolantern:()=>jackolantern,oliveOil:()=>oliveOil,onionRings:()=>onionRings,popcorn:()=>popcorn,pumpkinPie:()=>pumpkinPie,rainbowCheese:()=>rainbowCheese,salsa:()=>salsa,salt:()=>salt,silverIngot:()=>silverIngot$1,soyMilk:()=>soyMilk,spaghetti:()=>spaghetti,spicyCheese:()=>spicyCheese,spicyPickledGarlic:()=>spicyPickledGarlic,strawberryJam:()=>strawberryJam,summerSalad:()=>summerSalad,sunButter:()=>sunButter,sweetPotatoFries:()=>sweetPotatoFries,sweetPotatoPie:()=>sweetPotatoPie,tofu:()=>tofu,vegetableOil:()=>vegetableOil,wineCabernetSauvignon:()=>wineCabernetSauvignon,wineChardonnay:()=>wineChardonnay,wineNebbiolo:()=>wineNebbiolo,wineSauvignonBlanc:()=>wineSauvignonBlanc,wineTempranillo:()=>wineTempranillo,yeast:()=>yeast}),itemsMap$1={...itemsMap$2},convertToRecipe=e=>{let t=Object.freeze({type:itemType.CRAFTED_ITEM,value:Object.keys(e.ingredients).reduce((t,n)=>t+RECIPE_INGREDIENT_VALUE_MULTIPLIER*itemsMap$1[n].value*e.ingredients[n],0),...e});return itemsMap$1[e.id]=t,t},salt=convertToRecipe({id:`salt`,name:`Salt`,ingredients:{[saltRock.id]:1},condition:e=>(e.itemsSold[saltRock.id]||0)>=30,description:`Useful for seasoning food and fermentation.`,recipeType:recipeType.KITCHEN}),flour=convertToRecipe({id:`flour`,name:`Flour`,ingredients:{[wheat.id]:10},condition:e=>(e.itemsSold[wheat.id]||0)>=20,recipeType:recipeType.KITCHEN}),yeast=convertToRecipe({id:`yeast`,name:`Yeast`,ingredients:{[flour.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=25,recipeType:recipeType.KITCHEN}),getWineRecipeFromGrape=e=>({...convertToRecipe({id:e.wineId,name:`${grapeVarietyNameMap[e.variety]} Wine`,type:itemType.CRAFTED_ITEM,ingredients:{[e.id]:50,[yeast.id]:getYeastRequiredForWine(e.variety)},recipeType:recipeType.WINE,condition:()=>!1}),variety:e.variety}),bread=convertToRecipe({id:`bread`,name:`Bread`,ingredients:{[flour.id]:10,[yeast.id]:5},condition:e=>(e.itemsSold[flour.id]||0)>=30&&(e.itemsSold[yeast.id]||0)>=15,recipeType:recipeType.KITCHEN}),butter=convertToRecipe({id:`butter`,name:`Butter`,ingredients:{[milk3.id]:5},condition:e=>(e.itemsSold[milk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),sunButter=convertToRecipe({id:`sun-butter`,name:`Sun Butter`,ingredients:{[sunflower.id]:25},condition:e=>(e.itemsSold[sunflower.id]||0)>=200,recipeType:recipeType.KITCHEN}),oliveOil=convertToRecipe({id:`olive-oil`,name:`Olive Oil`,ingredients:{[olive.id]:250},condition:e=>(e.itemsSold[olive.id]||0)>=500,recipeType:recipeType.KITCHEN}),cheese=convertToRecipe({id:`cheese`,name:`Cheese`,ingredients:{[milk3.id]:8},condition:e=>(e.itemsSold[milk3.id]||0)>=20,recipeType:recipeType.KITCHEN}),rainbowCheese=convertToRecipe({id:`rainbowCheese`,name:`Rainbow Cheese`,ingredients:{[rainbowMilk3.id]:10},condition:e=>(e.itemsSold[rainbowMilk3.id]||0)>=30,recipeType:recipeType.KITCHEN}),chocolate=convertToRecipe({id:`chocolate`,name:`Chocolate`,ingredients:{[chocolateMilk.id]:10},condition:e=>(e.itemsSold[chocolateMilk.id]||0)>=25,recipeType:recipeType.KITCHEN}),carrotSoup=convertToRecipe({id:`carrot-soup`,name:`Carrot Soup`,ingredients:{[carrot.id]:4},condition:e=>(e.itemsSold[carrot.id]||0)>=10,recipeType:recipeType.KITCHEN}),jackolantern=convertToRecipe({id:`jackolantern`,name:`Jack-o'-lantern`,ingredients:{[pumpkin.id]:1},condition:e=>(e.itemsSold[pumpkin.id]||0)>=50,recipeType:recipeType.KITCHEN}),spaghetti=convertToRecipe({id:`spaghetti`,name:`Spaghetti`,ingredients:{[wheat.id]:10,[tomato.id]:2},condition:e=>(e.itemsSold[wheat.id]||0)>=20&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),frenchOnionSoup=convertToRecipe({id:`french-onion-soup`,name:`French Onion Soup`,ingredients:{[onion.id]:5,[cheese.id]:2,[salt.id]:2},condition:e=>(e.itemsSold[onion.id]||0)>=15&&(e.itemsSold[cheese.id]||0)>=10,recipeType:recipeType.KITCHEN}),burger=convertToRecipe({id:`burger`,name:`Burger`,ingredients:{[bread.id]:1,[cheese.id]:1,[onion.id]:1,[soybean.id]:12,[spinach.id]:1,[tomato.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=5&&(e.itemsSold[cheese.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[soybean.id]||0)>=25&&(e.itemsSold[spinach.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5,recipeType:recipeType.KITCHEN}),summerSalad=convertToRecipe({id:`summer-salad`,name:`Summer Salad`,ingredients:{[spinach.id]:6,[corn.id]:1,[carrot.id]:1},condition:e=>(e.itemsSold[spinach.id]||0)>=30&&(e.itemsSold[corn.id]||0)>5&&(e.itemsSold[carrot.id]||0)>5,recipeType:recipeType.KITCHEN}),soyMilk=convertToRecipe({id:`soy-milk`,name:`Soy Milk`,ingredients:{[soybean.id]:20},condition:e=>(e.itemsSold[soybean.id]||0)>=100,recipeType:recipeType.KITCHEN}),chocolateSoyMilk=convertToRecipe({id:`chocolate-soy-milk`,name:`Chocolate Soy Milk`,ingredients:{[soyMilk.id]:1,[chocolate.id]:1},condition:e=>(e.itemsSold[soyMilk.id]||0)>=5&&(e.itemsSold[chocolate.id]||0)>=5,recipeType:recipeType.KITCHEN}),tofu=convertToRecipe({id:`tofu`,name:`Tofu`,ingredients:{[soyMilk.id]:4},condition:e=>(e.itemsSold[soyMilk.id]||0)>=20,recipeType:recipeType.KITCHEN}),chicknPotPie=convertToRecipe({id:`chickn-pot-pie`,name:`Chick'n Pot Pie`,ingredients:{[tofu.id]:6,[pea.id]:10,[carrot.id]:8,[wheat.id]:12,[soyMilk.id]:3},condition:e=>(e.itemsSold[tofu.id]||0)>=30&&(e.itemsSold[pea.id]||0)>=225&&(e.itemsSold[carrot.id]||0)>=300&&(e.itemsSold[wheat.id]||0)>=425&&(e.itemsSold[soyMilk.id]||0)>=15,recipeType:recipeType.KITCHEN}),hotSauce=convertToRecipe({id:`hot-sauce`,name:`Hot Sauce`,ingredients:{[jalapeno.id]:10,[salt.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=50,recipeType:recipeType.KITCHEN}),salsa=convertToRecipe({id:`salsa`,name:`Salsa`,ingredients:{[jalapeno.id]:1,[onion.id]:1,[tomato.id]:1,[corn.id]:1},condition:e=>(e.itemsSold[jalapeno.id]||0)>=5&&(e.itemsSold[onion.id]||0)>=5&&(e.itemsSold[tomato.id]||0)>=5&&(e.itemsSold[corn.id]||0)>=5,recipeType:recipeType.KITCHEN}),spicyCheese=convertToRecipe({id:`spicy-cheese`,name:`Spicy Cheese`,ingredients:{[jalapeno.id]:4,[milk3.id]:10},condition:e=>(e.itemsSold[jalapeno.id]||0)>=20&&(e.itemsSold[milk3.id]||0)>=50,recipeType:recipeType.KITCHEN}),vegetableOil=convertToRecipe({id:`vegetable-oil`,name:`Vegetable Oil`,ingredients:{[soybean.id]:350},condition:e=>(e.itemsSold[soybean.id]||0)>=900,recipeType:recipeType.KITCHEN}),friedTofu=convertToRecipe({id:`fried-tofu`,name:`Deep Fried Tofu`,ingredients:{[tofu.id]:1,[vegetableOil.id]:2},condition:e=>(e.itemsSold[tofu.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>=50,recipeType:recipeType.KITCHEN}),spicyPickledGarlic=convertToRecipe({id:`spicy-pickled-garlic`,name:`Spicy Pickled Garlic`,ingredients:{[jalapeno.id]:2,[garlic.id]:5},condition:e=>(e.itemsSold[jalapeno.id]||0)>=12&&(e.itemsSold[garlic.id]||0)>=25,recipeType:recipeType.KITCHEN}),garlicFries=convertToRecipe({id:`garlic-fries`,name:`Garlic Fries`,ingredients:{[potato.id]:5,[garlic.id]:3,[vegetableOil.id]:1,[salt.id]:2},condition:e=>(e.itemsSold[potato.id]||0)>=50&&(e.itemsSold[garlic.id]||0)>=30,recipeType:recipeType.KITCHEN}),garlicBread=convertToRecipe({id:`garlic-bread`,name:`Garlic Bread`,ingredients:{[bread.id]:1,[garlic.id]:5,[oliveOil.id]:1},condition:e=>(e.itemsSold[bread.id]||0)>=30&&(e.itemsSold[oliveOil.id]||0)>=20&&(e.itemsSold[garlic.id]||0)>=50,recipeType:recipeType.KITCHEN}),strawberryJam=convertToRecipe({id:`strawberry-jam`,name:`Strawberry Jam`,ingredients:{[strawberry.id]:10},condition:e=>(e.itemsSold[strawberry.id]||0)>=60,recipeType:recipeType.KITCHEN}),popcorn=convertToRecipe({id:`popcorn`,name:`Popcorn`,ingredients:{[corn.id]:2,[butter.id]:1},condition:e=>(e.itemsSold[corn.id]||0)>=12&&(e.itemsSold[butter.id]||0)>=6,recipeType:recipeType.KITCHEN}),pumpkinPie=convertToRecipe({id:`pumpkin-pie`,name:`Pumpkin Pie`,ingredients:{[pumpkin.id]:4,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[pumpkin.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoPie=convertToRecipe({id:`sweet-potato-pie`,name:`Sweet Potato Pie`,ingredients:{[sweetPotato.id]:6,[wheat.id]:10,[butter.id]:2},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=200&&(e.itemsSold[wheat.id]||0)>=250&&(e.itemsSold[butter.id]||0)>=75,recipeType:recipeType.KITCHEN}),sweetPotatoFries=convertToRecipe({id:`sweet-potato-fries`,name:`Sweet Potato Fries`,ingredients:{[sweetPotato.id]:10,[vegetableOil.id]:1,[salt.id]:1},condition:e=>(e.itemsSold[sweetPotato.id]||0)>=100,recipeType:recipeType.KITCHEN}),onionRings=convertToRecipe({id:`onion-rings`,name:`Onion Rings`,ingredients:{[onion.id]:1,[vegetableOil.id]:1,[wheat.id]:5,[soyMilk.id]:1,[salt.id]:3},condition:e=>(e.itemsSold[onion.id]||0)>=50&&(e.itemsSold[vegetableOil.id]||0)>20&&(e.itemsSold[soyMilk.id]||0)>20&&(e.itemsSold[wheat.id]||0)>30,recipeType:recipeType.KITCHEN}),bronzeIngot$1=convertToRecipe({id:`bronze-ingot`,name:`Bronze Ingot`,ingredients:{[bronzeOre.id]:5,[coal$1.id]:5},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[bronzeOre.id]||0)>=50,recipeType:recipeType.FORGE}),ironIngot$1=convertToRecipe({id:`iron-ingot`,name:`Iron Ingot`,ingredients:{[ironOre.id]:5,[coal$1.id]:12},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[ironOre.id]||0)>=50,recipeType:recipeType.FORGE}),silverIngot$1=convertToRecipe({id:`silver-ingot`,name:`Silver Ingot`,ingredients:{[silverOre.id]:5,[coal$1.id]:8},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[silverOre.id]||0)>=50,recipeType:recipeType.FORGE}),goldIngot$1=convertToRecipe({id:`gold-ingot`,name:`Gold Ingot`,ingredients:{[goldOre.id]:5,[coal$1.id]:10},condition:e=>e.purchasedSmelter>0&&(e.itemsSold[goldOre.id]||0)>=50,recipeType:recipeType.FORGE}),compost=convertToRecipe({id:`compost`,name:`Compost`,ingredients:{[weed.id]:25},condition:e=>e.purchasedComposter>0&&(e.itemsSold[weed.id]||0)>=100,description:`Can be used to make fertilizer.`,recipeType:recipeType.RECYCLING,type:itemType.CRAFTED_ITEM}),fertilizer=convertToRecipe({id:`fertilizer`,name:`Fertilizer`,ingredients:{[compost.id]:10},condition:e=>e.purchasedComposter>0&&(e.itemsSold[compost.id]||0)>=10,description:`Helps crops grow and mature a little faster.`,enablesFieldMode:fieldMode.FERTILIZE,recipeType:recipeType.RECYCLING,type:itemType.FERTILIZER,value:25}),wineChardonnay=getWineRecipeFromGrape({...grapeChardonnay}),wineSauvignonBlanc=getWineRecipeFromGrape({...grapeSauvignonBlanc}),wineCabernetSauvignon=getWineRecipeFromGrape({...grapeCabernetSauvignon}),wineTempranillo=getWineRecipeFromGrape({...grapeTempranillo}),wineNebbiolo=getWineRecipeFromGrape({...grapeNebbiolo}),coalNeededForIngots=(e,t=1)=>{switch(e){case bronzeIngot$1.id:return t*2;case ironIngot$1.id:return Math.round(t*3.5);case silverIngot$1.id:return Math.round(t*2.5);case goldIngot$1.id:return t*3;default:return t}},{bronzeIngot,ironIngot,silverIngot,goldIngot}=recipes_exports,{coal}=items_exports,upgrades={[toolType.HOE]:{[toolLevel.DEFAULT]:{id:`hoe-default`,name:`Basic Hoe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`hoe-bronze`,description:`Gives 25% chance to retrieve seeds when digging up crops`,name:`Bronze Hoe`,ingredients:{[bronzeIngot.id]:8,[coal.id]:coalNeededForIngots(bronzeIngot.id,8)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`hoe-iron`,description:`Gives 50% chance to retrieve seeds when digging up crops`,name:`Iron Hoe`,ingredients:{[ironIngot.id]:8,[coal.id]:coalNeededForIngots(ironIngot.id,8)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`hoe-silver`,description:`Gives 75% chance to retrieve seeds when digging up crops`,name:`Silver Hoe`,ingredients:{[silverIngot.id]:8,[coal.id]:coalNeededForIngots(silverIngot.id,8)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`hoe-gold`,description:`Gives 100% chance to retrieve seeds when digging up crops`,name:`Gold Hoe`,ingredients:{[goldIngot.id]:8,[coal.id]:coalNeededForIngots(goldIngot.id,8)},isMaxLevel:!0}},[toolType.SCYTHE]:{[toolLevel.DEFAULT]:{id:`scythe-default`,name:`Basic Scythe`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`scythe-bronze`,description:`Increases crop yield by 1 when harvesting`,name:`Bronze Scythe`,ingredients:{[bronzeIngot.id]:10,[coal.id]:coalNeededForIngots(bronzeIngot.id,10)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`scythe-iron`,description:`Increases crop yield by 2 when harvesting`,name:`Iron Scythe`,ingredients:{[ironIngot.id]:10,[coal.id]:coalNeededForIngots(ironIngot.id,10)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`scythe-silver`,description:`Increases crop yield by 3 when harvesting`,name:`Silver Scythe`,ingredients:{[silverIngot.id]:10,[coal.id]:coalNeededForIngots(silverIngot.id,10)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`scythe-gold`,description:`Increases crop yield by 4 when harvesting`,name:`Gold Scythe`,ingredients:{[goldIngot.id]:10,[coal.id]:coalNeededForIngots(goldIngot.id,10)},isMaxLevel:!0}},[toolType.SHOVEL]:{[toolLevel.DEFAULT]:{id:`shovel-default`,name:`Basic Shovel`,nextLevel:toolLevel.BRONZE},[toolLevel.BRONZE]:{id:`shovel-bronze`,description:`Increases chance of finding ore`,name:`Bronze Shovel`,ingredients:{[bronzeIngot.id]:15,[coal.id]:coalNeededForIngots(bronzeIngot.id,15)},nextLevel:toolLevel.IRON},[toolLevel.IRON]:{id:`shovel-iron`,description:`Increases chance of finding ore`,name:`Iron Shovel`,ingredients:{[ironIngot.id]:15,[coal.id]:coalNeededForIngots(ironIngot.id,15)},nextLevel:toolLevel.SILVER},[toolLevel.SILVER]:{id:`shovel-silver`,description:`Increases chance of finding ore`,name:`Silver Shovel`,ingredients:{[silverIngot.id]:15,[coal.id]:coalNeededForIngots(silverIngot.id,15)},nextLevel:toolLevel.GOLD},[toolLevel.GOLD]:{id:`shovel-gold`,description:`Increases chance of finding ore`,name:`Gold Shovel`,ingredients:{[goldIngot.id]:15,[coal.id]:coalNeededForIngots(goldIngot.id,15)},isMaxLevel:!0}}};for(let e in upgrades){let t=upgrades[e];for(let n in t)Object.assign(t[n],{toolType:e,value:0,doesPriceFluctuate:!1,type:itemType.TOOL_UPGRADE,level:n})}var{ASPARAGUS,CARROT,CORN,GARLIC,GRAPE,JALAPENO,OLIVE,ONION,PEA,POTATO,PUMPKIN,SOYBEAN,SPINACH,SUNFLOWER,STRAWBERRY,SWEET_POTATO,TOMATO,WATERMELON,WHEAT,WEED}=cropType,recipeCategories={[recipeType.KITCHEN]:{},[recipeType.FORGE]:{},[recipeType.FERMENTATION]:{},[recipeType.RECYCLING]:{},[recipeType.WINE]:{}},recipesMap={};for(let e of Object.keys(recipes_exports)){let t=recipes_exports[e];recipeCategories[t.recipeType][t.id]=t,recipesMap[t.id]=t}var upgradesMap={};for(let e of Object.keys(upgrades))for(let t of Object.values(upgrades[e]))upgradesMap[t.id]=t;var itemsMap={...itemsMap$2,...recipesMap,...upgradesMap},fermentableItemsMap=Object.fromEntries(Object.entries(itemsMap).filter(([e])=>`daysToFerment`in itemsMap[e])),cropItemIdToSeedItemMap=Object.entries(itemsMap$2).reduce((e,[t,n])=>{let{growsInto:a}=n;if(a){let n=Array.isArray(a)?a:[a];for(let a of n)e[a]=itemsMap$2[t]}return e},{}),cropTypeToIdMap={[ASPARAGUS]:`asparagus`,[CARROT]:`carrot`,[CORN]:`corn`,[GARLIC]:`garlic`,[GRAPE]:grapeSeed.growsInto,[JALAPENO]:`jalapeno`,[OLIVE]:`olive`,[ONION]:`onion`,[PEA]:`pea`,[POTATO]:`potato`,[PUMPKIN]:`pumpkin`,[SOYBEAN]:`soybean`,[SPINACH]:`spinach`,[STRAWBERRY]:`strawberry`,[SUNFLOWER]:`sunflower`,[SWEET_POTATO]:`sweet-potato`,[TOMATO]:`tomato`,[WATERMELON]:`watermelon`,[WHEAT]:`wheat`,[WEED]:`weed`},isItemAGrownCrop=e=>e.type===itemType.CROP&&!e.growsInto,FARM_PRODUCT_TYPES=[itemType.CRAFTED_ITEM,itemType.FUEL,itemType.MILK,itemType.ORE,itemType.STONE],isItemAFarmProduct=e=>!!(isItemAGrownCrop(e)||FARM_PRODUCT_TYPES.includes(e.type)),farmProductsSold=memoize(e=>Object.entries(e).reduce((e,[t,n])=>e+(isItemAFarmProduct(itemsMap[t])&&n||0),0)),transformStateDataForImport=e=>{let t={...e};[`version`].forEach(e=>delete t[e]),t.experience===0&&(t.experience=farmProductsSold(t.itemsSold||{})),t.showHomeScreen===!1&&t.stageFocus===stageFocusType.HOME&&(t={...t,stageFocus:STANDARD_VIEW_LIST[0]});{let{cowId1:e,cowId2:n}=t.cowBreedingPen,a=t.cowInventory.reduce((e,t)=>(e[t.id]=t,e),{});[e,n].some(e=>e&&!(e in a))&&(t.cowBreedingPen={cowId1:null,cowId2:null,daysUntilBirth:-1})}return t.id&&(t.playerId=t.id,delete t.id),t},require_alea=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=l();t.next=function(){var e=2091639*t.s0+t.c*23283064365386963e-26;return t.s0=t.s1,t.s1=t.s2,t.s2=e-(t.c=e|0)},t.c=1,t.s0=n(` `),t.s1=n(` `),t.s2=n(` `),t.s0-=n(e),t.s0<0&&(t.s0+=1),t.s1-=n(e),t.s1<0&&(t.s1+=1),t.s2-=n(e),t.s2<0&&(t.s2+=1),n=null}function o(e,t){return t.c=e.c,t.s0=e.s0,t.s1=e.s1,t.s2=e.s2,t}function s(e,t){var n=new a(e),s=t&&t.state,l=n.next;return l.int32=function(){return n.next()*4294967296|0},l.double=function(){return l()+(l()*2097152|0)*11102230246251565e-32},l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}function l(){var e=4022871197;return function(t){t=String(t);for(var n=0;n<t.length;n++){e+=t.charCodeAt(n);var a=.02519603282416938*e;e=a>>>0,a-=e,a*=e,e=a>>>0,a-=e,e+=a*4294967296}return(e>>>0)*23283064365386963e-26}}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.alea=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor128=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.x=0,t.y=0,t.z=0,t.w=0,t.next=function(){var e=t.x^t.x<<11;return t.x=t.y,t.y=t.z,t.z=t.w,t.w^=t.w>>>19^e^e>>>8},e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor128=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorwow=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.x^t.x>>>2;return t.x=t.y,t.y=t.z,t.z=t.w,t.w=t.v,(t.d=t.d+362437|0)+(t.v=t.v^t.v<<4^(e^e<<1))|0},t.x=0,t.y=0,t.z=0,t.w=0,t.v=0,e===(e|0)?t.x=e:n+=e;for(var a=0;a<n.length+64;a++)t.x^=n.charCodeAt(a)|0,a==n.length&&(t.d=t.x<<10^t.x>>>4),t.next()}function o(e,t){return t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t.v=e.v,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorwow=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xorshift7=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.x,n=t.i,a=e[n],o;return a^=a>>>7,o=a^a<<24,a=e[n+1&7],o^=a^a>>>10,a=e[n+3&7],o^=a^a>>>3,a=e[n+4&7],o^=a^a<<7,a=e[n+7&7],a^=a<<13,o^=a^a<<9,e[n]=o,t.i=n+1&7,o};function n(e,t){var n,a=[];if(t===(t|0))a[0]=t;else for(t=``+t,n=0;n<t.length;++n)a[n&7]=a[n&7]<<15^t.charCodeAt(n)+a[n+1&7]<<13;for(;a.length<8;)a.push(0);for(n=0;n<8&&a[n]===0;++n);for(n==8?a[7]=-1:a[n],e.x=a,e.i=0,n=256;n>0;--n)e.next()}n(t,e)}function o(e,t){return t.x=e.x.slice(),t.i=e.i,t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.x&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xorshift7=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_xor4096=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this;t.next=function(){var e=t.w,n=t.X,a=t.i,o,s;return t.w=e=e+1640531527|0,s=n[a+34&127],o=n[a=a+1&127],s^=s<<13,o^=o<<17,s^=s>>>15,o^=o>>>12,s=n[a]=s^o,t.i=a,s+(e^e>>>16)|0};function n(e,t){var n,a,o,s,l,u=[],d=128;for(t===(t|0)?(a=t,t=null):(t+=`\0`,a=0,d=Math.max(d,t.length)),o=0,s=-32;s<d;++s)t&&(a^=t.charCodeAt((s+32)%t.length)),s===0&&(l=a),a^=a<<10,a^=a>>>15,a^=a<<4,a^=a>>>13,s>=0&&(l=l+1640531527|0,n=u[s&127]^=a+l,o=n==0?o+1:0);for(o>=128&&(u[(t&&t.length||0)&127]=-1),o=127,s=512;s>0;--s)a=u[o+34&127],n=u[o=o+1&127],a^=a<<13,n^=n<<17,a^=a>>>15,n^=n>>>12,u[o]=a^n;e.w=l,e.X=u,e.i=o}n(t,e)}function o(e,t){return t.i=e.i,t.w=e.w,t.X=e.X.slice(),t}function s(e,t){e??=+new Date;var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(s.X&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.xor4096=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require_tychei=__commonJSMin(((e,t)=>{(function(e,t,n){function a(e){var t=this,n=``;t.next=function(){var e=t.b,n=t.c,a=t.d,o=t.a;return e=e<<25^e>>>7^n,n=n-a|0,a=a<<24^a>>>8^o,o=o-e|0,t.b=e=e<<20^e>>>12^n,t.c=n=n-a|0,t.d=a<<16^n>>>16^o,t.a=o-e|0},t.a=0,t.b=0,t.c=-1640531527,t.d=1367130551,e===Math.floor(e)?(t.a=e/4294967296|0,t.b=e|0):n+=e;for(var a=0;a<n.length+20;a++)t.b^=n.charCodeAt(a)|0,t.next()}function o(e,t){return t.a=e.a,t.b=e.b,t.c=e.c,t.d=e.d,t}function s(e,t){var n=new a(e),s=t&&t.state,l=function(){return(n.next()>>>0)/4294967296};return l.double=function(){do var e=((n.next()>>>11)+(n.next()>>>0)/4294967296)/(1<<21);while(e===0);return e},l.int32=n.next,l.quick=l,s&&(typeof s==`object`&&o(s,n),l.state=function(){return o(n,{})}),l}t&&t.exports?t.exports=s:n&&n.amd?n(function(){return s}):this.tychei=s})(e,typeof t==`object`&&t,typeof define==`function`&&define)})),require___vite_browser_external=__commonJSMin(((e,t)=>{t.exports={}})),require_seedrandom$1=__commonJSMin(((e,t)=>{(function(e,n,a){var o=256,s=6,l=52,u=`random`,d=a.pow(o,s),f=a.pow(2,l),m=f*2,h=o-1,v;function y(e,t,l){var h=[];t=t==1?{entropy:!0}:t||{};var v=C(S(t.entropy?[e,E(n)]:e??T(),3),h),y=new b(h),D=function(){for(var e=y.g(s),t=d,n=0;e<f;)e=(e+n)*o,t*=o,n=y.g(1);for(;e>=m;)e/=2,t/=2,n>>>=1;return(e+n)/t};return D.int32=function(){return y.g(4)|0},D.quick=function(){return y.g(4)/4294967296},D.double=D,C(E(y.S),n),(t.pass||l||function(e,t,n,o){return o&&(o.S&&x(o,y),e.state=function(){return x(y,{})}),n?(a[u]=e,t):e})(D,v,`global`in t?t.global:this==a,t.state)}function b(e){var t,n=e.length,a=this,s=0,l=a.i=a.j=0,u=a.S=[];for(n||(e=[n++]);s<o;)u[s]=s++;for(s=0;s<o;s++)u[s]=u[l=h&l+e[s%n]+(t=u[s])],u[l]=t;(a.g=function(e){for(var t,n=0,s=a.i,l=a.j,u=a.S;e--;)t=u[s=h&s+1],n=n*o+u[h&(u[s]=u[l=h&l+t])+(u[l]=t)];return a.i=s,a.j=l,n})(o)}function x(e,t){return t.i=e.i,t.j=e.j,t.S=e.S.slice(),t}function S(e,t){var n=[],a=typeof e,o;if(t&&a==`object`)for(o in e)try{n.push(S(e[o],t-1))}catch{}return n.length?n:a==`string`?e:e+`\0`}function C(e,t){for(var n=e+``,a,o=0;o<n.length;)t[h&o]=h&(a^=t[h&o]*19)+n.charCodeAt(o++);return E(t)}function T(){try{var t;return v&&(t=v.randomBytes)?t=t(o):(t=new Uint8Array(o),(e.crypto||e.msCrypto).getRandomValues(t)),E(t)}catch{var a=e.navigator,s=a&&a.plugins;return[+new Date,e,s,e.screen,E(n)]}}function E(e){return String.fromCharCode.apply(0,e)}if(C(a.random(),n),typeof t==`object`&&t.exports){t.exports=y;try{v=require___vite_browser_external()}catch{}}else typeof define==`function`&&define.amd?define(function(){return y}):a[`seed`+u]=y})(typeof self<`u`?self:e,[],Math)})),require_seedrandom=__commonJSMin(((e,t)=>{var n=require_alea(),a=require_xor128(),o=require_xorwow(),s=require_xorshift7(),l=require_xor4096(),u=require_tychei(),d=require_seedrandom$1();d.alea=n,d.xor128=a,d.xorwow=o,d.xorshift7=s,d.xor4096=l,d.tychei=u,t.exports=d})),import_seedrandom=__toESM(require_seedrandom()),RandomNumberService=class{seededRandom=null;constructor(){let e=new URLSearchParams(import_window.default.location?.search).get(`seed`);e&&this.seedRandomNumber(e)}seedRandomNumber(e){this.seededRandom=(0,import_seedrandom.default)(e)}generateRandomNumber(){return this.seededRandom?this.seededRandom():Math.random()}unseedRandomNumber(){this.seededRandom=null}isRandomNumberLessThan(e){return this.generateRandomNumber()<=e}},randomNumberService=new RandomNumberService,addCowToInventory=(e,t)=>{let{cowInventory:n}=e;return{...e,cowInventory:[...n,t]}};function levelAchieved(e=0){return Math.floor(Math.sqrt(e)/10)+1}var endpoints={getMarketData:`https://farmhand.vercel.app/api/get-market-data`,postDayResults:`https://farmhand.vercel.app/api/post-day-results`},features=Object.keys({BASE_URL:`./`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1,VITE_API_ROOT:`https://farmhand.vercel.app/`,VITE_FARMHAND_PACKAGE_VERSION:`1.19.29`,VITE_NAME:`@jeremyckahn/farmhand`,VITE_TURN_CREDENTIAL:``,VITE_TURN_USERNAME:``}).reduce((e,t)=>{let n=t.match(/VITE_ENABLE_(.*)/);return n&&(e[n[1]]=!0),e},{}),searchParams=new URLSearchParams(import_window.default.location?.search);for(let e of searchParams.keys()){let t=e.match(/enable_(.*)/);t&&(features[t[1]]=!0)}var rtcConfig={iceServers:[{urls:`stun:stun.relay.metered.ca:80`}]},levels=[];levels[1]={unlocksShopItem:carrotSeed.id},levels[2]={unlocksShopItem:spinachSeed.id},levels[3]={unlocksShopItem:fertilizer.id},levels[4]={unlocksShopItem:pumpkinSeed.id},levels[5]={unlocksShopItem:sprinkler.id},levels[6]={unlocksTool:toolType.SHOVEL},levels[8]={increasesSprinklerRange:!0},levels[10]={unlocksShopItem:cornSeed.id},levels[12]={increasesSprinklerRange:!0},levels[14]={unlocksShopItem:potatoSeed.id},features.FOREST&&(levels[15]={unlocksStageFocusType:stageFocusType.FOREST}),levels[16]={unlocksShopItem:onionSeed.id},levels[18]={unlocksShopItem:soybeanSeed.id},levels[20]={unlocksShopItem:wheatSeed.id},levels[22]={unlocksShopItem:tomatoSeed.id},levels[24]={unlocksShopItem:asparagusSeed.id},levels[26]={unlocksShopItem:jalapenoSeed.id},levels[28]={unlocksShopItem:watermelonSeed.id},levels[30]={unlocksShopItem:peaSeed.id},levels[32]={unlocksShopItem:strawberrySeed.id},levels[34]={unlocksShopItem:garlicSeed.id},levels[36]={unlocksShopItem:sweetPotatoSeed.id},levels[38]={unlocksShopItem:oliveSeed.id},levels[40]={unlocksShopItem:sunflowerSeed.id},levels[42]={unlocksShopItem:grapeSeed.id};for(let e=0;e<levels.length;e++)levels[e]={id:e,...levels[e]};Object.freeze(levels);var unlockableItems=levels.reduce((e,{id:t,unlocksShopItem:n})=>(n&&t!==void 0&&(e[n]=t),e),{}),itemUnlockLevels=Object.entries(unlockableItems).reduce((e,[t,n])=>(e[String(n)]=t,e),{}),getLevelEntitlements=memoize(e=>{let t={sprinklerRange:1,items:{},tools:{},stageFocusType:{}};return levels.find(({unlocksShopItem:n,unlocksStageFocusType:a,unlocksTool:o,id:s,increasesSprinklerRange:l})=>(l&&t.sprinklerRange++,n&&(t.items[n]=!0),o&&(t.tools[o]=!0),a&&(t.stageFocusType[a]=!0),s===e)),t}),random$1=()=>randomNumberService.generateRandomNumber(),generateValueAdjustments=(e={},t={})=>Object.keys(itemsMap).reduce((n,a)=>(itemsMap[a].doesPriceFluctuate&&(e[a]?n[a]=.5:t[a]?n[a]=1.5:n[a]=random$1()+.5),n),{}),chooseRandomIndex=e=>Math.round(random$1()*(e.length-1)),chooseRandom=e=>e[chooseRandomIndex(e)],filterItemIdsToSeeds=e=>e.filter(e=>itemsMap[e]?.type===itemType.CROP),getRandomLevelUpReward=e=>itemsMap[chooseRandom(filterItemIdsToSeeds(Object.keys(getLevelEntitlements(e).items)))],getRandomLevelUpRewardQuantity=e=>e*10,INVALID_AMOUNT_MESSAGE=`Amount is invalid.`,INVALID_SCALE_MESSAGE=`Scale is invalid.`,NON_DECIMAL_CURRENCY_MESSAGE=`Currency is not decimal.`;function assert(e,t){if(!e)throw Error(`[Dinero.js] ${t}`)}function createDinero({calculator:e,onCreate:t,formatter:n={toNumber:Number,toString:String}}){return function a({amount:o,currency:{code:s,base:l,exponent:u},scale:d=u}){let f={code:s,base:l,exponent:u};return t?.({amount:o,currency:f,scale:d}),{calculator:e,formatter:n,create:a,toJSON(){return{amount:o,currency:f,scale:d}}}}}var DineroComparisonOperator=function(e){return e[e.LT=-1]=`LT`,e[e.EQ=0]=`EQ`,e[e.GT=1]=`GT`,e}({});function equal$2(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.EQ}function lessThan$1(e){return(t,n)=>e.compare(t,n)===DineroComparisonOperator.LT}function absolute(e){let t=equal$2(e),n=lessThan$1(e),a=e.zero();return o=>{if(t(o,a))return a;if(n(o,a)){let t=e.decrement(a);return e.multiply(t,o)}return o}}function isArray(e){return Array.isArray(e)}function computeBase(e){return t=>isArray(t)?t.reduce((t,n)=>e.multiply(t,n)):t}function getDivisors(e){let{multiply:t}=e;return e=>e.reduce((n,a,o)=>{let s=e.slice(o).reduce((e,n)=>t(e,n));return[...n,s]},[])}function toUnits$1(e){let t=getDivisors(e);return function(...[n,a]){let{amount:o,currency:s,scale:l}=n.toJSON(),{power:u,integerDivide:d,modulo:f}=e,m=t((isArray(s.base)?s.base:[s.base]).map(e=>u(e,l))).reduce((e,t,n)=>{let a=e[n],o=d(a,t),s=f(a,t);return[...e.filter((e,t)=>t!==n),o,s]},[o]);return a?a({value:m,currency:s}):m}}function toDecimal$1(e){let t=toUnits$1(e),n=computeBase(e),a=equal$2(e);return function(...[o,s]){let{currency:l,scale:u}=o.toJSON(),d=n(l.base),f=e.zero(),m=Array(10).fill(null).reduce(e.increment,f),h=isArray(l.base),v=a(e.modulo(d,m),f);assert(!h&&v,NON_DECIMAL_CURRENCY_MESSAGE);let y=t(o),b=getDecimal(e,o.formatter)(y,u);return s?s({value:b,currency:l}):b}}function getDecimal(e,t){let n=absolute(e),a=equal$2(e),o=lessThan$1(e),s=e.zero();return(e,l)=>{let u=t.toString(e[0]),d=t.toString(n(e[1])),f=t.toNumber(l),m=`${u}${f>0?`.${d.padStart(f,`0`)}`:``}`,h=a(e[0],s),v=o(e[1],s);return h&&v?`-${m}`:m}}function toDecimal(...[e,t]){let{calculator:n}=e;return toDecimal$1(n)(e,t)}var USD={code:`USD`,base:10,exponent:2},add$1=(e,t)=>e+t,compare$1=(e,t)=>e<t?DineroComparisonOperator.LT:e>t?DineroComparisonOperator.GT:DineroComparisonOperator.EQ,decrement=e=>e-1,increment=e=>e+1,integerDivide=(e,t)=>Math.trunc(e/t),modulo=(e,t)=>e%t,multiply$1=(e,t)=>e*t,power=(e,t)=>e**t,subtract$1=(e,t)=>e-t;function zero(){return 0}var dinero=createDinero({calculator:{add:add$1,compare:compare$1,decrement,increment,integerDivide,modulo,multiply:multiply$1,power,subtract:subtract$1,zero},onCreate({amount:e,scale:t}){assert(Number.isInteger(e),INVALID_AMOUNT_MESSAGE),assert(Number.isInteger(t),INVALID_SCALE_MESSAGE)}}),moneyString=e=>toDecimal(dinero({amount:Math.round(e*100),currency:USD}),({value:e})=>Number(e).toLocaleString(`en-US`,{style:`currency`,currency:`USD`})),fruit_names_default=`Akee.Apple.Apricot.Avocado.Açaí.Banana.Bilberry.Blackberry.Blackcurrant.Blueberry.Boysenberry.Cantaloupe.Cherimoya.Cherry.Chico.Clementine.Cloudberry.Coconut.Crabapple.Cranberry.Cucumber.Currant.Damson.Durian.Elderberry.Feijoa.Fig.Goji.Gooseberry.Grape.Grapefruit.Guava.Honeyberry.Honeydew.Huckleberry.Jabuticaba.Jackfruit.Jambul.Jostaberry.Jujube.Juniper.Kiwano.Kiwi.Kumquat.Lemon.Lime.Longan.Loquat.Lychee.Mandarine.Mango.Mangosteen.Marion.Melon.Mulberry.Nance.Nectarine.Olive.Orange.Papaya.Peach.Pear.Persimmon.Pineapple.Pineberry.Pitaya.Plantain.Plum.Plumcot.Pomegranate.Pomelo.Prune.Pumpkin.Quince.Raisin.Rambutan.Raspberry.Salak.Salal.Salmonberry.Sapote.Satsuma.Soursop.Strawberry.Surinam.Tamarillo.Tamarind.Tangerine.Tomato.Watermelon.Yuzu.Zucchini`.split(`.`),convertStringToInteger$1=e=>e.split(``).reduce((e,t,n)=>e+t.charCodeAt(0)*n,0),getDefaultCowName=({id:e})=>fruit_names_default[convertStringToInteger$1(e)%fruit_names_default.length],getCowDisplayName=(e,t,n)=>e.originalOwnerId!==t&&!n?getDefaultCowName(e):e.name,animalNames=`Aardvark.Albatross.Alligator.Alpaca.Angelfish.Anglerfish.Ant.Anteater.Antelope.Antlion.Ape.Armadillo.Asp.Baboon.Badger.Bandicoot.Barnacle.Barracuda.Basilisk.Bass.Bat.Bear.Beaver.Bee.Beetle.Bird.Bison.Blackbird.Boar.Bobcat.Bonobo.Bug.Butterfly.Buzzard.Camel.Capybara.Cardinal.Caribou.Cat.Caterpillar.Catfish.Cattle.Chameleon.Cheetah.Chickadee.Chicken.Chimpanzee.Chinchilla.Chipmunk.Clam.Clownfish.Cobra.Condor.Coral.Cougar.Coyote.Crab.Crane.Crawdad.Crayfish.Cricket.Crocodile.Crow.Cuckoo.Deer.Dingo.Dinosaur.Dog.Dolphin.Donkey.Dove.Dragon.Dragonfly.Duck.Eagle.Earthworm.Echidna.Egret.Elephant.Elk.Emu.Ermine.Falcon.Ferret.Finch.Firefly.Fish.Flamingo.Fowl.Fox.Frog.Gazelle.Gecko.Gerbil.Gibbon.Giraffe.Goat.Goldfish.Goose.Gopher.Gorilla.Grasshopper.Grouse.Gull.Guppy.Hamster.Hare.Harrier.Hawk.Hedgehog.Heron.Hippopotamus.Horse.Hummingbird.Hyena.Iguana.Impala.Jackal.Jaguar.Jay.Jellyfish.Kangaroo.Kingfisher.Kiwi.Koala.Koi.Ladybug.Lark.Lemming.Lemur.Leopard.Lion.Llama.Lobster.Loon.Lynx.Macaw.Mackerel.Mammal.Manatee.Mandrill.Marlin.Marmoset.Marmot.Marsupial.Mastodon.Meerkat.Mink.Minnow.Mockingbird.Mole.Mongoose.Monkey.Moose.Mosquito.Mouse.Mule.Muskox.Narwhal.Ocelot.Octopus.Opossum.Orangutan.Orca.Ostrich.Otter.Owl.Ox.Panda.Panther.Parakeet.Parrot.Partridge.Peacock.Pelican.Penguin.Pig.Pigeon.Platypus.Pony.Porcupine.Porpoise.Puffin.Puma.Python.Quail.Quokka.Rabbit.Raccoon.Raven.Reindeer.Rhinoceros.Roadrunner.Rooster.Salamander.Salmon.Seahorse.Shark.Sheep.Shrew.Sloth.Snail.Sparrow.Squid.Squirrel.Starfish.Stingray.Stoat.Stork.Sturgeon.Swan.Swift.Swordfish.Tapir.Tarsier.Tern.Tiger.Tortoise.Toucan.Turkey.Turtle.Tyrannosaurus.Vole.Wallaby.Walrus.Warbler.Whale.Wildcat.Wolf.Wolverine.Wombat.Woodpecker.Wren.Yak.Zebra`.split(`.`),adjectives=`Adorable.Adventurous.Agreeable.Alert.Amused.Attractive.Average.Beautiful.Blushing.Brainy.Brave.Bright.Busy.Calm.Careful.Cautious.Charming.Cheerful.Clever.Cloudy.Colorful.Comfortable.Concerned.Cooperative.Courageous.Crazy.Curious.Cute.Delightful.Determined.Distinct.Dizzy.Elated.Elegant.Enchanting.Encouraging.Energetic.Enthusiastic.Excited.Exuberant.Famous.Fancy.Fantastic.Fierce.Fine.Friendly.Funny.Gentle.Gifted.Glamorous.Gleaming.Glorious.Gorgeous.Graceful.Handsome.Happy.Healthy.Helpful.Hilarious.Important.Inquisitive.Jolly.Joyous.Kind.Light.Lively.Lovely.Lucky.Magnificent.Mysterious.Nice.Nutty.Outrageous.Outstanding.Perfect.Pleasant.Poised.Powerful.Precious.Proud.Puzzled.Quaint.Relieved.Shiny.Silly.Sleepy.Smiling.Sparkling.Splendid.Stormy.Strange.Successful.Tame.Thankful.Thoughtful.Tough.Victorious.Vivacious.Wandering.Wide-eyed.Wild.Witty.Zany`.split(`.`),convertStringToInteger=function(e){return e.split(``).reduce(function(e,t,n){return e+t.charCodeAt(0)*n},0)},funAnimalName=function(e,t){var n=t===void 0?{}:t,a=n.adjectives,o=a===void 0?adjectives:a,s=n.animalNames,l=s===void 0?animalNames:s,u=convertStringToInteger(e),d=o[u%o.length],f=l[(u+convertStringToInteger(d))%l.length];return d+` `+f},getPlayerName=memoize(e=>funAnimalName(e)),integerString=e=>toDecimal(dinero({amount:Math.round(e),currency:USD,scale:0}),({value:e})=>Number(e).toLocaleString(`en-US`)),CROWS_DESTROYED=(e,t)=>`Oh no! Crows destroyed ${t} crop${t>1?`s`:``}!`,COW_PEN_PURCHASED=(e,t)=>`Purchased a cow pen with capacity for ${t} cows! You can visit your cow pen by going to the "Cows" page.`,CELLAR_PURCHASED=(e,t)=>`Purchased a cellar with capacity for ${t} kegs! View your keg inventory by going to the "Cellar" page.`,MILKS_PRODUCED=(e,t)=>{let n=`Your cows produced milk:
|
|
140
140
|
`;return Object.keys(t).sort().forEach(e=>n+=` - ${t[e]} ${e}${t[e]>1?`s`:``}
|
|
141
141
|
`),n},FERTILIZERS_PRODUCED=(e,t)=>{let n=`Your cows produced fertilizer:
|
|
142
142
|
`;return Object.keys(t).sort().forEach(e=>n+=` - ${t[e]} ${e}${t[e]>1?`s`:``}
|
|
@@ -722,7 +722,7 @@ Create a new `,"processor first, by invoking it: use `processor()` instead of ",
|
|
|
722
722
|
animation: ${0} 1.4s linear infinite;
|
|
723
723
|
`,circularRotateKeyframe)),CircularProgressSVG=styled$1(`svg`,{name:`MuiCircularProgress`,slot:`Svg`,overridesResolver:(e,t)=>t.svg})({display:`block`}),CircularProgressCircle=styled$1(`circle`,{name:`MuiCircularProgress`,slot:`Circle`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.circle,t[`circle${capitalize_default(n.variant)}`],n.disableShrink&&t.circleDisableShrink]}})(({ownerState:e,theme:t})=>_extends$3({stroke:`currentColor`},e.variant===`determinate`&&{transition:t.transitions.create(`stroke-dashoffset`)},e.variant===`indeterminate`&&{strokeDasharray:`80px, 200px`,strokeDashoffset:0}),({ownerState:e})=>e.variant===`indeterminate`&&!e.disableShrink&&css$2(_t4||=_`
|
|
724
724
|
animation: ${0} 1.4s ease-in-out infinite;
|
|
725
|
-
`,circularDashKeyframe)),CircularProgress=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCircularProgress`}),{className:a,color:o=`primary`,disableShrink:s=!1,size:l=40,style:u,thickness:d=3.6,value:f=0,variant:m=`indeterminate`}=n,h=_objectWithoutPropertiesLoose$3(n,_excluded$2),v=_extends$3({},n,{color:o,disableShrink:s,size:l,thickness:d,value:f,variant:m}),y=useUtilityClasses$2(v),b={},x={},S={};if(m===`determinate`){let e=2*Math.PI*((SIZE-d)/2);b.strokeDasharray=e.toFixed(3),S[`aria-valuenow`]=Math.round(f),b.strokeDashoffset=`${((100-f)/100*e).toFixed(3)}px`,x.transform=`rotate(-90deg)`}return(0,import_jsx_runtime.jsx)(CircularProgressRoot,_extends$3({className:clsx$1(y.root,a),style:_extends$3({width:l,height:l},x,u),ownerState:v,ref:t,role:`progressbar`},S,h,{children:(0,import_jsx_runtime.jsx)(CircularProgressSVG,{className:y.svg,ownerState:v,viewBox:`${SIZE/2} ${SIZE/2} ${SIZE} ${SIZE}`,children:(0,import_jsx_runtime.jsx)(CircularProgressCircle,{className:y.circle,style:b,ownerState:v,cx:SIZE,cy:SIZE,r:(SIZE-d)/2,fill:`none`,strokeWidth:d})})}))});function DayAndProgressContainer({dayCount:e,experience:t,itemsSold:n}){let a=levelAchieved(t),o=scaleNumber(t,experienceNeededForLevel(a),experienceNeededForLevel(a+1),0,100),s=experienceNeededForLevel(a+1)-t,l=a+1;return(0,import_jsx_runtime.jsxs)(`h2`,{className:`day-and-progress-container`,children:[(0,import_jsx_runtime.jsxs)(`span`,{children:[`Day `,integerString(e),`, level:`]}),(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:EXPERIENCE_GAUGE_TOOLTIP_LABEL`${s}${l}`,children:(0,import_jsx_runtime.jsxs)(Box,{children:[(0,import_jsx_runtime.jsx)(CircularProgress,{value:o,variant:`determinate`}),(0,import_jsx_runtime.jsx)(`span`,{className:`current-level`,children:integerString(a)})]})})]})}DayAndProgressContainer.propTypes={dayCount:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,itemsSold:import_prop_types$1.object.isRequired};function Consumer$13(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(DayAndProgressContainer,{...t,...n,...e})})}var FarmNameDisplay=({farmName:e,handleFarmNameUpdate:t})=>{let[n,a]=(0,import_react$24.useState)(e);return(0,import_react$24.useEffect)(()=>{a(e)},[e,a]),(0,import_jsx_runtime.jsxs)(`h2`,{className:`farm-name`,children:[(0,import_jsx_runtime.jsx)(TextField,{variant:`standard`,inputProps:{maxLength:12},onChange:({target:{value:e}})=>{a(e)},onBlur:({target:{value:e}})=>{t(e)},placeholder:`Farm Name`,value:n}),` `,`Farm`]})},OnlineControls=({activePlayers:e,handleActivePlayerButtonClick:t,handleChatRoomOpenStateChange:n,handleOnlineToggleChange:a,handleRoomChange:o,isChatAvailable:s,isOnline:l,room:u})=>{let[d,f]=(0,import_react$24.useState)(u);(0,import_react$24.useEffect)(()=>{f(u)},[u,f]);let m=()=>{n(!0)},h=()=>{o(d)},v=e=>{h(),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(FormControl,{variant:`standard`,className:`online-control-container`,component:`fieldset`,children:[(0,import_jsx_runtime.jsx)(FormGroup,{className:`toggle-container`,children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:l,onChange:(e,t)=>{v(t)},name:`play-online`}),label:`Play online`})}),(0,import_jsx_runtime.jsx)(TextField,{className:`room-name`,inputProps:{maxLength:25},label:`Room name`,onChange:({target:{value:e}})=>{f(e)},onKeyUp:({key:e})=>{e===`Enter`&&h()},value:d,variant:`outlined`})]}),e&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(Button,{color:`primary`,onClick:t,variant:`contained`,children:[`Connected players: `,integerString(e)]}),s?(0,import_jsx_runtime.jsx)(Button,{variant:`contained`,color:`primary`,onClick:m,children:`Open chat`}):(0,import_jsx_runtime.jsxs)(Typography,{className:`chat-placeholder`,children:[`Chat is available for online rooms other than "`,`global`,`"`]})]})]})},{FARMERS_LOG,PRICE_EVENTS,STATS,ACHIEVEMENTS,ACCOUNTING,SETTINGS,ONLINE_PEERS,KEYBINDINGS}=dialogView,dialogTriggerTextMap={[FARMERS_LOG]:`Open Farmer's Log (l)`,[PRICE_EVENTS]:`See Price Events (e)`,[STATS]:`View your stats (s)`,[ACHIEVEMENTS]:`View Achievements (a)`,[ACCOUNTING]:`View Bank Account (b)`,[SETTINGS]:`View Settings (comma)`},dialogTitleMap={[FARMERS_LOG]:`Farmer's Log`,[PRICE_EVENTS]:`Price Events`,[STATS]:`Farm Stats`,[ACHIEVEMENTS]:`Achievements`,[ACCOUNTING]:`Bank Account`,[SETTINGS]:`Settings`,[ONLINE_PEERS]:`Active Players`,[KEYBINDINGS]:`Keyboard Shortcuts`},dialogContentMap={[FARMERS_LOG]:(0,import_jsx_runtime.jsx)(Consumer$18,{}),[PRICE_EVENTS]:(0,import_jsx_runtime.jsx)(Consumer$16,{}),[STATS]:(0,import_jsx_runtime.jsx)(Consumer$14,{}),[ACHIEVEMENTS]:(0,import_jsx_runtime.jsx)(Consumer$19,{}),[ACCOUNTING]:(0,import_jsx_runtime.jsx)(Consumer$21,{}),[SETTINGS]:(0,import_jsx_runtime.jsx)(Consumer$15,{}),[ONLINE_PEERS]:(0,import_jsx_runtime.jsx)(Consumer$17,{}),[KEYBINDINGS]:(0,import_jsx_runtime.jsx)(KeybindingsView,{})},Navigation=({activePlayers:e,blockInput:t,currentDialogView:n,farmName:a,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleClickDialogViewButton:l,handleCloseDialogView:u,handleDialogViewExited:d,handleFarmNameUpdate:f,handleOnlineToggleChange:m,handleRoomChange:h,handleViewChange:v,inventory:y,inventoryLimit:b,isChatAvailable:x,isDialogViewOpen:S,isOnline:C,room:T,stageFocus:E,viewList:D,currentDialogViewLowerCase:O=(n||``).toLowerCase(),modalTitleId:k=`${O}-modal-title`,modalContentId:j=`${O}-modal-content`})=>(0,import_jsx_runtime.jsxs)(Header,{className:`Navigation`,sx:{flexDirection:`column`,flexShrink:0,display:`flex`,"& .version":{fontFamily:`"Francois One", sans-serif`,textAlign:`center`},"& .farm-name":{lineHeight:`1.3em`,margin:`0.25em 0`,"& .MuiInput-root":{background:`none`,margin:0,"& input":{fontFamily:`"Francois One"`,paddingLeft:`0.5em`,paddingRight:`0.5em`,textAlign:`center`}}},"& .online-control-container":{alignItems:`center`,display:`flex`,flexDirection:`row`,margin:`1em 0`,"& .toggle-container":{minWidth:`155px`}},"& .button-array":{marginLeft:`3em`,marginRight:`3em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`2em`,marginRight:`2em`}},"& .current-level":{alignItems:`center`,bottom:0,display:`flex`,justifyContent:`center`,left:0,position:`absolute`,right:0,top:0,userSelect:`none`},"& h1":{fontSize:`3em`,fontWeight:`bold`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{fontSize:`2.5em`}},"& button":{fontSize:`1.3em`,margin:`0.3em`,minWidth:`56px`},"& h1, & h2, & h3":{textAlign:`center`},"& .day-and-progress-container":{alignItems:`center`,display:`flex`,fontSize:`1.5em`,margin:`0.5em auto`,"& .MuiBox-root":{display:`inline-flex`,marginLeft:`0.5em`,position:`relative`}},"& .inventory-info":{fontSize:`1em`},"& .MuiSelect-select":{padding:`1em`},"& .chat-placeholder":{fontSize:`0.75em`,padding:`0.5em 0`,textAlign:`center`}},children:[(0,import_jsx_runtime.jsx)(`h1`,{children:`Farmhand`}),(0,import_jsx_runtime.jsxs)(`p`,{className:`version`,children:[`v`,`1.19.28`]}),(0,import_jsx_runtime.jsx)(FarmNameDisplay,{farmName:a,handleFarmNameUpdate:f}),(0,import_jsx_runtime.jsx)(Consumer$13,{}),(0,import_jsx_runtime.jsx)(OnlineControls,{activePlayers:e,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleOnlineToggleChange:m,handleRoomChange:h,isChatAvailable:x,isOnline:C,room:T}),b>-1&&(0,import_jsx_runtime.jsxs)(H3,{className:(0,import_classnames.default)(`inventory-info`,{"is-inventory-full":!doesInventorySpaceRemain({inventory:y,inventoryLimit:b})}),sx:{color:doesInventorySpaceRemain({inventory:y,inventoryLimit:b})?void 0:colors.error},children:[`Inventory: `,integerString(inventorySpaceConsumed(y)),` /`,` `,integerString(b)]}),(0,import_jsx_runtime.jsx)(Select,{variant:`standard`,className:`view-select`,onChange:v,value:E,children:D.map((e,t)=>(0,import_jsx_runtime.jsxs)(MenuItem,{key:e,value:e,children:[t+1,`: `,STAGE_TITLE_MAP[e]]}))}),(0,import_jsx_runtime.jsx)(`div`,{className:`button-array`,children:[{dialogView:FARMERS_LOG,Icon:import_Book.default},{dialogView:PRICE_EVENTS,Icon:import_FlashOn.default},{dialogView:STATS,Icon:import_Assessment.default},{dialogView:ACHIEVEMENTS,Icon:import_Beenhere.default},{dialogView:ACCOUNTING,Icon:import_AccountBalance.default},{dialogView:SETTINGS,Icon:import_Settings.default}].map(({dialogView:e,Icon:t})=>(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,key:e,placement:`top`,title:dialogTriggerTextMap[e],children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":dialogTriggerTextMap[e],color:`primary`,onClick:()=>l(e),children:(0,import_jsx_runtime.jsx)(t,{})})}))}),(0,import_jsx_runtime.jsxs)(Dialog,{className:(0,import_classnames.default)(`Farmhand`,{"block-input":t}),fullWidth:!0,maxWidth:`xs`,onClose:u,open:S,TransitionProps:{onExited:d},"aria-describedby":k,"aria-labelledby":j,children:[(0,import_jsx_runtime.jsx)(DialogTitle,{id:k,children:n?dialogTitleMap[n]:``}),(0,import_jsx_runtime.jsx)(DialogContent,{id:j,children:n?dialogContentMap[n]:null}),(0,import_jsx_runtime.jsx)(DialogActions,{children:(0,import_jsx_runtime.jsx)(Button,{onClick:u,color:`primary`,autoFocus:!0,children:`Close`})})]})]});Navigation.propTypes={activePlayers:import_prop_types$1.number,blockInput:import_prop_types$1.bool.isRequired,farmName:import_prop_types$1.string.isRequired,handleClickDialogViewButton:import_prop_types$1.func.isRequired,handleChatRoomOpenStateChange:import_prop_types$1.func.isRequired,handleActivePlayerButtonClick:import_prop_types$1.func.isRequired,handleCloseDialogView:import_prop_types$1.func.isRequired,handleDialogViewExited:import_prop_types$1.func.isRequired,handleFarmNameUpdate:import_prop_types$1.func.isRequired,handleOnlineToggleChange:import_prop_types$1.func.isRequired,handleRoomChange:import_prop_types$1.func.isRequired,handleViewChange:import_prop_types$1.func.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isChatAvailable:import_prop_types$1.bool.isRequired,isDialogViewOpen:import_prop_types$1.bool.isRequired,isOnline:import_prop_types$1.bool.isRequired,stageFocus:import_prop_types$1.string.isRequired,viewList:import_prop_types$1.array.isRequired};function Consumer$12(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Navigation,{...t,...n,...e})})}var snackbarProviderContentCallback=(e,{message:t,onClick:n,severity:a})=>(0,import_jsx_runtime.jsx)(Alert,{elevation:3,key:e,onClick:n,severity:a,style:{cursor:n?`pointer`:`default`},children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{source:t})}),NotificationSystem=({closeSnackbar:e,enqueueSnackbar:t,latestNotification:n})=>((0,import_react$24.useEffect)(()=>{n&&t(n,{autoHideDuration:NOTIFICATION_DURATION,onClose:()=>e(),preventDuplicate:!0})},[e,t,n]),null);NotificationSystem.propTypes={latestNotification:(0,import_prop_types$1.shape)({message:import_prop_types$1.string.isRequired,onClick:import_prop_types$1.func,severity:import_prop_types$1.string.isRequired})};var NotificationSystem_default=withSnackbar(function(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(NotificationSystem,{...t,...n,...e})})}),require_ZoomIn=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,`__esModule`,{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)([(0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14`},`0`),(0,a.jsx)(`path`,{d:`M12 10h-2v2H9v-2H7V9h2V7h1v2h2z`},`1`)],`ZoomIn`)})),require_ZoomOut=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,`__esModule`,{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z`}),`ZoomOut`)}));function areArraysEqual(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,a)=>n(e,t[a]))}init_extends(),init_esm(),init_extractEventHandlers();var INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(e,t){return e-t}function findClosest(e,t){var n;let{index:a}=e.reduce((e,n,a)=>{let o=Math.abs(t-n);return e===null||o<e.distance||o===e.distance?{distance:o,index:a}:e},null)??{};return a}function trackFinger(e,t){if(t.current!==void 0&&e.changedTouches){let n=e;for(let e=0;e<n.changedTouches.length;e+=1){let a=n.changedTouches[e];if(a.identifier===t.current)return{x:a.clientX,y:a.clientY}}return!1}return{x:e.clientX,y:e.clientY}}function valueToPercent(e,t,n){return(e-t)*100/(n-t)}function percentToValue(e,t,n){return(n-t)*e+t}function getDecimalPrecision(e){if(Math.abs(e)<1){let t=e.toExponential().split(`e-`),n=t[0].split(`.`)[1];return(n?n.length:0)+parseInt(t[1],10)}let t=e.toString().split(`.`)[1];return t?t.length:0}function roundValueToStep(e,t,n){let a=Math.round((e-n)/t)*t+n;return Number(a.toFixed(getDecimalPrecision(t)))}function setValueIndex({values:e,newValue:t,index:n}){let a=e.slice();return a[n]=t,a.sort(asc)}function focusThumb({sliderRef:e,activeIndex:t,setActive:n}){var a,o;let s=ownerDocument(e.current);if(!((a=e.current)!=null&&a.contains(s.activeElement))||Number(s==null||(o=s.activeElement)==null?void 0:o.getAttribute(`data-index`))!==t){var l;(l=e.current)==null||l.querySelector(`[type="range"][data-index="${t}"]`).focus()}n&&n(t)}function areValuesEqual(e,t){return typeof e==`number`&&typeof t==`number`?e===t:typeof e==`object`&&typeof t==`object`?areArraysEqual(e,t):!1}var axisProps={horizontal:{offset:e=>({left:`${e}%`}),leap:e=>({width:`${e}%`})},"horizontal-reverse":{offset:e=>({right:`${e}%`}),leap:e=>({width:`${e}%`})},vertical:{offset:e=>({bottom:`${e}%`}),leap:e=>({height:`${e}%`})}},Identity$1=e=>e,cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(cachedSupportsTouchActionNone=typeof CSS<`u`&&typeof CSS.supports==`function`?CSS.supports(`touch-action`,`none`):!0),cachedSupportsTouchActionNone}function useSlider(e){let{"aria-labelledby":t,defaultValue:n,disabled:a=!1,disableSwap:o=!1,isRtl:s=!1,marks:l=!1,max:u=100,min:d=0,name:f,onChange:m,onChangeCommitted:h,orientation:v=`horizontal`,rootRef:y,scale:b=Identity$1,step:x=1,shiftStep:S=10,tabIndex:C,value:T}=e,E=import_react$24.useRef(void 0),[D,O]=import_react$24.useState(-1),[k,j]=import_react$24.useState(-1),[M,N]=import_react$24.useState(!1),F=import_react$24.useRef(0),[I,L]=useControlled({controlled:T,default:n??d,name:`Slider`}),R=m&&((e,t,n)=>{let a=e.nativeEvent||e,o=new a.constructor(a.type,a);Object.defineProperty(o,`target`,{writable:!0,value:{value:t,name:f}}),m(o,t,n)}),z=Array.isArray(I),B=z?I.slice().sort(asc):[I];B=B.map(e=>e==null?d:clamp$1(e,d,u));let V=l===!0&&x!==null?[...Array(Math.floor((u-d)/x)+1)].map((e,t)=>({value:d+x*t})):l||[],H=V.map(e=>e.value),{isFocusVisibleRef:U,onBlur:W,onFocus:G,ref:ee}=useIsFocusVisible(),[K,q]=import_react$24.useState(-1),J=import_react$24.useRef(null),te=useForkRef(y,useForkRef(ee,J)),ne=e=>t=>{var n;let a=Number(t.currentTarget.getAttribute(`data-index`));G(t),U.current===!0&&q(a),j(a),e==null||(n=e.onFocus)==null||n.call(e,t)},re=e=>t=>{var n;W(t),U.current===!1&&q(-1),j(-1),e==null||(n=e.onBlur)==null||n.call(e,t)},Y=(e,t)=>{let n=Number(e.currentTarget.getAttribute(`data-index`)),a=B[n],s=H.indexOf(a),l=t;if(V&&x==null){let e=H[H.length-1];l=l>e?e:l<H[0]?H[0]:l<a?H[s-1]:H[s+1]}if(l=clamp$1(l,d,u),z){o&&(l=clamp$1(l,B[n-1]||-1/0,B[n+1]||1/0));let e=l;l=setValueIndex({values:B,newValue:l,index:n});let t=n;o||(t=l.indexOf(e)),focusThumb({sliderRef:J,activeIndex:t})}L(l),q(n),R&&!areValuesEqual(l,I)&&R(e,l,n),h&&h(e,l)},ie=e=>t=>{var n;if(x!==null){let e=Number(t.currentTarget.getAttribute(`data-index`)),n=B[e],a=null;(t.key===`ArrowLeft`||t.key===`ArrowDown`)&&t.shiftKey||t.key===`PageDown`?a=Math.max(n-S,d):((t.key===`ArrowRight`||t.key===`ArrowUp`)&&t.shiftKey||t.key===`PageUp`)&&(a=Math.min(n+S,u)),a!==null&&(Y(t,a),t.preventDefault())}e==null||(n=e.onKeyDown)==null||n.call(e,t)};useEnhancedEffect$1(()=>{if(a&&J.current.contains(document.activeElement)){var e;(e=document.activeElement)==null||e.blur()}},[a]),a&&D!==-1&&O(-1),a&&K!==-1&&q(-1);let ae=e=>t=>{var n;(n=e.onChange)==null||n.call(e,t),Y(t,t.target.valueAsNumber)},oe=import_react$24.useRef(void 0),se=v;s&&v===`horizontal`&&(se+=`-reverse`);let ce=({finger:e,move:t=!1})=>{let{current:n}=J,{width:a,height:s,bottom:l,left:f}=n.getBoundingClientRect(),m;m=se.indexOf(`vertical`)===0?(l-e.y)/s:(e.x-f)/a,se.indexOf(`-reverse`)!==-1&&(m=1-m);let h;h=percentToValue(m,d,u),h=x?roundValueToStep(h,x,d):H[findClosest(H,h)],h=clamp$1(h,d,u);let v=0;if(z){v=t?oe.current:findClosest(B,h),o&&(h=clamp$1(h,B[v-1]||-1/0,B[v+1]||1/0));let e=h;h=setValueIndex({values:B,newValue:h,index:v}),o&&t||(v=h.indexOf(e),oe.current=v)}return{newValue:h,activeIndex:v}},le=useEventCallback$1(e=>{let t=trackFinger(e,E);if(!t)return;if(F.current+=1,e.type===`mousemove`&&e.buttons===0){ue(e);return}let{newValue:n,activeIndex:a}=ce({finger:t,move:!0});focusThumb({sliderRef:J,activeIndex:a,setActive:O}),L(n),!M&&F.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&N(!0),R&&!areValuesEqual(n,I)&&R(e,n,a)}),ue=useEventCallback$1(e=>{let t=trackFinger(e,E);if(N(!1),!t)return;let{newValue:n}=ce({finger:t,move:!0});O(-1),e.type===`touchend`&&j(-1),h&&h(e,n),E.current=void 0,X()}),de=useEventCallback$1(e=>{if(a)return;doesSupportTouchActionNone()||e.preventDefault();let t=e.changedTouches[0];t!=null&&(E.current=t.identifier);let n=trackFinger(e,E);if(n!==!1){let{newValue:t,activeIndex:a}=ce({finger:n});focusThumb({sliderRef:J,activeIndex:a,setActive:O}),L(t),R&&!areValuesEqual(t,I)&&R(e,t,a)}F.current=0;let o=ownerDocument(J.current);o.addEventListener(`touchmove`,le,{passive:!0}),o.addEventListener(`touchend`,ue,{passive:!0})}),X=import_react$24.useCallback(()=>{let e=ownerDocument(J.current);e.removeEventListener(`mousemove`,le),e.removeEventListener(`mouseup`,ue),e.removeEventListener(`touchmove`,le),e.removeEventListener(`touchend`,ue)},[ue,le]);import_react$24.useEffect(()=>{let{current:e}=J;return e.addEventListener(`touchstart`,de,{passive:doesSupportTouchActionNone()}),()=>{e.removeEventListener(`touchstart`,de),X()}},[X,de]),import_react$24.useEffect(()=>{a&&X()},[a,X]);let fe=e=>t=>{var n;if((n=e.onMouseDown)==null||n.call(e,t),a||t.defaultPrevented||t.button!==0)return;t.preventDefault();let o=trackFinger(t,E);if(o!==!1){let{newValue:e,activeIndex:n}=ce({finger:o});focusThumb({sliderRef:J,activeIndex:n,setActive:O}),L(e),R&&!areValuesEqual(e,I)&&R(t,e,n)}F.current=0;let s=ownerDocument(J.current);s.addEventListener(`mousemove`,le,{passive:!0}),s.addEventListener(`mouseup`,ue)},pe=valueToPercent(z?B[0]:d,d,u),me=valueToPercent(B[B.length-1],d,u)-pe,he=(e={})=>{let t=extractEventHandlers(e),n=_extends$3({},t,{onMouseDown:fe(t||{})});return _extends$3({},e,{ref:te},n)},ge=e=>t=>{var n;(n=e.onMouseOver)==null||n.call(e,t),j(Number(t.currentTarget.getAttribute(`data-index`)))},Z=e=>t=>{var n;(n=e.onMouseLeave)==null||n.call(e,t),j(-1)};return{active:D,axis:se,axisProps,dragging:M,focusedThumbIndex:K,getHiddenInputProps:(n={})=>{var o;let l=extractEventHandlers(n),m=_extends$3({},l,{onChange:ae(l||{}),onFocus:ne(l||{}),onBlur:re(l||{}),onKeyDown:ie(l||{})});return _extends$3({tabIndex:C,"aria-labelledby":t,"aria-orientation":v,"aria-valuemax":b(u),"aria-valuemin":b(d),name:f,type:`range`,min:e.min,max:e.max,step:e.step===null&&e.marks?`any`:e.step??void 0,disabled:a},n,m,{style:_extends$3({},visuallyHidden,{direction:s?`rtl`:`ltr`,width:`100%`,height:`100%`})})},getRootProps:he,getThumbProps:(e={})=>{let t=extractEventHandlers(e);return _extends$3({},e,t,{onMouseOver:ge(t||{}),onMouseLeave:Z(t||{})})},marks:V,open:k,range:z,rootRef:te,trackLeap:me,trackOffset:pe,values:B,getThumbStyle:e=>({pointerEvents:D!==-1&&D!==e?`none`:void 0})}}init_isHostComponent();var shouldSpreadAdditionalProps=e=>!e||!isHostComponent(e);init_generateUtilityClasses(),init_generateUtilityClass();function getSliderUtilityClass(e){return generateUtilityClass(`MuiSlider`,e)}var 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`.split(`.`));init_clsx();var useValueLabelClasses=e=>{let{open:t}=e;return{offset:clsx$1(t&&sliderClasses.valueLabelOpen),circle:sliderClasses.valueLabelCircle,label:sliderClasses.valueLabelLabel}};function SliderValueLabel$1(e){let{children:t,className:n,value:a}=e,o=useValueLabelClasses(e);return t?import_react$24.cloneElement(t,{className:clsx$1(t.props.className)},(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[t.props.children,(0,import_jsx_runtime.jsx)(`span`,{className:clsx$1(o.offset,n),"aria-hidden":!0,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.circle,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.label,children:a})})})]})):null}init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_isHostComponent(),init_DefaultPropsProvider(),init_slotShouldForwardProp(),init_capitalize();var _excluded$1=`aria-label.aria-valuetext.aria-labelledby.component.components.componentsProps.color.classes.className.disableSwap.disabled.getAriaLabel.getAriaValueText.marks.max.min.name.onChange.onChangeCommitted.orientation.shiftStep.size.step.scale.slotProps.slots.tabIndex.track.value.valueLabelDisplay.valueLabelFormat`.split(`.`);function Identity(e){return e}var SliderRoot=styled$1(`span`,{name:`MuiSlider`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`color${capitalize_default(n.color)}`],n.size!==`medium`&&t[`size${capitalize_default(n.size)}`],n.marked&&t.marked,n.orientation===`vertical`&&t.vertical,n.track===`inverted`&&t.trackInverted,n.track===!1&&t.trackFalse]}})(({theme:e})=>{var t;return{borderRadius:12,boxSizing:`content-box`,display:`inline-block`,position:`relative`,cursor:`pointer`,touchAction:`none`,WebkitTapHighlightColor:`transparent`,"@media print":{colorAdjust:`exact`},[`&.${sliderClasses.disabled}`]:{pointerEvents:`none`,cursor:`default`,color:(e.vars||e).palette.grey[400]},[`&.${sliderClasses.dragging}`]:{[`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]:{transition:`none`}},variants:[...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),{props:{orientation:`horizontal`},style:{height:4,width:`100%`,padding:`13px 0`,"@media (pointer: coarse)":{padding:`20px 0`}}},{props:{orientation:`horizontal`,size:`small`},style:{height:2}},{props:{orientation:`horizontal`,marked:!0},style:{marginBottom:20}},{props:{orientation:`vertical`},style:{height:`100%`,width:4,padding:`0 13px`,"@media (pointer: coarse)":{padding:`0 20px`}}},{props:{orientation:`vertical`,size:`small`},style:{width:2}},{props:{orientation:`vertical`,marked:!0},style:{marginRight:44}}]}}),SliderRail=styled$1(`span`,{name:`MuiSlider`,slot:`Rail`,overridesResolver:(e,t)=>t.rail})({display:`block`,position:`absolute`,borderRadius:`inherit`,backgroundColor:`currentColor`,opacity:.38,variants:[{props:{orientation:`horizontal`},style:{width:`100%`,height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{height:`100%`,width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:`inverted`},style:{opacity:1}}]}),SliderTrack=styled$1(`span`,{name:`MuiSlider`,slot:`Track`,overridesResolver:(e,t)=>t.track})(({theme:e})=>{var t;return{display:`block`,position:`absolute`,borderRadius:`inherit`,border:`1px solid currentColor`,backgroundColor:`currentColor`,transition:e.transitions.create([`left`,`width`,`bottom`,`height`],{duration:e.transitions.duration.shortest}),variants:[{props:{size:`small`},style:{border:`none`}},{props:{orientation:`horizontal`},style:{height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:!1},style:{display:`none`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t,track:`inverted`},style:_extends$3({},e.vars?{backgroundColor:e.vars.palette.Slider[`${t}Track`],borderColor:e.vars.palette.Slider[`${t}Track`]}:_extends$3({backgroundColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62),borderColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62)},e.applyStyles(`dark`,{backgroundColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)}),e.applyStyles(`dark`,{borderColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)})))}))]}}),SliderThumb=styled$1(`span`,{name:`MuiSlider`,slot:`Thumb`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.thumb,t[`thumbColor${capitalize_default(n.color)}`],n.size!==`medium`&&t[`thumbSize${capitalize_default(n.size)}`]]}})(({theme:e})=>{var t;return{position:`absolute`,width:20,height:20,boxSizing:`border-box`,borderRadius:`50%`,outline:0,backgroundColor:`currentColor`,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:e.transitions.create([`box-shadow`,`left`,`bottom`],{duration:e.transitions.duration.shortest}),"&::before":{position:`absolute`,content:`""`,borderRadius:`inherit`,width:`100%`,height:`100%`,boxShadow:(e.vars||e).shadows[2]},"&::after":{position:`absolute`,content:`""`,borderRadius:`50%`,width:42,height:42,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`},[`&.${sliderClasses.disabled}`]:{"&:hover":{boxShadow:`none`}},variants:[{props:{size:`small`},style:{width:12,height:12,"&::before":{boxShadow:`none`}}},{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-50%, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 50%)`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{[`&:hover, &.${sliderClasses.focusVisible}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 8px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`},{"@media (hover: none)":{boxShadow:`none`}}),[`&.${sliderClasses.active}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 14px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`})}}))]}}),SliderValueLabel=styled$1(SliderValueLabel$1,{name:`MuiSlider`,slot:`ValueLabel`,overridesResolver:(e,t)=>t.valueLabel})(({theme:e})=>_extends$3({zIndex:1,whiteSpace:`nowrap`},e.typography.body2,{fontWeight:500,transition:e.transitions.create([`transform`],{duration:e.transitions.duration.shortest}),position:`absolute`,backgroundColor:(e.vars||e).palette.grey[600],borderRadius:2,color:(e.vars||e).palette.common.white,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`0.25rem 0.75rem`,variants:[{props:{orientation:`horizontal`},style:{transform:`translateY(-100%) scale(0)`,top:`-10px`,transformOrigin:`bottom center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, 50%) rotate(45deg)`,backgroundColor:`inherit`,bottom:0,left:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-100%) scale(1)`}}},{props:{orientation:`vertical`},style:{transform:`translateY(-50%) scale(0)`,right:`30px`,top:`50%`,transformOrigin:`right center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, -50%) rotate(45deg)`,backgroundColor:`inherit`,right:-8,top:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-50%) scale(1)`}}},{props:{size:`small`},style:{fontSize:e.typography.pxToRem(12),padding:`0.25rem 0.5rem`}},{props:{orientation:`vertical`,size:`small`},style:{right:`20px`}}]})),SliderMark=styled$1(`span`,{name:`MuiSlider`,slot:`Mark`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markActive`,overridesResolver:(e,t)=>{let{markActive:n}=e;return[t.mark,n&&t.markActive]}})(({theme:e})=>({position:`absolute`,width:2,height:2,borderRadius:1,backgroundColor:`currentColor`,variants:[{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-1px, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 1px)`}},{props:{markActive:!0},style:{backgroundColor:(e.vars||e).palette.background.paper,opacity:.8}}]})),SliderMarkLabel=styled$1(`span`,{name:`MuiSlider`,slot:`MarkLabel`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markLabelActive`,overridesResolver:(e,t)=>t.markLabel})(({theme:e})=>_extends$3({},e.typography.body2,{color:(e.vars||e).palette.text.secondary,position:`absolute`,whiteSpace:`nowrap`,variants:[{props:{orientation:`horizontal`},style:{top:30,transform:`translateX(-50%)`,"@media (pointer: coarse)":{top:40}}},{props:{orientation:`vertical`},style:{left:36,transform:`translateY(50%)`,"@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(e.vars||e).palette.text.primary}}]})),useUtilityClasses$1=e=>{let{disabled:t,dragging:n,marked:a,orientation:o,track:s,classes:l,color:u,size:d}=e;return composeClasses({root:[`root`,t&&`disabled`,n&&`dragging`,a&&`marked`,o===`vertical`&&`vertical`,s===`inverted`&&`trackInverted`,s===!1&&`trackFalse`,u&&`color${capitalize_default(u)}`,d&&`size${capitalize_default(d)}`],rail:[`rail`],track:[`track`],mark:[`mark`],markActive:[`markActive`],markLabel:[`markLabel`],markLabelActive:[`markLabelActive`],valueLabel:[`valueLabel`],thumb:[`thumb`,t&&`disabled`,d&&`thumbSize${capitalize_default(d)}`,u&&`thumbColor${capitalize_default(u)}`],active:[`active`],disabled:[`disabled`],focusVisible:[`focusVisible`]},getSliderUtilityClass,l)},Forward=({children:e})=>e,Slider=import_react$24.forwardRef(function(e,t){var n,a,o,s,l,u,d,f,m,h,v,y,b,x,S,C,T,E,D,O,k,j,M,N;let F=useDefaultProps({props:e,name:`MuiSlider`}),I=useRtl(),{"aria-label":L,"aria-valuetext":R,"aria-labelledby":z,component:B=`span`,components:V={},componentsProps:H={},color:U=`primary`,classes:W,className:G,disableSwap:ee=!1,disabled:K=!1,getAriaLabel:q,getAriaValueText:J,marks:te=!1,max:ne=100,min:re=0,orientation:Y=`horizontal`,shiftStep:ie=10,size:ae=`medium`,step:oe=1,scale:se=Identity,slotProps:ce,slots:le,track:ue=`normal`,valueLabelDisplay:de=`off`,valueLabelFormat:X=Identity}=F,fe=_objectWithoutPropertiesLoose$3(F,_excluded$1),pe=_extends$3({},F,{isRtl:I,max:ne,min:re,classes:W,disabled:K,disableSwap:ee,orientation:Y,marks:te,color:U,size:ae,step:oe,shiftStep:ie,scale:se,track:ue,valueLabelDisplay:de,valueLabelFormat:X}),{axisProps:me,getRootProps:he,getHiddenInputProps:ge,getThumbProps:Z,open:_e,active:Q,axis:$,focusedThumbIndex:ve,range:ye,dragging:be,marks:xe,values:Se,trackOffset:Ce,trackLeap:we,getThumbStyle:Te}=useSlider(_extends$3({},pe,{rootRef:t}));pe.marked=xe.length>0&&xe.some(e=>e.label),pe.dragging=be,pe.focusedThumbIndex=ve;let Ee=useUtilityClasses$1(pe),De=le?.root??V.Root??SliderRoot,Oe=le?.rail??V.Rail??SliderRail,ke=le?.track??V.Track??SliderTrack,Ae=le?.thumb??V.Thumb??SliderThumb,je=le?.valueLabel??V.ValueLabel??SliderValueLabel,Me=le?.mark??V.Mark??SliderMark,Ne=le?.markLabel??V.MarkLabel??SliderMarkLabel,Pe=le?.input??V.Input??`input`,Fe=ce?.root??H.root,Ie=ce?.rail??H.rail,Le=ce?.track??H.track,Re=ce?.thumb??H.thumb,ze=ce?.valueLabel??H.valueLabel,Be=ce?.mark??H.mark,Ve=ce?.markLabel??H.markLabel,He=ce?.input??H.input,Ue=useSlotProps({elementType:De,getSlotProps:he,externalSlotProps:Fe,externalForwardedProps:fe,additionalProps:_extends$3({},shouldSpreadAdditionalProps(De)&&{as:B}),ownerState:_extends$3({},pe,Fe?.ownerState),className:[Ee.root,G]}),We=useSlotProps({elementType:Oe,externalSlotProps:Ie,ownerState:pe,className:Ee.rail}),Ge=useSlotProps({elementType:ke,externalSlotProps:Le,additionalProps:{style:_extends$3({},me[$].offset(Ce),me[$].leap(we))},ownerState:_extends$3({},pe,Le?.ownerState),className:Ee.track}),Ke=useSlotProps({elementType:Ae,getSlotProps:Z,externalSlotProps:Re,ownerState:_extends$3({},pe,Re?.ownerState),className:Ee.thumb}),qe=useSlotProps({elementType:je,externalSlotProps:ze,ownerState:_extends$3({},pe,ze?.ownerState),className:Ee.valueLabel}),Je=useSlotProps({elementType:Me,externalSlotProps:Be,ownerState:pe,className:Ee.mark}),Ye=useSlotProps({elementType:Ne,externalSlotProps:Ve,ownerState:pe,className:Ee.markLabel}),Xe=useSlotProps({elementType:Pe,getSlotProps:ge,externalSlotProps:He,ownerState:pe});return(0,import_jsx_runtime.jsxs)(De,_extends$3({},Ue,{children:[(0,import_jsx_runtime.jsx)(Oe,_extends$3({},We)),(0,import_jsx_runtime.jsx)(ke,_extends$3({},Ge)),xe.filter(e=>e.value>=re&&e.value<=ne).map((e,t)=>{let n=valueToPercent(e.value,re,ne),a=me[$].offset(n),o;return o=ue===!1?Se.indexOf(e.value)!==-1:ue===`normal`&&(ye?e.value>=Se[0]&&e.value<=Se[Se.length-1]:e.value<=Se[0])||ue===`inverted`&&(ye?e.value<=Se[0]||e.value>=Se[Se.length-1]:e.value>=Se[0]),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(Me,_extends$3({"data-index":t},Je,!isHostComponent(Me)&&{markActive:o},{style:_extends$3({},a,Je.style),className:clsx$1(Je.className,o&&Ee.markActive)})),e.label==null?null:(0,import_jsx_runtime.jsx)(Ne,_extends$3({"aria-hidden":!0,"data-index":t},Ye,!isHostComponent(Ne)&&{markLabelActive:o},{style:_extends$3({},a,Ye.style),className:clsx$1(Ee.markLabel,Ye.className,o&&Ee.markLabelActive),children:e.label}))]},t)}),Se.map((e,t)=>{let n=valueToPercent(e,re,ne),a=me[$].offset(n),o=de===`off`?Forward:je;return(0,import_jsx_runtime.jsx)(o,_extends$3({},!isHostComponent(o)&&{valueLabelFormat:X,valueLabelDisplay:de,value:typeof X==`function`?X(se(e),t):X,index:t,open:_e===t||Q===t||de===`on`,disabled:K},qe,{children:(0,import_jsx_runtime.jsx)(Ae,_extends$3({"data-index":t},Ke,{className:clsx$1(Ee.thumb,Ke.className,Q===t&&Ee.active,ve===t&&Ee.focusVisible),style:_extends$3({},a,Te(t),Ke.style),children:(0,import_jsx_runtime.jsx)(Pe,_extends$3({"data-index":t,"aria-label":q?q(t):L,"aria-valuenow":se(e),"aria-labelledby":z,"aria-valuetext":J?J(se(e),t):R,value:Se[t]},Xe))}))}),t)})]}))}),import_ZoomIn=__toESM(require_ZoomIn()),import_ZoomOut=__toESM(require_ZoomOut()),extendStatics$1=function(e,t){return extendStatics$1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},extendStatics$1(e,t)};function __extends$1(e,t){extendStatics$1(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var __assign$1=function(){return __assign$1=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign$1.apply(this,arguments)};function __rest$1(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}var initialState={wrapperComponent:null,contentComponent:null,previousScale:1,scale:1,positionX:0,positionY:0,options:{disabled:!1,transformEnabled:!0,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,limitToWrapper:!1,centerContent:!0,wrapperClass:``,contentClass:``},wheel:{disabled:!1,step:5,wheelEnabled:!0,touchPadEnabled:!0,limitsOnWheel:!1},pan:{disabled:!1,panAnimationType:`linear`,lockAxisX:!1,lockAxisY:!1,velocity:!0,velocityEqualToMove:!0,velocitySensitivity:2,velocityActiveScale:1,velocityMinSpeed:1,velocityBaseTime:1600,velocityAnimationType:`easeOutQuart`,padding:!0,paddingSize:30,panReturnAnimationTime:400,panReturnAnimationType:`easeOut`,disableOnTarget:[]},pinch:{disabled:!1},zoomIn:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},zoomOut:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},doubleClick:{disabled:!1,step:20,mode:`zoomIn`,animation:!0,animationType:`easeOut`,animationTime:200},reset:{disabled:!1,animation:!0,animationType:`easeOut`,animationTime:200},scalePadding:{disabled:!1,size:.2,animationTime:200,animationType:`easeOut`}},roundNumber=function(e,t){return Number(e.toFixed(t))},checkIsNumber=function(e,t){return typeof e==`number`?e:t},boundLimiter=function(e,t,n,a){return roundNumber(a?e<t?t:e>n?n:e:e,2)},calculateBoundingArea=function(e,t,n,a,o,s,l){var u=e>t?n*(l?1:.5):0,d=a>o?s*(l?1:.5):0;return{minPositionX:e-t-u,maxPositionX:u,minPositionY:a-o-d,maxPositionY:d}},getDistance=function(e,t){return Math.sqrt((e.pageX-t.pageX)**2+(e.pageY-t.pageY)**2)},deleteUndefinedProps=function(e){var t=__assign$1({},e);return Object.keys(t).forEach(function(e){return t[e]===void 0&&delete t[e]}),t},handleCallback=function(e,t){e&&typeof e==`function`&&e(t)},handleWheelStop=function(e,t,n){var a=n.scale,o=n.options,s=o.maxScale,l=o.minScale;return e?a<s||a>l||Math.sign(e.deltaY)!==Math.sign(t.deltaY)||e.deltaY>0&&e.deltaY<t.deltaY||e.deltaY<0&&e.deltaY>t.deltaY||Math.sign(e.deltaY)!==Math.sign(t.deltaY):!1},mergeProps=function(e,t){return Object.keys(e).reduce(function(n,a){return typeof t[a]==`object`&&t[a]!==null?n[a]=__assign$1(__assign$1({},e[a]),t[a]):n[a]=t[a]===void 0?e[a]:t[a],n},{})};function getWindowScaleY(e){return e?window.innerHeight/e.offsetHeight:0}function getWindowScaleX(e){return e?window.innerWidth/e.offsetWidth:0}var easeOut=function(e){return-Math.cos(e*Math.PI)/2+.5},linear=function(e){return e},easeInQuad=function(e){return e*e},easeOutQuad=function(e){return e*(2-e)},easeInOutQuad=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},easeInCubic=function(e){return e*e*e},easeOutCubic=function(e){return--e*e*e+1},easeInOutCubic=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart=function(e){return e*e*e*e},easeOutQuart=function(e){return 1- --e*e*e*e},easeInOutQuart=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint=function(e){return e*e*e*e*e},easeOutQuint=function(e){return 1+--e*e*e*e*e},easeInOutQuint=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},availableAnimations={easeOut,linear,easeInQuad,easeOutQuad,easeInOutQuad,easeInCubic,easeOutCubic,easeInOutCubic,easeInQuart,easeOutQuart,easeInOutQuart,easeInQuint,easeOutQuint,easeInOutQuint};function handleDisableAnimation(){this.mounted&&(this.animation&&cancelAnimationFrame(this.animation),this.animate=!1,this.animation=!1,this.velocity=!1)}function animate(e,t,n){var a=this;if(this.mounted){var o=new Date().getTime(),s=1;handleDisableAnimation.call(this),this.animation=function(){if(!(!a.animation||!a.mounted)){var l=new Date().getTime()-o,u=l/t,d=availableAnimations[e],f=d(u);l>=t?(n(s),a.animation=null):(n(f),requestAnimationFrame(a.animation))}},requestAnimationFrame(this.animation)}}function animateComponent(e){var t=this,n=e.targetState,a=e.speed,o=e.type,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=n.scale-l,m=n.positionX-u,h=n.positionY-d;a===0?(this.stateProvider.previousScale=this.stateProvider.scale,this.stateProvider.scale=n.scale,this.stateProvider.positionX=n.positionX,this.stateProvider.positionY=n.positionY,this.applyTransformation()):animate.call(this,o,a,function(e){t.stateProvider.previousScale=t.stateProvider.scale,t.stateProvider.scale=l+f*e,t.stateProvider.positionX=u+m*e,t.stateProvider.positionY=d+h*e,t.applyTransformation()})}function checkZoomBounds(e,t,n,a,o){var s=t-(o?a:0);return!isNaN(n)&&e>=n?n:!isNaN(t)&&e<=s?s:e}function checkPositionBounds(e,t,n,a,o,s){var l=n.minPositionX,u=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,m=s?o*s.offsetWidth/100:0,h=s?o*s.offsetHeight/100:0;return{x:boundLimiter(e,l-m,d+m,a),y:boundLimiter(t,u-h,f+h,a)}}function getDelta(e,t){return checkIsNumber(t,e?e.deltaY<0?1:-1:0)}function wheelMousePosition(e,t,n){var a=t.getBoundingClientRect(),o=(e.clientX-a.left)/n,s=(e.clientY-a.top)/n;return(isNaN(o)||isNaN(s))&&console.error(`No mouse or touch offset found`),{mouseX:o,mouseY:s}}function getComponentsSizes(e,t,n){var a=e.offsetWidth,o=e.offsetHeight,s=t.offsetWidth,l=t.offsetHeight,u=s*n,d=l*n;return{wrapperWidth:a,wrapperHeight:o,newContentWidth:u,newDiffWidth:a-u,newContentHeight:d,newDiffHeight:o-d}}function handleCalculatePositions(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.options.transformEnabled,m=n-l;return typeof e!=`number`||typeof t!=`number`?console.error(`Mouse X and Y position were not provided!`):f?checkPositionBounds(u-e*m,d-t*m,a,o,0,null):{newPositionX:u,newPositionY:d}}function getClientPosition(e){var t=e.touches;return t&&t.length===1?{clientX:t[0].clientX,clientY:t[0].clientY}:t?null:{clientX:e.clientX,clientY:e.clientY}}function handlePanning(e){var t=this.stateProvider,n=t.scale,a=t.positionX,o=t.positionY,s=t.options,l=s.limitToBounds,u=s.minScale,d=t.pan,f=d.lockAxisX,m=d.lockAxisY,h=d.padding,v=d.paddingSize,y=t.wrapperComponent;if(this.startCoords){var b=this.startCoords,x=b.x,S=b.y,C=getClientPosition(e);if(!C)return console.error(`Cannot find mouse client positions`);var T=C.clientX,E=C.clientY,D=T-x,O=E-S,k=f?a:D,j=m?o:O,M=h&&n>=u?v:0;if(!(k===a&&j===o)){var N=checkPositionBounds(k,j,this.bounds,l,M,y);handlePaddingAnimation.call(this,N.x,N.y)}}}function handlePanningAnimation(){var e=this.stateProvider,t=e.scale,n=e.options.minScale,a=e.pan,o=a.disabled,s=a.padding,l=a.panReturnAnimationTime,u=a.panReturnAnimationType;if(!(o||t<n||!s)){var d=handlePanToBounds.call(this);animateComponent.call(this,{targetState:d,speed:l,type:u})}}function handlePanToBounds(){var e=this.stateProvider,t=e.positionX,n=e.positionY,a=e.scale,o=e.options,s=o.disabled,l=o.limitToBounds,u=o.limitToWrapper,d=this.state.wrapperComponent;if(!s){var f=this.bounds,m=f.maxPositionX,h=f.minPositionX,v=f.maxPositionY,y=f.minPositionY,b=t>m||t<h,x=n>v||n<y,S=t>m?d.offsetWidth:this.stateProvider.minPositionX||0,C=n>v?d.offsetHeight:this.stateProvider.minPositionY||0,T=S,E=C,D=handleCalculatePositions.call(this,T,E,a,this.bounds,l||u),O=D.x,k=D.y;return{scale:a,positionX:b?O:t,positionY:x?k:n}}}function handlePaddingAnimation(e,t){this.stateProvider.pan.padding&&(this.stateProvider.positionX=e,this.stateProvider.positionY=t,this.applyTransformation())}function handleCalculateZoom(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.options,d=u.maxScale,f=u.minScale,m=s.scalePadding,h=m.size,v=m.disabled,y=s.wrapperComponent,b=null;if(o){var x=window.innerWidth*1e-4,S=e<0?30:20;b=l+(t-t*x)*e*(l/S)}else{var C=2-window.innerWidth/y.offsetWidth,x=Math.max(.2,Math.min(.99,C)),S=20;b=l+t*e*((l-l*x)/S)}if(a)return b;var T=n?!1:!v;return checkZoomBounds(roundNumber(b,3),f,d,h,T)}function handleCalculateBounds(e,t){var n=this.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=getComponentsSizes(a,o,e),l=s.wrapperWidth,u=s.wrapperHeight,d=s.newContentWidth,f=s.newDiffWidth,m=s.newContentHeight,h=s.newDiffHeight,v=calculateBoundingArea(l,d,f,u,m,h,t);return this.bounds=v,v}function handleWheelZoom(e){var t=this.stateProvider,n=t.scale,a=t.contentComponent,o=t.options.limitToBounds,s=t.scalePadding,l=s.size,u=s.disabled,d=t.wheel,f=d.step,m=d.limitsOnWheel;e.preventDefault(),e.stopPropagation();var h=getDelta(e,null),v=handleCalculateZoom.call(this,h,f,!e.ctrlKey);if(n!==v){var y=handleCalculateBounds.call(this,v,!m),b=wheelMousePosition(e,a,n),x=b.mouseX,S=b.mouseY,C=o&&(u||l===0||m),T=handleCalculatePositions.call(this,x,S,v,y,C),E=T.x,D=T.y;this.bounds=y,this.stateProvider.previousScale=n,this.stateProvider.scale=v,this.stateProvider.positionX=E,this.stateProvider.positionY=D,this.applyTransformation()}}function handleZoomToPoint(e,t,n,a,o){var s=this.stateProvider,l=s.contentComponent,u=s.options,d=u.disabled,f=u.minScale,m=u.maxScale,h=u.limitToBounds,v=u.limitToWrapper;if(!(d||e)){var y=checkZoomBounds(roundNumber(t,2),f,m,null,null),b=handleCalculateBounds.call(this,y,v),x=n,S=a;if(o){var C=wheelMousePosition(o,l,t);x=C.mouseX,S=C.mouseY}var T=handleCalculatePositions.call(this,x,S,y,b,h);return{scale:y,positionX:T.x,positionY:T.y}}}function handlePaddingAnimation$1(){var e=this.stateProvider,t=e.scale,n=e.wrapperComponent,a=e.options,o=a.minScale,s=a.limitToBounds,l=e.scalePadding,u=l.disabled,d=l.animationTime,f=l.animationType,m=u||t>=o;if((t>=1||s)&&handlePanningAnimation.call(this),!m){var h=n.offsetWidth/2,v=n.offsetHeight/2,y=handleZoomToPoint.call(this,!1,o,h,v,null);animateComponent.call(this,{targetState:y,speed:d,type:f})}}function handleDoubleClick(e){e.preventDefault(),e.stopPropagation();var t=this.stateProvider,n=t.contentComponent,a=t.scale,o=t.doubleClick,s=o.disabled,l=o.mode,u=o.step,d=o.animationTime,f=o.animationType;if(l===`reset`)return resetTransformations.call(this,e,d);var m=l===`zoomOut`?-1:1,h=handleCalculateZoom.call(this,m,u,void 0,void 0,!0),v=wheelMousePosition(e,n,a),y=v.mouseX,b=v.mouseY,x=handleZoomToPoint.call(this,s,h,y,b);if(x.scale!==a){var S=getButtonAnimationTime(handleCalculateZoom.call(this,m,u,!0,void 0,!0),h,d);animateComponent.call(this,{targetState:x,speed:S,type:f})}}function handleZoomControls(e,t){var n=this.stateProvider,a=n.scale,o=n.positionX,s=n.positionY,l=n.wrapperComponent,u=n.zoomIn,d=n.zoomOut,f=l.offsetWidth,m=l.offsetHeight,h=(f/2-o)/a,v=(m/2-s)/a,y=handleCalculateZoom.call(this,e,t,void 0,void 0,!0),b=y>a,x=b?u.animationTime:d.animationTime,S=b?u.animationType:d.animationType,C=b?u.disabled:d.disabled,T=handleZoomToPoint.call(this,C,y,h,v);if(T.scale!==a){var E=getButtonAnimationTime(handleCalculateZoom.call(this,e,t,!0,void 0,!0),y,x);animateComponent.call(this,{targetState:T,speed:E,type:S})}}function resetTransformations(e){var t=this.props.defaultValues,n=t.defaultScale,a=t.defaultPositionX,o=t.defaultPositionY,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.reset,m=s.options,h=m.disabled,v=m.limitToBounds,y=m.centerContent,b=m.limitToWrapper;if(!(h||f.disabled)&&!(l===n&&u===a&&d===o)){var x=typeof e==`number`?e:f.animationTime,S=checkIsNumber(n,initialState.scale),C=checkIsNumber(a,initialState.positionX),T=checkIsNumber(o,initialState.positionY);if(v&&!b||y){var E=handleCalculateBounds.call(this,S,b);C=E.minPositionX,T=E.minPositionY}var D={scale:S,positionX:C,positionY:T};animateComponent.call(this,{targetState:D,speed:x,type:f.animationType})}}function getButtonAnimationTime(e,t,n){return t/e*n}function round(e,t){var n=10**t;return Math.round(e*n)/n}function getCurrentDistance(e){return getDistance(e.touches[0],e.touches[1])}function checkIfInfinite(e){return e===1/0||e===-1/0}function calculatePinchZoom(e,t){var n=this.stateProvider,a=n.options,o=a.minScale,s=a.maxScale,l=n.scalePadding,u=l.size,d=l.disabled;if(typeof t!=`number`||typeof e!=`number`)return console.error(`Pinch touches distance was not provided`);if(!(e<0))return checkZoomBounds(roundNumber(e/t*this.pinchStartScale,2),o,s,u,!d)}function calculateMidpoint(e,t,n){var a=n.getBoundingClientRect(),o=e.touches,s=round(o[0].clientX-a.left,5),l=round(o[0].clientY-a.top,5),u=round(o[1].clientX-a.left,5),d=round(o[1].clientY-a.top,5);return{mouseX:(s+u)/2/t,mouseY:(l+d)/2/t}}function handleZoomPinch(e){var t=this.stateProvider,n=t.scale,a=t.options,o=a.limitToBounds,s=a.limitToWrapper,l=t.scalePadding,u=l.disabled,d=l.size,f=t.wheel.limitsOnWheel,m=t.pinch,h=this.state.contentComponent;if(!(m.disabled||this.stateProvider.options.disabled)&&(e.cancelable&&(e.preventDefault(),e.stopPropagation()),this.pinchStartDistance!==null)){var v=calculateMidpoint(e,n,h),y=v.mouseX,b=v.mouseY;if(!(checkIfInfinite(y)||checkIfInfinite(b))){var x=getCurrentDistance(e),S=calculatePinchZoom.call(this,x,this.pinchStartDistance);if(!(checkIfInfinite(S)||S===n)){var C=handleCalculateBounds.call(this,S,s),T=o&&(u||d===0||f),E=handleCalculatePositions.call(this,y,b,S,C,T),D=E.x,O=E.y;this.lastDistance=x,this.stateProvider.positionX=D,this.stateProvider.positionY=O,this.stateProvider.scale=S,this.stateProvider.previousScale=n,this.applyTransformation()}}}}var throttleTime=30;function velocityTimeSpeed(e,t){return this.stateProvider.pan.velocityEqualToMove?t-t/Math.max(1,e):t}function handleEnableVelocity(){this.setState({startAnimation:!1})}function handleFireVelocity(){this.setState({startAnimation:!0})}function animateVelocity(){var e=this,t=this.stateProvider,n=t.positionX,a=t.positionY,o=t.options.limitToBounds,s=t.pan,l=s.velocityBaseTime,u=s.lockAxisX,d=s.lockAxisY,f=s.velocityAnimationType,m=s.panReturnAnimationTime,h=s.panReturnAnimationType,v=s.padding,y=s.paddingSize,b=t.wrapperComponent;if(this.mounted){if(!this.velocity||!this.bounds)return handleDisableAnimation.call(this);var x=this.bounds,S=x.maxPositionX,C=x.minPositionX,T=x.maxPositionY,E=x.minPositionY,D=this.velocity,O=D.velocityX,k=D.velocityY,j=D.velocity,M=velocityTimeSpeed.call(this,j,l);if(!M){handlePanningAnimation.call(this);return}var N=O,F=k,I=M>m?M:m,L=v?y:0,R=b?L*b.offsetWidth/100:0,z=b?L*b.offsetHeight/100:0,B=S+R,V=C-R,H=T+z,U=E-z,W=checkPositionBounds(n,a,this.bounds,o,L,b),G=new Date().getTime();animate.call(this,f,I,function(t){var s=new Date().getTime()-G,l=s/m,f=availableAnimations[h],v=f(l);(s>m||v>1||v===1/0||v===-1/0)&&(v=1);var y=getPosition(u,N,t,v,C,S,o,n,W.x,V,B),b=getPosition(d,F,t,v,E,T,o,a,W.y,U,H);(n!==y||a!==b)&&(e.stateProvider.positionX=y,e.stateProvider.positionY=b,e.applyTransformation())})}}function calculateVelocityStart(e){var t=this,n=this.stateProvider,a=n.scale,o=n.options.disabled,s=n.pan,l=s.velocity,u=s.velocitySensitivity,d=s.velocityActiveScale,f=s.velocityMinSpeed,m=n.wrapperComponent;if(!(!l||d>=a||o)){handleEnableVelocity.call(this);var h=Date.now();if(this.lastMousePosition){var v=getClientPosition(e);if(!v)return console.error(`No mouse or touch position detected`);var y=v.clientX,b=v.clientY,x=y-this.lastMousePosition.clientX,S=b-this.lastMousePosition.clientY,C=h-this.velocityTime,T=2-m.offsetWidth/window.innerWidth,E=2-m.offsetHeight/window.innerHeight,D=20*Math.max(f,Math.min(2,T)),O=20*Math.max(f,Math.min(2,E)),k=x/C*u*a*D,j=S/C*u*a*O,M=x*x+S*S,N=Math.sqrt(M)/C*u;if(this.velocity&&N<this.velocity.velocity&&this.throttle)return;this.velocity={velocityX:k,velocityY:j,velocity:N},this.throttle&&clearTimeout(this.throttle),this.throttle=setTimeout(function(){t.mounted&&(t.throttle=!1)},throttleTime)}var F=getClientPosition(e);this.lastMousePosition=F,this.velocityTime=h}}function getPosition(e,t,n,a,o,s,l,u,d,f,m){if(l){if(d>o&&u>s){var h=d-(d-s)*a;return h>m?m:h<s?s:h}if(d<o&&u<o){var h=d-(d-o)*a;return h<f?f:h>o?o:h}}return e?d:boundLimiter(u+t*n,o,s,l)}function makePassiveEventOption(e){return e}var propsList=`previousScale.scale.positionX.positionY.defaultPositionX.defaultPositionY.defaultScale.onWheelStart.onWheel.onWheelStop.onPanningStart.onPanning.onPanningStop.onPinchingStart.onPinching.onPinchingStop.onZoomChange.options.wheel.scalePadding.pan.pinch.zoomIn.zoomOut.doubleClick.reset`.split(`.`),getValidPropsFromObject=function(e){return Object.keys(e).reduce(function(t,n){return propsList.includes(n)&&(t[n]=e[n]),t},{})},Context=import_react$24.createContext({}),wheelStopEventTimer=null,wheelStopEventTime=180,wheelAnimationTimer=null,wheelAnimationTime=100,StateProvider=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.mounted=!0,t.state={wrapperComponent:void 0,contentComponent:void 0},t.stateProvider=__assign$1(__assign$1(__assign$1(__assign$1({},initialState),mergeProps(initialState,t.props.dynamicValues)),t.props.defaultValues),{previousScale:t.props.dynamicValues.scale||t.props.defaultValues.scale||initialState.scale}),t.windowToWrapperScaleX=0,t.windowToWrapperScaleY=0,t.startCoords=null,t.isDown=!1,t.pinchStartDistance=null,t.lastDistance=null,t.pinchStartScale=null,t.distance=null,t.bounds=null,t.velocityTime=null,t.lastMousePosition=null,t.velocity=null,t.offsetX=null,t.offsetY=null,t.throttle=!1,t.previousWheelEvent=null,t.lastScale=null,t.animate=null,t.animation=null,t.maxBounds=null,t.handleWheel=function(e){var n=t.stateProvider,a=n.scale,o=n.wheel,s=o.disabled,l=o.wheelEnabled,u=o.touchPadEnabled,d=t.props,f=d.onWheelStart,m=d.onWheel,h=d.onWheelStop,v=t.state,y=v.wrapperComponent,b=v.contentComponent;t.isDown||s||t.stateProvider.options.disabled||!y||!b||!l&&!e.ctrlKey||!u&&e.ctrlKey||(wheelStopEventTimer||(t.lastScale=a,handleDisableAnimation.call(t),handleCallback(f,t.getCallbackProps())),handleWheelZoom.call(t,e),handleCallback(m,t.getCallbackProps()),t.applyTransformation(null,null,null),t.previousWheelEvent=e,handleWheelStop(t.previousWheelEvent,e,t.stateProvider)&&(clearTimeout(wheelStopEventTimer),wheelStopEventTimer=setTimeout(function(){t.mounted&&(handleCallback(h,t.getCallbackProps()),wheelStopEventTimer=null)},wheelStopEventTime)),t.animate=!1,t.lastScale=t.stateProvider.scale,clearTimeout(wheelAnimationTimer),wheelAnimationTimer=setTimeout(function(){t.mounted&&handlePaddingAnimation$1.call(t,e)},wheelAnimationTime))},t.checkPanningTarget=function(e){var n=t.stateProvider.pan.disableOnTarget;return n.map(function(e){return e.toUpperCase()}).includes(e.target.tagName)||n.find(function(t){return e.target.classList.value.includes(t)})},t.checkIsPanningActive=function(e){var n=t.stateProvider.pan.disabled,a=t.state,o=a.wrapperComponent,s=a.contentComponent;return!t.isDown||n||t.stateProvider.options.disabled||e.touches&&(e.touches.length!==1||Math.abs(t.startCoords.x-e.touches[0].clientX)<1||Math.abs(t.startCoords.y-e.touches[0].clientY)<1)||!o||!s},t.handleSetUpPanning=function(e,n){var a=t.stateProvider,o=a.positionX,s=a.positionY;t.isDown=!0,t.startCoords={x:e-o,y:n-s},handleCallback(t.props.onPanningStart,t.getCallbackProps())},t.handleStartPanning=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.scale,s=n.options,l=s.minScale,u=s.maxScale,d=s.limitToWrapper,f=n.pan.disabled,m=e.target,h=e.touches;f||t.stateProvider.options.disabled||a&&!a.contains(m)||t.checkPanningTarget(e)||o<l||o>u||(handleDisableAnimation.call(t),t.bounds=handleCalculateBounds.call(t,o,d),h&&h.length===1&&t.handleSetUpPanning(h[0].clientX,h[0].clientY),h||t.handleSetUpPanning(e.clientX,e.clientY))},t.handlePanning=function(e){t.isDown&&e.preventDefault(),!t.checkIsPanningActive(e)&&(e.stopPropagation(),calculateVelocityStart.call(t,e),handlePanning.call(t,e),handleCallback(t.props.onPanning,t.getCallbackProps()))},t.handleStopPanning=function(){if(t.isDown){t.isDown=!1,t.animate=!1,t.animation=!1,handleFireVelocity.call(t),handleCallback(t.props.onPanningStop,t.getCallbackProps());var e=t.stateProvider,n=e.pan.velocity,a=e.scale;t.velocity&&n&&a>1?animateVelocity.call(t):handlePanningAnimation.call(t)}},t.handlePinchStart=function(e){var n=t.stateProvider.scale;e.preventDefault(),e.stopPropagation(),handleDisableAnimation.call(t);var a=getDistance(e.touches[0],e.touches[1]);t.pinchStartDistance=a,t.lastDistance=a,t.pinchStartScale=n,t.isDown=!1,handleCallback(t.props.onPinchingStart,t.getCallbackProps())},t.handlePinch=function(e){t.isDown=!1,handleZoomPinch.call(t,e),handleCallback(t.props.onPinching,t.getCallbackProps())},t.handlePinchStop=function(){typeof t.pinchStartScale==`number`&&(t.isDown=!1,t.velocity=null,t.lastDistance=null,t.pinchStartScale=null,t.pinchStartDistance=null,handlePaddingAnimation$1.call(t),handleCallback(t.props.onPinchingStop,t.getCallbackProps()))},t.handleTouchStart=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=n.scale,l=n.options,u=l.disabled,d=l.minScale,f=e.touches;if(!(u||!a||!o||s<d)){if(handleDisableAnimation.call(t),f&&f.length===1)return t.handleStartPanning(e);if(f&&f.length===2)return t.handlePinchStart(e)}},t.handleTouch=function(e){var n=t.stateProvider,a=n.pan,o=n.pinch;if(!n.options.disabled){if(!a.disabled&&e.touches.length===1)return t.handlePanning(e);if(!o.disabled&&e.touches.length===2)return t.handlePinch(e)}},t.handleTouchStop=function(){t.handleStopPanning(),t.handlePinchStop()},t.zoomIn=function(e){var n=t.stateProvider,a=n.zoomIn,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom in function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,1,s)},t.zoomOut=function(e){var n=t.stateProvider,a=n.zoomOut,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom out function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,-1,s)},t.handleDbClick=function(e){var n=t.stateProvider,a=n.options,o=n.doubleClick,s=o.disabled,l=o.step,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Double click function requires event prop`);s||a.disabled||!d||!f||handleDoubleClick.call(t,e,1,l)},t.setScale=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options.disabled,f=t.state,m=f.wrapperComponent,h=f.contentComponent;if(!(d||!m||!h)){var v={positionX:s,positionY:l,scale:isNaN(e)?u:e};animateComponent.call(t,{targetState:v,speed:n,type:a})}},t.setPositionX=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:isNaN(e)?s:e,positionY:l,scale:u};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setPositionY=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.scale,u=o.positionY,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:s,positionY:isNaN(e)?u:e,scale:l};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setTransform=function(e,n,a,o,s){o===void 0&&(o=200),s===void 0&&(s=`easeOut`);var l=t.stateProvider,u=l.positionX,d=l.positionY,f=l.scale,m=l.options,h=m.disabled,v=m.transformEnabled,y=t.state,b=y.wrapperComponent,x=y.contentComponent;if(!(h||!v||!b||!x)){var S={positionX:isNaN(e)?u:e,positionY:isNaN(n)?d:n,scale:isNaN(a)?f:a};animateComponent.call(t,{targetState:S,speed:o,type:s})}},t.resetTransform=function(){var e=t.stateProvider.options,n=e.disabled,a=e.transformEnabled;n||!a||resetTransformations.call(t)},t.setDefaultState=function(){t.animation=null,t.stateProvider=__assign$1(__assign$1(__assign$1({},t.stateProvider),{scale:initialState.scale,positionX:initialState.positionX,positionY:initialState.positionY}),t.props.defaultValues),t.forceUpdate()},t.setWrapperComponent=function(e){t.setState({wrapperComponent:e})},t.setContentComponent=function(e){t.setState({contentComponent:e},function(){var n=t.stateProvider,a=n.wrapperComponent,o=n.options,s=o.centerContent,l=o.limitToBounds,u=o.limitToWrapper,d=n.scale,f=t.props.defaultValues,m=f.positionX,h=f.positionY;if(l&&!u||s&&!m&&!h){var v=`translate(25%, 25%) scale(`+d+`)`;e.style.transform=v,e.style.WebkitTransform=v,t.forceUpdate();var y=new Date().getTime(),b=2e3,x=setInterval(function(){if(a.offsetWidth){var e=handleCalculateBounds.call(t,d,!1);t.stateProvider.positionX=e.minPositionX,t.stateProvider.positionY=e.minPositionY,t.applyTransformation(null,null,null),clearInterval(x),x=null}else new Date().getTime()-y>b&&(clearInterval(x),x=null)},20)}else t.applyTransformation(null,null,null)})},t.applyTransformation=function(e,n,a){if(t.mounted){var o=t.state.contentComponent,s=t.props.onZoomChange,l=t.stateProvider,u=l.previousScale,d=l.scale,f=l.positionX,m=l.positionY;if(!o)return console.error(`There is no content component`);var h=`translate(`+(n||f)+`px, `+(a||m)+`px) scale(`+(e||d)+`)`;o.style.transform=h,o.style.WebkitTransform=h,t.forceUpdate(),s&&u!==d&&handleCallback(s,t.getCallbackProps())}},t.getCallbackProps=function(){return getValidPropsFromObject(t.stateProvider)},t}return t.prototype.componentDidMount=function(){var e=makePassiveEventOption(!1);window.addEventListener(`mousedown`,this.handleStartPanning,e),window.addEventListener(`mousemove`,this.handlePanning,e),window.addEventListener(`mouseup`,this.handleStopPanning,e)},t.prototype.componentWillUnmount=function(){var e=makePassiveEventOption(!1);window.removeEventListener(`mousedown`,this.handleStartPanning,e),window.removeEventListener(`mousemove`,this.handlePanning,e),window.removeEventListener(`mouseup`,this.handleStopPanning,e),handleDisableAnimation.call(this)},t.prototype.componentDidUpdate=function(e,t){var n=this.state,a=n.wrapperComponent,o=n.contentComponent,s=this.props.dynamicValues;if(!t.contentComponent&&o&&(this.stateProvider.contentComponent=o),!t.wrapperComponent&&a&&a!==void 0){this.stateProvider.wrapperComponent=a,this.windowToWrapperScaleX=getWindowScaleX(a),this.windowToWrapperScaleY=getWindowScaleY(a);var l=makePassiveEventOption(!1);a.addEventListener(`wheel`,this.handleWheel,l),a.addEventListener(`dblclick`,this.handleDbClick,l),a.addEventListener(`touchstart`,this.handleTouchStart,l),a.addEventListener(`touchmove`,this.handleTouch,l),a.addEventListener(`touchend`,this.handleTouchStop,l)}(a&&o||e.dynamicValues!==s)&&(this.maxBounds=handleCalculateBounds.call(this,this.stateProvider.scale,this.stateProvider.options.limitToWrapper)),e.dynamicValues&&e.dynamicValues!==s&&(this.animation=null,this.stateProvider=__assign$1(__assign$1({},this.stateProvider),mergeProps(this.stateProvider,s)),this.applyTransformation(null,null,null))},t.prototype.render=function(){var e=this.state,t=e.wrapperComponent,n=e.contentComponent,a={loaded:!!(t&&n),state:this.getCallbackProps(),dispatch:{setScale:this.setScale,setPositionX:this.setPositionX,setPositionY:this.setPositionY,zoomIn:this.zoomIn,zoomOut:this.zoomOut,setTransform:this.setTransform,resetTransform:this.resetTransform,setDefaultState:this.setDefaultState},nodes:{setWrapperComponent:this.setWrapperComponent,setContentComponent:this.setContentComponent}},o=this.props.children,s=typeof o==`function`?o(__assign$1(__assign$1({},a.state),a.dispatch)):o;return import_react$24.createElement(Context.Provider,{value:a},s)},t}(import_react$24.Component),TransformWrapper=function(e){var t=e.children,n=e.defaultPositionX,a=e.defaultPositionY,o=e.defaultScale,s=e.onWheelStart,l=e.onWheel,u=e.onWheelStop,d=e.onPanningStart,f=e.onPanning,m=e.onPanningStop,h=e.onPinchingStart,v=e.onPinching,y=e.onPinchingStop,b=e.onZoomChange,x=__rest$1(e,[`children`,`defaultPositionX`,`defaultPositionY`,`defaultScale`,`onWheelStart`,`onWheel`,`onWheelStop`,`onPanningStart`,`onPanning`,`onPanningStop`,`onPinchingStart`,`onPinching`,`onPinchingStop`,`onZoomChange`]),S=__assign$1({},x);return S.options&&S.options.limitToWrapper&&(S.options.limitToBounds=!0),import_react$24.createElement(StateProvider,{defaultValues:deleteUndefinedProps({positionX:n,positionY:a,scale:o}),dynamicValues:deleteUndefinedProps(getValidPropsFromObject(S)),onWheelStart:s,onWheel:l,onWheelStop:u,onPanningStart:d,onPanning:f,onPanningStop:m,onPinchingStart:h,onPinching:v,onPinchingStop:y,onZoomChange:b},t)};function styleInject(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document>`u`)){var a=document.head||document.getElementsByTagName(`head`)[0],o=document.createElement(`style`);o.type=`text/css`,n===`top`&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var css=`.TransformComponent-module_container__3NwNd {
|
|
725
|
+
`,circularDashKeyframe)),CircularProgress=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiCircularProgress`}),{className:a,color:o=`primary`,disableShrink:s=!1,size:l=40,style:u,thickness:d=3.6,value:f=0,variant:m=`indeterminate`}=n,h=_objectWithoutPropertiesLoose$3(n,_excluded$2),v=_extends$3({},n,{color:o,disableShrink:s,size:l,thickness:d,value:f,variant:m}),y=useUtilityClasses$2(v),b={},x={},S={};if(m===`determinate`){let e=2*Math.PI*((SIZE-d)/2);b.strokeDasharray=e.toFixed(3),S[`aria-valuenow`]=Math.round(f),b.strokeDashoffset=`${((100-f)/100*e).toFixed(3)}px`,x.transform=`rotate(-90deg)`}return(0,import_jsx_runtime.jsx)(CircularProgressRoot,_extends$3({className:clsx$1(y.root,a),style:_extends$3({width:l,height:l},x,u),ownerState:v,ref:t,role:`progressbar`},S,h,{children:(0,import_jsx_runtime.jsx)(CircularProgressSVG,{className:y.svg,ownerState:v,viewBox:`${SIZE/2} ${SIZE/2} ${SIZE} ${SIZE}`,children:(0,import_jsx_runtime.jsx)(CircularProgressCircle,{className:y.circle,style:b,ownerState:v,cx:SIZE,cy:SIZE,r:(SIZE-d)/2,fill:`none`,strokeWidth:d})})}))});function DayAndProgressContainer({dayCount:e,experience:t,itemsSold:n}){let a=levelAchieved(t),o=scaleNumber(t,experienceNeededForLevel(a),experienceNeededForLevel(a+1),0,100),s=experienceNeededForLevel(a+1)-t,l=a+1;return(0,import_jsx_runtime.jsxs)(`h2`,{className:`day-and-progress-container`,children:[(0,import_jsx_runtime.jsxs)(`span`,{children:[`Day `,integerString(e),`, level:`]}),(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,placement:`top`,title:EXPERIENCE_GAUGE_TOOLTIP_LABEL`${s}${l}`,children:(0,import_jsx_runtime.jsxs)(Box,{children:[(0,import_jsx_runtime.jsx)(CircularProgress,{value:o,variant:`determinate`}),(0,import_jsx_runtime.jsx)(`span`,{className:`current-level`,children:integerString(a)})]})})]})}DayAndProgressContainer.propTypes={dayCount:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,itemsSold:import_prop_types$1.object.isRequired};function Consumer$13(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(DayAndProgressContainer,{...t,...n,...e})})}var FarmNameDisplay=({farmName:e,handleFarmNameUpdate:t})=>{let[n,a]=(0,import_react$24.useState)(e);return(0,import_react$24.useEffect)(()=>{a(e)},[e,a]),(0,import_jsx_runtime.jsxs)(`h2`,{className:`farm-name`,children:[(0,import_jsx_runtime.jsx)(TextField,{variant:`standard`,inputProps:{maxLength:12},onChange:({target:{value:e}})=>{a(e)},onBlur:({target:{value:e}})=>{t(e)},placeholder:`Farm Name`,value:n}),` `,`Farm`]})},OnlineControls=({activePlayers:e,handleActivePlayerButtonClick:t,handleChatRoomOpenStateChange:n,handleOnlineToggleChange:a,handleRoomChange:o,isChatAvailable:s,isOnline:l,room:u})=>{let[d,f]=(0,import_react$24.useState)(u);(0,import_react$24.useEffect)(()=>{f(u)},[u,f]);let m=()=>{n(!0)},h=()=>{o(d)},v=e=>{h(),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(FormControl,{variant:`standard`,className:`online-control-container`,component:`fieldset`,children:[(0,import_jsx_runtime.jsx)(FormGroup,{className:`toggle-container`,children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:l,onChange:(e,t)=>{v(t)},name:`play-online`}),label:`Play online`})}),(0,import_jsx_runtime.jsx)(TextField,{className:`room-name`,inputProps:{maxLength:25},label:`Room name`,onChange:({target:{value:e}})=>{f(e)},onKeyUp:({key:e})=>{e===`Enter`&&h()},value:d,variant:`outlined`})]}),e&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(Button,{color:`primary`,onClick:t,variant:`contained`,children:[`Connected players: `,integerString(e)]}),s?(0,import_jsx_runtime.jsx)(Button,{variant:`contained`,color:`primary`,onClick:m,children:`Open chat`}):(0,import_jsx_runtime.jsxs)(Typography,{className:`chat-placeholder`,children:[`Chat is available for online rooms other than "`,`global`,`"`]})]})]})},{FARMERS_LOG,PRICE_EVENTS,STATS,ACHIEVEMENTS,ACCOUNTING,SETTINGS,ONLINE_PEERS,KEYBINDINGS}=dialogView,dialogTriggerTextMap={[FARMERS_LOG]:`Open Farmer's Log (l)`,[PRICE_EVENTS]:`See Price Events (e)`,[STATS]:`View your stats (s)`,[ACHIEVEMENTS]:`View Achievements (a)`,[ACCOUNTING]:`View Bank Account (b)`,[SETTINGS]:`View Settings (comma)`},dialogTitleMap={[FARMERS_LOG]:`Farmer's Log`,[PRICE_EVENTS]:`Price Events`,[STATS]:`Farm Stats`,[ACHIEVEMENTS]:`Achievements`,[ACCOUNTING]:`Bank Account`,[SETTINGS]:`Settings`,[ONLINE_PEERS]:`Active Players`,[KEYBINDINGS]:`Keyboard Shortcuts`},dialogContentMap={[FARMERS_LOG]:(0,import_jsx_runtime.jsx)(Consumer$18,{}),[PRICE_EVENTS]:(0,import_jsx_runtime.jsx)(Consumer$16,{}),[STATS]:(0,import_jsx_runtime.jsx)(Consumer$14,{}),[ACHIEVEMENTS]:(0,import_jsx_runtime.jsx)(Consumer$19,{}),[ACCOUNTING]:(0,import_jsx_runtime.jsx)(Consumer$21,{}),[SETTINGS]:(0,import_jsx_runtime.jsx)(Consumer$15,{}),[ONLINE_PEERS]:(0,import_jsx_runtime.jsx)(Consumer$17,{}),[KEYBINDINGS]:(0,import_jsx_runtime.jsx)(KeybindingsView,{})},Navigation=({activePlayers:e,blockInput:t,currentDialogView:n,farmName:a,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleClickDialogViewButton:l,handleCloseDialogView:u,handleDialogViewExited:d,handleFarmNameUpdate:f,handleOnlineToggleChange:m,handleRoomChange:h,handleViewChange:v,inventory:y,inventoryLimit:b,isChatAvailable:x,isDialogViewOpen:S,isOnline:C,room:T,stageFocus:E,viewList:D,currentDialogViewLowerCase:O=(n||``).toLowerCase(),modalTitleId:k=`${O}-modal-title`,modalContentId:j=`${O}-modal-content`})=>(0,import_jsx_runtime.jsxs)(Header,{className:`Navigation`,sx:{flexDirection:`column`,flexShrink:0,display:`flex`,"& .version":{fontFamily:`"Francois One", sans-serif`,textAlign:`center`},"& .farm-name":{lineHeight:`1.3em`,margin:`0.25em 0`,"& .MuiInput-root":{background:`none`,margin:0,"& input":{fontFamily:`"Francois One"`,paddingLeft:`0.5em`,paddingRight:`0.5em`,textAlign:`center`}}},"& .online-control-container":{alignItems:`center`,display:`flex`,flexDirection:`row`,margin:`1em 0`,"& .toggle-container":{minWidth:`155px`}},"& .button-array":{marginLeft:`3em`,marginRight:`3em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`2em`,marginRight:`2em`}},"& .current-level":{alignItems:`center`,bottom:0,display:`flex`,justifyContent:`center`,left:0,position:`absolute`,right:0,top:0,userSelect:`none`},"& h1":{fontSize:`3em`,fontWeight:`bold`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{fontSize:`2.5em`}},"& button":{fontSize:`1.3em`,margin:`0.3em`,minWidth:`56px`},"& h1, & h2, & h3":{textAlign:`center`},"& .day-and-progress-container":{alignItems:`center`,display:`flex`,fontSize:`1.5em`,margin:`0.5em auto`,"& .MuiBox-root":{display:`inline-flex`,marginLeft:`0.5em`,position:`relative`}},"& .inventory-info":{fontSize:`1em`},"& .MuiSelect-select":{padding:`1em`},"& .chat-placeholder":{fontSize:`0.75em`,padding:`0.5em 0`,textAlign:`center`}},children:[(0,import_jsx_runtime.jsx)(`h1`,{children:`Farmhand`}),(0,import_jsx_runtime.jsxs)(`p`,{className:`version`,children:[`v`,`1.19.29`]}),(0,import_jsx_runtime.jsx)(FarmNameDisplay,{farmName:a,handleFarmNameUpdate:f}),(0,import_jsx_runtime.jsx)(Consumer$13,{}),(0,import_jsx_runtime.jsx)(OnlineControls,{activePlayers:e,handleActivePlayerButtonClick:o,handleChatRoomOpenStateChange:s,handleOnlineToggleChange:m,handleRoomChange:h,isChatAvailable:x,isOnline:C,room:T}),b>-1&&(0,import_jsx_runtime.jsxs)(H3,{className:(0,import_classnames.default)(`inventory-info`,{"is-inventory-full":!doesInventorySpaceRemain({inventory:y,inventoryLimit:b})}),sx:{color:doesInventorySpaceRemain({inventory:y,inventoryLimit:b})?void 0:colors.error},children:[`Inventory: `,integerString(inventorySpaceConsumed(y)),` /`,` `,integerString(b)]}),(0,import_jsx_runtime.jsx)(Select,{variant:`standard`,className:`view-select`,onChange:v,value:E,children:D.map((e,t)=>(0,import_jsx_runtime.jsxs)(MenuItem,{key:e,value:e,children:[t+1,`: `,STAGE_TITLE_MAP[e]]}))}),(0,import_jsx_runtime.jsx)(`div`,{className:`button-array`,children:[{dialogView:FARMERS_LOG,Icon:import_Book.default},{dialogView:PRICE_EVENTS,Icon:import_FlashOn.default},{dialogView:STATS,Icon:import_Assessment.default},{dialogView:ACHIEVEMENTS,Icon:import_Beenhere.default},{dialogView:ACCOUNTING,Icon:import_AccountBalance.default},{dialogView:SETTINGS,Icon:import_Settings.default}].map(({dialogView:e,Icon:t})=>(0,import_jsx_runtime.jsx)(Tooltip,{arrow:!0,key:e,placement:`top`,title:dialogTriggerTextMap[e],children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":dialogTriggerTextMap[e],color:`primary`,onClick:()=>l(e),children:(0,import_jsx_runtime.jsx)(t,{})})}))}),(0,import_jsx_runtime.jsxs)(Dialog,{className:(0,import_classnames.default)(`Farmhand`,{"block-input":t}),fullWidth:!0,maxWidth:`xs`,onClose:u,open:S,TransitionProps:{onExited:d},"aria-describedby":k,"aria-labelledby":j,children:[(0,import_jsx_runtime.jsx)(DialogTitle,{id:k,children:n?dialogTitleMap[n]:``}),(0,import_jsx_runtime.jsx)(DialogContent,{id:j,children:n?dialogContentMap[n]:null}),(0,import_jsx_runtime.jsx)(DialogActions,{children:(0,import_jsx_runtime.jsx)(Button,{onClick:u,color:`primary`,autoFocus:!0,children:`Close`})})]})]});Navigation.propTypes={activePlayers:import_prop_types$1.number,blockInput:import_prop_types$1.bool.isRequired,farmName:import_prop_types$1.string.isRequired,handleClickDialogViewButton:import_prop_types$1.func.isRequired,handleChatRoomOpenStateChange:import_prop_types$1.func.isRequired,handleActivePlayerButtonClick:import_prop_types$1.func.isRequired,handleCloseDialogView:import_prop_types$1.func.isRequired,handleDialogViewExited:import_prop_types$1.func.isRequired,handleFarmNameUpdate:import_prop_types$1.func.isRequired,handleOnlineToggleChange:import_prop_types$1.func.isRequired,handleRoomChange:import_prop_types$1.func.isRequired,handleViewChange:import_prop_types$1.func.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isChatAvailable:import_prop_types$1.bool.isRequired,isDialogViewOpen:import_prop_types$1.bool.isRequired,isOnline:import_prop_types$1.bool.isRequired,stageFocus:import_prop_types$1.string.isRequired,viewList:import_prop_types$1.array.isRequired};function Consumer$12(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Navigation,{...t,...n,...e})})}var snackbarProviderContentCallback=(e,{message:t,onClick:n,severity:a})=>(0,import_jsx_runtime.jsx)(Alert,{elevation:3,key:e,onClick:n,severity:a,style:{cursor:n?`pointer`:`default`},children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{source:t})}),NotificationSystem=({closeSnackbar:e,enqueueSnackbar:t,latestNotification:n})=>((0,import_react$24.useEffect)(()=>{n&&t(n,{autoHideDuration:NOTIFICATION_DURATION,onClose:()=>e(),preventDuplicate:!0})},[e,t,n]),null);NotificationSystem.propTypes={latestNotification:(0,import_prop_types$1.shape)({message:import_prop_types$1.string.isRequired,onClick:import_prop_types$1.func,severity:import_prop_types$1.string.isRequired})};var NotificationSystem_default=withSnackbar(function(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(NotificationSystem,{...t,...n,...e})})}),require_ZoomIn=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,`__esModule`,{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)([(0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14`},`0`),(0,a.jsx)(`path`,{d:`M12 10h-2v2H9v-2H7V9h2V7h1v2h2z`},`1`)],`ZoomIn`)})),require_ZoomOut=__commonJSMin((e=>{var t=require_interopRequireDefault();Object.defineProperty(e,`__esModule`,{value:!0}),e.default=void 0;var n=t(require_createSvgIcon()),a=require_jsx_runtime();e.default=(0,n.default)((0,a.jsx)(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14M7 9h5v1H7z`}),`ZoomOut`)}));function areArraysEqual(e,t,n=(e,t)=>e===t){return e.length===t.length&&e.every((e,a)=>n(e,t[a]))}init_extends(),init_esm(),init_extractEventHandlers();var INTENTIONAL_DRAG_COUNT_THRESHOLD=2;function asc(e,t){return e-t}function findClosest(e,t){var n;let{index:a}=e.reduce((e,n,a)=>{let o=Math.abs(t-n);return e===null||o<e.distance||o===e.distance?{distance:o,index:a}:e},null)??{};return a}function trackFinger(e,t){if(t.current!==void 0&&e.changedTouches){let n=e;for(let e=0;e<n.changedTouches.length;e+=1){let a=n.changedTouches[e];if(a.identifier===t.current)return{x:a.clientX,y:a.clientY}}return!1}return{x:e.clientX,y:e.clientY}}function valueToPercent(e,t,n){return(e-t)*100/(n-t)}function percentToValue(e,t,n){return(n-t)*e+t}function getDecimalPrecision(e){if(Math.abs(e)<1){let t=e.toExponential().split(`e-`),n=t[0].split(`.`)[1];return(n?n.length:0)+parseInt(t[1],10)}let t=e.toString().split(`.`)[1];return t?t.length:0}function roundValueToStep(e,t,n){let a=Math.round((e-n)/t)*t+n;return Number(a.toFixed(getDecimalPrecision(t)))}function setValueIndex({values:e,newValue:t,index:n}){let a=e.slice();return a[n]=t,a.sort(asc)}function focusThumb({sliderRef:e,activeIndex:t,setActive:n}){var a,o;let s=ownerDocument(e.current);if(!((a=e.current)!=null&&a.contains(s.activeElement))||Number(s==null||(o=s.activeElement)==null?void 0:o.getAttribute(`data-index`))!==t){var l;(l=e.current)==null||l.querySelector(`[type="range"][data-index="${t}"]`).focus()}n&&n(t)}function areValuesEqual(e,t){return typeof e==`number`&&typeof t==`number`?e===t:typeof e==`object`&&typeof t==`object`?areArraysEqual(e,t):!1}var axisProps={horizontal:{offset:e=>({left:`${e}%`}),leap:e=>({width:`${e}%`})},"horizontal-reverse":{offset:e=>({right:`${e}%`}),leap:e=>({width:`${e}%`})},vertical:{offset:e=>({bottom:`${e}%`}),leap:e=>({height:`${e}%`})}},Identity$1=e=>e,cachedSupportsTouchActionNone;function doesSupportTouchActionNone(){return cachedSupportsTouchActionNone===void 0&&(cachedSupportsTouchActionNone=typeof CSS<`u`&&typeof CSS.supports==`function`?CSS.supports(`touch-action`,`none`):!0),cachedSupportsTouchActionNone}function useSlider(e){let{"aria-labelledby":t,defaultValue:n,disabled:a=!1,disableSwap:o=!1,isRtl:s=!1,marks:l=!1,max:u=100,min:d=0,name:f,onChange:m,onChangeCommitted:h,orientation:v=`horizontal`,rootRef:y,scale:b=Identity$1,step:x=1,shiftStep:S=10,tabIndex:C,value:T}=e,E=import_react$24.useRef(void 0),[D,O]=import_react$24.useState(-1),[k,j]=import_react$24.useState(-1),[M,N]=import_react$24.useState(!1),F=import_react$24.useRef(0),[I,L]=useControlled({controlled:T,default:n??d,name:`Slider`}),R=m&&((e,t,n)=>{let a=e.nativeEvent||e,o=new a.constructor(a.type,a);Object.defineProperty(o,`target`,{writable:!0,value:{value:t,name:f}}),m(o,t,n)}),z=Array.isArray(I),B=z?I.slice().sort(asc):[I];B=B.map(e=>e==null?d:clamp$1(e,d,u));let V=l===!0&&x!==null?[...Array(Math.floor((u-d)/x)+1)].map((e,t)=>({value:d+x*t})):l||[],H=V.map(e=>e.value),{isFocusVisibleRef:U,onBlur:W,onFocus:G,ref:ee}=useIsFocusVisible(),[K,q]=import_react$24.useState(-1),J=import_react$24.useRef(null),te=useForkRef(y,useForkRef(ee,J)),ne=e=>t=>{var n;let a=Number(t.currentTarget.getAttribute(`data-index`));G(t),U.current===!0&&q(a),j(a),e==null||(n=e.onFocus)==null||n.call(e,t)},re=e=>t=>{var n;W(t),U.current===!1&&q(-1),j(-1),e==null||(n=e.onBlur)==null||n.call(e,t)},Y=(e,t)=>{let n=Number(e.currentTarget.getAttribute(`data-index`)),a=B[n],s=H.indexOf(a),l=t;if(V&&x==null){let e=H[H.length-1];l=l>e?e:l<H[0]?H[0]:l<a?H[s-1]:H[s+1]}if(l=clamp$1(l,d,u),z){o&&(l=clamp$1(l,B[n-1]||-1/0,B[n+1]||1/0));let e=l;l=setValueIndex({values:B,newValue:l,index:n});let t=n;o||(t=l.indexOf(e)),focusThumb({sliderRef:J,activeIndex:t})}L(l),q(n),R&&!areValuesEqual(l,I)&&R(e,l,n),h&&h(e,l)},ie=e=>t=>{var n;if(x!==null){let e=Number(t.currentTarget.getAttribute(`data-index`)),n=B[e],a=null;(t.key===`ArrowLeft`||t.key===`ArrowDown`)&&t.shiftKey||t.key===`PageDown`?a=Math.max(n-S,d):((t.key===`ArrowRight`||t.key===`ArrowUp`)&&t.shiftKey||t.key===`PageUp`)&&(a=Math.min(n+S,u)),a!==null&&(Y(t,a),t.preventDefault())}e==null||(n=e.onKeyDown)==null||n.call(e,t)};useEnhancedEffect$1(()=>{if(a&&J.current.contains(document.activeElement)){var e;(e=document.activeElement)==null||e.blur()}},[a]),a&&D!==-1&&O(-1),a&&K!==-1&&q(-1);let ae=e=>t=>{var n;(n=e.onChange)==null||n.call(e,t),Y(t,t.target.valueAsNumber)},oe=import_react$24.useRef(void 0),se=v;s&&v===`horizontal`&&(se+=`-reverse`);let ce=({finger:e,move:t=!1})=>{let{current:n}=J,{width:a,height:s,bottom:l,left:f}=n.getBoundingClientRect(),m;m=se.indexOf(`vertical`)===0?(l-e.y)/s:(e.x-f)/a,se.indexOf(`-reverse`)!==-1&&(m=1-m);let h;h=percentToValue(m,d,u),h=x?roundValueToStep(h,x,d):H[findClosest(H,h)],h=clamp$1(h,d,u);let v=0;if(z){v=t?oe.current:findClosest(B,h),o&&(h=clamp$1(h,B[v-1]||-1/0,B[v+1]||1/0));let e=h;h=setValueIndex({values:B,newValue:h,index:v}),o&&t||(v=h.indexOf(e),oe.current=v)}return{newValue:h,activeIndex:v}},le=useEventCallback$1(e=>{let t=trackFinger(e,E);if(!t)return;if(F.current+=1,e.type===`mousemove`&&e.buttons===0){ue(e);return}let{newValue:n,activeIndex:a}=ce({finger:t,move:!0});focusThumb({sliderRef:J,activeIndex:a,setActive:O}),L(n),!M&&F.current>INTENTIONAL_DRAG_COUNT_THRESHOLD&&N(!0),R&&!areValuesEqual(n,I)&&R(e,n,a)}),ue=useEventCallback$1(e=>{let t=trackFinger(e,E);if(N(!1),!t)return;let{newValue:n}=ce({finger:t,move:!0});O(-1),e.type===`touchend`&&j(-1),h&&h(e,n),E.current=void 0,X()}),de=useEventCallback$1(e=>{if(a)return;doesSupportTouchActionNone()||e.preventDefault();let t=e.changedTouches[0];t!=null&&(E.current=t.identifier);let n=trackFinger(e,E);if(n!==!1){let{newValue:t,activeIndex:a}=ce({finger:n});focusThumb({sliderRef:J,activeIndex:a,setActive:O}),L(t),R&&!areValuesEqual(t,I)&&R(e,t,a)}F.current=0;let o=ownerDocument(J.current);o.addEventListener(`touchmove`,le,{passive:!0}),o.addEventListener(`touchend`,ue,{passive:!0})}),X=import_react$24.useCallback(()=>{let e=ownerDocument(J.current);e.removeEventListener(`mousemove`,le),e.removeEventListener(`mouseup`,ue),e.removeEventListener(`touchmove`,le),e.removeEventListener(`touchend`,ue)},[ue,le]);import_react$24.useEffect(()=>{let{current:e}=J;return e.addEventListener(`touchstart`,de,{passive:doesSupportTouchActionNone()}),()=>{e.removeEventListener(`touchstart`,de),X()}},[X,de]),import_react$24.useEffect(()=>{a&&X()},[a,X]);let fe=e=>t=>{var n;if((n=e.onMouseDown)==null||n.call(e,t),a||t.defaultPrevented||t.button!==0)return;t.preventDefault();let o=trackFinger(t,E);if(o!==!1){let{newValue:e,activeIndex:n}=ce({finger:o});focusThumb({sliderRef:J,activeIndex:n,setActive:O}),L(e),R&&!areValuesEqual(e,I)&&R(t,e,n)}F.current=0;let s=ownerDocument(J.current);s.addEventListener(`mousemove`,le,{passive:!0}),s.addEventListener(`mouseup`,ue)},pe=valueToPercent(z?B[0]:d,d,u),me=valueToPercent(B[B.length-1],d,u)-pe,he=(e={})=>{let t=extractEventHandlers(e),n=_extends$3({},t,{onMouseDown:fe(t||{})});return _extends$3({},e,{ref:te},n)},ge=e=>t=>{var n;(n=e.onMouseOver)==null||n.call(e,t),j(Number(t.currentTarget.getAttribute(`data-index`)))},Z=e=>t=>{var n;(n=e.onMouseLeave)==null||n.call(e,t),j(-1)};return{active:D,axis:se,axisProps,dragging:M,focusedThumbIndex:K,getHiddenInputProps:(n={})=>{var o;let l=extractEventHandlers(n),m=_extends$3({},l,{onChange:ae(l||{}),onFocus:ne(l||{}),onBlur:re(l||{}),onKeyDown:ie(l||{})});return _extends$3({tabIndex:C,"aria-labelledby":t,"aria-orientation":v,"aria-valuemax":b(u),"aria-valuemin":b(d),name:f,type:`range`,min:e.min,max:e.max,step:e.step===null&&e.marks?`any`:e.step??void 0,disabled:a},n,m,{style:_extends$3({},visuallyHidden,{direction:s?`rtl`:`ltr`,width:`100%`,height:`100%`})})},getRootProps:he,getThumbProps:(e={})=>{let t=extractEventHandlers(e);return _extends$3({},e,t,{onMouseOver:ge(t||{}),onMouseLeave:Z(t||{})})},marks:V,open:k,range:z,rootRef:te,trackLeap:me,trackOffset:pe,values:B,getThumbStyle:e=>({pointerEvents:D!==-1&&D!==e?`none`:void 0})}}init_isHostComponent();var shouldSpreadAdditionalProps=e=>!e||!isHostComponent(e);init_generateUtilityClasses(),init_generateUtilityClass();function getSliderUtilityClass(e){return generateUtilityClass(`MuiSlider`,e)}var 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`.split(`.`));init_clsx();var useValueLabelClasses=e=>{let{open:t}=e;return{offset:clsx$1(t&&sliderClasses.valueLabelOpen),circle:sliderClasses.valueLabelCircle,label:sliderClasses.valueLabelLabel}};function SliderValueLabel$1(e){let{children:t,className:n,value:a}=e,o=useValueLabelClasses(e);return t?import_react$24.cloneElement(t,{className:clsx$1(t.props.className)},(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[t.props.children,(0,import_jsx_runtime.jsx)(`span`,{className:clsx$1(o.offset,n),"aria-hidden":!0,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.circle,children:(0,import_jsx_runtime.jsx)(`span`,{className:o.label,children:a})})})]})):null}init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_composeClasses(),init_useSlotProps(),init_isHostComponent(),init_DefaultPropsProvider(),init_slotShouldForwardProp(),init_capitalize();var _excluded$1=`aria-label.aria-valuetext.aria-labelledby.component.components.componentsProps.color.classes.className.disableSwap.disabled.getAriaLabel.getAriaValueText.marks.max.min.name.onChange.onChangeCommitted.orientation.shiftStep.size.step.scale.slotProps.slots.tabIndex.track.value.valueLabelDisplay.valueLabelFormat`.split(`.`);function Identity(e){return e}var SliderRoot=styled$1(`span`,{name:`MuiSlider`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.root,t[`color${capitalize_default(n.color)}`],n.size!==`medium`&&t[`size${capitalize_default(n.size)}`],n.marked&&t.marked,n.orientation===`vertical`&&t.vertical,n.track===`inverted`&&t.trackInverted,n.track===!1&&t.trackFalse]}})(({theme:e})=>{var t;return{borderRadius:12,boxSizing:`content-box`,display:`inline-block`,position:`relative`,cursor:`pointer`,touchAction:`none`,WebkitTapHighlightColor:`transparent`,"@media print":{colorAdjust:`exact`},[`&.${sliderClasses.disabled}`]:{pointerEvents:`none`,cursor:`default`,color:(e.vars||e).palette.grey[400]},[`&.${sliderClasses.dragging}`]:{[`& .${sliderClasses.thumb}, & .${sliderClasses.track}`]:{transition:`none`}},variants:[...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{color:(e.vars||e).palette[t].main}})),{props:{orientation:`horizontal`},style:{height:4,width:`100%`,padding:`13px 0`,"@media (pointer: coarse)":{padding:`20px 0`}}},{props:{orientation:`horizontal`,size:`small`},style:{height:2}},{props:{orientation:`horizontal`,marked:!0},style:{marginBottom:20}},{props:{orientation:`vertical`},style:{height:`100%`,width:4,padding:`0 13px`,"@media (pointer: coarse)":{padding:`0 20px`}}},{props:{orientation:`vertical`,size:`small`},style:{width:2}},{props:{orientation:`vertical`,marked:!0},style:{marginRight:44}}]}}),SliderRail=styled$1(`span`,{name:`MuiSlider`,slot:`Rail`,overridesResolver:(e,t)=>t.rail})({display:`block`,position:`absolute`,borderRadius:`inherit`,backgroundColor:`currentColor`,opacity:.38,variants:[{props:{orientation:`horizontal`},style:{width:`100%`,height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{height:`100%`,width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:`inverted`},style:{opacity:1}}]}),SliderTrack=styled$1(`span`,{name:`MuiSlider`,slot:`Track`,overridesResolver:(e,t)=>t.track})(({theme:e})=>{var t;return{display:`block`,position:`absolute`,borderRadius:`inherit`,border:`1px solid currentColor`,backgroundColor:`currentColor`,transition:e.transitions.create([`left`,`width`,`bottom`,`height`],{duration:e.transitions.duration.shortest}),variants:[{props:{size:`small`},style:{border:`none`}},{props:{orientation:`horizontal`},style:{height:`inherit`,top:`50%`,transform:`translateY(-50%)`}},{props:{orientation:`vertical`},style:{width:`inherit`,left:`50%`,transform:`translateX(-50%)`}},{props:{track:!1},style:{display:`none`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t,track:`inverted`},style:_extends$3({},e.vars?{backgroundColor:e.vars.palette.Slider[`${t}Track`],borderColor:e.vars.palette.Slider[`${t}Track`]}:_extends$3({backgroundColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62),borderColor:(0,import_colorManipulator.lighten)(e.palette[t].main,.62)},e.applyStyles(`dark`,{backgroundColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)}),e.applyStyles(`dark`,{borderColor:(0,import_colorManipulator.darken)(e.palette[t].main,.5)})))}))]}}),SliderThumb=styled$1(`span`,{name:`MuiSlider`,slot:`Thumb`,overridesResolver:(e,t)=>{let{ownerState:n}=e;return[t.thumb,t[`thumbColor${capitalize_default(n.color)}`],n.size!==`medium`&&t[`thumbSize${capitalize_default(n.size)}`]]}})(({theme:e})=>{var t;return{position:`absolute`,width:20,height:20,boxSizing:`border-box`,borderRadius:`50%`,outline:0,backgroundColor:`currentColor`,display:`flex`,alignItems:`center`,justifyContent:`center`,transition:e.transitions.create([`box-shadow`,`left`,`bottom`],{duration:e.transitions.duration.shortest}),"&::before":{position:`absolute`,content:`""`,borderRadius:`inherit`,width:`100%`,height:`100%`,boxShadow:(e.vars||e).shadows[2]},"&::after":{position:`absolute`,content:`""`,borderRadius:`50%`,width:42,height:42,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`},[`&.${sliderClasses.disabled}`]:{"&:hover":{boxShadow:`none`}},variants:[{props:{size:`small`},style:{width:12,height:12,"&::before":{boxShadow:`none`}}},{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-50%, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 50%)`}},...Object.keys((e.vars??e).palette).filter(t=>{var n;return(e.vars??e).palette[t].main}).map(t=>({props:{color:t},style:{[`&:hover, &.${sliderClasses.focusVisible}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 8px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 8px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`},{"@media (hover: none)":{boxShadow:`none`}}),[`&.${sliderClasses.active}`]:_extends$3({},e.vars?{boxShadow:`0px 0px 0px 14px rgba(${e.vars.palette[t].mainChannel} / 0.16)`}:{boxShadow:`0px 0px 0px 14px ${(0,import_colorManipulator.alpha)(e.palette[t].main,.16)}`})}}))]}}),SliderValueLabel=styled$1(SliderValueLabel$1,{name:`MuiSlider`,slot:`ValueLabel`,overridesResolver:(e,t)=>t.valueLabel})(({theme:e})=>_extends$3({zIndex:1,whiteSpace:`nowrap`},e.typography.body2,{fontWeight:500,transition:e.transitions.create([`transform`],{duration:e.transitions.duration.shortest}),position:`absolute`,backgroundColor:(e.vars||e).palette.grey[600],borderRadius:2,color:(e.vars||e).palette.common.white,display:`flex`,alignItems:`center`,justifyContent:`center`,padding:`0.25rem 0.75rem`,variants:[{props:{orientation:`horizontal`},style:{transform:`translateY(-100%) scale(0)`,top:`-10px`,transformOrigin:`bottom center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, 50%) rotate(45deg)`,backgroundColor:`inherit`,bottom:0,left:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-100%) scale(1)`}}},{props:{orientation:`vertical`},style:{transform:`translateY(-50%) scale(0)`,right:`30px`,top:`50%`,transformOrigin:`right center`,"&::before":{position:`absolute`,content:`""`,width:8,height:8,transform:`translate(-50%, -50%) rotate(45deg)`,backgroundColor:`inherit`,right:-8,top:`50%`},[`&.${sliderClasses.valueLabelOpen}`]:{transform:`translateY(-50%) scale(1)`}}},{props:{size:`small`},style:{fontSize:e.typography.pxToRem(12),padding:`0.25rem 0.5rem`}},{props:{orientation:`vertical`,size:`small`},style:{right:`20px`}}]})),SliderMark=styled$1(`span`,{name:`MuiSlider`,slot:`Mark`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markActive`,overridesResolver:(e,t)=>{let{markActive:n}=e;return[t.mark,n&&t.markActive]}})(({theme:e})=>({position:`absolute`,width:2,height:2,borderRadius:1,backgroundColor:`currentColor`,variants:[{props:{orientation:`horizontal`},style:{top:`50%`,transform:`translate(-1px, -50%)`}},{props:{orientation:`vertical`},style:{left:`50%`,transform:`translate(-50%, 1px)`}},{props:{markActive:!0},style:{backgroundColor:(e.vars||e).palette.background.paper,opacity:.8}}]})),SliderMarkLabel=styled$1(`span`,{name:`MuiSlider`,slot:`MarkLabel`,shouldForwardProp:e=>slotShouldForwardProp(e)&&e!==`markLabelActive`,overridesResolver:(e,t)=>t.markLabel})(({theme:e})=>_extends$3({},e.typography.body2,{color:(e.vars||e).palette.text.secondary,position:`absolute`,whiteSpace:`nowrap`,variants:[{props:{orientation:`horizontal`},style:{top:30,transform:`translateX(-50%)`,"@media (pointer: coarse)":{top:40}}},{props:{orientation:`vertical`},style:{left:36,transform:`translateY(50%)`,"@media (pointer: coarse)":{left:44}}},{props:{markLabelActive:!0},style:{color:(e.vars||e).palette.text.primary}}]})),useUtilityClasses$1=e=>{let{disabled:t,dragging:n,marked:a,orientation:o,track:s,classes:l,color:u,size:d}=e;return composeClasses({root:[`root`,t&&`disabled`,n&&`dragging`,a&&`marked`,o===`vertical`&&`vertical`,s===`inverted`&&`trackInverted`,s===!1&&`trackFalse`,u&&`color${capitalize_default(u)}`,d&&`size${capitalize_default(d)}`],rail:[`rail`],track:[`track`],mark:[`mark`],markActive:[`markActive`],markLabel:[`markLabel`],markLabelActive:[`markLabelActive`],valueLabel:[`valueLabel`],thumb:[`thumb`,t&&`disabled`,d&&`thumbSize${capitalize_default(d)}`,u&&`thumbColor${capitalize_default(u)}`],active:[`active`],disabled:[`disabled`],focusVisible:[`focusVisible`]},getSliderUtilityClass,l)},Forward=({children:e})=>e,Slider=import_react$24.forwardRef(function(e,t){var n,a,o,s,l,u,d,f,m,h,v,y,b,x,S,C,T,E,D,O,k,j,M,N;let F=useDefaultProps({props:e,name:`MuiSlider`}),I=useRtl(),{"aria-label":L,"aria-valuetext":R,"aria-labelledby":z,component:B=`span`,components:V={},componentsProps:H={},color:U=`primary`,classes:W,className:G,disableSwap:ee=!1,disabled:K=!1,getAriaLabel:q,getAriaValueText:J,marks:te=!1,max:ne=100,min:re=0,orientation:Y=`horizontal`,shiftStep:ie=10,size:ae=`medium`,step:oe=1,scale:se=Identity,slotProps:ce,slots:le,track:ue=`normal`,valueLabelDisplay:de=`off`,valueLabelFormat:X=Identity}=F,fe=_objectWithoutPropertiesLoose$3(F,_excluded$1),pe=_extends$3({},F,{isRtl:I,max:ne,min:re,classes:W,disabled:K,disableSwap:ee,orientation:Y,marks:te,color:U,size:ae,step:oe,shiftStep:ie,scale:se,track:ue,valueLabelDisplay:de,valueLabelFormat:X}),{axisProps:me,getRootProps:he,getHiddenInputProps:ge,getThumbProps:Z,open:_e,active:Q,axis:$,focusedThumbIndex:ve,range:ye,dragging:be,marks:xe,values:Se,trackOffset:Ce,trackLeap:we,getThumbStyle:Te}=useSlider(_extends$3({},pe,{rootRef:t}));pe.marked=xe.length>0&&xe.some(e=>e.label),pe.dragging=be,pe.focusedThumbIndex=ve;let Ee=useUtilityClasses$1(pe),De=le?.root??V.Root??SliderRoot,Oe=le?.rail??V.Rail??SliderRail,ke=le?.track??V.Track??SliderTrack,Ae=le?.thumb??V.Thumb??SliderThumb,je=le?.valueLabel??V.ValueLabel??SliderValueLabel,Me=le?.mark??V.Mark??SliderMark,Ne=le?.markLabel??V.MarkLabel??SliderMarkLabel,Pe=le?.input??V.Input??`input`,Fe=ce?.root??H.root,Ie=ce?.rail??H.rail,Le=ce?.track??H.track,Re=ce?.thumb??H.thumb,ze=ce?.valueLabel??H.valueLabel,Be=ce?.mark??H.mark,Ve=ce?.markLabel??H.markLabel,He=ce?.input??H.input,Ue=useSlotProps({elementType:De,getSlotProps:he,externalSlotProps:Fe,externalForwardedProps:fe,additionalProps:_extends$3({},shouldSpreadAdditionalProps(De)&&{as:B}),ownerState:_extends$3({},pe,Fe?.ownerState),className:[Ee.root,G]}),We=useSlotProps({elementType:Oe,externalSlotProps:Ie,ownerState:pe,className:Ee.rail}),Ge=useSlotProps({elementType:ke,externalSlotProps:Le,additionalProps:{style:_extends$3({},me[$].offset(Ce),me[$].leap(we))},ownerState:_extends$3({},pe,Le?.ownerState),className:Ee.track}),Ke=useSlotProps({elementType:Ae,getSlotProps:Z,externalSlotProps:Re,ownerState:_extends$3({},pe,Re?.ownerState),className:Ee.thumb}),qe=useSlotProps({elementType:je,externalSlotProps:ze,ownerState:_extends$3({},pe,ze?.ownerState),className:Ee.valueLabel}),Je=useSlotProps({elementType:Me,externalSlotProps:Be,ownerState:pe,className:Ee.mark}),Ye=useSlotProps({elementType:Ne,externalSlotProps:Ve,ownerState:pe,className:Ee.markLabel}),Xe=useSlotProps({elementType:Pe,getSlotProps:ge,externalSlotProps:He,ownerState:pe});return(0,import_jsx_runtime.jsxs)(De,_extends$3({},Ue,{children:[(0,import_jsx_runtime.jsx)(Oe,_extends$3({},We)),(0,import_jsx_runtime.jsx)(ke,_extends$3({},Ge)),xe.filter(e=>e.value>=re&&e.value<=ne).map((e,t)=>{let n=valueToPercent(e.value,re,ne),a=me[$].offset(n),o;return o=ue===!1?Se.indexOf(e.value)!==-1:ue===`normal`&&(ye?e.value>=Se[0]&&e.value<=Se[Se.length-1]:e.value<=Se[0])||ue===`inverted`&&(ye?e.value<=Se[0]||e.value>=Se[Se.length-1]:e.value>=Se[0]),(0,import_jsx_runtime.jsxs)(import_react$24.Fragment,{children:[(0,import_jsx_runtime.jsx)(Me,_extends$3({"data-index":t},Je,!isHostComponent(Me)&&{markActive:o},{style:_extends$3({},a,Je.style),className:clsx$1(Je.className,o&&Ee.markActive)})),e.label==null?null:(0,import_jsx_runtime.jsx)(Ne,_extends$3({"aria-hidden":!0,"data-index":t},Ye,!isHostComponent(Ne)&&{markLabelActive:o},{style:_extends$3({},a,Ye.style),className:clsx$1(Ee.markLabel,Ye.className,o&&Ee.markLabelActive),children:e.label}))]},t)}),Se.map((e,t)=>{let n=valueToPercent(e,re,ne),a=me[$].offset(n),o=de===`off`?Forward:je;return(0,import_jsx_runtime.jsx)(o,_extends$3({},!isHostComponent(o)&&{valueLabelFormat:X,valueLabelDisplay:de,value:typeof X==`function`?X(se(e),t):X,index:t,open:_e===t||Q===t||de===`on`,disabled:K},qe,{children:(0,import_jsx_runtime.jsx)(Ae,_extends$3({"data-index":t},Ke,{className:clsx$1(Ee.thumb,Ke.className,Q===t&&Ee.active,ve===t&&Ee.focusVisible),style:_extends$3({},a,Te(t),Ke.style),children:(0,import_jsx_runtime.jsx)(Pe,_extends$3({"data-index":t,"aria-label":q?q(t):L,"aria-valuenow":se(e),"aria-labelledby":z,"aria-valuetext":J?J(se(e),t):R,value:Se[t]},Xe))}))}),t)})]}))}),import_ZoomIn=__toESM(require_ZoomIn()),import_ZoomOut=__toESM(require_ZoomOut()),extendStatics$1=function(e,t){return extendStatics$1=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},extendStatics$1(e,t)};function __extends$1(e,t){extendStatics$1(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var __assign$1=function(){return __assign$1=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign$1.apply(this,arguments)};function __rest$1(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}var initialState={wrapperComponent:null,contentComponent:null,previousScale:1,scale:1,positionX:0,positionY:0,options:{disabled:!1,transformEnabled:!0,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,limitToWrapper:!1,centerContent:!0,wrapperClass:``,contentClass:``},wheel:{disabled:!1,step:5,wheelEnabled:!0,touchPadEnabled:!0,limitsOnWheel:!1},pan:{disabled:!1,panAnimationType:`linear`,lockAxisX:!1,lockAxisY:!1,velocity:!0,velocityEqualToMove:!0,velocitySensitivity:2,velocityActiveScale:1,velocityMinSpeed:1,velocityBaseTime:1600,velocityAnimationType:`easeOutQuart`,padding:!0,paddingSize:30,panReturnAnimationTime:400,panReturnAnimationType:`easeOut`,disableOnTarget:[]},pinch:{disabled:!1},zoomIn:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},zoomOut:{disabled:!1,step:20,animation:!0,animationType:`easeOut`,animationTime:200},doubleClick:{disabled:!1,step:20,mode:`zoomIn`,animation:!0,animationType:`easeOut`,animationTime:200},reset:{disabled:!1,animation:!0,animationType:`easeOut`,animationTime:200},scalePadding:{disabled:!1,size:.2,animationTime:200,animationType:`easeOut`}},roundNumber=function(e,t){return Number(e.toFixed(t))},checkIsNumber=function(e,t){return typeof e==`number`?e:t},boundLimiter=function(e,t,n,a){return roundNumber(a?e<t?t:e>n?n:e:e,2)},calculateBoundingArea=function(e,t,n,a,o,s,l){var u=e>t?n*(l?1:.5):0,d=a>o?s*(l?1:.5):0;return{minPositionX:e-t-u,maxPositionX:u,minPositionY:a-o-d,maxPositionY:d}},getDistance=function(e,t){return Math.sqrt((e.pageX-t.pageX)**2+(e.pageY-t.pageY)**2)},deleteUndefinedProps=function(e){var t=__assign$1({},e);return Object.keys(t).forEach(function(e){return t[e]===void 0&&delete t[e]}),t},handleCallback=function(e,t){e&&typeof e==`function`&&e(t)},handleWheelStop=function(e,t,n){var a=n.scale,o=n.options,s=o.maxScale,l=o.minScale;return e?a<s||a>l||Math.sign(e.deltaY)!==Math.sign(t.deltaY)||e.deltaY>0&&e.deltaY<t.deltaY||e.deltaY<0&&e.deltaY>t.deltaY||Math.sign(e.deltaY)!==Math.sign(t.deltaY):!1},mergeProps=function(e,t){return Object.keys(e).reduce(function(n,a){return typeof t[a]==`object`&&t[a]!==null?n[a]=__assign$1(__assign$1({},e[a]),t[a]):n[a]=t[a]===void 0?e[a]:t[a],n},{})};function getWindowScaleY(e){return e?window.innerHeight/e.offsetHeight:0}function getWindowScaleX(e){return e?window.innerWidth/e.offsetWidth:0}var easeOut=function(e){return-Math.cos(e*Math.PI)/2+.5},linear=function(e){return e},easeInQuad=function(e){return e*e},easeOutQuad=function(e){return e*(2-e)},easeInOutQuad=function(e){return e<.5?2*e*e:-1+(4-2*e)*e},easeInCubic=function(e){return e*e*e},easeOutCubic=function(e){return--e*e*e+1},easeInOutCubic=function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart=function(e){return e*e*e*e},easeOutQuart=function(e){return 1- --e*e*e*e},easeInOutQuart=function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint=function(e){return e*e*e*e*e},easeOutQuint=function(e){return 1+--e*e*e*e*e},easeInOutQuint=function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e},availableAnimations={easeOut,linear,easeInQuad,easeOutQuad,easeInOutQuad,easeInCubic,easeOutCubic,easeInOutCubic,easeInQuart,easeOutQuart,easeInOutQuart,easeInQuint,easeOutQuint,easeInOutQuint};function handleDisableAnimation(){this.mounted&&(this.animation&&cancelAnimationFrame(this.animation),this.animate=!1,this.animation=!1,this.velocity=!1)}function animate(e,t,n){var a=this;if(this.mounted){var o=new Date().getTime(),s=1;handleDisableAnimation.call(this),this.animation=function(){if(!(!a.animation||!a.mounted)){var l=new Date().getTime()-o,u=l/t,d=availableAnimations[e],f=d(u);l>=t?(n(s),a.animation=null):(n(f),requestAnimationFrame(a.animation))}},requestAnimationFrame(this.animation)}}function animateComponent(e){var t=this,n=e.targetState,a=e.speed,o=e.type,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=n.scale-l,m=n.positionX-u,h=n.positionY-d;a===0?(this.stateProvider.previousScale=this.stateProvider.scale,this.stateProvider.scale=n.scale,this.stateProvider.positionX=n.positionX,this.stateProvider.positionY=n.positionY,this.applyTransformation()):animate.call(this,o,a,function(e){t.stateProvider.previousScale=t.stateProvider.scale,t.stateProvider.scale=l+f*e,t.stateProvider.positionX=u+m*e,t.stateProvider.positionY=d+h*e,t.applyTransformation()})}function checkZoomBounds(e,t,n,a,o){var s=t-(o?a:0);return!isNaN(n)&&e>=n?n:!isNaN(t)&&e<=s?s:e}function checkPositionBounds(e,t,n,a,o,s){var l=n.minPositionX,u=n.minPositionY,d=n.maxPositionX,f=n.maxPositionY,m=s?o*s.offsetWidth/100:0,h=s?o*s.offsetHeight/100:0;return{x:boundLimiter(e,l-m,d+m,a),y:boundLimiter(t,u-h,f+h,a)}}function getDelta(e,t){return checkIsNumber(t,e?e.deltaY<0?1:-1:0)}function wheelMousePosition(e,t,n){var a=t.getBoundingClientRect(),o=(e.clientX-a.left)/n,s=(e.clientY-a.top)/n;return(isNaN(o)||isNaN(s))&&console.error(`No mouse or touch offset found`),{mouseX:o,mouseY:s}}function getComponentsSizes(e,t,n){var a=e.offsetWidth,o=e.offsetHeight,s=t.offsetWidth,l=t.offsetHeight,u=s*n,d=l*n;return{wrapperWidth:a,wrapperHeight:o,newContentWidth:u,newDiffWidth:a-u,newContentHeight:d,newDiffHeight:o-d}}function handleCalculatePositions(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.options.transformEnabled,m=n-l;return typeof e!=`number`||typeof t!=`number`?console.error(`Mouse X and Y position were not provided!`):f?checkPositionBounds(u-e*m,d-t*m,a,o,0,null):{newPositionX:u,newPositionY:d}}function getClientPosition(e){var t=e.touches;return t&&t.length===1?{clientX:t[0].clientX,clientY:t[0].clientY}:t?null:{clientX:e.clientX,clientY:e.clientY}}function handlePanning(e){var t=this.stateProvider,n=t.scale,a=t.positionX,o=t.positionY,s=t.options,l=s.limitToBounds,u=s.minScale,d=t.pan,f=d.lockAxisX,m=d.lockAxisY,h=d.padding,v=d.paddingSize,y=t.wrapperComponent;if(this.startCoords){var b=this.startCoords,x=b.x,S=b.y,C=getClientPosition(e);if(!C)return console.error(`Cannot find mouse client positions`);var T=C.clientX,E=C.clientY,D=T-x,O=E-S,k=f?a:D,j=m?o:O,M=h&&n>=u?v:0;if(!(k===a&&j===o)){var N=checkPositionBounds(k,j,this.bounds,l,M,y);handlePaddingAnimation.call(this,N.x,N.y)}}}function handlePanningAnimation(){var e=this.stateProvider,t=e.scale,n=e.options.minScale,a=e.pan,o=a.disabled,s=a.padding,l=a.panReturnAnimationTime,u=a.panReturnAnimationType;if(!(o||t<n||!s)){var d=handlePanToBounds.call(this);animateComponent.call(this,{targetState:d,speed:l,type:u})}}function handlePanToBounds(){var e=this.stateProvider,t=e.positionX,n=e.positionY,a=e.scale,o=e.options,s=o.disabled,l=o.limitToBounds,u=o.limitToWrapper,d=this.state.wrapperComponent;if(!s){var f=this.bounds,m=f.maxPositionX,h=f.minPositionX,v=f.maxPositionY,y=f.minPositionY,b=t>m||t<h,x=n>v||n<y,S=t>m?d.offsetWidth:this.stateProvider.minPositionX||0,C=n>v?d.offsetHeight:this.stateProvider.minPositionY||0,T=S,E=C,D=handleCalculatePositions.call(this,T,E,a,this.bounds,l||u),O=D.x,k=D.y;return{scale:a,positionX:b?O:t,positionY:x?k:n}}}function handlePaddingAnimation(e,t){this.stateProvider.pan.padding&&(this.stateProvider.positionX=e,this.stateProvider.positionY=t,this.applyTransformation())}function handleCalculateZoom(e,t,n,a,o){var s=this.stateProvider,l=s.scale,u=s.options,d=u.maxScale,f=u.minScale,m=s.scalePadding,h=m.size,v=m.disabled,y=s.wrapperComponent,b=null;if(o){var x=window.innerWidth*1e-4,S=e<0?30:20;b=l+(t-t*x)*e*(l/S)}else{var C=2-window.innerWidth/y.offsetWidth,x=Math.max(.2,Math.min(.99,C)),S=20;b=l+t*e*((l-l*x)/S)}if(a)return b;var T=n?!1:!v;return checkZoomBounds(roundNumber(b,3),f,d,h,T)}function handleCalculateBounds(e,t){var n=this.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=getComponentsSizes(a,o,e),l=s.wrapperWidth,u=s.wrapperHeight,d=s.newContentWidth,f=s.newDiffWidth,m=s.newContentHeight,h=s.newDiffHeight,v=calculateBoundingArea(l,d,f,u,m,h,t);return this.bounds=v,v}function handleWheelZoom(e){var t=this.stateProvider,n=t.scale,a=t.contentComponent,o=t.options.limitToBounds,s=t.scalePadding,l=s.size,u=s.disabled,d=t.wheel,f=d.step,m=d.limitsOnWheel;e.preventDefault(),e.stopPropagation();var h=getDelta(e,null),v=handleCalculateZoom.call(this,h,f,!e.ctrlKey);if(n!==v){var y=handleCalculateBounds.call(this,v,!m),b=wheelMousePosition(e,a,n),x=b.mouseX,S=b.mouseY,C=o&&(u||l===0||m),T=handleCalculatePositions.call(this,x,S,v,y,C),E=T.x,D=T.y;this.bounds=y,this.stateProvider.previousScale=n,this.stateProvider.scale=v,this.stateProvider.positionX=E,this.stateProvider.positionY=D,this.applyTransformation()}}function handleZoomToPoint(e,t,n,a,o){var s=this.stateProvider,l=s.contentComponent,u=s.options,d=u.disabled,f=u.minScale,m=u.maxScale,h=u.limitToBounds,v=u.limitToWrapper;if(!(d||e)){var y=checkZoomBounds(roundNumber(t,2),f,m,null,null),b=handleCalculateBounds.call(this,y,v),x=n,S=a;if(o){var C=wheelMousePosition(o,l,t);x=C.mouseX,S=C.mouseY}var T=handleCalculatePositions.call(this,x,S,y,b,h);return{scale:y,positionX:T.x,positionY:T.y}}}function handlePaddingAnimation$1(){var e=this.stateProvider,t=e.scale,n=e.wrapperComponent,a=e.options,o=a.minScale,s=a.limitToBounds,l=e.scalePadding,u=l.disabled,d=l.animationTime,f=l.animationType,m=u||t>=o;if((t>=1||s)&&handlePanningAnimation.call(this),!m){var h=n.offsetWidth/2,v=n.offsetHeight/2,y=handleZoomToPoint.call(this,!1,o,h,v,null);animateComponent.call(this,{targetState:y,speed:d,type:f})}}function handleDoubleClick(e){e.preventDefault(),e.stopPropagation();var t=this.stateProvider,n=t.contentComponent,a=t.scale,o=t.doubleClick,s=o.disabled,l=o.mode,u=o.step,d=o.animationTime,f=o.animationType;if(l===`reset`)return resetTransformations.call(this,e,d);var m=l===`zoomOut`?-1:1,h=handleCalculateZoom.call(this,m,u,void 0,void 0,!0),v=wheelMousePosition(e,n,a),y=v.mouseX,b=v.mouseY,x=handleZoomToPoint.call(this,s,h,y,b);if(x.scale!==a){var S=getButtonAnimationTime(handleCalculateZoom.call(this,m,u,!0,void 0,!0),h,d);animateComponent.call(this,{targetState:x,speed:S,type:f})}}function handleZoomControls(e,t){var n=this.stateProvider,a=n.scale,o=n.positionX,s=n.positionY,l=n.wrapperComponent,u=n.zoomIn,d=n.zoomOut,f=l.offsetWidth,m=l.offsetHeight,h=(f/2-o)/a,v=(m/2-s)/a,y=handleCalculateZoom.call(this,e,t,void 0,void 0,!0),b=y>a,x=b?u.animationTime:d.animationTime,S=b?u.animationType:d.animationType,C=b?u.disabled:d.disabled,T=handleZoomToPoint.call(this,C,y,h,v);if(T.scale!==a){var E=getButtonAnimationTime(handleCalculateZoom.call(this,e,t,!0,void 0,!0),y,x);animateComponent.call(this,{targetState:T,speed:E,type:S})}}function resetTransformations(e){var t=this.props.defaultValues,n=t.defaultScale,a=t.defaultPositionX,o=t.defaultPositionY,s=this.stateProvider,l=s.scale,u=s.positionX,d=s.positionY,f=s.reset,m=s.options,h=m.disabled,v=m.limitToBounds,y=m.centerContent,b=m.limitToWrapper;if(!(h||f.disabled)&&!(l===n&&u===a&&d===o)){var x=typeof e==`number`?e:f.animationTime,S=checkIsNumber(n,initialState.scale),C=checkIsNumber(a,initialState.positionX),T=checkIsNumber(o,initialState.positionY);if(v&&!b||y){var E=handleCalculateBounds.call(this,S,b);C=E.minPositionX,T=E.minPositionY}var D={scale:S,positionX:C,positionY:T};animateComponent.call(this,{targetState:D,speed:x,type:f.animationType})}}function getButtonAnimationTime(e,t,n){return t/e*n}function round(e,t){var n=10**t;return Math.round(e*n)/n}function getCurrentDistance(e){return getDistance(e.touches[0],e.touches[1])}function checkIfInfinite(e){return e===1/0||e===-1/0}function calculatePinchZoom(e,t){var n=this.stateProvider,a=n.options,o=a.minScale,s=a.maxScale,l=n.scalePadding,u=l.size,d=l.disabled;if(typeof t!=`number`||typeof e!=`number`)return console.error(`Pinch touches distance was not provided`);if(!(e<0))return checkZoomBounds(roundNumber(e/t*this.pinchStartScale,2),o,s,u,!d)}function calculateMidpoint(e,t,n){var a=n.getBoundingClientRect(),o=e.touches,s=round(o[0].clientX-a.left,5),l=round(o[0].clientY-a.top,5),u=round(o[1].clientX-a.left,5),d=round(o[1].clientY-a.top,5);return{mouseX:(s+u)/2/t,mouseY:(l+d)/2/t}}function handleZoomPinch(e){var t=this.stateProvider,n=t.scale,a=t.options,o=a.limitToBounds,s=a.limitToWrapper,l=t.scalePadding,u=l.disabled,d=l.size,f=t.wheel.limitsOnWheel,m=t.pinch,h=this.state.contentComponent;if(!(m.disabled||this.stateProvider.options.disabled)&&(e.cancelable&&(e.preventDefault(),e.stopPropagation()),this.pinchStartDistance!==null)){var v=calculateMidpoint(e,n,h),y=v.mouseX,b=v.mouseY;if(!(checkIfInfinite(y)||checkIfInfinite(b))){var x=getCurrentDistance(e),S=calculatePinchZoom.call(this,x,this.pinchStartDistance);if(!(checkIfInfinite(S)||S===n)){var C=handleCalculateBounds.call(this,S,s),T=o&&(u||d===0||f),E=handleCalculatePositions.call(this,y,b,S,C,T),D=E.x,O=E.y;this.lastDistance=x,this.stateProvider.positionX=D,this.stateProvider.positionY=O,this.stateProvider.scale=S,this.stateProvider.previousScale=n,this.applyTransformation()}}}}var throttleTime=30;function velocityTimeSpeed(e,t){return this.stateProvider.pan.velocityEqualToMove?t-t/Math.max(1,e):t}function handleEnableVelocity(){this.setState({startAnimation:!1})}function handleFireVelocity(){this.setState({startAnimation:!0})}function animateVelocity(){var e=this,t=this.stateProvider,n=t.positionX,a=t.positionY,o=t.options.limitToBounds,s=t.pan,l=s.velocityBaseTime,u=s.lockAxisX,d=s.lockAxisY,f=s.velocityAnimationType,m=s.panReturnAnimationTime,h=s.panReturnAnimationType,v=s.padding,y=s.paddingSize,b=t.wrapperComponent;if(this.mounted){if(!this.velocity||!this.bounds)return handleDisableAnimation.call(this);var x=this.bounds,S=x.maxPositionX,C=x.minPositionX,T=x.maxPositionY,E=x.minPositionY,D=this.velocity,O=D.velocityX,k=D.velocityY,j=D.velocity,M=velocityTimeSpeed.call(this,j,l);if(!M){handlePanningAnimation.call(this);return}var N=O,F=k,I=M>m?M:m,L=v?y:0,R=b?L*b.offsetWidth/100:0,z=b?L*b.offsetHeight/100:0,B=S+R,V=C-R,H=T+z,U=E-z,W=checkPositionBounds(n,a,this.bounds,o,L,b),G=new Date().getTime();animate.call(this,f,I,function(t){var s=new Date().getTime()-G,l=s/m,f=availableAnimations[h],v=f(l);(s>m||v>1||v===1/0||v===-1/0)&&(v=1);var y=getPosition(u,N,t,v,C,S,o,n,W.x,V,B),b=getPosition(d,F,t,v,E,T,o,a,W.y,U,H);(n!==y||a!==b)&&(e.stateProvider.positionX=y,e.stateProvider.positionY=b,e.applyTransformation())})}}function calculateVelocityStart(e){var t=this,n=this.stateProvider,a=n.scale,o=n.options.disabled,s=n.pan,l=s.velocity,u=s.velocitySensitivity,d=s.velocityActiveScale,f=s.velocityMinSpeed,m=n.wrapperComponent;if(!(!l||d>=a||o)){handleEnableVelocity.call(this);var h=Date.now();if(this.lastMousePosition){var v=getClientPosition(e);if(!v)return console.error(`No mouse or touch position detected`);var y=v.clientX,b=v.clientY,x=y-this.lastMousePosition.clientX,S=b-this.lastMousePosition.clientY,C=h-this.velocityTime,T=2-m.offsetWidth/window.innerWidth,E=2-m.offsetHeight/window.innerHeight,D=20*Math.max(f,Math.min(2,T)),O=20*Math.max(f,Math.min(2,E)),k=x/C*u*a*D,j=S/C*u*a*O,M=x*x+S*S,N=Math.sqrt(M)/C*u;if(this.velocity&&N<this.velocity.velocity&&this.throttle)return;this.velocity={velocityX:k,velocityY:j,velocity:N},this.throttle&&clearTimeout(this.throttle),this.throttle=setTimeout(function(){t.mounted&&(t.throttle=!1)},throttleTime)}var F=getClientPosition(e);this.lastMousePosition=F,this.velocityTime=h}}function getPosition(e,t,n,a,o,s,l,u,d,f,m){if(l){if(d>o&&u>s){var h=d-(d-s)*a;return h>m?m:h<s?s:h}if(d<o&&u<o){var h=d-(d-o)*a;return h<f?f:h>o?o:h}}return e?d:boundLimiter(u+t*n,o,s,l)}function makePassiveEventOption(e){return e}var propsList=`previousScale.scale.positionX.positionY.defaultPositionX.defaultPositionY.defaultScale.onWheelStart.onWheel.onWheelStop.onPanningStart.onPanning.onPanningStop.onPinchingStart.onPinching.onPinchingStop.onZoomChange.options.wheel.scalePadding.pan.pinch.zoomIn.zoomOut.doubleClick.reset`.split(`.`),getValidPropsFromObject=function(e){return Object.keys(e).reduce(function(t,n){return propsList.includes(n)&&(t[n]=e[n]),t},{})},Context=import_react$24.createContext({}),wheelStopEventTimer=null,wheelStopEventTime=180,wheelAnimationTimer=null,wheelAnimationTime=100,StateProvider=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.mounted=!0,t.state={wrapperComponent:void 0,contentComponent:void 0},t.stateProvider=__assign$1(__assign$1(__assign$1(__assign$1({},initialState),mergeProps(initialState,t.props.dynamicValues)),t.props.defaultValues),{previousScale:t.props.dynamicValues.scale||t.props.defaultValues.scale||initialState.scale}),t.windowToWrapperScaleX=0,t.windowToWrapperScaleY=0,t.startCoords=null,t.isDown=!1,t.pinchStartDistance=null,t.lastDistance=null,t.pinchStartScale=null,t.distance=null,t.bounds=null,t.velocityTime=null,t.lastMousePosition=null,t.velocity=null,t.offsetX=null,t.offsetY=null,t.throttle=!1,t.previousWheelEvent=null,t.lastScale=null,t.animate=null,t.animation=null,t.maxBounds=null,t.handleWheel=function(e){var n=t.stateProvider,a=n.scale,o=n.wheel,s=o.disabled,l=o.wheelEnabled,u=o.touchPadEnabled,d=t.props,f=d.onWheelStart,m=d.onWheel,h=d.onWheelStop,v=t.state,y=v.wrapperComponent,b=v.contentComponent;t.isDown||s||t.stateProvider.options.disabled||!y||!b||!l&&!e.ctrlKey||!u&&e.ctrlKey||(wheelStopEventTimer||(t.lastScale=a,handleDisableAnimation.call(t),handleCallback(f,t.getCallbackProps())),handleWheelZoom.call(t,e),handleCallback(m,t.getCallbackProps()),t.applyTransformation(null,null,null),t.previousWheelEvent=e,handleWheelStop(t.previousWheelEvent,e,t.stateProvider)&&(clearTimeout(wheelStopEventTimer),wheelStopEventTimer=setTimeout(function(){t.mounted&&(handleCallback(h,t.getCallbackProps()),wheelStopEventTimer=null)},wheelStopEventTime)),t.animate=!1,t.lastScale=t.stateProvider.scale,clearTimeout(wheelAnimationTimer),wheelAnimationTimer=setTimeout(function(){t.mounted&&handlePaddingAnimation$1.call(t,e)},wheelAnimationTime))},t.checkPanningTarget=function(e){var n=t.stateProvider.pan.disableOnTarget;return n.map(function(e){return e.toUpperCase()}).includes(e.target.tagName)||n.find(function(t){return e.target.classList.value.includes(t)})},t.checkIsPanningActive=function(e){var n=t.stateProvider.pan.disabled,a=t.state,o=a.wrapperComponent,s=a.contentComponent;return!t.isDown||n||t.stateProvider.options.disabled||e.touches&&(e.touches.length!==1||Math.abs(t.startCoords.x-e.touches[0].clientX)<1||Math.abs(t.startCoords.y-e.touches[0].clientY)<1)||!o||!s},t.handleSetUpPanning=function(e,n){var a=t.stateProvider,o=a.positionX,s=a.positionY;t.isDown=!0,t.startCoords={x:e-o,y:n-s},handleCallback(t.props.onPanningStart,t.getCallbackProps())},t.handleStartPanning=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.scale,s=n.options,l=s.minScale,u=s.maxScale,d=s.limitToWrapper,f=n.pan.disabled,m=e.target,h=e.touches;f||t.stateProvider.options.disabled||a&&!a.contains(m)||t.checkPanningTarget(e)||o<l||o>u||(handleDisableAnimation.call(t),t.bounds=handleCalculateBounds.call(t,o,d),h&&h.length===1&&t.handleSetUpPanning(h[0].clientX,h[0].clientY),h||t.handleSetUpPanning(e.clientX,e.clientY))},t.handlePanning=function(e){t.isDown&&e.preventDefault(),!t.checkIsPanningActive(e)&&(e.stopPropagation(),calculateVelocityStart.call(t,e),handlePanning.call(t,e),handleCallback(t.props.onPanning,t.getCallbackProps()))},t.handleStopPanning=function(){if(t.isDown){t.isDown=!1,t.animate=!1,t.animation=!1,handleFireVelocity.call(t),handleCallback(t.props.onPanningStop,t.getCallbackProps());var e=t.stateProvider,n=e.pan.velocity,a=e.scale;t.velocity&&n&&a>1?animateVelocity.call(t):handlePanningAnimation.call(t)}},t.handlePinchStart=function(e){var n=t.stateProvider.scale;e.preventDefault(),e.stopPropagation(),handleDisableAnimation.call(t);var a=getDistance(e.touches[0],e.touches[1]);t.pinchStartDistance=a,t.lastDistance=a,t.pinchStartScale=n,t.isDown=!1,handleCallback(t.props.onPinchingStart,t.getCallbackProps())},t.handlePinch=function(e){t.isDown=!1,handleZoomPinch.call(t,e),handleCallback(t.props.onPinching,t.getCallbackProps())},t.handlePinchStop=function(){typeof t.pinchStartScale==`number`&&(t.isDown=!1,t.velocity=null,t.lastDistance=null,t.pinchStartScale=null,t.pinchStartDistance=null,handlePaddingAnimation$1.call(t),handleCallback(t.props.onPinchingStop,t.getCallbackProps()))},t.handleTouchStart=function(e){var n=t.stateProvider,a=n.wrapperComponent,o=n.contentComponent,s=n.scale,l=n.options,u=l.disabled,d=l.minScale,f=e.touches;if(!(u||!a||!o||s<d)){if(handleDisableAnimation.call(t),f&&f.length===1)return t.handleStartPanning(e);if(f&&f.length===2)return t.handlePinchStart(e)}},t.handleTouch=function(e){var n=t.stateProvider,a=n.pan,o=n.pinch;if(!n.options.disabled){if(!a.disabled&&e.touches.length===1)return t.handlePanning(e);if(!o.disabled&&e.touches.length===2)return t.handlePinch(e)}},t.handleTouchStop=function(){t.handleStopPanning(),t.handlePinchStop()},t.zoomIn=function(e){var n=t.stateProvider,a=n.zoomIn,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom in function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,1,s)},t.zoomOut=function(e){var n=t.stateProvider,a=n.zoomOut,o=a.disabled,s=a.step,l=n.options,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Zoom out function requires event prop`);o||l.disabled||!d||!f||handleZoomControls.call(t,-1,s)},t.handleDbClick=function(e){var n=t.stateProvider,a=n.options,o=n.doubleClick,s=o.disabled,l=o.step,u=t.state,d=u.wrapperComponent,f=u.contentComponent;if(!e)throw Error(`Double click function requires event prop`);s||a.disabled||!d||!f||handleDoubleClick.call(t,e,1,l)},t.setScale=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options.disabled,f=t.state,m=f.wrapperComponent,h=f.contentComponent;if(!(d||!m||!h)){var v={positionX:s,positionY:l,scale:isNaN(e)?u:e};animateComponent.call(t,{targetState:v,speed:n,type:a})}},t.setPositionX=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.positionY,u=o.scale,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:isNaN(e)?s:e,positionY:l,scale:u};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setPositionY=function(e,n,a){n===void 0&&(n=200),a===void 0&&(a=`easeOut`);var o=t.stateProvider,s=o.positionX,l=o.scale,u=o.positionY,d=o.options,f=d.disabled,m=d.transformEnabled,h=t.state,v=h.wrapperComponent,y=h.contentComponent;if(!(f||!m||!v||!y)){var b={positionX:s,positionY:isNaN(e)?u:e,scale:l};animateComponent.call(t,{targetState:b,speed:n,type:a})}},t.setTransform=function(e,n,a,o,s){o===void 0&&(o=200),s===void 0&&(s=`easeOut`);var l=t.stateProvider,u=l.positionX,d=l.positionY,f=l.scale,m=l.options,h=m.disabled,v=m.transformEnabled,y=t.state,b=y.wrapperComponent,x=y.contentComponent;if(!(h||!v||!b||!x)){var S={positionX:isNaN(e)?u:e,positionY:isNaN(n)?d:n,scale:isNaN(a)?f:a};animateComponent.call(t,{targetState:S,speed:o,type:s})}},t.resetTransform=function(){var e=t.stateProvider.options,n=e.disabled,a=e.transformEnabled;n||!a||resetTransformations.call(t)},t.setDefaultState=function(){t.animation=null,t.stateProvider=__assign$1(__assign$1(__assign$1({},t.stateProvider),{scale:initialState.scale,positionX:initialState.positionX,positionY:initialState.positionY}),t.props.defaultValues),t.forceUpdate()},t.setWrapperComponent=function(e){t.setState({wrapperComponent:e})},t.setContentComponent=function(e){t.setState({contentComponent:e},function(){var n=t.stateProvider,a=n.wrapperComponent,o=n.options,s=o.centerContent,l=o.limitToBounds,u=o.limitToWrapper,d=n.scale,f=t.props.defaultValues,m=f.positionX,h=f.positionY;if(l&&!u||s&&!m&&!h){var v=`translate(25%, 25%) scale(`+d+`)`;e.style.transform=v,e.style.WebkitTransform=v,t.forceUpdate();var y=new Date().getTime(),b=2e3,x=setInterval(function(){if(a.offsetWidth){var e=handleCalculateBounds.call(t,d,!1);t.stateProvider.positionX=e.minPositionX,t.stateProvider.positionY=e.minPositionY,t.applyTransformation(null,null,null),clearInterval(x),x=null}else new Date().getTime()-y>b&&(clearInterval(x),x=null)},20)}else t.applyTransformation(null,null,null)})},t.applyTransformation=function(e,n,a){if(t.mounted){var o=t.state.contentComponent,s=t.props.onZoomChange,l=t.stateProvider,u=l.previousScale,d=l.scale,f=l.positionX,m=l.positionY;if(!o)return console.error(`There is no content component`);var h=`translate(`+(n||f)+`px, `+(a||m)+`px) scale(`+(e||d)+`)`;o.style.transform=h,o.style.WebkitTransform=h,t.forceUpdate(),s&&u!==d&&handleCallback(s,t.getCallbackProps())}},t.getCallbackProps=function(){return getValidPropsFromObject(t.stateProvider)},t}return t.prototype.componentDidMount=function(){var e=makePassiveEventOption(!1);window.addEventListener(`mousedown`,this.handleStartPanning,e),window.addEventListener(`mousemove`,this.handlePanning,e),window.addEventListener(`mouseup`,this.handleStopPanning,e)},t.prototype.componentWillUnmount=function(){var e=makePassiveEventOption(!1);window.removeEventListener(`mousedown`,this.handleStartPanning,e),window.removeEventListener(`mousemove`,this.handlePanning,e),window.removeEventListener(`mouseup`,this.handleStopPanning,e),handleDisableAnimation.call(this)},t.prototype.componentDidUpdate=function(e,t){var n=this.state,a=n.wrapperComponent,o=n.contentComponent,s=this.props.dynamicValues;if(!t.contentComponent&&o&&(this.stateProvider.contentComponent=o),!t.wrapperComponent&&a&&a!==void 0){this.stateProvider.wrapperComponent=a,this.windowToWrapperScaleX=getWindowScaleX(a),this.windowToWrapperScaleY=getWindowScaleY(a);var l=makePassiveEventOption(!1);a.addEventListener(`wheel`,this.handleWheel,l),a.addEventListener(`dblclick`,this.handleDbClick,l),a.addEventListener(`touchstart`,this.handleTouchStart,l),a.addEventListener(`touchmove`,this.handleTouch,l),a.addEventListener(`touchend`,this.handleTouchStop,l)}(a&&o||e.dynamicValues!==s)&&(this.maxBounds=handleCalculateBounds.call(this,this.stateProvider.scale,this.stateProvider.options.limitToWrapper)),e.dynamicValues&&e.dynamicValues!==s&&(this.animation=null,this.stateProvider=__assign$1(__assign$1({},this.stateProvider),mergeProps(this.stateProvider,s)),this.applyTransformation(null,null,null))},t.prototype.render=function(){var e=this.state,t=e.wrapperComponent,n=e.contentComponent,a={loaded:!!(t&&n),state:this.getCallbackProps(),dispatch:{setScale:this.setScale,setPositionX:this.setPositionX,setPositionY:this.setPositionY,zoomIn:this.zoomIn,zoomOut:this.zoomOut,setTransform:this.setTransform,resetTransform:this.resetTransform,setDefaultState:this.setDefaultState},nodes:{setWrapperComponent:this.setWrapperComponent,setContentComponent:this.setContentComponent}},o=this.props.children,s=typeof o==`function`?o(__assign$1(__assign$1({},a.state),a.dispatch)):o;return import_react$24.createElement(Context.Provider,{value:a},s)},t}(import_react$24.Component),TransformWrapper=function(e){var t=e.children,n=e.defaultPositionX,a=e.defaultPositionY,o=e.defaultScale,s=e.onWheelStart,l=e.onWheel,u=e.onWheelStop,d=e.onPanningStart,f=e.onPanning,m=e.onPanningStop,h=e.onPinchingStart,v=e.onPinching,y=e.onPinchingStop,b=e.onZoomChange,x=__rest$1(e,[`children`,`defaultPositionX`,`defaultPositionY`,`defaultScale`,`onWheelStart`,`onWheel`,`onWheelStop`,`onPanningStart`,`onPanning`,`onPanningStop`,`onPinchingStart`,`onPinching`,`onPinchingStop`,`onZoomChange`]),S=__assign$1({},x);return S.options&&S.options.limitToWrapper&&(S.options.limitToBounds=!0),import_react$24.createElement(StateProvider,{defaultValues:deleteUndefinedProps({positionX:n,positionY:a,scale:o}),dynamicValues:deleteUndefinedProps(getValidPropsFromObject(S)),onWheelStart:s,onWheel:l,onWheelStop:u,onPanningStart:d,onPanning:f,onPanningStop:m,onPinchingStart:h,onPinching:v,onPinchingStop:y,onZoomChange:b},t)};function styleInject(e,t){t===void 0&&(t={});var n=t.insertAt;if(!(!e||typeof document>`u`)){var a=document.head||document.getElementsByTagName(`head`)[0],o=document.createElement(`style`);o.type=`text/css`,n===`top`&&a.firstChild?a.insertBefore(o,a.firstChild):a.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}var css=`.TransformComponent-module_container__3NwNd {
|
|
726
726
|
position: relative;
|
|
727
727
|
width: fit-content;
|
|
728
728
|
height: fit-content;
|
|
@@ -748,7 +748,7 @@ Create a new `,"processor first, by invoking it: use `processor()` instead of ",
|
|
|
748
748
|
.TransformComponent-module_content__TZU5O img {
|
|
749
749
|
pointer-events: none;
|
|
750
750
|
}
|
|
751
|
-
`,styles={container:`TransformComponent-module_container__3NwNd`,content:`TransformComponent-module_content__TZU5O`};styleInject(css);var TransformComponent=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.wrapperRef=import_react$24.createRef(),t.contentRef=import_react$24.createRef(),t}return t.prototype.componentDidMount=function(){var e=this.context.nodes;e.setWrapperComponent(this.wrapperRef.current),e.setContentComponent(this.contentRef.current)},t.prototype.render=function(){var e=this.props.children,t=this.context.state,n=t.positionX,a=t.positionY,o=t.scale,s=t.options,l=s.wrapperClass,u=s.contentClass,d={WebkitTransform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`,transform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`};return import_react$24.createElement(`div`,{ref:this.wrapperRef,className:`react-transform-component `+styles.container+` `+l},import_react$24.createElement(`div`,{ref:this.contentRef,className:`react-transform-element `+styles.content+` `+u,style:d},e))},t}(import_react$24.Component);TransformComponent.contextType=Context;var{CLEANUP:CLEANUP$2,HARVEST:HARVEST$2,MINE:MINE$2,WATER:WATER$2}=fieldMode,tools={wateringCan:{alt:WATERING_CAN_ALT_TEXT,fieldKey:`shift+1`,fieldMode:WATER$2,hiddenText:WATERING_CAN_HIDDEN_TEXT,id:`watering-can`,levelInfo:TOOL_LEVEL_INFO.WATERING_CAN,order:1,type:toolType.WATERING_CAN},scythe:{alt:SCYTHE_ALT_TEXT,fieldKey:`shift+2`,fieldMode:HARVEST$2,hiddenText:SCYTHE_HIDDEN_TEXT,id:`scythe`,levelInfo:TOOL_LEVEL_INFO.SCYTHE,order:2,type:toolType.SCYTHE},hoe:{alt:HOE_ALT_TEXT,fieldKey:`shift+3`,fieldMode:CLEANUP$2,hiddenText:HOE_HIDDEN_TEXT,id:`hoe`,levelInfo:TOOL_LEVEL_INFO.HOE,order:3,type:toolType.HOE},shovel:{alt:SHOVEL_ALT_TEXT,fieldKey:`shift+4`,fieldMode:MINE$2,hiddenText:SHOVEL_HIDDEN_TEXT,id:`shovel`,levelInfo:TOOL_LEVEL_INFO.SHOVEL,order:4,type:toolType.SHOVEL}},dirt_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAACA0lEQVRYR6WXwWrEMAxEHViWQr+vp576ab332F8rlKWQ4lCHeKLnkdNclk1iWRqPZpTl47WsX49Snu+ltN+n+618P35K+3XP9f3yd1Gc9rzFPf5fakL1hm6qQa8mpUVGSVQw2rUnFCXlFjcEtGJNnoqJ3ls+325rPR69skHd8VIcKmJDKLu5InaqwtygfY5I7wjRWRPRqUIiNL2vCG8IUZfQ2btkXFKj7jtxSInquo1OiSTDcbVDiCpzxL2KcKRHO0IaVJGiFv9vsopY12UOTkqSkqIiSYTr/sv7S1mrUuqZO+I6RHV9llMhh5wuOSSVi474nQ41hLIVkTg6iaAiNPnOyxRWJwGuu2ZpsHGouT0tniWmG2HoJNo+HYecV7n5iHTMjTahl9FmmmT2WLOcUVoMEcoOZWQvxMHRUHByexrKiMCuO0dGWtdq0UOEssfodIsaJhJfnIdIqd3mkWEekaDn7f6leciNpU4qRkmh28+2MHUVEZukIPQyNxeRFMwacqR7nXWMztopueMctbomFc5DjrhkD7NdGSWJX66kyKRTxInMp09NrPMyt4mbZ2YRHSF8cntqWWcDVFS2+0K3J3twycwSegqhkfEdn7nJMRsnnBiJwGSMo6+GYyLZwf64Zv/qcHOPSyKbvIsT6pALTpxxOuS6scY9uX1WUZ2+ULe6BvgFS/BfKlY4GqkAAAAASUVORK5CYIIA`,getGrowingPhase=memoize(e=>{let{itemId:t,daysWatered:n=0}=e,{cropTimeline:a=[]}=itemsMap[t],o=n+1,s=0;for(let e of a){if(o-e<=0)break;o-=e,s+=1}return s},{cacheSize:LARGEST_PURCHASABLE_FIELD_SIZE.columns*LARGEST_PURCHASABLE_FIELD_SIZE.rows}),{SEED,GROWING,GROWN}=cropLifeStage,isPlotContent=(e={})=>!!(e&&typeof e==`object`&&`itemId`in e&&`fertilizerType`in e&&e.itemId&&e.fertilizerType),isShoveledPlot=(e={})=>!!(e&&typeof e==`object`&&`isShoveled`in e&&`daysUntilClear`in e&&e.isShoveled&&e.daysUntilClear),isPlotContentACrop=e=>getPlotContentType(e)===itemType.CROP,getPlotImage=(e,t,n)=>{if(isPlotContent(e)){if(isPlotContentACrop(e)){let t;switch(getCropLifeStage(e)){case GROWN:t=e.itemId;break;case GROWING:let n=getGrowingPhase(e);t=`${e.itemId}-growing-${n}`;break;default:t=cropItemIdToSeedItemMap[e.itemId].id}return items[t]}if(getPlotContentType(e)===itemType.WEED){let e=[`yellow`,`orange`,`pink`];return items[`weed-${e[t*n%e.length]}`]}return items[e.itemId]}return isShoveledPlot(e)&&e?.oreId?items[e.oreId]:null},colorGenericHighlight=`rgba(255, 255, 255, 0.8)`,getBackgroundStyles=e=>{if(!e)return;let t=[];return e.fertilizerType===fertilizerType.STANDARD?t.push(`url(${plotStates[`fertilized-plot`]})`):e.fertilizerType===fertilizerType.RAINBOW&&t.push(`url(${plotStates[`rainbow-fertilized-plot`]})`),`wasWateredToday`in e&&e.wasWateredToday?t.push(`url(${plotStates[`watered-plot`]})`):`isShoveled`in e&&e.isShoveled&&t.push(`url(${plotStates[`shoveled-plot`]})`),t.length>0?t.join(`, `):void 0},getDaysLeftToMature=e=>e&&e.daysWatered>-1&&getPlotContentType(e)===itemType.CROP?Math.max(0,Math.ceil((getCropLifecycleDuration(e?itemsMap[e.itemId]:null)-e.daysWatered)/(1+(e.fertilizerType===fertilizerType.NONE?0:FERTILIZER_BONUS)))):null,Plot=({handlePlotClick:e,isInHoverRange:t,plotContent:n,selectedItemId:a,setHoveredPlot:o,x:s,y:l,image:u,lifeStage:d,canBeHarvested:f})=>{let m=u??getPlotImage(n??null,s??0,l??0)??``,h=d===void 0?n&&getPlotContentType(n)===itemType.CROP&&getCropLifeStage(n)||null:d,v=f===void 0?h===cropLifeStage.GROWN||n&&getPlotContentType(n)===itemType.WEED||!1:f,y=n?itemsMap[n.itemId]:null,b=getDaysLeftToMature(n??null),x=n&&getPlotContentType(n)===itemType.CROP,S=(n?.itemId?itemsMap[n.itemId]:null)?.type===itemType.SCARECROW,[C,T]=(0,import_react$24.useState)(!1),[E,D]=(0,import_react$24.useState)(!!n?.isShoveled);(0,import_react$24.useEffect)(()=>{!E&&n?.isShoveled&&n?.oreId&&T(!0)},[E,n]),(0,import_react$24.useEffect)(()=>{n===null&&(D(!1),T(!1))},[n]);let O=!!(m&&(C||n?.itemId||n&&getPlotContentType(n)===itemType.CROP)),k=null;if(y){let e=n&&getPlotContentType(n)===itemType.CROP&&getCropLifeStage(n)===cropLifeStage.SEED,t=cropItemIdToSeedItemMap[y.id];k=e?t.name:y.name}else if(C||n?.isShoveled){let e=n?.oreId,t=e?itemsMap[e]:null;k=t?SHOVELED_PLOT(``,t):SHOVELED}let j=(0,import_jsx_runtime.jsx)(Div,{className:(0,import_classnames.default)(`Plot`,{"is-empty":!n,"is-in-hover-range":t,crop:x,"can-be-harvested":v,"can-be-fertilized":x&&n?.fertilizerType===fertilizerType.NONE||S&&n?.fertilizerType===fertilizerType.NONE&&a===`rainbow-fertilizer`,"can-be-mined":!n,"is-replantable":n&&y?.isReplantable}),style:{backgroundImage:getBackgroundStyles(n??null)},onClick:()=>e?.(s??0,l??0),onMouseOver:()=>o?.({x:s??null,y:l??null}),sx:{backgroundRepeat:`no-repeat`,backgroundSize:`cover`,border:`solid 1px #000`,flexGrow:1,imageRendering:`pixelated`,"&:hover":{backgroundColor:colorGenericHighlight,cursor:`pointer`},"&.is-in-hover-range":{borderColor:colorGenericHighlight}},children:(0,import_jsx_runtime.jsx)(Img,{className:(0,import_classnames.default)(`square`,{...x&&{animated:v,heartBeat:v},...C&&{animated:!0,"was-just-shoveled":!0}}),style:{backgroundImage:O?`url(${m})`:void 0},src:pixel_default,alt:k??`Empty plot`,sx:{...squareImgSx,"&.was-just-shoveled":{animationName:`fadeAwayShoveledContent`},"@keyframes fadeAwayShoveledContent":{from:{opacity:1,transform:`translate3d(0, 0, 0) scale(1)`},to:{opacity:0,visibility:`hidden`,transform:`translate3d(0, -100%, 0) scale(0.75)`}}}})});return n?(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,placement:`top`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[k?(0,import_jsx_runtime.jsx)(Typography,{children:k}):null,x&&(0,import_jsx_runtime.jsx)(Typography,{children:b?`Days of watering to mature: ${b}`:`Ready to harvest!`})]}),children:j}):j};function Consumer$11(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Plot,{...t,...n,...e})})}var GridContext=import_react$24.createContext();init_generateUtilityClasses(),init_generateUtilityClass();function getGridUtilityClass(e){return generateUtilityClass(`MuiGrid`,e)}var SPACINGS=[0,1,2,3,4,5,6,7,8,9,10],DIRECTIONS=[`column-reverse`,`column`,`row-reverse`,`row`],WRAPS=[`nowrap`,`wrap-reverse`,`wrap`],GRID_SIZES=[`auto`,!0,1,2,3,4,5,6,7,8,9,10,11,12],gridClasses=generateUtilityClasses(`MuiGrid`,[`root`,`container`,`item`,`zeroMinWidth`,...SPACINGS.map(e=>`spacing-xs-${e}`),...DIRECTIONS.map(e=>`direction-xs-${e}`),...WRAPS.map(e=>`wrap-xs-${e}`),...GRID_SIZES.map(e=>`grid-xs-${e}`),...GRID_SIZES.map(e=>`grid-sm-${e}`),...GRID_SIZES.map(e=>`grid-md-${e}`),...GRID_SIZES.map(e=>`grid-lg-${e}`),...GRID_SIZES.map(e=>`grid-xl-${e}`)]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded=[`className`,`columns`,`columnSpacing`,`component`,`container`,`direction`,`item`,`rowSpacing`,`spacing`,`wrap`,`zeroMinWidth`];function getOffset(e){let t=parseFloat(e);return`${t}${String(e).replace(String(t),``)||`px`}`}function generateGrid({theme:e,ownerState:t}){let n;return e.breakpoints.keys.reduce((a,o)=>{let s={};if(t[o]&&(n=t[o]),!n)return a;if(n===!0)s={flexBasis:0,flexGrow:1,maxWidth:`100%`};else if(n===`auto`)s={flexBasis:`auto`,flexGrow:0,flexShrink:0,maxWidth:`none`,width:`auto`};else{let l=resolveBreakpointValues({values:t.columns,breakpoints:e.breakpoints.values}),u=typeof l==`object`?l[o]:l;if(u==null)return a;let d=`${Math.round(n/u*1e8)/1e6}%`,f={};if(t.container&&t.item&&t.columnSpacing!==0){let n=e.spacing(t.columnSpacing);if(n!==`0px`){let e=`calc(${d} + ${getOffset(n)})`;f={flexBasis:e,maxWidth:e}}}s=_extends$3({flexBasis:d,flexGrow:0,maxWidth:d},f)}return e.breakpoints.values[o]===0?Object.assign(a,s):a[e.breakpoints.up(o)]=s,a},{})}function generateDirection({theme:e,ownerState:t}){let n=resolveBreakpointValues({values:t.direction,breakpoints:e.breakpoints.values});return handleBreakpoints({theme:e},n,e=>{let t={flexDirection:e};return e.indexOf(`column`)===0&&(t[`& > .${gridClasses.item}`]={maxWidth:`none`}),t})}function extractZeroValueBreakpointKeys({breakpoints:e,values:t}){let n=``;Object.keys(t).forEach(e=>{n===``&&t[e]!==0&&(n=e)});let a=Object.keys(e).sort((t,n)=>e[t]-e[n]);return a.slice(0,a.indexOf(n))}function generateRowGap({theme:e,ownerState:t}){let{container:n,rowSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{marginTop:0,[`& > .${gridClasses.item}`]:{paddingTop:0}}:{marginTop:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingTop:getOffset(s)}}})}return o}function generateColumnGap({theme:e,ownerState:t}){let{container:n,columnSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{width:`100%`,marginLeft:0,[`& > .${gridClasses.item}`]:{paddingLeft:0}}:{width:`calc(100% + ${getOffset(s)})`,marginLeft:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingLeft:getOffset(s)}}})}return o}function resolveSpacingStyles(e,t,n={}){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[n[`spacing-xs-${String(e)}`]];let a=[];return t.forEach(t=>{let o=e[t];Number(o)>0&&a.push(n[`spacing-${t}-${String(o)}`])}),a}var GridRoot=styled$1(`div`,{name:`MuiGrid`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{container:a,direction:o,item:s,spacing:l,wrap:u,zeroMinWidth:d,breakpoints:f}=n,m=[];a&&(m=resolveSpacingStyles(l,f,t));let h=[];return f.forEach(e=>{let a=n[e];a&&h.push(t[`grid-${e}-${String(a)}`])}),[t.root,a&&t.container,s&&t.item,d&&t.zeroMinWidth,...m,o!==`row`&&t[`direction-xs-${String(o)}`],u!==`wrap`&&t[`wrap-xs-${String(u)}`],...h]}})(({ownerState:e})=>_extends$3({boxSizing:`border-box`},e.container&&{display:`flex`,flexWrap:`wrap`,width:`100%`},e.item&&{margin:0},e.zeroMinWidth&&{minWidth:0},e.wrap!==`wrap`&&{flexWrap:e.wrap}),generateDirection,generateRowGap,generateColumnGap,generateGrid);function resolveSpacingClasses(e,t){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[`spacing-xs-${String(e)}`];let n=[];return t.forEach(t=>{let a=e[t];if(Number(a)>0){let e=`spacing-${t}-${String(a)}`;n.push(e)}}),n}var useUtilityClasses=e=>{let{classes:t,container:n,direction:a,item:o,spacing:s,wrap:l,zeroMinWidth:u,breakpoints:d}=e,f=[];n&&(f=resolveSpacingClasses(s,d));let m=[];return d.forEach(t=>{let n=e[t];n&&m.push(`grid-${t}-${String(n)}`)}),composeClasses({root:[`root`,n&&`container`,o&&`item`,u&&`zeroMinWidth`,...f,a!==`row`&&`direction-xs-${String(a)}`,l!==`wrap`&&`wrap-xs-${String(l)}`,...m]},getGridUtilityClass,t)},Grid=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiGrid`}),{breakpoints:a}=useTheme$1(),o=extendSxProp(n),{className:s,columns:l,columnSpacing:u,component:d=`div`,container:f=!1,direction:m=`row`,item:h=!1,rowSpacing:v,spacing:y=0,wrap:b=`wrap`,zeroMinWidth:x=!1}=o,S=_objectWithoutPropertiesLoose$3(o,_excluded),C=v||y,T=u||y,E=import_react$24.useContext(GridContext),D=f?l||12:E,O={},k=_extends$3({},S);a.keys.forEach(e=>{S[e]!=null&&(O[e]=S[e],delete k[e])});let j=_extends$3({},o,{columns:D,container:f,direction:m,item:h,rowSpacing:C,columnSpacing:T,wrap:b,zeroMinWidth:x,spacing:y},O,{breakpoints:a.keys}),M=useUtilityClasses(j);return(0,import_jsx_runtime.jsx)(GridContext.Provider,{value:D,children:(0,import_jsx_runtime.jsx)(GridRoot,_extends$3({ownerState:j,className:clsx$1(M.root,s),as:d,ref:t},k))})}),getTools=memoize(e=>{let t=[];for(let n of Object.values(tools))e[n.type]!==toolLevel.UNAVAILABLE&&t.push(n);return t.sort((e,t)=>e.order-t.order)}),getToolImage=e=>e.level===toolLevel.DEFAULT?tools$1[e.id]:craftedItems[`${e.id}-${e.level.toLowerCase()}`],Toolbelt=({fieldMode:e,handleFieldModeSelect:t,toolLevels:n})=>{let a=getTools(n);return(0,import_jsx_runtime.jsx)(Div,{className:`Toolbelt`,children:(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`},"& button":{flexGrow:1,margin:`0 0.5em`}},children:a.map(({alt:a,fieldMode:o,fieldKey:s,hiddenText:l,id:u,levelInfo:d,type:f})=>{let m=o===e;return(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:o,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{component:`div`,children:[(0,import_jsx_runtime.jsx)(`p`,{children:a}),(0,import_jsx_runtime.jsx)(import_react_markdown.default,{className:`markdown`,source:d[n[f]]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`(`,s,`)`]})]}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({selected:m}),color:`primary`,onClick:()=>t(o),variant:m?`contained`:`text`,sx:m?{border:`1px solid #000`,backgroundColor:`transparent`,"&:hover":{backgroundColor:`#ffffb3`}}:void 0,children:[(0,import_jsx_runtime.jsx)(Img,{className:`square ${u}`,src:pixel_default,style:{backgroundImage:`url(${getToolImage({level:n[f],id:u})})`},sx:squareImgSx,alt:a}),(0,import_jsx_runtime.jsx)(`span`,{className:`visually_hidden`,children:l})]})})})})})};Toolbelt.propTypes={fieldMode:import_prop_types$1.default.string.isRequired,handleFieldModeSelect:import_prop_types$1.default.func},Toolbelt.defaultProps={handleFieldModeSelect:noop$3,toolLevels:{}};function Consumer$10(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Toolbelt,{...t,...n,...e})})}var ItemList=({handleItemSelectClick:e,items:t,playerInventoryQuantities:n,selectedItemId:a})=>(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`}},children:sortItems(t).map(t=>(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:t.id,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:t.name}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({"is-selected":t.id===a}),color:`primary`,onClick:()=>e(t),variant:t.id===a?`contained`:`text`,sx:{padding:`0.5em`,minWidth:`3.5em`,margin:`0 0.25em`,"&.MuiButton-containedPrimary":{backgroundColor:`#ffb913`,"&:hover":{backgroundColor:`#e5a000`}},"&.MuiButton-textPrimary:hover":{backgroundColor:`#fff7e4`}},children:[(0,import_jsx_runtime.jsx)(Img,{alt:t.name,className:`square`,src:pixel_default,style:{backgroundImage:`url(${items[t.id]}`},sx:{...squareImgSx,...spriteShadowSx}}),(0,import_jsx_runtime.jsx)(P$1,{className:`quantity`,sx:{backgroundColor:`rgba(0, 0, 0, 0.5)`,borderRadius:`1em`,color:`#fff`,fontSize:`0.75em`,lineHeight:`calc(0.75em - 1px)`,minWidth:`0.5em`,padding:`0.5em`,position:`absolute`,right:`-2px`,top:`-2px`},children:integerString(n[t.id])})]})}))});ItemList.propTypes={handleItemSelectClick:import_prop_types$1.func,items:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};var QuickSelect=({fieldToolInventory:e,handleItemSelectClick:t,isMenuOpen:n=!0,playerInventoryQuantities:a,plantableCropInventory:o,selectedItemId:s})=>(0,import_jsx_runtime.jsx)(Paper,{className:`QuickSelect`,elevation:10,sx:e=>({...cardStyleSx(e),bottom:`7.5em`,left:`50%`,maxWidth:`calc(100% - 2em)`,position:`fixed`,transform:`translateX(-50%)`,"@media (orientation: landscape)":{bottom:`auto`,[`@media (max-height: ${breakpoints.largePhone}px)`]:{top:`5em`,maxWidth:`calc(100% - 12em)`,left:`calc(50% - (${layout.fieldSpaceForRightSideControls} / 2))`},[`@media (max-width: ${breakpoints.md}px)`]:{display:n?`none`:void 0}},[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{left:`auto`,maxHeight:`calc(100vh - 20em)`,minWidth:`4em`,overflow:`auto`,right:`0.75em`,top:`9em`,transform:`none`,bottom:`8em`},"@media (orientation: portrait)":{display:n?`none`:void 0},"& .MuiGrid-root":{borderRadius:`0.25em`,overflowX:`scroll`,overflowY:`hidden`,padding:`0.5em`,position:`relative`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{overflowX:`hidden`,flexDirection:`column`},"& > *":{[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{alignItems:`center`,width:`3em`}}},"& .Toolbelt":{display:`flex`,flexFlow:`column`,justifyContent:`center`},"& .MuiDivider-root":{margin:`0 0.5em`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{margin:`0 0 1em 0`,height:`1px`,width:`100%`}}}),children:(0,import_jsx_runtime.jsxs)(Grid,{container:!0,alignItems:`center`,wrap:`nowrap`,children:[(0,import_jsx_runtime.jsx)(Consumer$10,{}),o.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:o,playerInventoryQuantities:a,selectedItemId:s})]}),e.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:e,playerInventoryQuantities:a,selectedItemId:s})]})]})});QuickSelect.propTypes={fieldToolInventory:import_prop_types$1.array.isRequired,handleItemSelectClick:import_prop_types$1.func,isMenuOpen:import_prop_types$1.bool,plantableCropInventory:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};function Consumer$9(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(QuickSelect,{...t,...n,...e})})}var colorRedDanger=`rgba(255, 0, 0, 0.5)`,colorBlueWater=`rgba(125, 245, 255, 0.6)`,colorBrownFertilize=`rgba(125, 56, 0, 0.75)`,colorGreenOk=`rgba(0, 255, 0, 0.5)`,colorYellow=`rgba(255, 255, 0, 0.75)`,obscuringPortraitUiVerticalOffset=215,obscuringLandscapeUiVerticalOffset=395,{CLEANUP:CLEANUP$1,FERTILIZE,HARVEST:HARVEST$1,MINE:MINE$1,OBSERVE,PLANT:PLANT$1,SET_SCARECROW,SET_SPRINKLER,WATER:WATER$1}=fieldMode,zoomKeyMap={zoomIn:[`=`,`plus`],zoomOut:`-`},fieldKeyMap={selectWateringCan:tools.wateringCan.fieldKey,selectScythe:tools.scythe.fieldKey,selectHoe:tools.hoe.fieldKey};tools.shovel&&(fieldKeyMap.selectShovel=tools.shovel.fieldKey);var isInHoverRange=({experience:e,fieldMode:t,hoveredPlotRangeSize:n,hoveredPlot:{x:a,y:o},x:s,y:l})=>{if(a==null||o==null||t===OBSERVE)return!1;let u=n;switch(t){case SET_SPRINKLER:u=getLevelEntitlements(levelAchieved(e)).sprinklerRange;break;case SET_SCARECROW:u=2**53-1;break;default:}let d=2*u,f=a-u,m=o-u,h=f+d,v=m+d;return s>=f&&s<=h&&l>=m&&l<=v},MemoPlot=(0,import_react$24.memo)(e=>{let{hoveredPlot:t,plotContent:n,setHoveredPlot:a,x:o,y:s}=e;return(0,import_jsx_runtime.jsx)(Consumer$11,{hoveredPlot:t,isInHoverRange:isInHoverRange(e),plotContent:n,setHoveredPlot:a,x:o,y:s})},(e,t)=>isInHoverRange(e)===isInHoverRange(t)?e.plotContent===t.plotContent&&e.hoveredPlotRangeSize===t.hoveredPlotRangeSize:!1),FieldContentWrapper=({fieldContent:e,previousScale:t,resetTransform:n,scale:a,zoomIn:o,zoomOut:s})=>((0,import_react$24.useEffect)(()=>{a===1&&t!==1&&n()},[a,t,n]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:zoomKeyMap,handlers:{zoomIn:o,zoomOut:s}}),(0,import_jsx_runtime.jsx)(TransformComponent,{children:e}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-in-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom In`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom In`,color:`primary`,onClick:o,children:(0,import_jsx_runtime.jsx)(import_ZoomIn.default,{})})})}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-out-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom Out`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom Out`,color:`primary`,onClick:s,children:(0,import_jsx_runtime.jsx)(import_ZoomOut.default,{})})})})]}));FieldContentWrapper.propTypes={fieldContent:import_prop_types$1.element.isRequired};var FieldContent=({columns:e=0,experience:t,field:n,fieldMode:a,handleCombineEnabledChange:o,hoveredPlot:s,hoveredPlotRangeSize:l,isCombineEnabled:u,purchasedCombine:d,rows:f=0,setHoveredPlot:m})=>(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`row-wrapper`,onMouseLeave:()=>m({x:null,y:null}),children:nullArray(f).map((o,u)=>(0,import_jsx_runtime.jsx)(`div`,{className:`row`,children:nullArray(e).map((e,o)=>{let d=n[u][o];return(0,import_jsx_runtime.jsx)(MemoPlot,{experience:t,fieldMode:a,hoveredPlot:s,hoveredPlotRangeSize:l,plotContent:d,setHoveredPlot:m,x:o,y:u},o)})},u))}),d?(0,import_jsx_runtime.jsx)(FormControl,{variant:`standard`,component:`fieldset`,children:(0,import_jsx_runtime.jsx)(FormGroup,{children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:u,onChange:o,name:`is-combine-enabled`}),label:`Automatically harvest crops at the start of every day`})})}):null]});FieldContent.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,hoveredPlot:import_prop_types$1.object.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,purchasedCombine:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired,setHoveredPlot:import_prop_types$1.func.isRequired};var adjustableRangeFieldModes=new Set([CLEANUP$1,FERTILIZE,HARVEST$1,MINE$1,PLANT$1,WATER$1]),RangeSliderValueLabelComponent=({children:e,open:t,value:n})=>(0,import_jsx_runtime.jsx)(Tooltip,{open:t,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{children:[`Range: `,n,` x `,n]}),children:e}),Field=e=>{let{field:t,fieldMode:n,handleFieldActionRangeChange:a,hoveredPlotRangeSize:o,inventory:s,inventoryLimit:l,isMenuOpen:u=!0,purchasedField:d}=e,[f,m]=(0,import_react$24.useState)({x:null,y:null}),[h,v]=(0,import_react$24.useState)(1),[y,b]=(0,import_react$24.useState)(o);(0,import_react$24.useEffect)(()=>{b(o)},[o]);let x=e=>{b(e),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:fieldKeyMap}),(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Field`,{"cleanup-mode":n===CLEANUP$1,"fertilize-mode":n===FERTILIZE,"harvest-mode":n===HARVEST$1,"mine-mode":n===MINE$1,"is-inventory-full":!doesInventorySpaceRemain({inventory:s,inventoryLimit:l}),"plant-mode":n===PLANT$1,"set-scarecrow-mode":n===SET_SCARECROW,"set-sprinkler-mode":n===SET_SPRINKLER,"water-mode":n===WATER$1}),"data-purchased-field":d,"data-testid":`field`,sx:e=>({margin:`0 auto`,"@media (orientation: portrait)":{marginBottom:`10.5em`,[`@media (min-width: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (6/10) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (8/12) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (10/16) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (12/18) - ${obscuringPortraitUiVerticalOffset}px)`}}},"@media (orientation: landscape)":{margin:`5em auto`,[`@media (min-height: ${breakpoints.largePhone}px)`]:{marginTop:`auto`},[`@media (min-height: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (10/6) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (12/8) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (16/10) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (18/12) - ${obscuringLandscapeUiVerticalOffset}px)`}}},"& .row":{display:`flex`,flexDirection:`row`,width:`100%`,"@media (orientation: landscape)":{flexDirection:`column-reverse`}},"& .react-transform-component":{overflow:`visible`,width:`auto`},"& .react-transform-element":{display:`block`,height:`auto`,width:`auto`,"& .row-wrapper":{backgroundImage:`url(${dirt_default})`,border:`solid 1px #000`,backgroundRepeat:`repeat`,backgroundSize:`calc(100% * (1 / 6) * 1.5)`,imageRendering:`pixelated`,display:`flex`,flexDirection:`column`,"@media (orientation: landscape)":{flexDirection:`row`,marginRight:layout.fieldSpaceForRightSideControls}}},'&[data-purchased-field="1"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 8) * 1.5)`},'&[data-purchased-field="2"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 10) * 1.5)`},'&[data-purchased-field="3"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 12) * 1.5)`},"& .slider-wrapper":{background:`rgba(128, 128, 128, 0.5)`,borderRadius:`2em`,bottom:`7.5em`,left:u?`calc(50vw + ${layout.sidebarWidth} / 2)`:`50%`,padding:`0 1em`,position:`fixed`,transform:`translateX(-50%)`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:`250px`,"@media (orientation: portrait)":{bottom:`13.5em`,display:u?`none`:void 0}},"& .zoom-controls":{position:`fixed`,display:`flex`,flexDirection:`column`,bottom:`1em`,"@media (orientation: portrait)":{display:u?`none`:void 0},"&.zoom-in-wrapper":{right:`0.5em`,"@media (orientation: portrait)":{right:`0.25em`},"@media (orientation: landscape)":{bottom:`5.5em`}},"&.zoom-out-wrapper":{"@media (orientation: portrait)":{left:`0.5em`},"@media (orientation: landscape)":{right:`0.5em`}},[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.25em`},"& button":{margin:`0.5em`}},"& .MuiFormControl-root":{alignItems:`center`,display:`flex`,padding:`1em 0 0`},"&.water-mode .Plot.crop:hover":{backgroundColor:colorBlueWater,cursor:`pointer`},"&.water-mode .Plot.is-in-hover-range":{backgroundColor:colorBlueWater},"&.fertilize-mode .Plot.can-be-fertilized":{backgroundColor:colorBrownFertilize,"&:hover":{cursor:`pointer`}},"&.harvest-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk,"&:hover":{cursor:`pointer`}},"&.mine-mode .Plot.can-be-mined":{backgroundColor:colorGreenOk,"&:hover":{cursor:`pointer`,borderColor:colorYellow},"&.is-in-hover-range":{borderColor:colorYellow}},"&.cleanup-mode .Plot.crop":{backgroundColor:colorYellow,cursor:`pointer`},"&.harvest-mode.is-inventory-full .Plot.crop.can-be-harvested, &.cleanup-mode.is-inventory-full .Plot.is-replantable":{backgroundColor:colorRedDanger,cursor:`not-allowed`},"&.cleanup-mode .Plot.is-replantable":{backgroundColor:colorGreenOk,cursor:`pointer`},"&.cleanup-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk,cursor:`auto`},"&.set-sprinkler-mode:hover .Plot:hover, &.set-scarecrow-mode:hover .Plot:hover":{"&.is-empty img":{cursor:`pointer`,opacity:.5},"&:not(.is-empty)":{backgroundColor:colorRedDanger,backgroundImage:`none`,cursor:`not-allowed`}},"&.set-sprinkler-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${sprinkler_default})`},"&.set-scarecrow-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${scarecrow_default})`}}),children:[(0,import_jsx_runtime.jsx)(TransformWrapper,{options:{limitToBounds:!1},reset:{animationTime:0},pan:{disabled:h<=1},zoomIn:{animationTime:0},zoomOut:{animationTime:0},onZoomChange:({scale:e})=>{e>=1&&v(e)},wheel:{disabled:!0},doubleClick:{disabled:!0},children:t=>(0,import_jsx_runtime.jsx)(FieldContentWrapper,{...t,fieldContent:(0,import_jsx_runtime.jsx)(FieldContent,{...e,hoveredPlot:f,setHoveredPlot:m})})}),adjustableRangeFieldModes.has(n)&&(0,import_jsx_runtime.jsx)(`div`,{className:`slider-wrapper`,children:(0,import_jsx_runtime.jsx)(Slider,{marks:!0,max:t.length-1,min:0,onChange:(e,t)=>x(t),step:1,value:y,valueLabelDisplay:`auto`,valueLabelFormat:e=>`${e*2+1}`,components:{ValueLabel:RangeSliderValueLabelComponent}})}),(0,import_jsx_runtime.jsx)(Consumer$9,{})]})]})};Field.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,handleFieldActionRangeChange:import_prop_types$1.func.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,isMenuOpen:import_prop_types$1.bool,purchasedCombine:import_prop_types$1.number.isRequired,purchasedField:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired};function Consumer$8(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Field,{...t,...n,...e})})}var Forest=()=>(0,import_jsx_runtime.jsx)(`div`,{children:`'welcome to da forest'`}),isDecember=()=>new Date().getMonth()===11,tslib_es6_exports=__exportAll({__addDisposableResource:()=>__addDisposableResource,__assign:()=>__assign,__asyncDelegator:()=>__asyncDelegator,__asyncGenerator:()=>__asyncGenerator,__asyncValues:()=>__asyncValues,__await:()=>__await,__awaiter:()=>__awaiter,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldIn:()=>__classPrivateFieldIn,__classPrivateFieldSet:()=>__classPrivateFieldSet,__createBinding:()=>__createBinding,__decorate:()=>__decorate,__disposeResources:()=>__disposeResources,__esDecorate:()=>__esDecorate,__exportStar:()=>__exportStar,__extends:()=>__extends,__generator:()=>__generator,__importDefault:()=>__importDefault,__importStar:()=>__importStar,__makeTemplateObject:()=>__makeTemplateObject,__metadata:()=>__metadata,__param:()=>__param,__propKey:()=>__propKey,__read:()=>__read,__rest:()=>__rest,__rewriteRelativeImportExtension:()=>__rewriteRelativeImportExtension,__runInitializers:()=>__runInitializers,__setFunctionName:()=>__setFunctionName,__spread:()=>__spread,__spreadArray:()=>__spreadArray,__spreadArrays:()=>__spreadArrays,__values:()=>__values,default:()=>tslib_es6_default});function __extends(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);extendStatics(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function __rest(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}function __decorate(e,t,n,a){var o=arguments.length,s=o<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,n):a,l;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)s=Reflect.decorate(e,t,n,a);else for(var u=e.length-1;u>=0;u--)(l=e[u])&&(s=(o<3?l(s):o>3?l(t,n,s):l(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function __param(e,t){return function(n,a){t(n,a,e)}}function __esDecorate(e,t,n,a,o,s){function l(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var u=a.kind,d=u===`getter`?`get`:u===`setter`?`set`:`value`,f=!t&&e?a.static?e:e.prototype:null,m=t||(f?Object.getOwnPropertyDescriptor(f,a.name):{}),h,v=!1,y=n.length-1;y>=0;y--){var b={};for(var x in a)b[x]=x===`access`?{}:a[x];for(var x in a.access)b.access[x]=a.access[x];b.addInitializer=function(e){if(v)throw TypeError(`Cannot add initializers after decoration has completed`);s.push(l(e||null))};var S=(0,n[y])(u===`accessor`?{get:m.get,set:m.set}:m[d],b);if(u===`accessor`){if(S===void 0)continue;if(typeof S!=`object`||!S)throw TypeError(`Object expected`);(h=l(S.get))&&(m.get=h),(h=l(S.set))&&(m.set=h),(h=l(S.init))&&o.unshift(h)}else (h=l(S))&&(u===`field`?o.unshift(h):m[d]=h)}f&&Object.defineProperty(f,a.name,m),v=!0}function __runInitializers(e,t,n){for(var a=arguments.length>2,o=0;o<t.length;o++)n=a?t[o].call(e,n):t[o].call(e);return a?n:void 0}function __propKey(e){return typeof e==`symbol`?e:`${e}`}function __setFunctionName(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,`name`,{configurable:!0,value:n?`${n} ${t}`:t})}function __metadata(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function __awaiter(e,t,n,a){function o(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,s){function l(e){try{d(a.next(e))}catch(e){s(e)}}function u(e){try{d(a.throw(e))}catch(e){s(e)}}function d(e){e.done?n(e.value):o(e.value).then(l,u)}d((a=a.apply(e,t||[])).next())})}function __generator(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,o,s,l=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return l.next=u(0),l.throw=u(1),l.return=u(2),typeof Symbol==`function`&&(l[Symbol.iterator]=function(){return this}),l;function u(e){return function(t){return d([e,t])}}function d(u){if(a)throw TypeError(`Generator is already executing.`);for(;l&&(l=0,u[0]&&(n=0)),n;)try{if(a=1,o&&(s=u[0]&2?o.return:u[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,u[1])).done)return s;switch(o=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,o=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if((s=n.trys,!(s=s.length>0&&s[s.length-1]))&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(e){u=[6,e],o=0}finally{a=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function __exportStar(e,t){for(var n in e)n!==`default`&&!Object.prototype.hasOwnProperty.call(t,n)&&__createBinding(t,e,n)}function __values(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],a=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&a>=e.length&&(e=void 0),{value:e&&e[a++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function __read(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var a=n.call(e),o,s=[],l;try{for(;(t===void 0||t-- >0)&&!(o=a.next()).done;)s.push(o.value)}catch(e){l={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(l)throw l.error}}return s}function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}function __spreadArrays(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var a=Array(e),o=0,t=0;t<n;t++)for(var s=arguments[t],l=0,u=s.length;l<u;l++,o++)a[o]=s[l];return a}function __spreadArray(e,t,n){if(n||arguments.length===2)for(var a=0,o=t.length,s;a<o;a++)(s||!(a in t))&&(s||=Array.prototype.slice.call(t,0,a),s[a]=t[a]);return e.concat(s||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var a=n.apply(e,t||[]),o,s=[];return o=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),u(`next`),u(`throw`),u(`return`,l),o[Symbol.asyncIterator]=function(){return this},o;function l(e){return function(t){return Promise.resolve(t).then(e,h)}}function u(e,t){a[e]&&(o[e]=function(t){return new Promise(function(n,a){s.push([e,t,n,a])>1||d(e,t)})},t&&(o[e]=t(o[e])))}function d(e,t){try{f(a[e](t))}catch(e){v(s[0][3],e)}}function f(e){e.value instanceof __await?Promise.resolve(e.value.v).then(m,h):v(s[0][2],e)}function m(e){d(`next`,e)}function h(e){d(`throw`,e)}function v(e,t){e(t),s.shift(),s.length&&d(s[0][0],s[0][1])}}function __asyncDelegator(e){var t,n;return t={},a(`next`),a(`throw`,function(e){throw e}),a(`return`),t[Symbol.iterator]=function(){return this},t;function a(a,o){t[a]=e[a]?function(t){return(n=!n)?{value:__await(e[a](t)),done:!1}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values==`function`?__values(e):e[Symbol.iterator](),n={},a(`next`),a(`throw`),a(`return`),n[Symbol.asyncIterator]=function(){return this},n);function a(t){n[t]=e[t]&&function(n){return new Promise(function(a,s){n=e[t](n),o(a,s,n.done,n.value)})}}function o(e,t,n,a){Promise.resolve(a).then(function(t){e({value:t,done:n})},t)}}function __makeTemplateObject(e,t){return Object.defineProperty?Object.defineProperty(e,`raw`,{value:t}):e.raw=t,e}function __importStar(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=ownKeys(e),a=0;a<n.length;a++)n[a]!==`default`&&__createBinding(t,e,n[a]);return __setModuleDefault(t,e),t}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,n,a){if(n===`a`&&!a)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!a:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?a:n===`a`?a.call(e):a?a.value:t.get(e)}function __classPrivateFieldSet(e,t,n,a,o){if(a===`m`)throw TypeError(`Private method is not writable`);if(a===`a`&&!o)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!o:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return a===`a`?o.call(e,n):o?o.value=n:t.set(e,n),n}function __classPrivateFieldIn(e,t){if(t===null||typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Cannot use 'in' operator on non-object`);return typeof e==`function`?t===e:e.has(t)}function __addDisposableResource(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var a,o;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);a=t[Symbol.asyncDispose]}if(a===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);a=t[Symbol.dispose],n&&(o=a)}if(typeof a!=`function`)throw TypeError(`Object not disposable.`);o&&(a=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:a,async:n})}else n&&e.stack.push({async:!0});return t}function __disposeResources(e){function t(t){e.error=e.hasError?new _SuppressedError(t,e.error,`An error was suppressed during disposal.`):t,e.hasError=!0}var n,a=0;function o(){for(;n=e.stack.pop();)try{if(!n.async&&a===1)return a=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var s=n.dispose.call(n.value);if(n.async)return a|=2,Promise.resolve(s).then(o,function(e){return t(e),o()})}else a|=1}catch(e){t(e)}if(a===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return o()}function __rewriteRelativeImportExtension(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,a,o,s){return n?t?`.jsx`:`.js`:a&&(!o||!s)?e:a+o+`.`+s.toLowerCase()+`js`}):e}var extendStatics,__assign,__createBinding,__setModuleDefault,ownKeys,_SuppressedError,tslib_es6_default,init_tslib_es6=__esmMin((()=>{extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},extendStatics(e,t)},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)},__createBinding=Object.create?(function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(`get`in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}):(function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),__setModuleDefault=Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t},ownKeys=function(e){return ownKeys=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},ownKeys(e)},_SuppressedError=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var a=Error(n);return a.name=`SuppressedError`,a.error=e,a.suppressed=t,a},tslib_es6_default={__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__createBinding,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension}})),require_useEffectOnce=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=require_react();e.default=function(e){t.useEffect(e,[])}})),require_useUnmount=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useEffectOnce());e.default=function(e){var t=n.useRef(e);t.current=e,a.default(function(){return function(){return t.current()}})}})),require_useRafState=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useUnmount());e.default=function(e){var t=n.useRef(0),o=n.useState(e),s=o[0],l=o[1],u=n.useCallback(function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame(function(){l(e)})},[]);return a.default(function(){cancelAnimationFrame(t.current)}),[s,u]}})),require_util=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.isNavigator=e.isBrowser=e.off=e.on=e.noop=void 0,e.noop=function(){};function t(e){var t=[...arguments].slice(1);e&&e.addEventListener&&e.addEventListener.apply(e,t)}e.on=t;function n(e){var t=[...arguments].slice(1);e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}e.off=n,e.isBrowser=typeof window<`u`,e.isNavigator=typeof navigator<`u`})),require_useWindowSize=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useRafState()),o=require_util();e.default=function(e){var t=e===void 0?{}:e,s=t.initialWidth,l=s===void 0?1/0:s,u=t.initialHeight,d=u===void 0?1/0:u,f=t.onChange,m=a.default({width:o.isBrowser?window.innerWidth:l,height:o.isBrowser?window.innerHeight:d}),h=m[0],v=m[1];return n.useEffect(function(){if(o.isBrowser){var e=function(){var e=window.innerWidth,t=window.innerHeight;v({width:e,height:t}),f&&f(e,t)};return o.on(window,`resize`,e),function(){o.off(window,`resize`,e)}}},[]),h}})),require_react_confetti_min=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a(require_react()):typeof define==`function`&&define.amd?define([`react`],a):typeof e==`object`?e.ReactConfetti=a(require_react()):n.ReactConfetti=a(n.React)})(typeof self<`u`?self:e,(function(e){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,`__esModule`,{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t||4&t&&typeof e==`object`&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,`default`,{enumerable:!0,value:e}),2&t&&typeof e!=`string`)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=2)}([function(t,n){t.exports=e},function(e,t,n){var a={linear:function(e,t,n,a){return(n-t)*e/a+t},easeInQuad:function(e,t,n,a){return(n-t)*(e/=a)*e+t},easeOutQuad:function(e,t,n,a){return-(n-t)*(e/=a)*(e-2)+t},easeInOutQuad:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e+t:-o/2*(--e*(e-2)-1)+t},easeInCubic:function(e,t,n,a){return(n-t)*(e/=a)*e*e+t},easeOutCubic:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e+1)+t},easeInOutCubic:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t},easeInQuart:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e+t},easeOutQuart:function(e,t,n,a){return-(n-t)*((e=e/a-1)*e*e*e-1)+t},easeInOutQuart:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e+t:-o/2*((e-=2)*e*e*e-2)+t},easeInQuint:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e*e+t},easeOutQuint:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e*e*e+1)+t},easeInOutQuint:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e*e+t:o/2*((e-=2)*e*e*e*e+2)+t},easeInSine:function(e,t,n,a){var o=n-t;return-o*Math.cos(e/a*(Math.PI/2))+o+t},easeOutSine:function(e,t,n,a){return(n-t)*Math.sin(e/a*(Math.PI/2))+t},easeInOutSine:function(e,t,n,a){return-(n-t)/2*(Math.cos(Math.PI*e/a)-1)+t},easeInExpo:function(e,t,n,a){return e==0?t:(n-t)*2**(10*(e/a-1))+t},easeOutExpo:function(e,t,n,a){var o=n-t;return e==a?t+o:o*(1-2**(-10*e/a))+t},easeInOutExpo:function(e,t,n,a){var o=n-t;return e===0?t:e===a?t+o:(e/=a/2)<1?o/2*2**(10*(e-1))+t:o/2*(2-2**(-10*--e))+t},easeInCirc:function(e,t,n,a){return-(n-t)*(Math.sqrt(1-(e/=a)*e)-1)+t},easeOutCirc:function(e,t,n,a){return(n-t)*Math.sqrt(1-(e=e/a-1)*e)+t},easeInOutCirc:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?-o/2*(Math.sqrt(1-e*e)-1)+t:o/2*(Math.sqrt(1-(e-=2)*e)+1)+t},easeInElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),-o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)+t)},easeOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),o*2**(-10*e)*Math.sin((e*a-l)*(2*Math.PI)/s)+u+t)},easeInOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a/2)==2?t+u:((s=0)||(s=.3*1.5*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),e<1?o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*-.5+t:o*2**(-10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*.5+u+t)},easeInBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*(e/=a)*e*((o+1)*e-o)+t},easeOutBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*((e=e/a-1)*e*((o+1)*e+o)+1)+t},easeInOutBack:function(e,t,n,a,o){var s=n-t;return o===void 0&&(o=1.70158),(e/=a/2)<1?s/2*(e*e*((1+(o*=1.525))*e-o))+t:s/2*((e-=2)*e*((1+(o*=1.525))*e+o)+2)+t},easeInBounce:function(e,t,n,o){var s=n-t;return s-a.easeOutBounce(o-e,0,s,o)+t},easeOutBounce:function(e,t,n,a){var o=n-t;return(e/=a)<1/2.75?o*(7.5625*e*e)+t:e<2/2.75?o*(7.5625*(e-=1.5/2.75)*e+.75)+t:e<2.5/2.75?o*(7.5625*(e-=2.25/2.75)*e+.9375)+t:o*(7.5625*(e-=2.625/2.75)*e+.984375)+t},easeInOutBounce:function(e,t,n,o){var s=n-t;return e<o/2?.5*a.easeInBounce(2*e,0,s,o)+t:.5*a.easeOutBounce(2*e-o,0,s,o)+.5*s+t}};e.exports=a},function(e,t,n){e.exports=n(3)},function(e,t,n){n.r(t),n.d(t,`ReactConfetti`,(function(){return J}));var a,o,s=n(0),l=n.n(s),u=n(1),d=n.n(u);function f(e,t){return e+Math.random()*(t-e)}function m(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}(function(e){e[e.Circle=0]=`Circle`,e[e.Square=1]=`Square`,e[e.Strip=2]=`Strip`})(a||={}),function(e){e[e.Positive=1]=`Positive`,e[e.Negative=-1]=`Negative`}(o||={});var v=function(){function e(t,n,a,s){(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),h(this,`context`,void 0),h(this,`radius`,void 0),h(this,`x`,void 0),h(this,`y`,void 0),h(this,`w`,void 0),h(this,`h`,void 0),h(this,`vx`,void 0),h(this,`vy`,void 0),h(this,`shape`,void 0),h(this,`angle`,void 0),h(this,`angularSpin`,void 0),h(this,`color`,void 0),h(this,`rotateY`,void 0),h(this,`rotationDirection`,void 0),h(this,`getOptions`,void 0),this.getOptions=n;var l,u,d=this.getOptions(),m=d.colors,v=d.initialVelocityX,y=d.initialVelocityY;this.context=t,this.x=a,this.y=s,this.w=f(5,20),this.h=f(5,20),this.radius=f(5,10),this.vx=typeof v==`number`?f(-v,v):f(v.min,v.max),this.vy=typeof y==`number`?f(-y,0):f(y.min,y.max),this.shape=(l=0,u=2,Math.floor(l+Math.random()*(u-l+1))),this.angle=f(0,360)*Math.PI/180,this.angularSpin=f(-.2,.2),this.color=m[Math.floor(Math.random()*m.length)],this.rotateY=f(0,1),this.rotationDirection=f(0,1)?o.Positive:o.Negative}var t,n,s;return t=e,(n=[{key:`update`,value:function(){var e=this.getOptions(),t=e.gravity,n=e.wind,s=e.friction,l=e.opacity,u=e.drawShape;this.x+=this.vx,this.y+=this.vy,this.vy+=t,this.vx+=n,this.vx*=s,this.vy*=s,this.rotateY>=1&&this.rotationDirection===o.Positive?this.rotationDirection=o.Negative:this.rotateY<=-1&&this.rotationDirection===o.Negative&&(this.rotationDirection=o.Positive);var d=.1*this.rotationDirection;if(this.rotateY+=d,this.angle+=this.angularSpin,this.context.save(),this.context.translate(this.x,this.y),this.context.rotate(this.angle),this.context.scale(1,this.rotateY),this.context.rotate(this.angle),this.context.beginPath(),this.context.fillStyle=this.color,this.context.strokeStyle=this.color,this.context.globalAlpha=l,this.context.lineCap=`round`,this.context.lineWidth=2,u&&typeof u==`function`)u.call(this,this.context);else switch(this.shape){case a.Circle:this.context.beginPath(),this.context.arc(0,0,this.radius,0,2*Math.PI),this.context.fill();break;case a.Square:this.context.fillRect(-this.w/2,-this.h/2,this.w,this.h);break;case a.Strip:this.context.fillRect(-this.w/6,-this.h/2,this.w/3,this.h)}this.context.closePath(),this.context.restore()}}])&&m(t.prototype,n),s&&m(t,s),e}();function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),y(this,`canvas`,void 0),y(this,`context`,void 0),y(this,`getOptions`,void 0),y(this,`x`,0),y(this,`y`,0),y(this,`w`,0),y(this,`h`,0),y(this,`lastNumberOfPieces`,0),y(this,`tweenInitTime`,Date.now()),y(this,`particles`,[]),y(this,`particlesGenerated`,0),y(this,`removeParticleAt`,(function(e){a.particles.splice(e,1)})),y(this,`getParticle`,(function(){var e=f(a.x,a.w+a.x),t=f(a.y,a.h+a.y);return new v(a.context,a.getOptions,e,t)})),y(this,`animate`,(function(){var e=a.canvas,t=a.context,n=a.particlesGenerated,o=a.lastNumberOfPieces,s=a.getOptions(),l=s.run,u=s.recycle,d=s.numberOfPieces,f=s.debug,m=s.tweenFunction,h=s.tweenDuration;if(!l)return!1;var v=a.particles.length,y=u?v:n,b=Date.now();if(y<d){o!==d&&(a.tweenInitTime=b,a.lastNumberOfPieces=d);for(var x=a.tweenInitTime,S=m(b-x>h?h:Math.max(0,b-x),y,d,h),C=Math.round(S-y),T=0;T<C;T++)a.particles.push(a.getParticle());a.particlesGenerated+=C}return f&&(t.font=`12px sans-serif`,t.fillStyle=`#333`,t.textAlign=`right`,t.fillText(`Particles: ${v}`,e.width-10,e.height-20)),a.particles.forEach((function(t,n){t.update(),(t.y>e.height||t.y<-100||t.x>e.width+100||t.x<-100)&&(u&&y<=d?a.particles[n]=a.getParticle():a.removeParticleAt(n))})),v>0||y<d})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.getOptions=n};function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?x(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function C(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E={width:typeof window<`u`?window.innerWidth:300,height:typeof window<`u`?window.innerHeight:200,numberOfPieces:200,friction:.99,wind:0,gravity:.1,initialVelocityX:4,initialVelocityY:10,colors:[`#f44336`,`#e91e63`,`#9c27b0`,`#673ab7`,`#3f51b5`,`#2196f3`,`#03a9f4`,`#00bcd4`,`#009688`,`#4CAF50`,`#8BC34A`,`#CDDC39`,`#FFEB3B`,`#FFC107`,`#FF9800`,`#FF5722`,`#795548`],opacity:1,debug:!1,tweenFunction:d.a.easeInOutQuad,tweenDuration:5e3,recycle:!0,run:!0},D=function(){function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),T(this,`canvas`,void 0),T(this,`context`,void 0),T(this,`_options`,void 0),T(this,`generator`,void 0),T(this,`rafId`,void 0),T(this,`setOptionsWithDefaults`,(function(e){a._options=S(S(S({},{confettiSource:{x:0,y:0,w:a.canvas.width,h:0}}),E),e),Object.assign(a,e.confettiSource)})),T(this,`update`,(function(){var e=a.options,t=e.run,n=e.onConfettiComplete,o=a.canvas,s=a.context;t&&(s.fillStyle=`white`,s.clearRect(0,0,o.width,o.height)),a.generator.animate()?a.rafId=requestAnimationFrame(a.update):(n&&typeof n==`function`&&a.generator.particlesGenerated>0&&n.call(a,a),a._options.run=!1)})),T(this,`reset`,(function(){a.generator&&a.generator.particlesGenerated>0&&(a.generator.particlesGenerated=0,a.generator.particles=[],a.generator.lastNumberOfPieces=0)})),T(this,`stop`,(function(){a.options={run:!1},a.rafId&&=(cancelAnimationFrame(a.rafId),void 0)})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.generator=new b(this.canvas,(function(){return a.options})),this.options=n,this.update()}var t,n,a;return t=e,(n=[{key:`options`,get:function(){return this._options},set:function(e){var t=this._options&&this._options.run,n=this._options&&this._options.recycle;this.setOptionsWithDefaults(e),this.generator&&(Object.assign(this.generator,this.options.confettiSource),typeof e.recycle==`boolean`&&e.recycle&&!1===n&&(this.generator.lastNumberOfPieces=this.generator.particles.length)),typeof e.run==`boolean`&&e.run&&!1===t&&this.update()}}])&&C(t.prototype,n),a&&C(t,a),e}();function O(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if(typeof Symbol<`u`&&Symbol.iterator in Object(e))return Array.from(e)}(e)||I(e)||function(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
751
|
+
`,styles={container:`TransformComponent-module_container__3NwNd`,content:`TransformComponent-module_content__TZU5O`};styleInject(css);var TransformComponent=function(e){__extends$1(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.wrapperRef=import_react$24.createRef(),t.contentRef=import_react$24.createRef(),t}return t.prototype.componentDidMount=function(){var e=this.context.nodes;e.setWrapperComponent(this.wrapperRef.current),e.setContentComponent(this.contentRef.current)},t.prototype.render=function(){var e=this.props.children,t=this.context.state,n=t.positionX,a=t.positionY,o=t.scale,s=t.options,l=s.wrapperClass,u=s.contentClass,d={WebkitTransform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`,transform:`translate(`+n+`px, `+a+`px) scale(`+o+`)`};return import_react$24.createElement(`div`,{ref:this.wrapperRef,className:`react-transform-component `+styles.container+` `+l},import_react$24.createElement(`div`,{ref:this.contentRef,className:`react-transform-element `+styles.content+` `+u,style:d},e))},t}(import_react$24.Component);TransformComponent.contextType=Context;var{CLEANUP:CLEANUP$2,HARVEST:HARVEST$2,MINE:MINE$2,WATER:WATER$2}=fieldMode,tools={wateringCan:{alt:WATERING_CAN_ALT_TEXT,fieldKey:`shift+1`,fieldMode:WATER$2,hiddenText:WATERING_CAN_HIDDEN_TEXT,id:`watering-can`,levelInfo:TOOL_LEVEL_INFO.WATERING_CAN,order:1,type:toolType.WATERING_CAN},scythe:{alt:SCYTHE_ALT_TEXT,fieldKey:`shift+2`,fieldMode:HARVEST$2,hiddenText:SCYTHE_HIDDEN_TEXT,id:`scythe`,levelInfo:TOOL_LEVEL_INFO.SCYTHE,order:2,type:toolType.SCYTHE},hoe:{alt:HOE_ALT_TEXT,fieldKey:`shift+3`,fieldMode:CLEANUP$2,hiddenText:HOE_HIDDEN_TEXT,id:`hoe`,levelInfo:TOOL_LEVEL_INFO.HOE,order:3,type:toolType.HOE},shovel:{alt:SHOVEL_ALT_TEXT,fieldKey:`shift+4`,fieldMode:MINE$2,hiddenText:SHOVEL_HIDDEN_TEXT,id:`shovel`,levelInfo:TOOL_LEVEL_INFO.SHOVEL,order:4,type:toolType.SHOVEL}},dirt_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAACA0lEQVRYR6WXwWrEMAxEHViWQr+vp576ab332F8rlKWQ4lCHeKLnkdNclk1iWRqPZpTl47WsX49Snu+ltN+n+618P35K+3XP9f3yd1Gc9rzFPf5fakL1hm6qQa8mpUVGSVQw2rUnFCXlFjcEtGJNnoqJ3ls+325rPR69skHd8VIcKmJDKLu5InaqwtygfY5I7wjRWRPRqUIiNL2vCG8IUZfQ2btkXFKj7jtxSInquo1OiSTDcbVDiCpzxL2KcKRHO0IaVJGiFv9vsopY12UOTkqSkqIiSYTr/sv7S1mrUuqZO+I6RHV9llMhh5wuOSSVi474nQ41hLIVkTg6iaAiNPnOyxRWJwGuu2ZpsHGouT0tniWmG2HoJNo+HYecV7n5iHTMjTahl9FmmmT2WLOcUVoMEcoOZWQvxMHRUHByexrKiMCuO0dGWtdq0UOEssfodIsaJhJfnIdIqd3mkWEekaDn7f6leciNpU4qRkmh28+2MHUVEZukIPQyNxeRFMwacqR7nXWMztopueMctbomFc5DjrhkD7NdGSWJX66kyKRTxInMp09NrPMyt4mbZ2YRHSF8cntqWWcDVFS2+0K3J3twycwSegqhkfEdn7nJMRsnnBiJwGSMo6+GYyLZwf64Zv/qcHOPSyKbvIsT6pALTpxxOuS6scY9uX1WUZ2+ULe6BvgFS/BfKlY4GqkAAAAASUVORK5CYIIA`,getGrowingPhase=memoize(e=>{let{itemId:t,daysWatered:n=0}=e,{cropTimeline:a=[]}=itemsMap[t],o=n+1,s=0;for(let e of a){if(o-e<=0)break;o-=e,s+=1}return s},{cacheSize:LARGEST_PURCHASABLE_FIELD_SIZE.columns*LARGEST_PURCHASABLE_FIELD_SIZE.rows}),{SEED,GROWING,GROWN}=cropLifeStage,isPlotContent=(e={})=>!!(e&&typeof e==`object`&&`itemId`in e&&`fertilizerType`in e&&e.itemId&&e.fertilizerType),isShoveledPlot=(e={})=>!!(e&&typeof e==`object`&&`isShoveled`in e&&`daysUntilClear`in e&&e.isShoveled&&e.daysUntilClear),isPlotContentACrop=e=>getPlotContentType(e)===itemType.CROP,getPlotImage=(e,t,n)=>{if(isPlotContent(e)){if(isPlotContentACrop(e)){let t;switch(getCropLifeStage(e)){case GROWN:t=e.itemId;break;case GROWING:let n=getGrowingPhase(e);t=`${e.itemId}-growing-${n}`;break;default:t=cropItemIdToSeedItemMap[e.itemId].id}return items[t]}if(getPlotContentType(e)===itemType.WEED){let e=[`yellow`,`orange`,`pink`];return items[`weed-${e[t*n%e.length]}`]}return items[e.itemId]}return isShoveledPlot(e)&&e?.oreId?items[e.oreId]:null},colorGenericHighlight=`rgba(255, 255, 255, 0.8)`,getBackgroundStyles=e=>{if(!e)return;let t=[];return e.fertilizerType===fertilizerType.STANDARD?t.push(`url(${plotStates[`fertilized-plot`]})`):e.fertilizerType===fertilizerType.RAINBOW&&t.push(`url(${plotStates[`rainbow-fertilized-plot`]})`),`wasWateredToday`in e&&e.wasWateredToday?t.push(`url(${plotStates[`watered-plot`]})`):`isShoveled`in e&&e.isShoveled&&t.push(`url(${plotStates[`shoveled-plot`]})`),t.length>0?t.join(`, `):void 0},getDaysLeftToMature=e=>e&&e.daysWatered>-1&&getPlotContentType(e)===itemType.CROP?Math.max(0,Math.ceil((getCropLifecycleDuration(e?itemsMap[e.itemId]:null)-e.daysWatered)/(1+(e.fertilizerType===fertilizerType.NONE?0:FERTILIZER_BONUS)))):null,Plot=({handlePlotClick:e,isInHoverRange:t,plotContent:n,selectedItemId:a,setHoveredPlot:o,x:s,y:l,image:u,lifeStage:d,canBeHarvested:f})=>{let m=u??getPlotImage(n??null,s??0,l??0)??``,h=d===void 0?n&&getPlotContentType(n)===itemType.CROP&&getCropLifeStage(n)||null:d,v=f===void 0?h===cropLifeStage.GROWN||n&&getPlotContentType(n)===itemType.WEED||!1:f,y=n?itemsMap[n.itemId]:null,b=getDaysLeftToMature(n??null),x=n&&getPlotContentType(n)===itemType.CROP,S=(n?.itemId?itemsMap[n.itemId]:null)?.type===itemType.SCARECROW,[C,T]=(0,import_react$24.useState)(!1),[E,D]=(0,import_react$24.useState)(!!n?.isShoveled);(0,import_react$24.useEffect)(()=>{!E&&n?.isShoveled&&n?.oreId&&T(!0)},[E,n]),(0,import_react$24.useEffect)(()=>{n===null&&(D(!1),T(!1))},[n]);let O=!!(m&&(C||n?.itemId||n&&getPlotContentType(n)===itemType.CROP)),k=null;if(y){let e=n&&getPlotContentType(n)===itemType.CROP&&getCropLifeStage(n)===cropLifeStage.SEED,t=cropItemIdToSeedItemMap[y.id];k=e?t.name:y.name}else if(C||n?.isShoveled){let e=n?.oreId,t=e?itemsMap[e]:null;k=t?SHOVELED_PLOT(``,t):SHOVELED}let j=(0,import_jsx_runtime.jsx)(Div,{className:(0,import_classnames.default)(`Plot`,{"is-empty":!n,"is-in-hover-range":t,crop:x,"can-be-harvested":v,"can-be-fertilized":x&&n?.fertilizerType===fertilizerType.NONE||S&&n?.fertilizerType===fertilizerType.NONE&&a===`rainbow-fertilizer`,"can-be-mined":!n,"is-replantable":n&&y?.isReplantable}),style:{backgroundImage:getBackgroundStyles(n??null)},onClick:()=>e?.(s??0,l??0),onMouseOver:()=>o?.({x:s??null,y:l??null}),sx:{backgroundRepeat:`no-repeat`,backgroundSize:`cover`,border:`solid 1px #000`,flexGrow:1,imageRendering:`pixelated`,"&:hover":{backgroundColor:colorGenericHighlight,cursor:`pointer`},"&.is-in-hover-range":{borderColor:colorGenericHighlight}},children:(0,import_jsx_runtime.jsx)(Img,{className:(0,import_classnames.default)(`square`,{...x&&{animated:v,heartBeat:v},...C&&{animated:!0,"was-just-shoveled":!0}}),style:{backgroundImage:O?`url(${m})`:void 0},src:pixel_default,alt:k??`Empty plot`,sx:{...squareImgSx,"&.was-just-shoveled":{animationName:`fadeAwayShoveledContent`},"@keyframes fadeAwayShoveledContent":{from:{opacity:1,transform:`translate3d(0, 0, 0) scale(1)`},to:{opacity:0,visibility:`hidden`,transform:`translate3d(0, -100%, 0) scale(0.75)`}}}})});return n?(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,placement:`top`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[k?(0,import_jsx_runtime.jsx)(Typography,{children:k}):null,x&&(0,import_jsx_runtime.jsx)(Typography,{children:b?`Days of watering to mature: ${b}`:`Ready to harvest!`})]}),children:j}):j};function Consumer$11(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Plot,{...t,...n,...e})})}var GridContext=import_react$24.createContext();init_generateUtilityClasses(),init_generateUtilityClass();function getGridUtilityClass(e){return generateUtilityClass(`MuiGrid`,e)}var SPACINGS=[0,1,2,3,4,5,6,7,8,9,10],DIRECTIONS=[`column-reverse`,`column`,`row-reverse`,`row`],WRAPS=[`nowrap`,`wrap-reverse`,`wrap`],GRID_SIZES=[`auto`,!0,1,2,3,4,5,6,7,8,9,10,11,12],gridClasses=generateUtilityClasses(`MuiGrid`,[`root`,`container`,`item`,`zeroMinWidth`,...SPACINGS.map(e=>`spacing-xs-${e}`),...DIRECTIONS.map(e=>`direction-xs-${e}`),...WRAPS.map(e=>`wrap-xs-${e}`),...GRID_SIZES.map(e=>`grid-xs-${e}`),...GRID_SIZES.map(e=>`grid-sm-${e}`),...GRID_SIZES.map(e=>`grid-md-${e}`),...GRID_SIZES.map(e=>`grid-lg-${e}`),...GRID_SIZES.map(e=>`grid-xl-${e}`)]);init_objectWithoutPropertiesLoose(),init_extends(),init_clsx(),init_styleFunctionSx(),init_composeClasses(),init_styled(),init_DefaultPropsProvider();var _excluded=[`className`,`columns`,`columnSpacing`,`component`,`container`,`direction`,`item`,`rowSpacing`,`spacing`,`wrap`,`zeroMinWidth`];function getOffset(e){let t=parseFloat(e);return`${t}${String(e).replace(String(t),``)||`px`}`}function generateGrid({theme:e,ownerState:t}){let n;return e.breakpoints.keys.reduce((a,o)=>{let s={};if(t[o]&&(n=t[o]),!n)return a;if(n===!0)s={flexBasis:0,flexGrow:1,maxWidth:`100%`};else if(n===`auto`)s={flexBasis:`auto`,flexGrow:0,flexShrink:0,maxWidth:`none`,width:`auto`};else{let l=resolveBreakpointValues({values:t.columns,breakpoints:e.breakpoints.values}),u=typeof l==`object`?l[o]:l;if(u==null)return a;let d=`${Math.round(n/u*1e8)/1e6}%`,f={};if(t.container&&t.item&&t.columnSpacing!==0){let n=e.spacing(t.columnSpacing);if(n!==`0px`){let e=`calc(${d} + ${getOffset(n)})`;f={flexBasis:e,maxWidth:e}}}s=_extends$3({flexBasis:d,flexGrow:0,maxWidth:d},f)}return e.breakpoints.values[o]===0?Object.assign(a,s):a[e.breakpoints.up(o)]=s,a},{})}function generateDirection({theme:e,ownerState:t}){let n=resolveBreakpointValues({values:t.direction,breakpoints:e.breakpoints.values});return handleBreakpoints({theme:e},n,e=>{let t={flexDirection:e};return e.indexOf(`column`)===0&&(t[`& > .${gridClasses.item}`]={maxWidth:`none`}),t})}function extractZeroValueBreakpointKeys({breakpoints:e,values:t}){let n=``;Object.keys(t).forEach(e=>{n===``&&t[e]!==0&&(n=e)});let a=Object.keys(e).sort((t,n)=>e[t]-e[n]);return a.slice(0,a.indexOf(n))}function generateRowGap({theme:e,ownerState:t}){let{container:n,rowSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{marginTop:0,[`& > .${gridClasses.item}`]:{paddingTop:0}}:{marginTop:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingTop:getOffset(s)}}})}return o}function generateColumnGap({theme:e,ownerState:t}){let{container:n,columnSpacing:a}=t,o={};if(n&&a!==0){let t=resolveBreakpointValues({values:a,breakpoints:e.breakpoints.values}),n;typeof t==`object`&&(n=extractZeroValueBreakpointKeys({breakpoints:e.breakpoints.values,values:t})),o=handleBreakpoints({theme:e},t,(t,a)=>{var o;let s=e.spacing(t);return s===`0px`?(o=n)!=null&&o.includes(a)?{}:{width:`100%`,marginLeft:0,[`& > .${gridClasses.item}`]:{paddingLeft:0}}:{width:`calc(100% + ${getOffset(s)})`,marginLeft:`-${getOffset(s)}`,[`& > .${gridClasses.item}`]:{paddingLeft:getOffset(s)}}})}return o}function resolveSpacingStyles(e,t,n={}){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[n[`spacing-xs-${String(e)}`]];let a=[];return t.forEach(t=>{let o=e[t];Number(o)>0&&a.push(n[`spacing-${t}-${String(o)}`])}),a}var GridRoot=styled$1(`div`,{name:`MuiGrid`,slot:`Root`,overridesResolver:(e,t)=>{let{ownerState:n}=e,{container:a,direction:o,item:s,spacing:l,wrap:u,zeroMinWidth:d,breakpoints:f}=n,m=[];a&&(m=resolveSpacingStyles(l,f,t));let h=[];return f.forEach(e=>{let a=n[e];a&&h.push(t[`grid-${e}-${String(a)}`])}),[t.root,a&&t.container,s&&t.item,d&&t.zeroMinWidth,...m,o!==`row`&&t[`direction-xs-${String(o)}`],u!==`wrap`&&t[`wrap-xs-${String(u)}`],...h]}})(({ownerState:e})=>_extends$3({boxSizing:`border-box`},e.container&&{display:`flex`,flexWrap:`wrap`,width:`100%`},e.item&&{margin:0},e.zeroMinWidth&&{minWidth:0},e.wrap!==`wrap`&&{flexWrap:e.wrap}),generateDirection,generateRowGap,generateColumnGap,generateGrid);function resolveSpacingClasses(e,t){if(!e||e<=0)return[];if(typeof e==`string`&&!Number.isNaN(Number(e))||typeof e==`number`)return[`spacing-xs-${String(e)}`];let n=[];return t.forEach(t=>{let a=e[t];if(Number(a)>0){let e=`spacing-${t}-${String(a)}`;n.push(e)}}),n}var useUtilityClasses=e=>{let{classes:t,container:n,direction:a,item:o,spacing:s,wrap:l,zeroMinWidth:u,breakpoints:d}=e,f=[];n&&(f=resolveSpacingClasses(s,d));let m=[];return d.forEach(t=>{let n=e[t];n&&m.push(`grid-${t}-${String(n)}`)}),composeClasses({root:[`root`,n&&`container`,o&&`item`,u&&`zeroMinWidth`,...f,a!==`row`&&`direction-xs-${String(a)}`,l!==`wrap`&&`wrap-xs-${String(l)}`,...m]},getGridUtilityClass,t)},Grid=import_react$24.forwardRef(function(e,t){let n=useDefaultProps({props:e,name:`MuiGrid`}),{breakpoints:a}=useTheme$1(),o=extendSxProp(n),{className:s,columns:l,columnSpacing:u,component:d=`div`,container:f=!1,direction:m=`row`,item:h=!1,rowSpacing:v,spacing:y=0,wrap:b=`wrap`,zeroMinWidth:x=!1}=o,S=_objectWithoutPropertiesLoose$3(o,_excluded),C=v||y,T=u||y,E=import_react$24.useContext(GridContext),D=f?l||12:E,O={},k=_extends$3({},S);a.keys.forEach(e=>{S[e]!=null&&(O[e]=S[e],delete k[e])});let j=_extends$3({},o,{columns:D,container:f,direction:m,item:h,rowSpacing:C,columnSpacing:T,wrap:b,zeroMinWidth:x,spacing:y},O,{breakpoints:a.keys}),M=useUtilityClasses(j);return(0,import_jsx_runtime.jsx)(GridContext.Provider,{value:D,children:(0,import_jsx_runtime.jsx)(GridRoot,_extends$3({ownerState:j,className:clsx$1(M.root,s),as:d,ref:t},k))})}),getTools=memoize(e=>{let t=[];for(let n of Object.values(tools))e[n.type]!==toolLevel.UNAVAILABLE&&t.push(n);return t.sort((e,t)=>e.order-t.order)}),getToolImage=e=>e.level===toolLevel.DEFAULT?tools$1[e.id]:craftedItems[`${e.id}-${e.level.toLowerCase()}`],Toolbelt=({fieldMode:e,handleFieldModeSelect:t,toolLevels:n})=>{let a=getTools(n);return(0,import_jsx_runtime.jsx)(Div,{className:`Toolbelt`,children:(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`},"& button":{flexGrow:1,margin:`0 0.5em`}},children:a.map(({alt:a,fieldMode:o,fieldKey:s,hiddenText:l,id:u,levelInfo:d,type:f})=>{let m=o===e;return(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:o,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{component:`div`,children:[(0,import_jsx_runtime.jsx)(`p`,{children:a}),(0,import_jsx_runtime.jsx)(import_react_markdown.default,{className:`markdown`,source:d[n[f]]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`(`,s,`)`]})]}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({selected:m}),color:`primary`,onClick:()=>t(o),variant:m?`contained`:`text`,sx:m?{border:`1px solid #000`,backgroundColor:`transparent`,"&:hover":{backgroundColor:`#ffffb3`}}:void 0,children:[(0,import_jsx_runtime.jsx)(Img,{className:`square ${u}`,src:pixel_default,style:{backgroundImage:`url(${getToolImage({level:n[f],id:u})})`},sx:squareImgSx,alt:a}),(0,import_jsx_runtime.jsx)(`span`,{className:`visually_hidden`,children:l})]})})})})})};Toolbelt.propTypes={fieldMode:import_prop_types$1.default.string.isRequired,handleFieldModeSelect:import_prop_types$1.default.func},Toolbelt.defaultProps={handleFieldModeSelect:noop$3,toolLevels:{}};function Consumer$10(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Toolbelt,{...t,...n,...e})})}var ItemList=({handleItemSelectClick:e,items:t,playerInventoryQuantities:n,selectedItemId:a})=>(0,import_jsx_runtime.jsx)(Div,{className:`button-array`,sx:{display:`flex`,flexFlow:`row`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{flexFlow:`column`}},children:sortItems(t).map(t=>(0,import_jsx_runtime.jsx)(Tooltip,{followCursor:!0,key:t.id,placement:`top`,title:(0,import_jsx_runtime.jsx)(Typography,{children:t.name}),children:(0,import_jsx_runtime.jsxs)(Button,{className:(0,import_classnames.default)({"is-selected":t.id===a}),color:`primary`,onClick:()=>e(t),variant:t.id===a?`contained`:`text`,sx:{padding:`0.5em`,minWidth:`3.5em`,margin:`0 0.25em`,"&.MuiButton-containedPrimary":{backgroundColor:`#ffb913`,"&:hover":{backgroundColor:`#e5a000`}},"&.MuiButton-textPrimary:hover":{backgroundColor:`#fff7e4`}},children:[(0,import_jsx_runtime.jsx)(Img,{alt:t.name,className:`square`,src:pixel_default,style:{backgroundImage:`url(${items[t.id]})`},sx:{...squareImgSx,...spriteShadowSx}}),(0,import_jsx_runtime.jsx)(P$1,{className:`quantity`,sx:{backgroundColor:`rgba(0, 0, 0, 0.5)`,borderRadius:`1em`,color:`#fff`,fontSize:`0.75em`,lineHeight:`calc(0.75em - 1px)`,minWidth:`0.5em`,padding:`0.5em`,position:`absolute`,right:`-2px`,top:`-2px`},children:integerString(n[t.id])})]})}))});ItemList.propTypes={handleItemSelectClick:import_prop_types$1.func,items:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};var QuickSelect=({fieldToolInventory:e,handleItemSelectClick:t,isMenuOpen:n=!0,playerInventoryQuantities:a,plantableCropInventory:o,selectedItemId:s})=>(0,import_jsx_runtime.jsx)(Paper,{className:`QuickSelect`,elevation:10,sx:e=>({...cardStyleSx(e),bottom:`7.5em`,left:`50%`,maxWidth:`calc(100% - 2em)`,position:`fixed`,transform:`translateX(-50%)`,"@media (orientation: landscape)":{bottom:`auto`,[`@media (max-height: ${breakpoints.largePhone}px)`]:{top:`5em`,maxWidth:`calc(100% - 12em)`,left:`calc(50% - (${layout.fieldSpaceForRightSideControls} / 2))`},[`@media (max-width: ${breakpoints.md}px)`]:{display:n?`none`:void 0}},[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{left:`auto`,maxHeight:`calc(100vh - 20em)`,minWidth:`4em`,overflow:`auto`,right:`0.75em`,top:`9em`,transform:`none`,bottom:`8em`},"@media (orientation: portrait)":{display:n?`none`:void 0},"& .MuiGrid-root":{borderRadius:`0.25em`,overflowX:`scroll`,overflowY:`hidden`,padding:`0.5em`,position:`relative`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{overflowX:`hidden`,flexDirection:`column`},"& > *":{[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{alignItems:`center`,width:`3em`}}},"& .Toolbelt":{display:`flex`,flexFlow:`column`,justifyContent:`center`},"& .MuiDivider-root":{margin:`0 0.5em`,[`@media (orientation: landscape) and (min-height: ${breakpoints.largePhone}px)`]:{margin:`0 0 1em 0`,height:`1px`,width:`100%`}}}),children:(0,import_jsx_runtime.jsxs)(Grid,{container:!0,alignItems:`center`,wrap:`nowrap`,children:[(0,import_jsx_runtime.jsx)(Consumer$10,{}),o.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:o,playerInventoryQuantities:a,selectedItemId:s})]}),e.length>0&&(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(Divider,{orientation:`vertical`,flexItem:!0}),(0,import_jsx_runtime.jsx)(ItemList,{handleItemSelectClick:t,items:e,playerInventoryQuantities:a,selectedItemId:s})]})]})});QuickSelect.propTypes={fieldToolInventory:import_prop_types$1.array.isRequired,handleItemSelectClick:import_prop_types$1.func,isMenuOpen:import_prop_types$1.bool,plantableCropInventory:import_prop_types$1.array.isRequired,playerInventoryQuantities:import_prop_types$1.object.isRequired,selectedItemId:import_prop_types$1.string.isRequired};function Consumer$9(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(QuickSelect,{...t,...n,...e})})}var colorRedDanger=`rgba(255, 0, 0, 0.5)`,colorBlueWater=`rgba(125, 245, 255, 0.6)`,colorBrownFertilize=`rgba(125, 56, 0, 0.75)`,colorGreenOk=`rgba(0, 255, 0, 0.5)`,colorYellow=`rgba(255, 255, 0, 0.75)`,obscuringPortraitUiVerticalOffset=215,obscuringLandscapeUiVerticalOffset=395,{CLEANUP:CLEANUP$1,FERTILIZE,HARVEST:HARVEST$1,MINE:MINE$1,OBSERVE,PLANT:PLANT$1,SET_SCARECROW,SET_SPRINKLER,WATER:WATER$1}=fieldMode,zoomKeyMap={zoomIn:[`=`,`plus`],zoomOut:`-`},fieldKeyMap={selectWateringCan:tools.wateringCan.fieldKey,selectScythe:tools.scythe.fieldKey,selectHoe:tools.hoe.fieldKey};tools.shovel&&(fieldKeyMap.selectShovel=tools.shovel.fieldKey);var isInHoverRange=({experience:e,fieldMode:t,hoveredPlotRangeSize:n,hoveredPlot:{x:a,y:o},x:s,y:l})=>{if(a==null||o==null||t===OBSERVE)return!1;let u=n;switch(t){case SET_SPRINKLER:u=getLevelEntitlements(levelAchieved(e)).sprinklerRange;break;case SET_SCARECROW:u=2**53-1;break;default:}let d=2*u,f=a-u,m=o-u,h=f+d,v=m+d;return s>=f&&s<=h&&l>=m&&l<=v},MemoPlot=(0,import_react$24.memo)(e=>{let{hoveredPlot:t,plotContent:n,setHoveredPlot:a,x:o,y:s}=e;return(0,import_jsx_runtime.jsx)(Consumer$11,{hoveredPlot:t,isInHoverRange:isInHoverRange(e),plotContent:n,setHoveredPlot:a,x:o,y:s})},(e,t)=>isInHoverRange(e)===isInHoverRange(t)?e.plotContent===t.plotContent&&e.hoveredPlotRangeSize===t.hoveredPlotRangeSize:!1),FieldContentWrapper=({fieldContent:e,previousScale:t,resetTransform:n,scale:a,zoomIn:o,zoomOut:s})=>((0,import_react$24.useEffect)(()=>{a===1&&t!==1&&n()},[a,t,n]),(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:zoomKeyMap,handlers:{zoomIn:o,zoomOut:s}}),(0,import_jsx_runtime.jsx)(TransformComponent,{children:e}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-in-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom In`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom In`,color:`primary`,onClick:o,children:(0,import_jsx_runtime.jsx)(import_ZoomIn.default,{})})})}),(0,import_jsx_runtime.jsx)(`div`,{className:`fab-buttons zoom-controls zoom-out-wrapper`,children:(0,import_jsx_runtime.jsx)(Tooltip,{placement:`top`,title:`Zoom Out`,children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Zoom Out`,color:`primary`,onClick:s,children:(0,import_jsx_runtime.jsx)(import_ZoomOut.default,{})})})})]}));FieldContentWrapper.propTypes={fieldContent:import_prop_types$1.element.isRequired};var FieldContent=({columns:e=0,experience:t,field:n,fieldMode:a,handleCombineEnabledChange:o,hoveredPlot:s,hoveredPlotRangeSize:l,isCombineEnabled:u,purchasedCombine:d,rows:f=0,setHoveredPlot:m})=>(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`div`,{className:`row-wrapper`,onMouseLeave:()=>m({x:null,y:null}),children:nullArray(f).map((o,u)=>(0,import_jsx_runtime.jsx)(`div`,{className:`row`,children:nullArray(e).map((e,o)=>{let d=n[u][o];return(0,import_jsx_runtime.jsx)(MemoPlot,{experience:t,fieldMode:a,hoveredPlot:s,hoveredPlotRangeSize:l,plotContent:d,setHoveredPlot:m,x:o,y:u},o)})},u))}),d?(0,import_jsx_runtime.jsx)(FormControl,{variant:`standard`,component:`fieldset`,children:(0,import_jsx_runtime.jsx)(FormGroup,{children:(0,import_jsx_runtime.jsx)(FormControlLabel,{control:(0,import_jsx_runtime.jsx)(Switch,{color:`primary`,checked:u,onChange:o,name:`is-combine-enabled`}),label:`Automatically harvest crops at the start of every day`})})}):null]});FieldContent.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,hoveredPlot:import_prop_types$1.object.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,purchasedCombine:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired,setHoveredPlot:import_prop_types$1.func.isRequired};var adjustableRangeFieldModes=new Set([CLEANUP$1,FERTILIZE,HARVEST$1,MINE$1,PLANT$1,WATER$1]),RangeSliderValueLabelComponent=({children:e,open:t,value:n})=>(0,import_jsx_runtime.jsx)(Tooltip,{open:t,placement:`top`,title:(0,import_jsx_runtime.jsxs)(Typography,{children:[`Range: `,n,` x `,n]}),children:e}),Field=e=>{let{field:t,fieldMode:n,handleFieldActionRangeChange:a,hoveredPlotRangeSize:o,inventory:s,inventoryLimit:l,isMenuOpen:u=!0,purchasedField:d}=e,[f,m]=(0,import_react$24.useState)({x:null,y:null}),[h,v]=(0,import_react$24.useState)(1),[y,b]=(0,import_react$24.useState)(o);(0,import_react$24.useEffect)(()=>{b(o)},[o]);let x=e=>{b(e),a(e)};return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{keyMap:fieldKeyMap}),(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Field`,{"cleanup-mode":n===CLEANUP$1,"fertilize-mode":n===FERTILIZE,"harvest-mode":n===HARVEST$1,"mine-mode":n===MINE$1,"is-inventory-full":!doesInventorySpaceRemain({inventory:s,inventoryLimit:l}),"plant-mode":n===PLANT$1,"set-scarecrow-mode":n===SET_SCARECROW,"set-sprinkler-mode":n===SET_SPRINKLER,"water-mode":n===WATER$1}),"data-purchased-field":d,"data-testid":`field`,sx:e=>({margin:`0 auto`,"@media (orientation: portrait)":{marginBottom:`10.5em`,[`@media (min-width: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (6/10) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (8/12) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (10/16) - ${obscuringPortraitUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (12/18) - ${obscuringPortraitUiVerticalOffset}px)`}}},"@media (orientation: landscape)":{margin:`5em auto`,[`@media (min-height: ${breakpoints.largePhone}px)`]:{marginTop:`auto`},[`@media (min-height: ${breakpoints.sm}px)`]:{'&[data-purchased-field="0"]':{maxWidth:`calc(100vh * (10/6) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="1"]':{maxWidth:`calc(100vh * (12/8) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="2"]':{maxWidth:`calc(100vh * (16/10) - ${obscuringLandscapeUiVerticalOffset}px)`},'&[data-purchased-field="3"]':{maxWidth:`calc(100vh * (18/12) - ${obscuringLandscapeUiVerticalOffset}px)`}}},"& .row":{display:`flex`,flexDirection:`row`,width:`100%`,"@media (orientation: landscape)":{flexDirection:`column-reverse`}},"& .react-transform-component":{overflow:`visible`,width:`auto`},"& .react-transform-element":{display:`block`,height:`auto`,width:`auto`,"& .row-wrapper":{backgroundImage:`url(${dirt_default})`,border:`solid 1px #000`,backgroundRepeat:`repeat`,backgroundSize:`calc(100% * (1 / 6) * 1.5)`,imageRendering:`pixelated`,display:`flex`,flexDirection:`column`,"@media (orientation: landscape)":{flexDirection:`row`,marginRight:layout.fieldSpaceForRightSideControls}}},'&[data-purchased-field="1"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 8) * 1.5)`},'&[data-purchased-field="2"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 10) * 1.5)`},'&[data-purchased-field="3"] .react-transform-element':{backgroundSize:`calc(100% * (1 / 12) * 1.5)`},"& .slider-wrapper":{alignItems:`center`,background:`rgba(128, 128, 128, 0.5)`,borderRadius:`2em`,bottom:`7.5em`,display:`flex`,left:u?`calc(50vw + ${layout.sidebarWidth} / 2)`:`50%`,padding:`0 1em`,position:`fixed`,transform:`translateX(-50%)`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:`250px`,"@media (orientation: portrait)":{bottom:`13.5em`,display:u?`none`:void 0}},"& .zoom-controls":{position:`fixed`,display:`flex`,flexDirection:`column`,bottom:`1em`,"@media (orientation: portrait)":{display:u?`none`:void 0},"&.zoom-in-wrapper":{right:`0.5em`,"@media (orientation: portrait)":{right:`0.25em`},"@media (orientation: landscape)":{bottom:`5.5em`}},"&.zoom-out-wrapper":{"@media (orientation: portrait)":{left:`0.5em`},"@media (orientation: landscape)":{right:`0.5em`}},[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.25em`},"& button":{margin:`0.5em`}},"& .MuiFormControl-root":{alignItems:`center`,display:`flex`,padding:`1em 0 0`},"&.water-mode .Plot.crop:hover":{backgroundColor:colorBlueWater,cursor:`pointer`},"&.water-mode .Plot.is-in-hover-range":{backgroundColor:colorBlueWater},"&.fertilize-mode .Plot.can-be-fertilized":{backgroundColor:colorBrownFertilize,"&:hover":{cursor:`pointer`}},"&.harvest-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk,"&:hover":{cursor:`pointer`}},"&.mine-mode .Plot.can-be-mined":{backgroundColor:colorGreenOk,"&:hover":{cursor:`pointer`,borderColor:colorYellow},"&.is-in-hover-range":{borderColor:colorYellow}},"&.cleanup-mode .Plot.crop":{backgroundColor:colorYellow,cursor:`pointer`},"&.harvest-mode.is-inventory-full .Plot.crop.can-be-harvested, &.cleanup-mode.is-inventory-full .Plot.is-replantable":{backgroundColor:colorRedDanger,cursor:`not-allowed`},"&.cleanup-mode .Plot.is-replantable":{backgroundColor:colorGreenOk,cursor:`pointer`},"&.cleanup-mode .Plot.can-be-harvested":{backgroundColor:colorGreenOk,cursor:`auto`},"&.set-sprinkler-mode:hover .Plot:hover, &.set-scarecrow-mode:hover .Plot:hover":{"&.is-empty img":{cursor:`pointer`,opacity:.5},"&:not(.is-empty)":{backgroundColor:colorRedDanger,backgroundImage:`none`,cursor:`not-allowed`}},"&.set-sprinkler-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${sprinkler_default})`},"&.set-scarecrow-mode:hover .Plot:hover.is-empty img":{backgroundImage:`url(${scarecrow_default})`}}),children:[(0,import_jsx_runtime.jsx)(TransformWrapper,{options:{limitToBounds:!1},reset:{animationTime:0},pan:{disabled:h<=1},zoomIn:{animationTime:0},zoomOut:{animationTime:0},onZoomChange:({scale:e})=>{e>=1&&v(e)},wheel:{disabled:!0},doubleClick:{disabled:!0},children:t=>(0,import_jsx_runtime.jsx)(FieldContentWrapper,{...t,fieldContent:(0,import_jsx_runtime.jsx)(FieldContent,{...e,hoveredPlot:f,setHoveredPlot:m})})}),adjustableRangeFieldModes.has(n)&&(0,import_jsx_runtime.jsx)(`div`,{className:`slider-wrapper`,children:(0,import_jsx_runtime.jsx)(Slider,{marks:!0,max:t.length-1,min:0,onChange:(e,t)=>x(t),step:1,value:y,valueLabelDisplay:`auto`,valueLabelFormat:e=>`${e*2+1}`,components:{ValueLabel:RangeSliderValueLabelComponent}})}),(0,import_jsx_runtime.jsx)(Consumer$9,{})]})]})};Field.propTypes={columns:import_prop_types$1.number.isRequired,experience:import_prop_types$1.number.isRequired,field:import_prop_types$1.array.isRequired,fieldMode:import_prop_types$1.string.isRequired,handleCombineEnabledChange:import_prop_types$1.func.isRequired,handleFieldActionRangeChange:import_prop_types$1.func.isRequired,hoveredPlotRangeSize:import_prop_types$1.number.isRequired,inventory:import_prop_types$1.array.isRequired,inventoryLimit:import_prop_types$1.number.isRequired,isCombineEnabled:import_prop_types$1.bool.isRequired,isMenuOpen:import_prop_types$1.bool,purchasedCombine:import_prop_types$1.number.isRequired,purchasedField:import_prop_types$1.number.isRequired,rows:import_prop_types$1.number.isRequired};function Consumer$8(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Field,{...t,...n,...e})})}var Forest=()=>(0,import_jsx_runtime.jsx)(`div`,{children:`'welcome to da forest'`}),isDecember=()=>new Date().getMonth()===11,tslib_es6_exports=__exportAll({__addDisposableResource:()=>__addDisposableResource,__assign:()=>__assign,__asyncDelegator:()=>__asyncDelegator,__asyncGenerator:()=>__asyncGenerator,__asyncValues:()=>__asyncValues,__await:()=>__await,__awaiter:()=>__awaiter,__classPrivateFieldGet:()=>__classPrivateFieldGet,__classPrivateFieldIn:()=>__classPrivateFieldIn,__classPrivateFieldSet:()=>__classPrivateFieldSet,__createBinding:()=>__createBinding,__decorate:()=>__decorate,__disposeResources:()=>__disposeResources,__esDecorate:()=>__esDecorate,__exportStar:()=>__exportStar,__extends:()=>__extends,__generator:()=>__generator,__importDefault:()=>__importDefault,__importStar:()=>__importStar,__makeTemplateObject:()=>__makeTemplateObject,__metadata:()=>__metadata,__param:()=>__param,__propKey:()=>__propKey,__read:()=>__read,__rest:()=>__rest,__rewriteRelativeImportExtension:()=>__rewriteRelativeImportExtension,__runInitializers:()=>__runInitializers,__setFunctionName:()=>__setFunctionName,__spread:()=>__spread,__spreadArray:()=>__spreadArray,__spreadArrays:()=>__spreadArrays,__values:()=>__values,default:()=>tslib_es6_default});function __extends(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);extendStatics(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function __rest(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var o=0,a=Object.getOwnPropertySymbols(e);o<a.length;o++)t.indexOf(a[o])<0&&Object.prototype.propertyIsEnumerable.call(e,a[o])&&(n[a[o]]=e[a[o]]);return n}function __decorate(e,t,n,a){var o=arguments.length,s=o<3?t:a===null?a=Object.getOwnPropertyDescriptor(t,n):a,l;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)s=Reflect.decorate(e,t,n,a);else for(var u=e.length-1;u>=0;u--)(l=e[u])&&(s=(o<3?l(s):o>3?l(t,n,s):l(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}function __param(e,t){return function(n,a){t(n,a,e)}}function __esDecorate(e,t,n,a,o,s){function l(e){if(e!==void 0&&typeof e!=`function`)throw TypeError(`Function expected`);return e}for(var u=a.kind,d=u===`getter`?`get`:u===`setter`?`set`:`value`,f=!t&&e?a.static?e:e.prototype:null,m=t||(f?Object.getOwnPropertyDescriptor(f,a.name):{}),h,v=!1,y=n.length-1;y>=0;y--){var b={};for(var x in a)b[x]=x===`access`?{}:a[x];for(var x in a.access)b.access[x]=a.access[x];b.addInitializer=function(e){if(v)throw TypeError(`Cannot add initializers after decoration has completed`);s.push(l(e||null))};var S=(0,n[y])(u===`accessor`?{get:m.get,set:m.set}:m[d],b);if(u===`accessor`){if(S===void 0)continue;if(typeof S!=`object`||!S)throw TypeError(`Object expected`);(h=l(S.get))&&(m.get=h),(h=l(S.set))&&(m.set=h),(h=l(S.init))&&o.unshift(h)}else (h=l(S))&&(u===`field`?o.unshift(h):m[d]=h)}f&&Object.defineProperty(f,a.name,m),v=!0}function __runInitializers(e,t,n){for(var a=arguments.length>2,o=0;o<t.length;o++)n=a?t[o].call(e,n):t[o].call(e);return a?n:void 0}function __propKey(e){return typeof e==`symbol`?e:`${e}`}function __setFunctionName(e,t,n){return typeof t==`symbol`&&(t=t.description?`[${t.description}]`:``),Object.defineProperty(e,`name`,{configurable:!0,value:n?`${n} ${t}`:t})}function __metadata(e,t){if(typeof Reflect==`object`&&typeof Reflect.metadata==`function`)return Reflect.metadata(e,t)}function __awaiter(e,t,n,a){function o(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,s){function l(e){try{d(a.next(e))}catch(e){s(e)}}function u(e){try{d(a.throw(e))}catch(e){s(e)}}function d(e){e.done?n(e.value):o(e.value).then(l,u)}d((a=a.apply(e,t||[])).next())})}function __generator(e,t){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},a,o,s,l=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return l.next=u(0),l.throw=u(1),l.return=u(2),typeof Symbol==`function`&&(l[Symbol.iterator]=function(){return this}),l;function u(e){return function(t){return d([e,t])}}function d(u){if(a)throw TypeError(`Generator is already executing.`);for(;l&&(l=0,u[0]&&(n=0)),n;)try{if(a=1,o&&(s=u[0]&2?o.return:u[0]?o.throw||((s=o.return)&&s.call(o),0):o.next)&&!(s=s.call(o,u[1])).done)return s;switch(o=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,o=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if((s=n.trys,!(s=s.length>0&&s[s.length-1]))&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(e){u=[6,e],o=0}finally{a=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function __exportStar(e,t){for(var n in e)n!==`default`&&!Object.prototype.hasOwnProperty.call(t,n)&&__createBinding(t,e,n)}function __values(e){var t=typeof Symbol==`function`&&Symbol.iterator,n=t&&e[t],a=0;if(n)return n.call(e);if(e&&typeof e.length==`number`)return{next:function(){return e&&a>=e.length&&(e=void 0),{value:e&&e[a++],done:!e}}};throw TypeError(t?`Object is not iterable.`:`Symbol.iterator is not defined.`)}function __read(e,t){var n=typeof Symbol==`function`&&e[Symbol.iterator];if(!n)return e;var a=n.call(e),o,s=[],l;try{for(;(t===void 0||t-- >0)&&!(o=a.next()).done;)s.push(o.value)}catch(e){l={error:e}}finally{try{o&&!o.done&&(n=a.return)&&n.call(a)}finally{if(l)throw l.error}}return s}function __spread(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(__read(arguments[t]));return e}function __spreadArrays(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var a=Array(e),o=0,t=0;t<n;t++)for(var s=arguments[t],l=0,u=s.length;l<u;l++,o++)a[o]=s[l];return a}function __spreadArray(e,t,n){if(n||arguments.length===2)for(var a=0,o=t.length,s;a<o;a++)(s||!(a in t))&&(s||=Array.prototype.slice.call(t,0,a),s[a]=t[a]);return e.concat(s||Array.prototype.slice.call(t))}function __await(e){return this instanceof __await?(this.v=e,this):new __await(e)}function __asyncGenerator(e,t,n){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var a=n.apply(e,t||[]),o,s=[];return o=Object.create((typeof AsyncIterator==`function`?AsyncIterator:Object).prototype),u(`next`),u(`throw`),u(`return`,l),o[Symbol.asyncIterator]=function(){return this},o;function l(e){return function(t){return Promise.resolve(t).then(e,h)}}function u(e,t){a[e]&&(o[e]=function(t){return new Promise(function(n,a){s.push([e,t,n,a])>1||d(e,t)})},t&&(o[e]=t(o[e])))}function d(e,t){try{f(a[e](t))}catch(e){v(s[0][3],e)}}function f(e){e.value instanceof __await?Promise.resolve(e.value.v).then(m,h):v(s[0][2],e)}function m(e){d(`next`,e)}function h(e){d(`throw`,e)}function v(e,t){e(t),s.shift(),s.length&&d(s[0][0],s[0][1])}}function __asyncDelegator(e){var t,n;return t={},a(`next`),a(`throw`,function(e){throw e}),a(`return`),t[Symbol.iterator]=function(){return this},t;function a(a,o){t[a]=e[a]?function(t){return(n=!n)?{value:__await(e[a](t)),done:!1}:o?o(t):t}:o}}function __asyncValues(e){if(!Symbol.asyncIterator)throw TypeError(`Symbol.asyncIterator is not defined.`);var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof __values==`function`?__values(e):e[Symbol.iterator](),n={},a(`next`),a(`throw`),a(`return`),n[Symbol.asyncIterator]=function(){return this},n);function a(t){n[t]=e[t]&&function(n){return new Promise(function(a,s){n=e[t](n),o(a,s,n.done,n.value)})}}function o(e,t,n,a){Promise.resolve(a).then(function(t){e({value:t,done:n})},t)}}function __makeTemplateObject(e,t){return Object.defineProperty?Object.defineProperty(e,`raw`,{value:t}):e.raw=t,e}function __importStar(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=ownKeys(e),a=0;a<n.length;a++)n[a]!==`default`&&__createBinding(t,e,n[a]);return __setModuleDefault(t,e),t}function __importDefault(e){return e&&e.__esModule?e:{default:e}}function __classPrivateFieldGet(e,t,n,a){if(n===`a`&&!a)throw TypeError(`Private accessor was defined without a getter`);if(typeof t==`function`?e!==t||!a:!t.has(e))throw TypeError(`Cannot read private member from an object whose class did not declare it`);return n===`m`?a:n===`a`?a.call(e):a?a.value:t.get(e)}function __classPrivateFieldSet(e,t,n,a,o){if(a===`m`)throw TypeError(`Private method is not writable`);if(a===`a`&&!o)throw TypeError(`Private accessor was defined without a setter`);if(typeof t==`function`?e!==t||!o:!t.has(e))throw TypeError(`Cannot write private member to an object whose class did not declare it`);return a===`a`?o.call(e,n):o?o.value=n:t.set(e,n),n}function __classPrivateFieldIn(e,t){if(t===null||typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Cannot use 'in' operator on non-object`);return typeof e==`function`?t===e:e.has(t)}function __addDisposableResource(e,t,n){if(t!=null){if(typeof t!=`object`&&typeof t!=`function`)throw TypeError(`Object expected.`);var a,o;if(n){if(!Symbol.asyncDispose)throw TypeError(`Symbol.asyncDispose is not defined.`);a=t[Symbol.asyncDispose]}if(a===void 0){if(!Symbol.dispose)throw TypeError(`Symbol.dispose is not defined.`);a=t[Symbol.dispose],n&&(o=a)}if(typeof a!=`function`)throw TypeError(`Object not disposable.`);o&&(a=function(){try{o.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:a,async:n})}else n&&e.stack.push({async:!0});return t}function __disposeResources(e){function t(t){e.error=e.hasError?new _SuppressedError(t,e.error,`An error was suppressed during disposal.`):t,e.hasError=!0}var n,a=0;function o(){for(;n=e.stack.pop();)try{if(!n.async&&a===1)return a=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var s=n.dispose.call(n.value);if(n.async)return a|=2,Promise.resolve(s).then(o,function(e){return t(e),o()})}else a|=1}catch(e){t(e)}if(a===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return o()}function __rewriteRelativeImportExtension(e,t){return typeof e==`string`&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(e,n,a,o,s){return n?t?`.jsx`:`.js`:a&&(!o||!s)?e:a+o+`.`+s.toLowerCase()+`js`}):e}var extendStatics,__assign,__createBinding,__setModuleDefault,ownKeys,_SuppressedError,tslib_es6_default,init_tslib_es6=__esmMin((()=>{extendStatics=function(e,t){return extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},extendStatics(e,t)},__assign=function(){return __assign=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var o in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},__assign.apply(this,arguments)},__createBinding=Object.create?(function(e,t,n,a){a===void 0&&(a=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||(`get`in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,a,o)}):(function(e,t,n,a){a===void 0&&(a=n),e[a]=t[n]}),__setModuleDefault=Object.create?(function(e,t){Object.defineProperty(e,`default`,{enumerable:!0,value:t})}):function(e,t){e.default=t},ownKeys=function(e){return ownKeys=Object.getOwnPropertyNames||function(e){var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[t.length]=n);return t},ownKeys(e)},_SuppressedError=typeof SuppressedError==`function`?SuppressedError:function(e,t,n){var a=Error(n);return a.name=`SuppressedError`,a.error=e,a.suppressed=t,a},tslib_es6_default={__extends,__assign,__rest,__decorate,__param,__esDecorate,__runInitializers,__propKey,__setFunctionName,__metadata,__awaiter,__generator,__createBinding,__exportStar,__values,__read,__spread,__spreadArrays,__spreadArray,__await,__asyncGenerator,__asyncDelegator,__asyncValues,__makeTemplateObject,__importStar,__importDefault,__classPrivateFieldGet,__classPrivateFieldSet,__classPrivateFieldIn,__addDisposableResource,__disposeResources,__rewriteRelativeImportExtension}})),require_useEffectOnce=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=require_react();e.default=function(e){t.useEffect(e,[])}})),require_useUnmount=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useEffectOnce());e.default=function(e){var t=n.useRef(e);t.current=e,a.default(function(){return function(){return t.current()}})}})),require_useRafState=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useUnmount());e.default=function(e){var t=n.useRef(0),o=n.useState(e),s=o[0],l=o[1],u=n.useCallback(function(e){cancelAnimationFrame(t.current),t.current=requestAnimationFrame(function(){l(e)})},[]);return a.default(function(){cancelAnimationFrame(t.current)}),[s,u]}})),require_util=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.isNavigator=e.isBrowser=e.off=e.on=e.noop=void 0,e.noop=function(){};function t(e){var t=[...arguments].slice(1);e&&e.addEventListener&&e.addEventListener.apply(e,t)}e.on=t;function n(e){var t=[...arguments].slice(1);e&&e.removeEventListener&&e.removeEventListener.apply(e,t)}e.off=n,e.isBrowser=typeof window<`u`,e.isNavigator=typeof navigator<`u`})),require_useWindowSize=__commonJSMin((e=>{Object.defineProperty(e,`__esModule`,{value:!0});var t=(init_tslib_es6(),__toCommonJS(tslib_es6_exports)),n=require_react(),a=t.__importDefault(require_useRafState()),o=require_util();e.default=function(e){var t=e===void 0?{}:e,s=t.initialWidth,l=s===void 0?1/0:s,u=t.initialHeight,d=u===void 0?1/0:u,f=t.onChange,m=a.default({width:o.isBrowser?window.innerWidth:l,height:o.isBrowser?window.innerHeight:d}),h=m[0],v=m[1];return n.useEffect(function(){if(o.isBrowser){var e=function(){var e=window.innerWidth,t=window.innerHeight;v({width:e,height:t}),f&&f(e,t)};return o.on(window,`resize`,e),function(){o.off(window,`resize`,e)}}},[]),h}})),require_react_confetti_min=__commonJSMin(((e,t)=>{(function(n,a){typeof e==`object`&&typeof t==`object`?t.exports=a(require_react()):typeof define==`function`&&define.amd?define([`react`],a):typeof e==`object`?e.ReactConfetti=a(require_react()):n.ReactConfetti=a(n.React)})(typeof self<`u`?self:e,(function(e){return function(e){var t={};function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,a){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:a})},n.r=function(e){typeof Symbol<`u`&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:`Module`}),Object.defineProperty(e,`__esModule`,{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t||4&t&&typeof e==`object`&&e&&e.__esModule)return e;var a=Object.create(null);if(n.r(a),Object.defineProperty(a,`default`,{enumerable:!0,value:e}),2&t&&typeof e!=`string`)for(var o in e)n.d(a,o,function(t){return e[t]}.bind(null,o));return a},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,`a`,t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=``,n(n.s=2)}([function(t,n){t.exports=e},function(e,t,n){var a={linear:function(e,t,n,a){return(n-t)*e/a+t},easeInQuad:function(e,t,n,a){return(n-t)*(e/=a)*e+t},easeOutQuad:function(e,t,n,a){return-(n-t)*(e/=a)*(e-2)+t},easeInOutQuad:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e+t:-o/2*(--e*(e-2)-1)+t},easeInCubic:function(e,t,n,a){return(n-t)*(e/=a)*e*e+t},easeOutCubic:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e+1)+t},easeInOutCubic:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e+t:o/2*((e-=2)*e*e+2)+t},easeInQuart:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e+t},easeOutQuart:function(e,t,n,a){return-(n-t)*((e=e/a-1)*e*e*e-1)+t},easeInOutQuart:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e+t:-o/2*((e-=2)*e*e*e-2)+t},easeInQuint:function(e,t,n,a){return(n-t)*(e/=a)*e*e*e*e+t},easeOutQuint:function(e,t,n,a){return(n-t)*((e=e/a-1)*e*e*e*e+1)+t},easeInOutQuint:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?o/2*e*e*e*e*e+t:o/2*((e-=2)*e*e*e*e+2)+t},easeInSine:function(e,t,n,a){var o=n-t;return-o*Math.cos(e/a*(Math.PI/2))+o+t},easeOutSine:function(e,t,n,a){return(n-t)*Math.sin(e/a*(Math.PI/2))+t},easeInOutSine:function(e,t,n,a){return-(n-t)/2*(Math.cos(Math.PI*e/a)-1)+t},easeInExpo:function(e,t,n,a){return e==0?t:(n-t)*2**(10*(e/a-1))+t},easeOutExpo:function(e,t,n,a){var o=n-t;return e==a?t+o:o*(1-2**(-10*e/a))+t},easeInOutExpo:function(e,t,n,a){var o=n-t;return e===0?t:e===a?t+o:(e/=a/2)<1?o/2*2**(10*(e-1))+t:o/2*(2-2**(-10*--e))+t},easeInCirc:function(e,t,n,a){return-(n-t)*(Math.sqrt(1-(e/=a)*e)-1)+t},easeOutCirc:function(e,t,n,a){return(n-t)*Math.sqrt(1-(e=e/a-1)*e)+t},easeInOutCirc:function(e,t,n,a){var o=n-t;return(e/=a/2)<1?-o/2*(Math.sqrt(1-e*e)-1)+t:o/2*(Math.sqrt(1-(e-=2)*e)+1)+t},easeInElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),-o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)+t)},easeOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a)==1?t+u:((s=0)||(s=.3*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),o*2**(-10*e)*Math.sin((e*a-l)*(2*Math.PI)/s)+u+t)},easeInOutElastic:function(e,t,n,a){var o,s,l,u=n-t;return l=1.70158,e===0?t:(e/=a/2)==2?t+u:((s=0)||(s=.3*1.5*a),(o=u)<Math.abs(u)?(o=u,l=s/4):l=s/(2*Math.PI)*Math.asin(u/o),e<1?o*2**(10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*-.5+t:o*2**(-10*--e)*Math.sin((e*a-l)*(2*Math.PI)/s)*.5+u+t)},easeInBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*(e/=a)*e*((o+1)*e-o)+t},easeOutBack:function(e,t,n,a,o){return o===void 0&&(o=1.70158),(n-t)*((e=e/a-1)*e*((o+1)*e+o)+1)+t},easeInOutBack:function(e,t,n,a,o){var s=n-t;return o===void 0&&(o=1.70158),(e/=a/2)<1?s/2*(e*e*((1+(o*=1.525))*e-o))+t:s/2*((e-=2)*e*((1+(o*=1.525))*e+o)+2)+t},easeInBounce:function(e,t,n,o){var s=n-t;return s-a.easeOutBounce(o-e,0,s,o)+t},easeOutBounce:function(e,t,n,a){var o=n-t;return(e/=a)<1/2.75?o*(7.5625*e*e)+t:e<2/2.75?o*(7.5625*(e-=1.5/2.75)*e+.75)+t:e<2.5/2.75?o*(7.5625*(e-=2.25/2.75)*e+.9375)+t:o*(7.5625*(e-=2.625/2.75)*e+.984375)+t},easeInOutBounce:function(e,t,n,o){var s=n-t;return e<o/2?.5*a.easeInBounce(2*e,0,s,o)+t:.5*a.easeOutBounce(2*e-o,0,s,o)+.5*s+t}};e.exports=a},function(e,t,n){e.exports=n(3)},function(e,t,n){n.r(t),n.d(t,`ReactConfetti`,(function(){return J}));var a,o,s=n(0),l=n.n(s),u=n(1),d=n.n(u);function f(e,t){return e+Math.random()*(t-e)}function m(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}(function(e){e[e.Circle=0]=`Circle`,e[e.Square=1]=`Square`,e[e.Strip=2]=`Strip`})(a||={}),function(e){e[e.Positive=1]=`Positive`,e[e.Negative=-1]=`Negative`}(o||={});var v=function(){function e(t,n,a,s){(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),h(this,`context`,void 0),h(this,`radius`,void 0),h(this,`x`,void 0),h(this,`y`,void 0),h(this,`w`,void 0),h(this,`h`,void 0),h(this,`vx`,void 0),h(this,`vy`,void 0),h(this,`shape`,void 0),h(this,`angle`,void 0),h(this,`angularSpin`,void 0),h(this,`color`,void 0),h(this,`rotateY`,void 0),h(this,`rotationDirection`,void 0),h(this,`getOptions`,void 0),this.getOptions=n;var l,u,d=this.getOptions(),m=d.colors,v=d.initialVelocityX,y=d.initialVelocityY;this.context=t,this.x=a,this.y=s,this.w=f(5,20),this.h=f(5,20),this.radius=f(5,10),this.vx=typeof v==`number`?f(-v,v):f(v.min,v.max),this.vy=typeof y==`number`?f(-y,0):f(y.min,y.max),this.shape=(l=0,u=2,Math.floor(l+Math.random()*(u-l+1))),this.angle=f(0,360)*Math.PI/180,this.angularSpin=f(-.2,.2),this.color=m[Math.floor(Math.random()*m.length)],this.rotateY=f(0,1),this.rotationDirection=f(0,1)?o.Positive:o.Negative}var t,n,s;return t=e,(n=[{key:`update`,value:function(){var e=this.getOptions(),t=e.gravity,n=e.wind,s=e.friction,l=e.opacity,u=e.drawShape;this.x+=this.vx,this.y+=this.vy,this.vy+=t,this.vx+=n,this.vx*=s,this.vy*=s,this.rotateY>=1&&this.rotationDirection===o.Positive?this.rotationDirection=o.Negative:this.rotateY<=-1&&this.rotationDirection===o.Negative&&(this.rotationDirection=o.Positive);var d=.1*this.rotationDirection;if(this.rotateY+=d,this.angle+=this.angularSpin,this.context.save(),this.context.translate(this.x,this.y),this.context.rotate(this.angle),this.context.scale(1,this.rotateY),this.context.rotate(this.angle),this.context.beginPath(),this.context.fillStyle=this.color,this.context.strokeStyle=this.color,this.context.globalAlpha=l,this.context.lineCap=`round`,this.context.lineWidth=2,u&&typeof u==`function`)u.call(this,this.context);else switch(this.shape){case a.Circle:this.context.beginPath(),this.context.arc(0,0,this.radius,0,2*Math.PI),this.context.fill();break;case a.Square:this.context.fillRect(-this.w/2,-this.h/2,this.w,this.h);break;case a.Strip:this.context.fillRect(-this.w/6,-this.h/2,this.w/3,this.h)}this.context.closePath(),this.context.restore()}}])&&m(t.prototype,n),s&&m(t,s),e}();function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var b=function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),y(this,`canvas`,void 0),y(this,`context`,void 0),y(this,`getOptions`,void 0),y(this,`x`,0),y(this,`y`,0),y(this,`w`,0),y(this,`h`,0),y(this,`lastNumberOfPieces`,0),y(this,`tweenInitTime`,Date.now()),y(this,`particles`,[]),y(this,`particlesGenerated`,0),y(this,`removeParticleAt`,(function(e){a.particles.splice(e,1)})),y(this,`getParticle`,(function(){var e=f(a.x,a.w+a.x),t=f(a.y,a.h+a.y);return new v(a.context,a.getOptions,e,t)})),y(this,`animate`,(function(){var e=a.canvas,t=a.context,n=a.particlesGenerated,o=a.lastNumberOfPieces,s=a.getOptions(),l=s.run,u=s.recycle,d=s.numberOfPieces,f=s.debug,m=s.tweenFunction,h=s.tweenDuration;if(!l)return!1;var v=a.particles.length,y=u?v:n,b=Date.now();if(y<d){o!==d&&(a.tweenInitTime=b,a.lastNumberOfPieces=d);for(var x=a.tweenInitTime,S=m(b-x>h?h:Math.max(0,b-x),y,d,h),C=Math.round(S-y),T=0;T<C;T++)a.particles.push(a.getParticle());a.particlesGenerated+=C}return f&&(t.font=`12px sans-serif`,t.fillStyle=`#333`,t.textAlign=`right`,t.fillText(`Particles: ${v}`,e.width-10,e.height-20)),a.particles.forEach((function(t,n){t.update(),(t.y>e.height||t.y<-100||t.x>e.width+100||t.x<-100)&&(u&&y<=d?a.particles[n]=a.getParticle():a.removeParticleAt(n))})),v>0||y<d})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.getOptions=n};function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?x(Object(n),!0).forEach((function(t){T(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function C(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function T(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var E={width:typeof window<`u`?window.innerWidth:300,height:typeof window<`u`?window.innerHeight:200,numberOfPieces:200,friction:.99,wind:0,gravity:.1,initialVelocityX:4,initialVelocityY:10,colors:[`#f44336`,`#e91e63`,`#9c27b0`,`#673ab7`,`#3f51b5`,`#2196f3`,`#03a9f4`,`#00bcd4`,`#009688`,`#4CAF50`,`#8BC34A`,`#CDDC39`,`#FFEB3B`,`#FFC107`,`#FF9800`,`#FF5722`,`#795548`],opacity:1,debug:!1,tweenFunction:d.a.easeInOutQuad,tweenDuration:5e3,recycle:!0,run:!0},D=function(){function e(t,n){var a=this;(function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)})(this,e),T(this,`canvas`,void 0),T(this,`context`,void 0),T(this,`_options`,void 0),T(this,`generator`,void 0),T(this,`rafId`,void 0),T(this,`setOptionsWithDefaults`,(function(e){a._options=S(S(S({},{confettiSource:{x:0,y:0,w:a.canvas.width,h:0}}),E),e),Object.assign(a,e.confettiSource)})),T(this,`update`,(function(){var e=a.options,t=e.run,n=e.onConfettiComplete,o=a.canvas,s=a.context;t&&(s.fillStyle=`white`,s.clearRect(0,0,o.width,o.height)),a.generator.animate()?a.rafId=requestAnimationFrame(a.update):(n&&typeof n==`function`&&a.generator.particlesGenerated>0&&n.call(a,a),a._options.run=!1)})),T(this,`reset`,(function(){a.generator&&a.generator.particlesGenerated>0&&(a.generator.particlesGenerated=0,a.generator.particles=[],a.generator.lastNumberOfPieces=0)})),T(this,`stop`,(function(){a.options={run:!1},a.rafId&&=(cancelAnimationFrame(a.rafId),void 0)})),this.canvas=t;var o=this.canvas.getContext(`2d`);if(!o)throw Error(`Could not get canvas context`);this.context=o,this.generator=new b(this.canvas,(function(){return a.options})),this.options=n,this.update()}var t,n,a;return t=e,(n=[{key:`options`,get:function(){return this._options},set:function(e){var t=this._options&&this._options.run,n=this._options&&this._options.recycle;this.setOptionsWithDefaults(e),this.generator&&(Object.assign(this.generator,this.options.confettiSource),typeof e.recycle==`boolean`&&e.recycle&&!1===n&&(this.generator.lastNumberOfPieces=this.generator.particles.length)),typeof e.run==`boolean`&&e.run&&!1===t&&this.update()}}])&&C(t.prototype,n),a&&C(t,a),e}();function O(e){return function(e){if(Array.isArray(e))return L(e)}(e)||function(e){if(typeof Symbol<`u`&&Symbol.iterator in Object(e))return Array.from(e)}(e)||I(e)||function(){throw TypeError(`Invalid attempt to spread non-iterable instance.
|
|
752
752
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function k(e){return(k=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e})(e)}function j(){return(j=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(this,arguments)}function M(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?M(Object(n),!0).forEach((function(t){G(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function F(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(!(typeof Symbol>`u`||!(Symbol.iterator in Object(e)))){var n=[],a=!0,o=!1,s=void 0;try{for(var l,u=e[Symbol.iterator]();!(a=(l=u.next()).done)&&(n.push(l.value),!t||n.length!==t);a=!0);}catch(e){o=!0,s=e}finally{try{a||u.return==null||u.return()}finally{if(o)throw s}}return n}}(e,t)||I(e,t)||function(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
753
753
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function I(e,t){if(e){if(typeof e==`string`)return L(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`?Array.from(e):n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L(e,t):void 0}}function L(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function R(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function z(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,`value`in a&&(a.writable=!0),Object.defineProperty(e,a.key,a)}}function B(e,t){return(B=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function V(e){var t=function(){if(typeof Reflect>`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch{return!1}}();return function(){var n,a=W(e);if(t){var o=W(this).constructor;n=Reflect.construct(a,arguments,o)}else n=a.apply(this,arguments);return H(this,n)}}function H(e,t){return!t||k(t)!==`object`&&typeof t!=`function`?U(e):t}function U(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function W(e){return(W=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function G(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ee=l.a.createRef(),K=function(e){(function(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&B(e,t)})(s,e);var t,n,a,o=V(s);function s(e){var t;R(this,s);var n=[...arguments].slice(1);return G(U(t=o.call.apply(o,[this,e].concat(n))),`canvas`,l.a.createRef()),G(U(t),`confetti`,void 0),t.canvas=e.canvasRef||ee,t}return t=s,(n=[{key:`componentDidMount`,value:function(){if(this.canvas.current){var e=q(this.props)[0];this.confetti=new D(this.canvas.current,e)}}},{key:`componentDidUpdate`,value:function(){var e=q(this.props)[0];this.confetti&&(this.confetti.options=e)}},{key:`componentWillUnmount`,value:function(){this.confetti&&this.confetti.stop(),this.confetti=void 0}},{key:`render`,value:function(){var e=F(q(this.props),2),t=e[0],n=e[1],a=N({zIndex:2,position:`absolute`,pointerEvents:`none`,top:0,left:0,bottom:0,right:0},n.style);return l.a.createElement(`canvas`,j({width:t.width,height:t.height,ref:this.canvas},n,{style:a}))}}])&&z(t.prototype,n),a&&z(t,a),s}(s.Component);function q(e){var t={},n={},a=[].concat(O(Object.keys(E)),[`confettiSource`,`drawShape`,`onConfettiComplete`]),o=[`canvasRef`];for(var s in e){var l=e[s];a.includes(s)?t[s]=l:o.includes(s)?o[s]=l:n[s]=l}return[t,n,{}]}G(K,`defaultProps`,N({},E)),G(K,`displayName`,`ReactConfetti`);var J=l.a.forwardRef((function(e,t){return l.a.createElement(K,j({canvasRef:t},e))}));t.default=J}]).default}))})),import_useWindowSize=__toESM(require_useWindowSize()),import_react_confetti_min=__toESM(require_react_confetti_min()),randomInt=(e,t)=>Math.floor(e+random$1()*(t-e+1)),drawSnowflake=function(e){let t=this.numPoints||randomInt(3,4)*2;this.numPoints=t;let n=this.radius*.2,a=this.radius*.8;e.beginPath(),e.moveTo(0,0-a);for(let o=1;o<t*2;o++){let s=o%2==0?a:n,l=s*Math.sin(o*Math.PI/t),u=-1*s*Math.cos(o*Math.PI/t);e.lineTo(l,u)}e.fill(),e.stroke(),e.closePath()},SnowBackground=()=>{let{width:e,height:t}=(0,import_useWindowSize.default)();return(0,import_jsx_runtime.jsx)(import_react_confetti_min.default,{style:{position:`fixed`},width:e,height:t,drawShape:drawSnowflake,colors:[`#FFFFFF`,`#CBDDF8`],gravity:.03,numberOfPieces:10,wind:.01})},onboardingAchievements=[achievementsMap[`plant-crop`],achievementsMap[`water-crop`],achievementsMap[`harvest-crop`],achievementsMap[`purchase-cow-pen`]],getRemainingOnboardingAchievements=memoize(e=>onboardingAchievements.filter(t=>t&&!e[t.id])),isInstallable=[`production`,`development`].includes(`production`)&&!import_window.default.matchMedia(`(display-mode: standalone)`).matches&&[`https://jeremyckahn.github.io`,`https://www.farmhand.life`,`http://localhost:3000`].includes(import_window.default.location.origin),Home=({completedAchievements:e,handleViewChangeButtonClick:t,remainingOnboardingAchievements:n=getRemainingOnboardingAchievements(e)})=>(0,import_jsx_runtime.jsxs)(Div,{className:`Home`,sx:{margin:`0 auto`,maxWidth:650,"& h1":{fontSize:`3em`,marginBottom:`1em`,textAlign:`center`},"& h1.holiday-greeting":{lineHeight:`1.25em`,color:`#fffafa`},"& p":{fontSize:`1.2em`,lineHeight:`1.3em`,marginBottom:`1em`},"& a":{fontWeight:`bold`},"& .MuiButton-containedPrimary":{display:`block`,margin:`0 auto`}},children:[isDecember()?(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(SnowBackground,{}),(0,import_jsx_runtime.jsxs)(`h1`,{className:`holiday-greeting`,children:[`Happy holidays!`,` `,(0,import_jsx_runtime.jsx)(`span`,{role:`img`,"aria-label":`Snowman`,children:`⛄️`})]})]}):(0,import_jsx_runtime.jsx)(`h1`,{children:`Welcome!`}),(0,import_jsx_runtime.jsxs)(Accordion,{children:[(0,import_jsx_runtime.jsx)(AccordionSummary,{expandIcon:(0,import_jsx_runtime.jsx)(import_ExpandMore.default,{}),children:(0,import_jsx_runtime.jsx)(`h2`,{children:`Click to read a note from the developer`})}),(0,import_jsx_runtime.jsx)(AccordionDetails,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`
|
|
754
754
|
Hi, you're playing **Farmhand**! This is an open source game project created by [Jeremy Kahn](https://github.com/jeremyckahn). The project has evolved over time and is now developed with the support of [a community of contributors](https://github.com/jeremyckahn/farmhand/blob/develop/CONTRIBUTORS.md).
|
|
@@ -836,5 +836,5 @@ Keg contents take time to reach maturity before they can be sold. After they rea
|
|
|
836
836
|
|
|
837
837
|
Kegs that contain fermented crops compound in value at a rate of ${KEG_INTEREST_RATE}% a day but have an increasing chance of spoiling.
|
|
838
838
|
|
|
839
|
-
Kegs that contain wine compound in value at a rate of ${WINE_INTEREST_RATE}% for up to ${integerString(100)} days and never spoil.`})})})})})]})};CellarInventoryTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};function getCropsAvailableToFerment(e){return Object.keys(e.items).reduce((e,t)=>{let n=getFinalCropItemFromSeedItem(itemsMap[t]);return n&&Number.isFinite(n.daysToFerment)&&e.push(n),e},[])}var FermentationRecipe=({item:e})=>{let{gameState:{inventory:t,cellarInventory:n,purchasedCellar:a},handlers:{handleMakeFermentationRecipeClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=getInventoryQuantityMap(t),d=FERMENTED_CROP_NAME`${e}`,{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0};(0,import_react$24.useEffect)(()=>{l(Math.min(getMaxYieldOfFermentationRecipe(e,t,n,f),Math.max(1,s)))},[n,f,t,e,s]);let m=s>0&&cellarService.doesCellarSpaceRemain(n,a),h=()=>{m&&o(e,s)},v=getMaxYieldOfFermentationRecipe(e,t,n,f),y=cellarService.getItemInstancesInCellar(n,e);return(0,import_jsx_runtime.jsxs)(Card,{className:`FermentationRecipe`,sx:{position:`relative`,"& .MuiCardHeader-avatar img":{width:`3em`,filter:`drop-shadow(1px 1px 2px rgba(255, 0, 131, 0.63))`}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:d,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:items[e.id],alt:d}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to ferment: `,e.daysToFerment]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,itemsMap[e.id].name,` in inventory:`,` `,integerString(u[e.id]??0)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of`,` `,itemsMap.salt.name,` `,`required: `,getSaltRequirementsForFermentationRecipe(e),` `,`(available:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:u[itemsMap.salt.id]??0,formatter:integerString}),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(y??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`make-recipe`,color:`primary`,disabled:!m||!s,onClick:h,variant:`contained`,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:h,handleUpdateNumber:l,maxQuantity:v,setQuantity:l,value:s})]})]})};FermentationRecipe.propTypes={item:import_prop_types$1.object.isRequired};var totalFermentableItems=Object.keys(fermentableItemsMap).length,FermentationRecipeList=()=>{let{gameState:{levelEntitlements:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getCropsAvailableToFerment(e),[n,a]=(0,import_react$24.useState)(``),o=n.toLowerCase().split(` `).filter(e=>e.length>0),s=t.filter(e=>{let t=e,n=`${FERMENTED_CROP_NAME}${t.name}`.toLowerCase();return o.every(e=>n.includes(e)||t.name.toLowerCase().includes(e))}),l=s.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Fermentation Recipes (`,l,` /`,` `,totalFermentableItems,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search fermentation recipes...`,onSearch:a}),s.length>0&&(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:s.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(FermentationRecipe,{item:e})},e.id))})]})};FermentationRecipeList.propTypes={};var FermentationTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(FermentationRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Some items can be fermented and become much more valuable over time.`})})})})})]});FermentationTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var getGrapesSold=e=>Object.entries(e).reduce((e,[t,n])=>{let a=itemsMap[t];return(n||0)>0&&isGrape(a)&&e.push(a),e},[]);function getWineVarietiesAvailableToMake(e){return getGrapesSold(e).map(({variety:e})=>e)}var WineRecipe=({wineVariety:e})=>{let{gameState:{cellarInventory:t,inventory:n,purchasedCellar:a},handlers:{handleMakeWineClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=grapeVarietyNameMap[e],d=grapeVarietyToGrapeItemMap[e],{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0},m=getInventoryQuantityMap(n);if((0,import_react$24.useEffect)(()=>{d&&l(Math.min(wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),Math.max(1,s)))},[t,f,d,n,s,e]),!d)return null;let h=itemsMap[d.wineId];if(!h)return null;let v=m[d.id]??0,y=m[yeast.id]??0,b=s>0&&v>=50&&cellarService.doesCellarSpaceRemain(t,a),x=!b||!s,S=cellarService.getItemInstancesInCellar(t,h),C=wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),T=()=>{b&&o(d,s)};return(0,import_jsx_runtime.jsxs)(Card,{className:`WineRecipe`,sx:{position:`relative`},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:u,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:wines[e],alt:u}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to mature:`,` `,integerString(wineService.getDaysToMature(e))]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,d.name,` required:`,` `,integerString(50),` (available:`,` `,integerString(v),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,yeast.name,` required:`,` `,integerString(getYeastRequiredForWine(e)*s),` `,`(available: `,integerString(y),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(S??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{color:`primary`,variant:`contained`,disabled:x,onClick:T,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:T,handleUpdateNumber:l,maxQuantity:C,setQuantity:l,value:s})]})]})};WineRecipe.propTypes={wineVariety:(0,import_prop_types$1.oneOf)(Object.keys(grapeVariety))};var totalGrapeVarieties=Object.keys(grapeVariety).length,WineRecipeList=()=>{let{gameState:{itemsSold:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getWineVarietiesAvailableToMake(e),[n,a]=(0,import_react$24.useState)(``),o=t.filter(e=>e.toLowerCase().includes(n.toLowerCase())),s=o.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Wine Recipes (`,s,` /`,` `,totalGrapeVarieties,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search wine varieties...`,onSearch:a}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:o.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(WineRecipe,{wineVariety:e})},e))})]})},WinemakingTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(WineRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Grapes can be made into wine. Wine becomes very valuable in time and never spoils.`})})})})})]});WinemakingTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var Cellar=()=>{let[e,t]=(0,import_react$24.useState)(0);return(0,import_jsx_runtime.jsxs)(Div,{className:`Cellar`,sx:centerTabsSx,children:[(0,import_jsx_runtime.jsxs)(Tabs,{value:e,onChange:(e,n)=>t(n),"aria-label":`Cellar tabs`,children:[(0,import_jsx_runtime.jsx)(Tab,{label:`Cellar Inventory`,...a11yProps(0)}),(0,import_jsx_runtime.jsx)(Tab,{label:`Fermentation`,...a11yProps(1)}),(0,import_jsx_runtime.jsx)(Tab,{label:`Winemaking`,...a11yProps(2)})]}),(0,import_jsx_runtime.jsx)(CellarInventoryTabPanel,{index:0,currentTab:e}),(0,import_jsx_runtime.jsx)(FermentationTabPanel,{index:1,currentTab:e}),(0,import_jsx_runtime.jsx)(WinemakingTabPanel,{index:2,currentTab:e})]})};Cellar.propTypes={};var brown_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAk0lEQVRoge2UoRGAMBAECZYS8HRDw5QSnxKig88gfgaxl59befPi12wZzz22idr6dp3HPEvu5UtgJXb6gb9YgCaPQG3980B9d4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNDkFVAoT2V0hGgvQ5BFQLExkd4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNMsLvBG5ypkvoIETAAAAAElFTkSuQmCC`,jack_o_lantern_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAA4UlEQVRYR+2VMQ6DMAxFYe4R2LsxdOopuHBv0KkDW/ceoTOVK/0qhICd8K0wNBNyIv3nH5PfTrdhaiqu9vAAz9f768+5O7n4tOmAt7h0tAAIRde+mVbMACCoCTCv4wcQio+Pe9NfrjOOuMaCWACIEBYgUjU3AM1+7LsCVL0CdBjaLrV4JugOiEjVvwCdhxDoMlWzzop27vhZoHWwd//vgLsDWqK6AmjiyTjeO1S5cU51oOQhowGUxjkdIDfO6QDWGcIz7wKQE+cuAOKCNc5pAKVxTgWIISxxTgewDiHOVQf4AHx92LXFZzetAAAAAElFTkSuQmCC`,winter_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAQdJREFUeJztmcERgyAUBZ9pIjVRUa5UldT0K/BITnhKZpgYXYG3Bei6oyCwxFrKPb9EEznpTI/ISZK06PEsp931YkROcweQpBstQNMcoH4zo9EUoD78iBGaAtTR+Qqzxb/xIEgL0DgALUDTTYCjZiAPgrQAjQPQAjQOcNSFe1k3eBagBWgcgBagcYBeRuujmP4NWGIt2zQ44pbXN7aDkaucDFH4E/Cf4OQ4AC1A4wC0AI0D0AI0DkAL0DgALUDjALQAze4AkVM3hyCfmP4N8H4ALUDjALQAjQPQAjQOQAvQOAAtQDNEgD3rkSECSL+fbHstQAvQOAAtQOMAtACNA9ACFWJjNXLSG2nxQbKUEorlAAAAAElFTkSuQmCC`,yellow_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAx0lEQVRoQ+2WwQ3AIAwDYRVW6dx9dg1GKf1WlEcTAUks94maBHzGIt/taqn7aj1TKUe/nDyu59EBPjt3vMADWMMhATcEPCbMnySkhdxYyHoj2vm0kFa5WXVDApESiRaaZQVtHxLQKjerDodApOR5v5FwCMzy5O4+JLBb8X4eJoFIiYRJwNrXkvkkIFFrxb84BCIlD99CK7ys7YlzB7QKWNdhEoiUSJgErH0tmU8CErVW/ItDIFLy8C20wsvanjh3QKuAdV14Ag9MlnJUFzG78wAAAABJRU5ErkJgggAA`,lavender_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAyUlEQVRoQ+2WwRGAIAwEQw0WYf/l+LQAPzaAXwd5mAyQ5OZ8MiaB2+OGcp+1SvNdh8i2t6siEddL7wDfrcdd4QG82ZBAGAIRE+ZPEtJCYSzkvRHrfFrIqtyoui6BTIlEC42ygrUPCViVG1WHQyBT8rzfSDgERnlydR8SWK14Ow+TQKZEwiTg7WvNfBLQqDXjXxwCmZKHb6EZXrb2xLkDVgW86zAJZEokTALevtbMJwGNWjP+xSGQKXn4FprhZWtPnDtgVcC7Lj2BB3XCNohEy6k2AAAAAElFTkSuQmCC`,green_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAzUlEQVRoQ+2WwRGAIAwEoQDb8GEX/mzTpnzYhgXo10EekgkkuTmfjEng9rghb/t6p+I7ryPN01IuJ4/ruXaAz84dL/AA1nBIwA0BjwnzJwlpITcWst6IdD4tJFVOq65KIFIi0UJaVpD2IQGpclp1OAQiJc/7jYRDQMuTo/uQwGjFy3mYBCIlEiYBa1+3zCeBFrV6/ItDIFLy8C3Uw8vSnjh3QKqAdR0mgUiJhEnA2tct80mgRa0e/+IQiJQ8fAv18LK0J84dkCpgXReewAMJ+CZ83BE+2AAAAABJRU5ErkJgggAA`,grass_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABp0lEQVRoQ92Y63HDMAyD5RE6QMfLCp2qi2SODtARkmt7yTmuJIAEeHbiv+LrIyjZ8vJxbpe28/P91drbe66IZQ2gBMql//Ni8o5sZAAm+RqOtd/aUQCzLo4CsAXdYrP2rN2DAhkAZXQcvjSAI1lFjBIAVn4H0K4ADtASALaz7EkzO8V+ARydYItWD4ptrVMAJ5gz1roJ0xFyJnXGogGiclcVOasjvYl7xT4VgGPTOmKkFXAkd8S4AyD50fqoGNZvZjdbex0Ah5xsDFYVJp60B7KFZP16d4pdAJjOsu8gCaCXRO1uFE6+E28TPj1AtIOqinCEqjuqfpIcEiCiIgRAwaoVmt3GftZKAdxwvXjL6bNdsv8lj6BOKYB6wqAGWUaISYLmOBrDcqVUkiLfyN75t4lZZ9YOFauO2SEBItDyMcp+NTJFZVSlATLBoz6Za2UpANN11mb0zUQDsIlYu6g6o81uAcgUk/HpQewG4Hq50b9V2NHI2ClqHAIgA33zgSOkdMcxJij/6wMo8lb5rlWBCkSLQJKjeIy/BIASoHUHgHQfUAtEANH1K9JWO4Tg58LYAAAAAElFTkSuQmCC`,Stage=({field:e,isMenuOpen:t=!0,stageFocus:n,useAlternateEndDayButtonPosition:a=!1,viewTitle:o})=>{let s=(0,import_react$24.useRef)(null);(0,import_react$24.useEffect)(()=>{if(s.current){let e=s.current,{style:t}=e;e.scrollTop=0,t.overflow=`hidden`,setTimeout(()=>t.overflow=``,0)}},[n]);let l={[stageFocusType.HOME]:isOctober()?jack_o_lantern_bg_default:isDecember()?winter_bg_default:brown_dot_bg_default,[stageFocusType.SHOP]:yellow_dot_bg_default,[stageFocusType.WORKSHOP]:lavender_dot_bg_default,[stageFocusType.CELLAR]:green_dot_bg_default,[stageFocusType.FIELD]:grass_default,[stageFocusType.COW_PEN]:grass_default}[n];return(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Stage`,{"is-october":isOctober(),"is-december":isDecember()}),"data-stage-focus":n,role:`main`,ref:s,sx:e=>({backgroundSize:`96px`,flex:2,imageRendering:`pixelated`,marginLeft:0,overflow:`auto`,padding:`1.5em 1.5em 0`,position:`relative`,transition:e.transitions.create(`margin-left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),...l?{backgroundImage:`url(${l})`}:{},...[stageFocusType.FIELD,stageFocusType.COW_PEN].includes(n)?{backgroundSize:`30%`,[`@media (min-width: ${breakpoints.md}px)`]:{backgroundSize:`10%`}}:{},"& h3":{textAlign:`center`},"& h2":{fontSize:`1.2em`},"& .view-title":{fontSize:`2.5em`,marginBottom:`0.6em`,textAlign:`center`,[`@media (min-width: ${breakpoints.largePhone}px)`]:{display:`none`}},"& section":{padding:`0.5em 0`,[`@media (max-width: ${breakpoints.sm}px)`]:{fontSize:`1em`}},...a?{paddingTop:`4em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{paddingTop:`4.5em`}}:{},...t?{transitionProperty:`padding, margin-left`,[`@media (max-width: ${breakpoints.sm}px)`]:{padding:0},"& > *":{opacity:1,transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),[`@media (max-width: ${breakpoints.sm}px)`]:{opacity:0}}}:{marginLeft:`-${layout.sidebarWidth}`,transition:e.transitions.create(`margin-left`,{duration:e.transitions.duration.leavingScreen,easing:e.transitions.easing.sharp}),[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`-${layout.narrowSidebarWidth}px`}}}),children:[(0,import_jsx_runtime.jsx)(`h2`,{className:`view-title`,children:o}),n===stageFocusType.HOME&&(0,import_jsx_runtime.jsx)(Consumer$7,{}),n===stageFocusType.FIELD&&(0,import_jsx_runtime.jsx)(Consumer$8,{columns:e[0].length,rows:e.length}),n===stageFocusType.FOREST&&(0,import_jsx_runtime.jsx)(Forest,{}),n===stageFocusType.SHOP&&(0,import_jsx_runtime.jsx)(Consumer$4,{}),n===stageFocusType.COW_PEN&&(0,import_jsx_runtime.jsx)(Consumer$6,{}),n===stageFocusType.WORKSHOP&&(0,import_jsx_runtime.jsx)(Consumer$1,{}),n===stageFocusType.CELLAR&&(0,import_jsx_runtime.jsx)(Cellar,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]})};Stage.propTypes={field:(0,import_prop_types$1.arrayOf)(import_prop_types$1.array).isRequired,isMenuOpen:import_prop_types$1.bool,stageFocus:import_prop_types$1.string.isRequired,useAlternateEndDayButtonPosition:import_prop_types$1.bool,viewTitle:import_prop_types$1.string.isRequired};function Consumer(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Stage,{...t,...n,...e})})}var scriptRel=`modulepreload`,assetsURL=function(e,t){return new URL(e,t).href},seen={},__vitePreload=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),o=document.querySelector(`meta[property=csp-nonce]`),s=o?.nonce||o?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}a=l(t.map(t=>{if(t=assetsURL(t,n),t in seen)return;seen[t]=!0;let a=t.endsWith(`.css`),o=a?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let o=e[n];if(o.href===t&&(!a||o.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${o}`))return;let l=document.createElement(`link`);if(l.rel=a?`stylesheet`:scriptRel,a||(l.as=`script`),l.crossOrigin=``,l.href=t,s&&l.setAttribute(`nonce`,s),document.head.appendChild(l),a)return new Promise((e,n)=>{l.addEventListener(`load`,e),l.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function o(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return a.then(t=>{for(let e of t||[])e.status===`rejected`&&o(e.reason);return e().catch(o)})},autoUpdateMode=`false`,selfDestroying=`false`,auto=autoUpdateMode===`true`,autoDestroy=selfDestroying===`true`;function registerSW(e={}){let{immediate:t=!1,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,d,f,m,h=async(e=!0)=>{await f,auto||m?.()};async function v(){if(`serviceWorker`in navigator){if(d=await __vitePreload(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Cch4wiA5.js`);return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e(`./service-worker.js`,{scope:`./`,type:`classic`})).catch(e=>{u?.(e)}),!d)return;if(m=()=>{d?.messageSkipWaiting()},!autoDestroy)if(auto)d.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&(n?n():window.location.reload())}),d.addEventListener(`installed`,e=>{e.isUpdate||o?.()});else{let e=!1,t=()=>{e=!0,d?.addEventListener(`controlling`,e=>{e.isUpdate&&(n?n():window.location.reload())}),a?.()};d.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&o?.():n.isExternal?t():!e&&o?.():n.isUpdate||o?.()}),d.addEventListener(`waiting`,t)}d.register({immediate:t}).then(e=>{l?l(`./service-worker.js`,e):s?.(e)}).catch(e=>{u?.(e)})}}return f=v(),h}function useRegisterSW(e={}){let{immediate:t=!0,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,[d,f]=(0,import_react$24.useState)(!1),[m,h]=(0,import_react$24.useState)(!1),[v]=(0,import_react$24.useState)(()=>registerSW({immediate:t,onNeedReload:n,onOfflineReady(){h(!0),o?.()},onNeedRefresh(){f(!0),a?.()},onRegistered:s,onRegisteredSW:l,onRegisterError:u}));return{needRefresh:[d,f],offlineReady:[m,h],updateServiceWorker:v}}var UpdateNotifier=()=>{let{handlers:{handleGameUpdateAvailable:e}}=(0,import_react$24.useContext)(FarmhandContext),{needRefresh:[t],updateServiceWorker:n}=useRegisterSW();return(0,import_react$24.useEffect)(()=>{t&&(e(n),window.addEventListener(`beforeunload`,()=>{n(!0)}))},[t,e,n]),null},commonFetchConfig={mode:`cors`,cache:`no-cache`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},redirect:`follow`,referrerPolicy:`no-referrer`};async function getData(e=``,t={}){let n=new URLSearchParams;return Object.keys(t).forEach(e=>n.append(encodeURIComponent(e),encodeURIComponent(t[e]))),(await fetch(`${e}?${n}`,{...commonFetchConfig,method:`GET`})).json()}async function postData(e=``,t={}){return(await fetch(e,{...commonFetchConfig,method:`POST`,body:JSON.stringify(t)})).json()}var createNewField=()=>Array(10).fill(void 0).map(()=>[,,,,,,].fill(null)),createNewForest=()=>[,].fill(void 0).map(()=>[,,,,].fill(null)),doesMenuObstructStage=()=>window.innerWidth<BREAKPOINTS.MD,getAvailableShopInventory=memoize(e=>inventory.filter(({id:t})=>!(unlockableItems.hasOwnProperty(t)&&!e.items.hasOwnProperty(t)))),getPeerMetadata=e=>{let t=PEER_METADATA_STATE_KEYS.reduce((t,n)=>(t[n]=e[n],t),{});return Object.assign(t,{cowOfferedForTrade:e.cowInventory.find(({id:t})=>t===e.cowIdOfferedForTrade)}),t},sleep=e=>new Promise(t=>setTimeout(t,e)),{PLANT}=fieldMode,FarmhandService=class{static computePlayerInventory=memoize((e,t)=>e.map(({quantity:e,id:n})=>({quantity:e,...itemsMap[n],value:getItemCurrentValue(itemsMap[n],t)})));static getFieldToolInventory=memoize(e=>e.filter(({id:e})=>{let{enablesFieldMode:t}=itemsMap[e];return typeof t==`string`&&t!==PLANT}).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getPlantableCropInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e].isPlantableCrop).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static applyPriceEvents=(e,t,n)=>{let a={...e};return Object.keys(t).forEach(e=>{a[e]=.5}),Object.keys(n).forEach(e=>{a[e]=1.5}),a}},itemIds=Object.keys(itemsMap),getInventoryQuantities=e=>{let t={};for(let e of itemIds)t[e]=0;for(let{id:n,quantity:a}of e)t[n]=a;return t},useFarmhandNavigation=(e,t)=>({openDialogView:(0,import_react$24.useCallback)(t=>{e(e=>({...e,currentDialogView:t,isDialogViewOpen:!0}))},[e]),closeDialogView:(0,import_react$24.useCallback)(()=>{e(e=>({...e,isDialogViewOpen:!1}))},[e]),focusNextView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus);return{...e,stageFocus:t[(n+1)%t.length]}})},[e,t]),focusPreviousView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus),a=n===0?t.length-1:(n-1)%t.length;return{...e,stageFocus:t[a]}})},[e,t])}),{floor,random,sin}=Math,libName=`Trystero`,alloc=(e,t)=>Array(e).fill(void 0).map(t),charSet=`0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz`,genId=e=>alloc(e,()=>charSet[floor(random()*62)]??``).join(``),selfId=genId(20),all=Promise.all.bind(Promise),isBrowser=typeof window<`u`,{entries,fromEntries,keys,values}=Object,noOp=()=>{},candidateType=`candidate`,resetTimer=e=>(e!==null&&clearTimeout(e),null),mkErr=e=>Error(`${libName}: ${e}`),toErrorMessage=(e,t)=>e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:toJson(e??t),toError=(e,t)=>e instanceof Error?e:mkErr(toErrorMessage(e,t)),encoder=new TextEncoder,decoder=new TextDecoder,encodeBytes=e=>encoder.encode(e),decodeBytes=e=>decoder.decode(e),toHex=e=>e.reduce((e,t)=>e+t.toString(16).padStart(2,`0`),``),topicPath=(...e)=>e.join(`@`),shuffle=(e,t)=>{let n=[...e],a=()=>{let e=sin(t++)*1e4;return e-floor(e)},o=n.length;for(;o;){let e=floor(a()*o--),t=n[o];n[o]=n[e],n[e]=t}return n},getRelays=(e,t,n,a=!1)=>e.relayConfig?.urls||(a?shuffle(t,strToNum(e.appId)):t).slice(0,e.relayConfig?.redundancy??n),toJson=JSON.stringify,fromJson=e=>{try{return JSON.parse(e)}catch{throw mkErr(`failed to parse JSON: ${e}`)}},strToNum=(e,t=2**53-1)=>e.split(``).reduce((e,t)=>e+t.charCodeAt(0),0)%t,defaultRetryMs=3333,socketRetryPeriods={},reconnectionLockingPromise=null,resolver=null,pauseRelayReconnection=()=>{reconnectionLockingPromise||=new Promise(e=>{resolver=e}).finally(()=>{resolver=null,reconnectionLockingPromise=null})},resumeRelayReconnection=()=>{resolver?.()},makeSocket=(e,t)=>{let n={},a=()=>{let o=new WebSocket(e);o.onclose=()=>{if(reconnectionLockingPromise){reconnectionLockingPromise.then(a);return}socketRetryPeriods[e]??=defaultRetryMs,setTimeout(a,socketRetryPeriods[e]),socketRetryPeriods[e]*=2},o.onmessage=e=>t(String(e.data)),n.socket=o,n.url=o.url,n.ready=new Promise(t=>o.onopen=()=>{t(n),socketRetryPeriods[e]=defaultRetryMs}),n.send=e=>{o.readyState===1&&o.send(e)}};return a(),n},createRelayManager=e=>{let t={},n=new WeakMap,a=e=>{let t=n.get(e);if(!t)throw mkErr(`relay bookkeeping missing registration for relay client`);return t};return{register:(e,a)=>(t[e]=a,n.set(a,e),a),keyOf:a,scoped:()=>{let e={},t=t=>e[t]??={};return{forKey:t,forRelay:e=>t(a(e))}},getSockets:()=>fromEntries(entries(t).flatMap(([t,n])=>{let a=e(n);return a?[[t,a]]:[]}))}},watchOnline=()=>{if(isBrowser){let e=new AbortController;return addEventListener(`online`,resumeRelayReconnection,{signal:e.signal}),addEventListener(`offline`,pauseRelayReconnection,{signal:e.signal}),()=>e.abort()}return noOp},algo=`AES-GCM`,strToSha1={},pack=e=>btoa(String.fromCharCode.apply(null,Array.from(new Uint8Array(e)))),unpack=e=>{let t=atob(e);return new Uint8Array(t.length).map((e,n)=>t.charCodeAt(n)).buffer},hashWith=async(e,t)=>new Uint8Array(await crypto.subtle.digest(e,encodeBytes(t))),sha1=async e=>strToSha1[e]??=Array.from(await hashWith(`SHA-1`,e)).map(e=>e.toString(36)).join(``),genKey=async(e,t,n)=>crypto.subtle.importKey(`raw`,await crypto.subtle.digest({name:`SHA-256`},encodeBytes(`${e}:${t}:${n}`)),{name:algo},!1,[`encrypt`,`decrypt`]),deriveRoomNamespace=async(e,t)=>toHex(await hashWith(`SHA-256`,`${libName}:${e}:${t}`)),joinChar=`$`,ivJoinChar=`,`,encrypt=async(e,t)=>{let n=crypto.getRandomValues(new Uint8Array(16));return n.join(ivJoinChar)+joinChar+pack(await crypto.subtle.encrypt({name:algo,iv:n},await e,encodeBytes(t)))},decrypt=async(e,t)=>{let[n,a]=t.split(joinChar);return decodeBytes(await crypto.subtle.decrypt({name:algo,iv:new Uint8Array(n?.split(ivJoinChar).map(Number)??[])},await e,unpack(a??``)))},offerTtl=57333,offerLeaseTtlMs=18e4,poolSize=20,OfferPool=class{pool=[];pooled=new Set;leased=new Map;recycling=new Set;cleanupTimer=null;active=!1;constructor(e){this.makeOffer=e}get isActive(){return this.active}warmup(){this.pool=[],this.pooled.clear(),alloc(poolSize,this.makeOffer).forEach(e=>this.push(e)),this.active=!0,this.cleanupTimer=setInterval(()=>{this.pool=this.pool.filter(e=>e.isDead?(this.pooled.delete(e),!1):!0)},offerTtl)}push(e){e.isDead||this.pooled.has(e)||this.leased.has(e)||(this.pool.push(e),this.pooled.add(e))}shift(e){let t=[];for(;t.length<e&&this.pool.length>0;){let e=this.pool.shift();if(!e)break;this.pooled.delete(e),t.push(e)}return t}claimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e))}recycle(e){if(!(e.isDead||this.recycling.has(e))){if(e.connection.remoteDescription){e.destroy();return}if(!this.active){e.destroy();return}this.recycling.add(e),e.setHandlers({connect:noOp,close:noOp,error:noOp}),e.getOffer(!0).then(t=>{if(!t||t.type!==`offer`||e.isDead||!this.active){e.destroy();return}this.push(e)}).catch(()=>e.destroy()).finally(()=>this.recycling.delete(e))}}reclaimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e),this.recycle(e))}lease(e){this.claimLeased(e),this.leased.set(e,setTimeout(()=>{this.leased.delete(e),this.recycle(e)},offerLeaseTtlMs))}checkout(e,t,n){let a=this.shift(e),o=Math.max(0,e-a.length);o>0&&a.push(...alloc(o,this.makeOffer));let s=async(e,a=!1)=>{try{let a=await n(e);return t?(this.lease(e),{peer:e,offer:a,claim:()=>this.claimLeased(e),reclaim:()=>this.reclaimLeased(e)}):{peer:e,offer:a}}catch(t){if(this.claimLeased(e),this.pooled.delete(e),e.destroy(),!a)return s(this.makeOffer(),!0);throw t}};return all(a.map(e=>s(e)))}getOffers(e,t){return this.checkout(e,!0,t)}destroy(){this.active=!1,this.cleanupTimer&&=(clearInterval(this.cleanupTimer),null),this.pool.forEach(e=>e.destroy()),this.pool=[],this.pooled.clear(),this.leased.forEach((e,t)=>{resetTimer(e),t.destroy()}),this.leased.clear(),this.recycling.forEach(e=>e.destroy()),this.recycling.clear()}},overlapRoomPasswordErr=mkErr(`incorrect password for overlapping room`),createPasswordHandshake=(e,t,n)=>{let a=a=>hashWith(`SHA-256`,`${a}:${e}:${t}:${n}`).then(toHex),o=async(t,n,o)=>{if(!e)return;if(o){let e=genId(36);await t({__trystero_pw:`challenge`,c:e});let{data:o}=await n();if(!o||typeof o!=`object`||o.__trystero_pw!==`response`||typeof o.h!=`string`)throw overlapRoomPasswordErr;let s=await a(e);if(o.h!==s)throw overlapRoomPasswordErr;return}let{data:s}=await n();if(!s||typeof s!=`object`||s.__trystero_pw!==`challenge`||typeof s.c!=`string`)throw overlapRoomPasswordErr;await t({__trystero_pw:`response`,h:await a(s.c)})};return{run:o,compose:t=>e||t?async(e,n,a,s)=>{await o(n,a,s),await t?.(e,n,a,s)}:void 0}},iceTimeout=15e3,disconnectedCloseDelayMs=5e3,iceStateEvent=`icegatheringstatechange`,offerType=`offer`,answerType=`answer`,outOfRangePattern=/out of range/i,rewriteMdnsCandidatesToLoopback=e=>e.replace(/ (\S+\.local) (\d+) typ host/g,` 127.0.0.1 $2 typ host`),peer_default=(e,{trickleIce:t,rtcConfig:n,rtcPolyfill:a,turnConfig:o,_test_only_mdnsHostFallbackToLoopback:s})=>{let l=new(a??RTCPeerConnection)({iceServers:defaultIceServers.concat(o??[]),...n}),u={},d=[],f=[],m=t!==!1,h=[],v=[],y=!1,b=!1,x=null,S=null,C=!1,T=()=>S=resetTimer(S),E=()=>{C||(C=!0,T(),u.close?.())},D=e=>{u.signal?u.signal(e):d.push(e)},O=e=>{let t=u.signal;u.signal=n=>{t?.(n),e(n)},d.length>0&&d.splice(0).forEach(e=>u.signal?.(e))},k=e=>s?rewriteMdnsCandidatesToLoopback(e):e,j=e=>{if(!s||typeof e.candidate!=`string`)return e;let t=rewriteMdnsCandidatesToLoopback(e.candidate);return t===e.candidate?e:{...e,candidate:t}},M=e=>({type:e.localDescription?.type??offerType,sdp:k(e.localDescription?.sdp??``)}),N=()=>{let e=l.remoteDescription?.sdp;return e?e.match(/a=ice-ufrag:([^\s]+)/)?.[1]??null:null},F=()=>(l.remoteDescription?.sdp?.match(/^m=/gm)??[]).length,I=e=>{if(!l.remoteDescription)return!1;let t=F();if(typeof e.sdpMLineIndex==`number`&&t>0&&e.sdpMLineIndex>=t)return!1;let n=N();return!(n&&e.usernameFragment&&e.usernameFragment!==n)},L=async e=>{try{return await l.addIceCandidate(e),!0}catch(t){if(t instanceof Error&&outOfRangePattern.test(t.message)&&typeof e.sdpMLineIndex==`number`)return!1;throw t}},R=async()=>{if(!l.remoteDescription||h.length===0)return;let e=h.splice(0),t=[];for(let n of e){if(!I(n)){t.push(n);continue}await L(n)||t.push(n)}t.length>0&&h.push(...t)},z=async e=>{if(I(e)){await L(e)||h.push(e);return}h.push(e)},B=e=>{e.binaryType=`arraybuffer`,e.bufferedAmountLowThreshold=65535,e.onmessage=e=>{let t=e.data;u.data?u.data(t):f.push(t)},e.onopen=()=>u.connect?.(),e.onclose=E,e.onerror=({error:e})=>u.error?.(toError(e,`data channel error`))},V=async e=>{let t=null;try{await Promise.race([new Promise(t=>{let n=()=>{e.iceGatheringState===`complete`&&(e.removeEventListener(iceStateEvent,n),t())};e.addEventListener(iceStateEvent,n),n()}),new Promise(e=>{t=setTimeout(e,iceTimeout)})])}finally{resetTimer(t)}return M(e)},H=async()=>{let e=m?M(l):await V(l);return D(e),e};e?(x=l.createDataChannel(`data`),B(x)):l.ondatachannel=({channel:e})=>{x=e,B(e)};let U=async(e=!1)=>{if(l.connectionState!==`closed`)try{return y=!0,e&&(l.signalingState!==`stable`&&l.signalingState!==`closed`&&l.localDescription?.type===offerType&&await l.setLocalDescription({type:`rollback`}),typeof l.restartIce==`function`&&l.restartIce()),await l.setLocalDescription(e?await l.createOffer({iceRestart:!0}):void 0),await H()}catch(e){u.error?.(toError(e,`failed to create local offer`))}finally{y=!1}};l.onnegotiationneeded=async()=>U(!1),l.onicecandidate=({candidate:e})=>{if(!m||!e)return;let t=j(typeof e.toJSON==`function`?e.toJSON():{candidate:e.candidate,sdpMid:e.sdpMid,sdpMLineIndex:e.sdpMLineIndex,usernameFragment:e.usernameFragment});D({type:candidateType,sdp:JSON.stringify(t)})},l.onconnectionstatechange=()=>{if(l.connectionState===`connected`||l.connectionState===`connecting`){T();return}if(l.connectionState===`disconnected`){S||=setTimeout(()=>{S=null,l.connectionState===`disconnected`&&E()},disconnectedCloseDelayMs);return}(l.connectionState===`failed`||l.connectionState===`closed`)&&E()},l.ontrack=e=>{let t=e.streams[0];if(t){if(!u.track&&!u.stream){v.push({track:e.track,stream:t});return}u.track?.(e.track,t),u.stream?.(t)}},l.onremovestream=e=>u.stream?.(e.stream);let W=e?new Promise(e=>O(t=>{t.type===offerType&&e(t)})):Promise.resolve();return e&&queueMicrotask(()=>{!y&&l.signalingState===`stable`&&!l.localDescription&&l.connectionState!==`closed`&&l.onnegotiationneeded?.(new Event(`negotiationneeded`))}),{created:Date.now(),connection:l,get channel(){return x},get isDead(){return l.connectionState===`closed`},getOffer:async(t=!1)=>{if(e)return t?U(!0):l.localDescription?.type===offerType?m?M(l):V(l):W},async signal(t){if(t.type===`candidate`){try{let e=JSON.parse(t.sdp);e&&typeof e==`object`&&await z(j(e))}catch(e){u.error?.(toError(e,`failed to parse remote candidate`))}return}if(!(x?.readyState===`open`&&!t.sdp?.includes(`a=rtpmap`)))try{let n={...t,sdp:k(t.sdp)};if(t.type===offerType){if(y||l.signalingState!==`stable`&&!b){if(e)return;await all([l.setLocalDescription({type:`rollback`}),l.setRemoteDescription(n)])}else await l.setRemoteDescription(n);return await R(),await l.setLocalDescription(),await H()}if(t.type===answerType){b=!0;try{await l.setRemoteDescription(n),await R()}finally{b=!1}}}catch(e){u.error?.(toError(e,`failed to apply remote signal`))}},sendData:e=>x?.send(e),destroy:()=>{T(),x?.close(),l.close(),y=!1,b=!1,E()},setHandlers:e=>{let{signal:t,...n}=e;Object.assign(u,n),u.data&&f.length>0&&f.splice(0).forEach(e=>u.data?.(e)),t&&O(t),(u.track||u.stream)&&v.length>0&&v.splice(0).forEach(({track:e,stream:t})=>{u.track?.(e,t),u.stream?.(t)})},offerPromise:W,addStream:e=>e.getTracks().forEach(t=>l.addTrack(t,e)),removeStream:e=>l.getSenders().filter(t=>t.track&&e.getTracks().includes(t.track)).forEach(e=>l.removeTrack(e)),addTrack:(e,t)=>l.addTrack(e,t),removeTrack:e=>{let t=l.getSenders().find(t=>t.track===e);t&&l.removeTrack(t)},replaceTrack:(e,t)=>{let n=l.getSenders().find(t=>t.track===e);if(n)return n.replaceTrack(t)}}},defaultIceServers=[...alloc(3,(e,t)=>`stun:stun${t||``}.l.google.com:19302`),`stun:stun.cloudflare.com:3478`].map(e=>({urls:e})),TypedArray=Object.getPrototypeOf(Uint8Array),typeByteLimit=32,nonceByteLimit=2,typeIndex=0,nonceIndex=typeIndex+typeByteLimit,tagIndex=nonceIndex+nonceByteLimit,progressIndex=tagIndex+1,payloadIndex=progressIndex+1,chunkSize=16*2**10-payloadIndex,oneByteMax=255,twoByteMax=65535,buffLowEvent=`bufferedamountlow`,channelCloseEvent=`close`,channelErrorEvent=`error`,unloadEvent=`beforeunload`,defaultHandshakeTimeoutMs=1e4,backpressureWaitTimeoutMs=1e4,internalNs=e=>`@_`+e,beforeUnloadRoomCleanups=new Set,cleanupActiveRoomsOnBeforeUnload=()=>beforeUnloadRoomCleanups.forEach(e=>e()),registerBeforeUnloadCleanup=e=>(beforeUnloadRoomCleanups.add(e),beforeUnloadRoomCleanups.size===1&&addEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload),()=>{beforeUnloadRoomCleanups.delete(e),beforeUnloadRoomCleanups.size||removeEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload)}),toByteArray=e=>e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),toHandshakeErrorMessage=e=>{let t=toErrorMessage(e,`unknown error`);return t.startsWith(`handshake `)?t:`handshake failed: ${t}`},waitForBufferedAmountLow=(e,t=backpressureWaitTimeoutMs)=>e.readyState!==`open`||e.bufferedAmount<=e.bufferedAmountLowThreshold?Promise.resolve(e.readyState===`open`):new Promise(n=>{let a=!1,o=null,s=t=>{a||(a=!0,e.removeEventListener(buffLowEvent,l),e.removeEventListener(channelCloseEvent,u),e.removeEventListener(channelErrorEvent,u),resetTimer(o),n(t))},l=()=>s(!0),u=()=>s(!1);if(e.addEventListener(buffLowEvent,l),e.addEventListener(channelCloseEvent,u),e.addEventListener(channelErrorEvent,u),o=setTimeout(()=>s(!1),t),e.readyState!==`open`){s(!1);return}e.bufferedAmount<=e.bufferedAmountLowThreshold&&s(!0)}),room_default=(e,t,n,{onPeerHandshake:a,onHandshakeError:o,handshakeTimeoutMs:s=defaultHandshakeTimeoutMs}={})=>{let l={},u={},d={},f={},m={},h={},v={},y={},b={},x={},S=new WeakMap,C=new WeakMap,T={onPeerJoin:noOp,onPeerLeave:noOp,onPeerStream:noOp,onPeerTrack:noOp},E=noOp,D=(e,t,{includePending:n=!1}={})=>(e?Array.isArray(e)?e:[e]:keys(n?l:u)).flatMap(e=>{let a=n?l[e]:u[e];return a?[Promise.resolve(t(e,a))]:(console.warn(`${libName}: no peer with id ${e} found`),[])}),O=(e,t,n,a,o,s={})=>{let l={k:t,...s,...n===void 0?{}:{m:n}};return D(e,async(e,t)=>{await a(l,e),o(t)})},k=e=>t=>{let n=e.get(t);return n||(n=genId(20),e.set(t,n)),n},j=k(S),M=k(C),N=e=>l[e]??null,F=(e,t,n,a)=>{u[e]&&(N(e)?.__trysteroSetRemoteStreamByKey?.(t,n),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(n.id,n),T.onPeerStream(n,e,a))},I=(e,t,n,a,o)=>{u[e]&&(N(e)?.__trysteroSetRemoteTrackByKey?.(t,n,a),typeof a.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(a.id,a),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteTrackById?.(n.id,n,a),T.onPeerTrack(n,a,e,o))},L=(e,t=mkErr(`peer disconnected`))=>{let n=d[e],a=toError(t,`peer disconnected`);n&&(resetTimer(n.handshakeTimer),n.pendingHandshakePayloads.length=0,n.handshakeWaiters.splice(0).forEach(e=>e.reject(a)),delete d[e]),delete l[e],delete u[e],delete h[e],y[e]?.splice(0).forEach(e=>e.reject(a)),delete y[e],delete b[e],delete x[e]},R=(e,n,a)=>{let o=l[e];if(!o||n&&o!==n)return;let s=!!u[e];L(e,a),o.destroy(),s&&T.onPeerLeave(e),t(e)},z=(e,t={})=>{let n=m[e];if(f[e]&&n){let a=f[e].options;if(a.sendToPending!==!!t.sendToPending||a.receiveWhilePending!==!!t.receiveWhilePending)throw mkErr(`action type "${e}" cannot be redefined`);return n}if(!e)throw mkErr(`action type argument is required`);let a=encodeBytes(e);if(a.byteLength>typeByteLimit)throw mkErr(`action type string "${e}" (${a.byteLength}b) exceeds byte limit (${typeByteLimit}). Hint: choose a shorter name.`);let o={sendToPending:!!t.sendToPending,receiveWhilePending:!!t.receiveWhilePending},s=new Uint8Array(typeByteLimit);s.set(a);let d=0;return f[e]={onComplete:noOp,onProgress:noOp,setOnComplete:t=>{f[e].onComplete=t;let n=v[e];n?.length&&(delete v[e],n.forEach(({payload:e,peerId:n,metadata:a})=>t(e,n,a)))},setOnProgress:t=>{f[e].onProgress=t},send:async(e,t,n,a)=>{let f=typeof e;if(f===`undefined`)throw mkErr(`action data cannot be undefined`);let m=f!==`string`,h=e instanceof Blob,v=h||e instanceof ArrayBuffer||e instanceof TypedArray,y=n!==void 0,b=v?toByteArray(h?await e.arrayBuffer():e):encodeBytes(m?toJson(e):e),x=y?encodeBytes(toJson(n)):null,S=Math.ceil(b.byteLength/chunkSize)+ +!!y||1,C=alloc(S,(e,t)=>{let n=t===S-1,a=!!(y&&t===0),o=new Uint8Array(payloadIndex+(a?x?.byteLength??0:n?b.byteLength-chunkSize*(S-(y?2:1)):chunkSize));return o.set(s),o.set([d>>8,d&oneByteMax],nonceIndex),o.set([Number(n)|Number(a)<<1|Number(v)<<2|Number(m)<<3],tagIndex),o.set([Math.round((t+1)/S*oneByteMax)],progressIndex),o.set(y?a?x??new Uint8Array:b.subarray((t-1)*chunkSize,t*chunkSize):b.subarray(t*chunkSize,(t+1)*chunkSize),payloadIndex),o});return d=d+1&twoByteMax,await all(D(t,async(e,t)=>{let{channel:s}=t,d=0;for(;d<S;){let f=C[d];if(!f||s&&s.bufferedAmount>s.bufferedAmountLowThreshold&&!await waitForBufferedAmountLow(s))break;let m=o.sendToPending?l[e]:u[e];if(!m||m!==t)break;t.sendData(f),d++;let h=f[progressIndex]??oneByteMax;a?.(h/oneByteMax,e,n)}},{includePending:o.sendToPending})),[]},options:o},m[e]=[f[e].send,f[e].setOnComplete,f[e].setOnProgress]},B=e=>z(e),V=(e,t)=>{let n=d[e];if(!n)return;let a=new Uint8Array(t),o=decodeBytes(a.subarray(typeIndex,nonceIndex)).replaceAll(`\0`,``),s=f[o];if(!n.isActive&&!s?.options.receiveWhilePending)return;let l=(a[nonceIndex]??0)<<8|(a[nonceIndex+1]??0),u=a[tagIndex]??0,m=a[progressIndex]??0,y=a.subarray(payloadIndex),b=!!(u&1),x=!!(u&2),S=!!(u&4),C=!!(u&8);h[e]??={},h[e][o]??={};let T=h[e][o][l]??={chunks:[]};if(x?T.meta=fromJson(decodeBytes(y)):T.chunks.push(y),s?.onProgress(m/oneByteMax,e,T.meta),!b)return;let E=new Uint8Array(T.chunks.reduce((e,t)=>e+t.byteLength,0));if(T.chunks.reduce((e,t)=>(E.set(t,e),e+t.byteLength),0),delete h[e][o][l],S)s?s.onComplete(E,e,T.meta):(v[o]??=[]).push({payload:E,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}});else{let t=decodeBytes(E),n=C?fromJson(t):t;s?s.onComplete(n,e,T.meta):(v[o]??=[]).push({payload:n,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}})}},H=async()=>{await Y(``),await new Promise(e=>setTimeout(e,99)),entries(l).forEach(([e,t])=>{t.destroy(),L(e,mkErr(`room left`))}),E(),n()},[U,W]=z(internalNs(`ping`)),[G,ee]=z(internalNs(`pong`)),[K,q]=z(internalNs(`signal`)),[J,te]=z(internalNs(`stream`)),[ne,re]=z(internalNs(`track`)),[Y,ie]=z(internalNs(`leave`),{sendToPending:!0,receiveWhilePending:!0}),[ae,oe]=z(internalNs(`hsdata`),{sendToPending:!0,receiveWhilePending:!0}),[se,ce]=z(internalNs(`hsready`),{sendToPending:!0,receiveWhilePending:!0}),le=(e,t)=>{let n=d[e];!n||t&&n.peer!==t||n.isActive||!n.didLocalHandshakePass||!n.didReceiveRemoteReady||(n.isActive=!0,u[e]=n.peer,n.handshakeTimer=resetTimer(n.handshakeTimer),T.onPeerJoin(e))},ue=(e,t,n)=>{let a=d[e];if(!a||a.peer!==t)return;let s=toHandshakeErrorMessage(n);o?.(e,s),R(e,t,mkErr(s))},de=(e,t)=>{let n=d[e];!n||n.peer!==t||n.isActive||(n.didLocalHandshakePass=!0,se(``,e).catch(n=>ue(e,t,mkErr(`failed sending handshake readiness: ${toErrorMessage(n,`unknown send failure`)}`))),le(e,t))},X=(e,t)=>{let n=d[e];if(!n||n.peer!==t)return;n.handshakeTimer=setTimeout(()=>ue(e,t,mkErr(`handshake timed out after ${s}ms`)),s);let o=async(t,n)=>{await ae(t,e,n)},l=()=>new Promise((n,a)=>{let o=d[e];if(!o||o.peer!==t){a(mkErr(`peer disconnected during handshake`));return}let s=o.pendingHandshakePayloads.shift();if(s){n(s);return}o.handshakeWaiters.push({resolve:n,reject:e=>a(e)})}),u=selfId<e;Promise.resolve(a?.(e,o,l,u)).then(()=>de(e,t)).catch(n=>ue(e,t,toError(n,`handshake failed`)))},fe=e=>e&&typeof e==`object`&&!Array.isArray(e)&&typeof e.k==`string`?{key:e.k,...typeof e.s==`string`?{streamId:e.s}:{},...typeof e.t==`string`?{trackId:e.t}:{},...Object.hasOwn(e,`m`)?{metadata:e.m}:{}}:null;return W((e,t)=>G(``,t)),ee((e,t)=>{let n=y[t];(n?.shift())?.resolve(),n&&!n.length&&delete y[t]}),q((e,t)=>{u[t]&&l[t]?.signal(e)}),te((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteStreamByKey?.(n.key)??(n.streamId?a?.__trysteroGetRemoteStreamById?.(n.streamId):void 0);if(o){F(t,n.key,o,n.metadata);return}(b[t]??=[]).push(n)}),re((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteTrackByKey?.(n.key)??(n.trackId?a?.__trysteroGetRemoteTrackById?.(n.trackId):void 0);if(o){I(t,n.key,o.track,o.stream,n.metadata);return}(x[t]??=[]).push(n)}),ie((e,t)=>R(t,void 0,mkErr(`peer left room`))),oe((e,t,n)=>{let a=d[t];if(!a||a.isActive)return;let o=n===void 0?{data:e}:{data:e,metadata:n},s=a.handshakeWaiters.shift();if(s){s.resolve(o);return}a.pendingHandshakePayloads.push(o)}),ce((e,t)=>{let n=d[t];!n||n.isActive||(n.didReceiveRemoteReady=!0,le(t))}),e((e,t)=>{let n=l[t];if(n){if(n===e)return;n.destroy(),L(t,mkErr(`peer replaced`))}l[t]=e,d[t]={peer:e,isActive:!1,didLocalHandshakePass:!1,didReceiveRemoteReady:!1,handshakeTimer:null,pendingHandshakePayloads:[],handshakeWaiters:[]},e.setHandlers({data:e=>V(t,e),stream:e=>{if(!u[t])return;let n=b[t]?.shift();n&&F(t,n.key,e,n.metadata)},track:(e,n)=>{if(!u[t])return;let a=x[t]?.shift();a&&I(t,a.key,e,n,a.metadata)},signal:e=>{u[t]&&K(e,t)},close:()=>R(t,e,mkErr(`peer disconnected`)),error:n=>{console.error(`${libName} peer error:`,n),R(t,e,n)}}),X(t,e)}),isBrowser&&(E=registerBeforeUnloadCleanup(()=>H().catch(noOp))),{makeAction:B,leave:H,ping:async e=>{if(!u[e])throw mkErr(`no active peer with id ${e}`);let t=Date.now();return await new Promise((t,n)=>{let a=y[e]??=[],o=()=>{let t=y[e];if(!t)return;let n=t.indexOf(s);n>-1&&t.splice(n,1),t.length||delete y[e]},s={resolve:()=>{o(),t()},reject:e=>{o(),n(e)}};a.push(s),U(``,e).catch(e=>s.reject(toError(e,`peer disconnected`)))}),Date.now()-t},getPeers:()=>fromEntries(entries(u).map(([e,t])=>[e,t.connection])),addStream:(e,t,n)=>O(t,j(e),n,J,t=>t.addStream(e),{s:e.id}),removeStream:(e,t)=>{D(t,(t,n)=>n.removeStream(e))},addTrack:(e,t,n,a)=>O(n,M(e),a,ne,n=>n.addTrack(e,t),{s:t.id,t:e.id}),removeTrack:(e,t)=>{D(t,(t,n)=>n.removeTrack(e))},replaceTrack:(e,t,n,a)=>O(n,M(t),a,ne,n=>n.replaceTrack(e,t),{t:e.id}),onPeerJoin:e=>{T.onPeerJoin=e,keys(u).forEach(t=>e(t))},onPeerLeave:e=>T.onPeerLeave=e,onPeerStream:e=>T.onPeerStream=e,onPeerTrack:e=>T.onPeerTrack=e}},roomFrameVersion=1,roomPresenceFrameVersion=2,wrapRoomFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(3+n.byteLength+t.byteLength);return a[0]=roomFrameVersion,a[1]=n.byteLength>>>8&255,a[2]=n.byteLength&255,a.set(n,3),a.set(t,3+n.byteLength),a},wrapRoomPresenceFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(4+n.byteLength);return a[0]=roomPresenceFrameVersion,a[1]=Number(t),a[2]=n.byteLength>>>8&255,a[3]=n.byteLength&255,a.set(n,4),a},unwrapFrame=e=>{let t=new Uint8Array(e);if(t.byteLength<3)return null;if(t[0]===roomFrameVersion){let e=(t[1]??0)<<8|(t[2]??0),n=3+e;return e<=0||t.byteLength<n?null:{type:`room`,roomToken:decodeBytes(t.subarray(3,n)),payload:t.subarray(n).slice().buffer}}if(t[0]!==roomPresenceFrameVersion||t.byteLength<4)return null;let n=(t[2]??0)<<8|(t[3]??0),a=4+n;return n<=0||t.byteLength<a?null:{type:`presence`,roomToken:decodeBytes(t.subarray(4,a)),isPresent:t[1]===1}},isPeerUnderlyingStale=e=>{let{connection:t,channel:n}=e;return e.isDead||t.connectionState===`closed`||t.connectionState===`failed`||t.iceConnectionState===`closed`||t.iceConnectionState===`failed`||n?.readyState===`closing`||n?.readyState===`closed`},getConnectedPeerHealth=e=>{if(isPeerUnderlyingStale(e))return`stale`;let{channel:t}=e;return!t||t.readyState!==`open`?`transient`:`live`},SharedPeerManager=class{byApp={};roomPresenceHandlers={};getMap(e){return this.byApp[e]??={}}get(e,t){return this.byApp[e]?.[t]}isPeerStale(e){return isPeerUnderlyingStale(e)}getHealth(e){return this.isPeerStale(e)?`stale`:`live`}setRoomPresenceHandler(e,t){return this.roomPresenceHandlers[e]=t,()=>{this.roomPresenceHandlers[e]===t&&delete this.roomPresenceHandlers[e]}}sendRoomPresence(e,t,n){e.isClosing||e.peer.isDead||e.peer.sendData(wrapRoomPresenceFrame(t,n))}clear(e,t,{destroyPeer:n}){let a=this.byApp[e],o=a?.[t];if(!o||o.isClosing)return;o.idleTimer=resetTimer(o.idleTimer),o.isClosing=!0,n&&!o.peer.isDead&&o.peer.destroy();let s=values(o.bindings);o.bindings={},o.bindingsByToken={},o.controlRoomId=null,delete a[t],s.forEach(e=>{e.handlers.close?.(),e.pendingData.length=0,e.pendingSendData.length=0,e.pendingTracks.length=0}),o.remoteStreamsByKey.clear(),o.remoteStreamsById.clear(),o.remoteTracksByKey.clear(),o.remoteTracksById.clear(),o.pendingDataByToken.clear(),o.remoteRoomTokens.clear(),keys(a).length===0&&delete this.byApp[e]}register(e,t,n,a){let o=this.getMap(e),s=o[t];if(s){if(s.idleTimer=resetTimer(s.idleTimer),s.peer===n)return s;this.clear(e,t,{destroyPeer:!0})}let l={appId:e,peerId:t,peer:n,bindings:{},bindingsByToken:{},pendingDataByToken:new Map,remoteRoomTokens:new Set,idleTimer:null,controlRoomId:null,streamOwners:new Map,trackOwners:new Map,remoteStreamsByKey:new Map,remoteStreamsById:new Map,remoteTracksByKey:new Map,remoteTracksById:new Map,idleMs:a,isClosing:!1};return n.setHandlers({data:e=>this.dispatchData(l,e),signal:e=>this.dispatchSignal(l,e),close:()=>this.clear(e,t,{destroyPeer:!1}),error:n=>{console.error(`${libName} peer error:`,n),this.clear(e,t,{destroyPeer:!1})},track:(e,t)=>this.dispatchTrack(l,e,t)}),o[t]=l,l}bind(e,t,n,{onDetach:a}){let o=n.bindings[e];if(o)return n.idleTimer=resetTimer(n.idleTimer),{proxy:o.proxy,isNew:!1};let s={roomId:e,roomToken:null,roomTokenPromise:t,handlers:{},pendingData:[],pendingSendData:[],pendingTracks:[],detach:noOp,proxy:{}},l=()=>{n.bindings[e]&&(this.pruneRoomOwnership(n,e),delete n.bindings[e],s.roomToken&&n.bindingsByToken[s.roomToken]===s&&delete n.bindingsByToken[s.roomToken],n.controlRoomId===e&&(n.controlRoomId=keys(n.bindings)[0]??null),a(),this.scheduleIdleTimer(n))},u={created:n.peer.created,get connection(){return n.peer.connection},get channel(){return n.peer.channel},get isDead(){return n.peer.isDead},getOffer:e=>n.peer.getOffer(e),signal:e=>n.peer.signal(e),sendData:e=>{if(!s.roomToken){s.pendingSendData.push(e);return}n.peer.sendData(wrapRoomFrame(s.roomToken,e))},destroy:()=>l(),setHandlers:e=>{let{signal:t,...n}=e;Object.assign(s.handlers,n),t&&(s.handlers.signal=t),this.flushBindingQueues(s)},offerPromise:n.peer.offerPromise,addStream:t=>{let a=n.streamOwners.get(t)??new Set,o=a.size===0;a.add(e),n.streamOwners.set(t,a),o&&n.peer.addStream(t)},removeStream:t=>{let a=n.streamOwners.get(t);a&&(a.delete(e),a.size===0&&(n.streamOwners.delete(t),n.peer.removeStream(t)))},addTrack:(t,a)=>{let o=n.trackOwners.get(t)??{stream:a,rooms:new Set},s=o.rooms.size===0;return o.stream=a,o.rooms.add(e),n.trackOwners.set(t,o),s?n.peer.addTrack(t,a):n.peer.connection.getSenders().find(e=>e.track===t)??n.peer.addTrack(t,a)},removeTrack:t=>{let a=n.trackOwners.get(t);a&&(a.rooms.delete(e),a.rooms.size===0&&(n.trackOwners.delete(t),n.peer.removeTrack(t)))},replaceTrack:(e,t)=>{let a=n.trackOwners.get(e);if(a){n.trackOwners.delete(e);let o=n.trackOwners.get(t)??{stream:a.stream,rooms:new Set};a.rooms.forEach(e=>o.rooms.add(e)),n.trackOwners.set(t,o)}return n.peer.replaceTrack(e,t)},__trysteroGetRemoteStreamByKey:e=>n.remoteStreamsByKey.get(e),__trysteroSetRemoteStreamByKey:(e,t)=>void n.remoteStreamsByKey.set(e,t),__trysteroGetRemoteStreamById:e=>n.remoteStreamsById.get(e),__trysteroSetRemoteStreamById:(e,t)=>void n.remoteStreamsById.set(e,t),__trysteroGetRemoteTrackByKey:e=>n.remoteTracksByKey.get(e),__trysteroSetRemoteTrackByKey:(e,t,a)=>void n.remoteTracksByKey.set(e,{track:t,stream:a}),__trysteroGetRemoteTrackById:e=>n.remoteTracksById.get(e),__trysteroSetRemoteTrackById:(e,t,a)=>void n.remoteTracksById.set(e,{track:t,stream:a})};return s.proxy=u,s.detach=l,n.bindings[e]=s,n.controlRoomId??=e,n.idleTimer=resetTimer(n.idleTimer),t.then(t=>{if(n.isClosing||n.bindings[e]!==s)return;s.roomToken=t,n.bindingsByToken[t]=s;let a=n.pendingDataByToken.get(t);a?.length&&(s.pendingData.push(...a),n.pendingDataByToken.delete(t)),s.pendingSendData.splice(0).forEach(e=>n.peer.sendData(wrapRoomFrame(t,e))),this.flushBindingQueues(s)}),{proxy:u,isNew:!0}}pruneRoomOwnership(e,t){e.streamOwners.forEach((n,a)=>{n.delete(t),n.size===0&&(e.streamOwners.delete(a),e.peer.removeStream(a))}),e.trackOwners.forEach((n,a)=>{n.rooms.delete(t),n.rooms.size===0&&(e.trackOwners.delete(a),e.peer.removeTrack(a))})}scheduleIdleTimer(e){e.isClosing||keys(e.bindings).length>0||(e.idleTimer=resetTimer(e.idleTimer),e.idleTimer=setTimeout(()=>{let t=this.byApp[e.appId]?.[e.peerId];!t||keys(t.bindings).length>0||this.clear(e.appId,e.peerId,{destroyPeer:!0})},e.idleMs))}getSignalBinding(e){if(e.controlRoomId){let t=e.bindings[e.controlRoomId];if(t?.handlers.signal)return t}let t=values(e.bindings).find(e=>!!e.handlers.signal);return t?(e.controlRoomId=t.roomId,t):null}flushBindingQueues(e){let{handlers:t}=e;t.data&&e.pendingData.length>0&&e.pendingData.splice(0).forEach(e=>t.data?.(e)),(t.track||t.stream)&&e.pendingTracks.length&&e.pendingTracks.splice(0).forEach(({track:e,stream:n})=>{t.track?.(e,n),t.stream?.(n)})}dispatchData(e,t){let n=unwrapFrame(t);if(!n)return;if(n.type===`presence`){n.isPresent?e.remoteRoomTokens.add(n.roomToken):e.remoteRoomTokens.delete(n.roomToken),this.roomPresenceHandlers[e.appId]?.(e.peerId,n.roomToken,n.isPresent);return}let a=e.bindingsByToken[n.roomToken];if(!a){let t=e.pendingDataByToken.get(n.roomToken)??[];t.push(n.payload),e.pendingDataByToken.set(n.roomToken,t);return}a.handlers.data?a.handlers.data(n.payload):a.pendingData.push(n.payload)}dispatchSignal(e,t){this.getSignalBinding(e)?.handlers.signal?.(t)}dispatchTrack(e,t,n){values(e.bindings).forEach(e=>{if(e.handlers.track||e.handlers.stream){e.handlers.track?.(t,n),e.handlers.stream?.(n);return}e.pendingTracks.push({track:t,stream:n})})}},offerPostAnswerTtlMs=23333,offerIdSize=12,disconnectedPeerGraceMs=7533,answeringTtlMs=23333,legacyCandidateKey=`__legacy__`,offerRelayPlaceholder=`offer-placeholder`,publishCipheredSignalingMessage=(e,t,n,a,o,s)=>{e.toCipher(t).then(t=>{e.isLeaving()||!s()||a(n,toJson(o(t.sdp)))})},makeState=()=>({status:`idle`,offerPeer:null,offerId:null,offerSdp:null,offerInitPromise:null,offerAnswered:!1,offerRelays:[],offerSignalRelays:[],offerSignalBacklog:[],offerRelayTimers:[],offerExpiryTimer:null,connectedPeer:null,connectedPeerUnhealthySinceMs:null,answeringExpiryTimer:null,answeringPeer:null,pendingCandidates:{}}),getState=(e,t)=>e[t]??=makeState(),updateStatus=e=>{e.connectedPeer?e.status=`connected`:e.answeringPeer?e.status=`answering`:e.offerPeer||e.offerRelays.some(Boolean)?e.status=`offering`:e.status=`idle`},clearAnswering=(e,t)=>{e.answeringPeer===t&&(e.answeringExpiryTimer=resetTimer(e.answeringExpiryTimer),e.answeringPeer=null,updateStatus(e))},clearConnectedPeer=(e,t,n)=>{e.connectedPeer&&(e.connectedPeer.isDead||e.connectedPeer.destroy(),e.connectedPeer=null,e.connectedPeerUnhealthySinceMs=null,updateStatus(e))},clearOfferRelay=(e,t)=>{e.offerRelayTimers[t]=resetTimer(e.offerRelayTimers[t]),e.offerRelays[t]&&(e.offerRelays[t]=void 0,updateStatus(e))},clearOfferRelayIfPlaceholder=(e,t)=>{e?.offerRelays[t]===offerRelayPlaceholder&&clearOfferRelay(e,t)},hasRemoteDescription=e=>{if(e.isDead||e.connection.connectionState===`closed`)return!0;try{return!!e.connection.remoteDescription}catch{return!0}},resetOfferState=(e,t)=>{let n=e.offerAnswered;e.offerExpiryTimer=resetTimer(e.offerExpiryTimer),e.offerInitPromise=null,e.offerRelays.forEach((t,n)=>clearOfferRelay(e,n)),e.offerRelays=[],e.offerSignalRelays=[],e.offerRelayTimers=[],e.offerSignalBacklog=[],e.offerPeer&&e.offerPeer!==e.connectedPeer&&(n||hasRemoteDescription(e.offerPeer)?e.offerPeer.isDead||e.offerPeer.destroy():t.recycle(e.offerPeer)),e.offerPeer=null,e.offerId=null,e.offerSdp=null,e.offerAnswered=!1,updateStatus(e)},scheduleAnsweringExpiry=(e,t,n,a)=>{resetTimer(t.answeringExpiryTimer),t.answeringExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.answeringPeer!==a||(a.destroy(),clearAnswering(t,a))},answeringTtlMs)},flushBufferedCandidates=async(e,t,n)=>{let a=n?[n,legacyCandidateKey]:[legacyCandidateKey];for(let n of a){let a=e.pendingCandidates[n];if(a?.length){delete e.pendingCandidates[n];for(let e of a)await t.signal(e)}}},scheduleOfferExpiry=(e,t,n,a=offerTtl)=>{resetTimer(t.offerExpiryTimer);let o=t.offerId;t.offerExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.offerId!==o||resetOfferState(t,e.offerPool)},a)},ensureOffer=(e,t,n,a)=>t.offerPeer&&t.offerId&&t.offerSdp?Promise.resolve({peer:t.offerPeer,offer:t.offerSdp,offerId:t.offerId}):(t.offerInitPromise||=(async()=>{let o=(await e.offerPool.checkout(1,!1,e.encryptOffer))[0];if(!o)throw mkErr(`failed to allocate offer peer`);let{peer:s,offer:l}=o;t.offerPeer=s,t.offerId=genId(offerIdSize),t.offerSdp=l,t.offerAnswered=!1,t.offerSignalBacklog=[],updateStatus(t);let u=()=>{t.offerPeer===s&&!t.connectedPeer&&resetOfferState(t,e.offerPool),e.disconnectPeer(s,n)};return s.setHandlers({connect:()=>e.connectPeer(s,n,a),signal:e=>{t.offerPeer===s&&(t.offerSignalBacklog.push(e),t.offerSignalRelays.forEach(t=>t?.(e)))},close:u,error:u}),scheduleOfferExpiry(e,t,n),{peer:s,offer:l,offerId:t.offerId}})().finally(()=>t.offerInitPromise=null),t.offerInitPromise),handleAnnouncement=async(e,t,n,a,o)=>{if(a){e.attachSharedPeerToRoom(n,a);return}let s=e.peerStates[n];if(!s||s.connectedPeer||s.answeringPeer||s.offerAnswered){clearOfferRelayIfPlaceholder(s,t);return}if(s.offerRelays[t]!==offerRelayPlaceholder)return;let[l,u]=await all([sha1(topicPath(e.rootTopicPlaintext,n)),ensureOffer(e,s,n,t)]);if(e.isLeaving())return;if(s.connectedPeer||s.answeringPeer||s.offerAnswered||s.offerRelays[t]!==offerRelayPlaceholder){clearOfferRelayIfPlaceholder(s,t);return}s.offerRelayTimers[t]=resetTimer(s.offerRelayTimers[t]),s.offerRelays[t]=!0,updateStatus(s),s.offerRelayTimers[t]=setTimeout(()=>prunePendingOffer(e,n,t),(e.announceIntervals[t]??e.announceIntervalMs)*.9);let d=!1;s.offerSignalRelays[t]=t=>{d&&(e.isLeaving()||s.connectedPeer||s.offerPeer!==u.peer||s.offerId!==u.offerId||t.type!==`candidate`||publishCipheredSignalingMessage(e,t,l,o,e=>({peerId:selfId,offerId:u.offerId,candidate:e}),()=>!s.connectedPeer&&s.offerPeer===u.peer&&s.offerId===u.offerId))},o(l,toJson({peerId:selfId,offerId:u.offerId,offer:u.offer})),d=!0,s.offerSignalBacklog.forEach(e=>s.offerSignalRelays[t]?.(e))},handleOffer=async(e,t,n,a,o,s,l)=>{let u=getState(e.peerStates,n);if(u.answeringPeer||u.offerAnswered)return;let d=!!(u.offerPeer||u.offerRelays.some(Boolean));if((d||s)&&selfId<n)return;d&&resetOfferState(u,e.offerPool);let f=e.initPeer(!1,e.config);u.answeringPeer=f,scheduleAnsweringExpiry(e,u,n,f),updateStatus(u);let m=()=>{clearAnswering(u,f),e.disconnectPeer(f,n)};f.setHandlers({connect:()=>e.connectPeer(f,n,t),close:m,error:m});let h;try{h=await e.toPlain({type:`offer`,sdp:a})}catch{clearAnswering(u,f),e.onJoinError?.({error:`incorrect room password when decrypting offer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(f.isDead){clearAnswering(u,f);return}let v=await sha1(topicPath(e.rootTopicPlaintext,n));e.isLeaving()||(f.setHandlers({signal:t=>{e.isLeaving()||u.answeringPeer!==f||f.isDead||t.type!==`answer`&&t.type!==`candidate`||publishCipheredSignalingMessage(e,t,v,l,e=>{let n={peerId:selfId};return t.type===`answer`?n.answer=e:n.candidate=e,o&&(n.offerId=o),n},()=>u.answeringPeer===f&&!f.isDead)}}),await f.signal(h),await flushBufferedCandidates(u,f,o))},handleCandidate=async(e,t,n,a,o)=>{let s;try{s=await e.toPlain({type:candidateType,sdp:n})}catch{return}let l=getState(e.peerStates,t),u=a&&l?.offerPeer&&l.offerId===a?l.offerPeer:null,d=l?.answeringPeer??null,f=!a&&l?.offerPeer?l.offerPeer:null,m=o&&!o.isDead?o:u??d??f;if(!m||m.isDead){let e=a??legacyCandidateKey;(l.pendingCandidates[e]??=[]).push(s);return}m.signal(s)},handleAnswer=async(e,t,n,a,o,s)=>{let l;try{l=await e.toPlain({type:`answer`,sdp:a})}catch{e.onJoinError?.({error:`incorrect room password when decrypting answer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(s)e.offerPool.claimLeased(s),s.setHandlers({connect:()=>e.connectPeer(s,n,t),close:()=>e.disconnectPeer(s,n)}),s.signal(l);else{let t=e.peerStates[n];if(!t||!t.offerPeer||t.offerAnswered||o&&t.offerId&&o!==t.offerId||t.offerPeer.isDead)return;t.offerAnswered=!0,scheduleOfferExpiry(e,t,n,offerPostAnswerTtlMs),t.offerPeer.signal(l)}},prunePendingOffer=(e,t,n)=>{let a=e.peerStates[t];!a||a.connectedPeer||a.offerRelays[n]&&clearOfferRelay(a,n)},createSignalHandler=e=>t=>async(n,a,o)=>{if(e.isLeaving())return;let s=typeof a==`string`?fromJson(a):a,l=typeof s.peerId==`string`?s.peerId:``,u=s.offer,d=s.answer,f=s.candidate,m=s.offerId,h=s.peer,v=s.hasOutgoingOffer===!0;if(l===selfId)return;let y=e.peerStates[l],b=y?.connectedPeer;if(b&&y){let e=getConnectedPeerHealth(b);if(e===`live`){y.connectedPeerUnhealthySinceMs=null;return}if(e===`stale`)clearConnectedPeer(y,l,`message-from-stale-peer`);else{let e=Date.now(),t=y.connectedPeerUnhealthySinceMs??e;if(y.connectedPeerUnhealthySinceMs=t,e-t<disconnectedPeerGraceMs)return;clearConnectedPeer(y,l,`message-from-prolonged-disconnect`)}}let x=e.sharedPeers.get(e.appId,l);x&&e.sharedPeers.getHealth(x.peer)===`stale`&&(e.sharedPeers.clear(e.appId,l,{destroyPeer:!0}),x=void 0);let S=!!(l&&!u&&!d&&!f),[C,T]=await all([e.rootTopicP,e.selfTopicP]);if(!e.isLeaving()&&!(n!==C&&n!==T)){if(S&&!x){let n=getState(e.peerStates,l),a=selfId<l;if(n.answeringPeer||n.connectedPeer||n.offerAnswered)return;if(!a&&!n.offerPeer){let t=await sha1(topicPath(e.rootTopicPlaintext,l));!e.isLeaving()&&!n.connectedPeer&&o(t,toJson({peerId:selfId}));return}if(n.offerRelays[t])return;n.offerRelays[t]=offerRelayPlaceholder,updateStatus(n)}if(x&&(u||d||f)){if(x.bindings[e.roomId])return;e.attachSharedPeerToRoom(l,x);return}if(S)return handleAnnouncement(e,t,l,x,o);if(u)return handleOffer(e,t,l,u,m,v,o);if(f)return handleCandidate(e,l,f,m,h);if(d)return handleAnswer(e,t,l,d,m,h)}},announceIntervalMs=5333,announceWarmupIntervalsMs=[233,533,1333],sharedPeerIdleMsDefault=123333,strategy_default=({init:e,subscribe:t,announce:n})=>{let a={},o={},s={},l={},u=new SharedPeerManager,d=()=>values(a).some(e=>keys(e).length>0),f=e=>o[e]??={},m=e=>s[e]??={},h=(e,t,n)=>{u.getHealth(e.peer)===`live`&&u.sendRoomPresence(e,t,n)},v=(e,t)=>{entries(o[e]??{}).forEach(([n,a])=>{let{roomToken:s,roomTokenPromise:l}=a;if(s){h(t,s,!0);return}l.then(s=>{o[e]?.[n]===a&&a.roomToken===s&&(u.get(e,t.peerId)!==t||t.isClosing||h(t,s,!0))})})},y=(e,t,n)=>values(u.getMap(e)).forEach(e=>h(e,t,n)),b=e=>{l[e]||(l[e]=u.setRoomPresenceHandler(e,(t,n,a)=>{if(!a)return;let l=u.get(e,t),d=s[e]?.[n];!l||!d||o[e]?.[d]?.attachSharedPeerToRoom(t,l)}))},x=e=>{a[e]&&keys(a[e]).length>0||(l[e]?.(),delete l[e],delete o[e],delete s[e])},S=!1,C=[],T=null,E=noOp;return(l,h,D)=>{if(!l)throw mkErr(`requires a config map as the first argument`);if(D&&typeof D!=`object`)throw mkErr(`third argument must be a callbacks object`);let{appId:O}=l,k=D?.onJoinError,j=D?.onPeerHandshake,M=D?.handshakeTimeoutMs;if(!O)throw mkErr(`config map is missing appId field`);if(!h)throw mkErr(`roomId argument required`);if(M!==void 0&&(!Number.isFinite(M)||M<=0))throw mkErr(`handshakeTimeoutMs must be a positive number`);if(a[O]?.[h])return a[O][h];b(O);let N=topicPath(libName,O,h),F=sha1(N),I=sha1(topicPath(N,selfId)),L=genKey(l.password??``,O,h),R=deriveRoomNamespace(O,h),z=l._test_only_sharedPeerIdleMs??sharedPeerIdleMsDefault,B=!1,V=e=>async t=>({type:t.type,sdp:await e(L,t.sdp)}),H=V(decrypt),U=V(encrypt),W=u.getMap(O);T||=new OfferPool(()=>peer_default(!0,l));let G=T,ee=async e=>{let t=await e.getOffer(Date.now()-e.created>offerTtl);if(!t||t.type!==`offer`)throw mkErr(`failed to get offer for peer`);return(await U(t)).sdp},K=(e,t)=>{let n=getState(q.peerStates,e);n.answeringExpiryTimer=resetTimer(n.answeringExpiryTimer),n.answeringPeer=null;let{proxy:a,isNew:o}=u.bind(h,R,t,{onDetach:()=>{let n=q.peerStates[e];n?.connectedPeer===t.peer&&(n.connectedPeer=null,n.connectedPeerUnhealthySinceMs=null,updateStatus(n))}});n.connectedPeer=t.peer,n.connectedPeerUnhealthySinceMs=null,updateStatus(n),o&&Y(a,e),resetOfferState(n,G)},q={appId:O,roomId:h,config:l,peerStates:{},rootTopicPlaintext:N,rootTopicP:F,selfTopicP:I,toPlain:H,toCipher:U,isLeaving:()=>B,onJoinError:k,sharedPeers:u,offerPool:G,encryptOffer:ee,initPeer:peer_default,connectPeer:(e,t,n)=>{if(B){e.destroy();return}let a=getState(q.peerStates,t);if(a.connectedPeer){let n=W[t];if(n&&a.connectedPeer===n.peer&&n.bindings[h])return;a.connectedPeer!==e&&!e.isDead&&e.destroy();return}let o=W[t];if(o&&u.getHealth(o.peer)===`stale`&&(u.clear(O,t,{destroyPeer:!0}),o=void 0),o&&o.peer!==e){e.isDead||e.destroy(),K(t,o);return}let s=!o;o||=u.register(O,t,e,z),K(t,o),s&&v(O,o)},disconnectPeer:(e,t)=>{if(B)return;let n=q.peerStates[t];n?.connectedPeer===e&&clearConnectedPeer(n,t,`close-event`)},attachSharedPeerToRoom:K,announceIntervals:[],announceIntervalMs},J=createSignalHandler(q);if(!S){let t=e(l);G.warmup(),C=(Array.isArray(t)?t:[t]).map(e=>Promise.resolve(e)),S=!0,E=l.relayConfig?.manualReconnection?noOp:watchOnline()}q.announceIntervals=C.map(()=>announceIntervalMs);let te=C.map(()=>0),ne=[],re=C.map(async(e,n)=>t(await e,await F,await I,J(n),e=>G.getOffers(e,ee)));all([F,I]).then(([e,t])=>{if(B)return;let a=async(o,s)=>{if(B)return;let l=await n(o,e,t);if(B)return;typeof l==`number`&&(q.announceIntervals[s]=l);let u=te[s]??0;te[s]=u+1;let d=q.announceIntervals[s]??announceIntervalMs,f=announceWarmupIntervalsMs[u];ne[s]=setTimeout(()=>{a(o,s)},typeof f==`number`?Math.min(d,f):d)};re.forEach(async(e,t)=>{if(await e,B)return;let n=await C[t];n&&!B&&a(n,t)})});let Y=noOp,{compose:ie}=createPasswordHandshake(l.password??``,O,h),ae=ie(j),oe={...ae?{onPeerHandshake:ae}:{},...M===void 0?{}:{handshakeTimeoutMs:M},onHandshakeError:(e,t)=>k?.({error:t.replace(/^handshake failed: /,``),appId:O,peerId:e,roomId:h})};a[O]??={};let se=f(O),ce=room_default(e=>Y=e,e=>{if(B)return;let t=q.peerStates[e];t?.connectedPeer&&(t.connectedPeer=null,updateStatus(t))},()=>{B=!0,Y=noOp;let e=o[O]?.[h];e?.roomToken&&(y(O,e.roomToken,!1),delete s[O]?.[e.roomToken],s[O]&&!keys(s[O]).length&&delete s[O]),o[O]&&(delete o[O][h],keys(o[O]).length||delete o[O]),entries(q.peerStates).forEach(([e,t])=>{if(t.answeringExpiryTimer=resetTimer(t.answeringExpiryTimer),t.connectedPeer&&!t.connectedPeer.isDead){let n=W[e];(!n||n.peer!==t.connectedPeer)&&t.connectedPeer.destroy()}t.answeringPeer&&!t.answeringPeer.isDead&&t.answeringPeer.destroy(),resetOfferState(t,G),t.connectedPeer=null,t.answeringPeer=null,updateStatus(t)}),a[O]&&(delete a[O][h],keys(a[O]).length===0&&delete a[O]),ne.forEach(resetTimer),re.forEach(async e=>{(await e)()}),!d()&&(S=!1,G.destroy(),T=null,E(),x(O))},oe),le={roomToken:null,roomTokenPromise:R,attachSharedPeerToRoom:K};return se[h]=le,R.then(e=>{B||o[O]?.[h]!==le||(le.roomToken=e,m(O)[e]=h,values(W).forEach(t=>{t.remoteRoomTokens.has(e)&&K(t.peerId,t)}),y(O,e,!0))}),a[O][h]=ce}},relayManager=createRelayManager(e=>e.socket),topicToInfoHash={},infoHashToTopic={},announceIntervals=relayManager.scoped(),announceFns=relayManager.scoped(),subscriptionTokens=relayManager.scoped(),trackerAnnounceMs={},handledSignals={},msgHandlers=relayManager.scoped(),roomOutstandingOffers={},roomOfferGenerationPromises={},roomSubscriberCounts={},trackerAction=`announce`,hashLimit=20,offerPoolSize=3,defaultAnnounceMs=1e4,maxAnnounceMs=2e4,offerRetentionMs=12e4,signalDedupeWindowMs=4e3,defaultRedundancy=3,getInfoHash=async e=>{if(topicToInfoHash[e])return topicToInfoHash[e];let t=(await sha1(e)).slice(0,hashLimit);return topicToInfoHash[e]=t,infoHashToTopic[t]=e,t},send=async(e,t,n)=>e.send(toJson({action:trackerAction,info_hash:await getInfoHash(t),peer_id:selfId,...n})),warn=(e,t,n=!1)=>console.warn(`${libName}: torrent tracker ${n?`failure`:`warning`} from ${e} - ${t}`),getRoomOutstandingOffers=e=>roomOutstandingOffers[e]??={},deleteRoomOfferBookkeeping=e=>{delete roomOutstandingOffers[e],delete roomOfferGenerationPromises[e]},claimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];if(a)return delete n[t],a.claim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e),a},reclaimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];a&&(delete n[t],a.reclaim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e))},reclaimAllOutstandingOffers=e=>{keys(getRoomOutstandingOffers(e)).forEach(t=>reclaimOutstandingOffer(e,t)),deleteRoomOfferBookkeeping(e)},pruneOutstandingOffers=e=>{let t=Date.now();entries(getRoomOutstandingOffers(e)).forEach(([n,a])=>{t-a.createdAt>offerRetentionMs&&reclaimOutstandingOffer(e,n)})},ensureOutstandingOffers=async(e,t)=>{for(;roomOfferGenerationPromises[e];)await roomOfferGenerationPromises[e];let n=(async()=>{pruneOutstandingOffers(e);let n=getRoomOutstandingOffers(e),a=keys(n).length,o=Math.max(0,offerPoolSize-a);o>0&&(await t(o)).forEach(e=>{n[genId(hashLimit)]={...e,createdAt:Date.now()}})})().finally(()=>{roomOfferGenerationPromises[e]===n&&delete roomOfferGenerationPromises[e]});return roomOfferGenerationPromises[e]=n,await n,getRoomOutstandingOffers(e)},joinRoomStrategy=strategy_default({init:e=>getRelays(e,defaultRelayUrls,defaultRedundancy).map(e=>{let t=relayManager.register(e,makeSocket(e,n=>{let a=fromJson(n),o=a[`failure reason`],s=a[`warning message`],{interval:l}=a,u=a.info_hash?infoHashToTopic[a.info_hash]:void 0;if(o){warn(t.url,o,!0);return}if(s&&warn(t.url,s),l&&l*1e3>(trackerAnnounceMs[t.url]??defaultAnnounceMs)&&u&&announceFns.forKey(e)[u]){let n=Math.min(l*1e3,maxAnnounceMs),a=announceIntervals.forKey(e),o=announceFns.forKey(e);a[u]&&clearInterval(a[u]),trackerAnnounceMs[t.url]=n;let s=o[u];s&&(a[u]=setInterval(()=>{s()},n))}if((a.offer||a.answer)&&u&&a.offer_id){if(a.peer_id===selfId)return;let t=`${u}:${a.offer?`offer`:`answer`}:${a.offer_id}:${a.peer_id??``}`,n=Date.now(),o=handledSignals[t];if(typeof o==`number`&&n-o<signalDedupeWindowMs)return;handledSignals[t]=n,entries(handledSignals).forEach(([e,t])=>{n-t>signalDedupeWindowMs*6&&delete handledSignals[e]}),msgHandlers.forKey(e)[u]?.(a)}}));return t.ready}),subscribe:(e,t,n,a,o)=>{let s=msgHandlers.forRelay(e),l=announceFns.forRelay(e),u=announceIntervals.forRelay(e),d=subscriptionTokens.forRelay(e),f=Symbol(t);d[t]=f,roomSubscriberCounts[t]=(roomSubscriberCounts[t]??0)+1;let m=n=>{if(n.offer&&n.peer_id&&n.offer_id)a(t,{offer:n.offer.sdp,peerId:n.peer_id,hasOutgoingOffer:keys(getRoomOutstandingOffers(t)).length>0},(a,o)=>void send(e,t,{answer:{type:`answer`,sdp:fromJson(o).answer},offer_id:n.offer_id,to_peer_id:n.peer_id}));else if(n.answer&&n.offer_id&&n.peer_id){let e=claimOutstandingOffer(t,n.offer_id);e&&a(t,{answer:n.answer.sdp,peerId:n.peer_id,peer:e.peer},()=>{})}};s[t]=m;let h=async()=>{d[t]===f&&send(e,t,{numwant:offerPoolSize,offers:entries(await ensureOutstandingOffers(t,o)).map(([e,{offer:t}])=>({offer_id:e,offer:{type:`offer`,sdp:t}}))})};return trackerAnnounceMs[e.url]=defaultAnnounceMs,l[t]=h,u[t]=setInterval(h,trackerAnnounceMs[e.url]),h(),()=>{if(roomSubscriberCounts[t]=Math.max(0,(roomSubscriberCounts[t]??1)-1),roomSubscriberCounts[t]||delete roomSubscriberCounts[t],d[t]!==f){roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t);return}let e=u[t];e&&(clearInterval(e),delete u[t]),s[t]===m&&delete s[t],l[t]===h&&delete l[t],delete d[t],roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t)}},announce:e=>trackerAnnounceMs[e.url]}),joinRoom=(e,t,n)=>joinRoomStrategy({...e,trickleIce:e.trickleIce??!1},t,n),getRelaySockets=relayManager.getSockets,defaultRelayUrls=[`tracker.webtorrent.dev`,`tracker.openwebtorrent.com`,`tracker.btorrent.xyz`,`tracker.files.fm:7073/announce`].map(e=>`wss://`+e),require_lodash_throttle=__commonJSMin(((e,t)=>{var n=`Expected a function`,a=NaN,o=`[object Symbol]`,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,f=parseInt,m={}.Object===Object&&{},h=typeof self==`object`&&self&&self.Object===Object&&self,v=m||h||Function(`return this`)(),y=Object.prototype.toString,b=Math.max,x=Math.min,S=function(){return v.Date.now()};function C(e,t,a){var o,s,l,u,d,f,m=0,h=!1,v=!1,y=!0;if(typeof e!=`function`)throw TypeError(n);t=k(t)||0,E(a)&&(h=!!a.leading,v=`maxWait`in a,l=v?b(k(a.maxWait)||0,t):l,y=`trailing`in a?!!a.trailing:y);function C(t){var n=o,a=s;return o=s=void 0,m=t,u=e.apply(a,n),u}function T(e){return m=e,d=setTimeout(j,t),h?C(e):u}function D(e){var n=e-f,a=e-m,o=t-n;return v?x(o,l-a):o}function O(e){var n=e-f,a=e-m;return f===void 0||n>=t||n<0||v&&a>=l}function j(){var e=S();if(O(e))return M(e);d=setTimeout(j,D(e))}function M(e){return d=void 0,y&&o?C(e):(o=s=void 0,u)}function N(){d!==void 0&&clearTimeout(d),m=0,o=f=s=d=void 0}function F(){return d===void 0?u:M(S())}function I(){var e=S(),n=O(e);if(o=arguments,s=this,f=e,n){if(d===void 0)return T(f);if(v)return d=setTimeout(j,t),C(f)}return d===void 0&&(d=setTimeout(j,t)),u}return I.cancel=N,I.flush=F,I}function T(e,t,a){var o=!0,s=!0;if(typeof e!=`function`)throw TypeError(n);return E(a)&&(o=`leading`in a?!!a.leading:o,s=`trailing`in a?!!a.trailing:s),C(e,t,{leading:o,maxWait:t,trailing:s})}function E(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function D(e){return!!e&&typeof e==`object`}function O(e){return typeof e==`symbol`||D(e)&&y.call(e)==o}function k(e){if(typeof e==`number`)return e;if(O(e))return a;if(E(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=E(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=e.replace(s,``);var n=u.test(e);return n||d.test(e)?f(e.slice(2),n?2:8):l.test(e)?a:+e}t.exports=T})),import_lodash_throttle=__toESM(require_lodash_throttle()),handlePeerMetadataRequest=(e,t,n)=>{e.updatePeer(e,t,n)},handleCowTradeRequest=async(e,{cowOffered:t,cowRequested:n},a)=>{let o=!1;e.setState(e=>{let{allowCustomPeerCowNames:s,cowIdOfferedForTrade:l,cowsTraded:u,cowInventory:d,playerId:f,isAwaitingCowTradeRequest:m,peers:h,sendCowAccept:v,sendCowReject:y}=e;if(!v||!y)return console.error(`Peer connection not set up correctly`),null;let b=d.find(({id:e})=>e===l);if(m||n.id!==l||!b)return y({reason:cowTradeRejectionReason.REQUESTED_COW_UNAVAILABLE},a),null;let x={...t,timesTraded:t.originalOwnerId===f?t.timesTraded:t.timesTraded+1},[,S]=Object.entries(h).find(([,e])=>e?.playerId===x.ownerId)??[];return S?(e=changeCowAutomaticHugState(e,b,!1),e=removeCowFromInventory(e,b),e=addCowToInventory(e,{...x,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,b,t,f,s),`success`),v({...b,isUsingHuggingMachine:!1},a),o=!0,{...e,cowIdOfferedForTrade:x.id,cowsTraded:x.originalOwnerId===f?u:u+1,isAwaitingCowTradeRequest:!0,selectedCowId:x.id,peers:{...h,[a]:{...S,cowOfferedForTrade:{...b,ownerId:S.playerId}}}}):(console.error(`No data for peer ${x.ownerId}`),null)},async()=>{o&&(await sleep(750),await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`),e.setState(()=>({isAwaitingCowTradeRequest:!1})))})},handleCowTradeRequestAccept=(e,t,n)=>{let a=!1;e.setState(e=>{let{allowCustomPeerCowNames:o,cowIdOfferedForTrade:s,cowInventory:l,cowsTraded:u,cowTradeTimeoutId:d,playerId:f,peers:m}=e,h=l.find(({id:e})=>e===s);if(!h)return console.error(`handleCowTradeRequestAccept: cow with ID ${s} is no longer available`),e=showNotification(e,UNKNOWN_COW_TRADE_FAILURE,`error`),{...e,isAwaitingCowTradeRequest:!1};let[,v]=Object.entries(m).find(([,e])=>{let{playerId:n}=e;return n===t.ownerId})||[],y=t.originalOwnerId===f,b={...t,timesTraded:y?t.timesTraded:t.timesTraded+1};return e=removeCowFromInventory(e,h),e=addCowToInventory(e,{...b,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,h,b,f,o),`success`),y||(e=addExperience(e,EXPERIENCE_VALUES.COW_TRADED)),d&&clearTimeout(d),a=!0,{...e,cowsTraded:b.originalOwnerId===f?u:u+1,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1,cowIdOfferedForTrade:b.id,selectedCowId:b.id,peers:{...m,[n]:{...v,cowOfferedForTrade:{...h,ownerId:v.playerId}}}}},async()=>{a&&(await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`))})},handleCowTradeRequestReject=(e,{reason:t})=>{let{cowTradeTimeoutId:n}=e.state;typeof n==`number`&&clearTimeout(n),e.setState({cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1}),e.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`)},relayRedundancy=4,useFarmhandNetwork=(e,t,n,a,o,s,l,u)=>{let{hasBooted:d,isOnline:f,room:m,redirect:h,heartbeatTimeoutId:v,peerRoom:y,sendPeerMetadata:b}=e,x=(0,import_react$24.useCallback)(e=>(0,import_lodash_throttle.default)((...n)=>{e(...n),t(e=>({...e,pendingPeerMessages:[]}))},5e3,{trailing:!0}),[t]),S=(0,import_react$24.useCallback)(()=>{typeof a.current?.state?.cowTradeTimeoutId==`number`&&(n.current.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`),console.error(`Cow trade request timed out`),t(e=>({...e,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1})))},[t,n,a]),C=(0,import_react$24.useCallback)(o=>{let{cowIdOfferedForTrade:s,cowInventory:l,peers:u,sendCowTradeRequest:d}=a.current?.state??e;if(!d)return;let{ownerId:f}=o,[m]=Object.entries(u).find(([,e])=>e?.playerId===f)??[];if(!m){console.error(`Owner not found for cow ${JSON.stringify(o)}`);return}if(l.find(({id:e})=>e===o.id)){console.error(`Cow ID ${o.id} is already in inventory`),n.current.showNotification(COW_ALREADY_OWNED,`error`);return}let h=l.find(({id:e})=>e===s);if(!h){console.error(`Cow ID ${s} not found`);return}let v=setTimeout(S,COW_TRADE_TIMEOUT);d({cowOffered:{...h,isUsingHuggingMachine:!1},cowRequested:o},m),t(e=>({...e,cowTradeTimeoutId:v,isAwaitingCowTradeRequest:!0}))},[t,S,n,a]),T=(0,import_react$24.useCallback)(()=>{t(e=>(clearTimeout(e.heartbeatTimeoutId??-1),e));let e=import_window.default.setTimeout(()=>{t(e=>({...e,money:moneyTotal(e.money,e.activePlayers??0)})),T()},HEARTBEAT_INTERVAL_PERIOD);t(t=>({...t,heartbeatTimeoutId:e}))},[t]),E=(0,import_react$24.useCallback)(async()=>{let{isOnline:e,priceCrashes:o,priceSurges:s,room:l,playerId:u,peerRoom:d}=a.current.state;if(e){n.current.showNotification(CONNECTING_TO_SERVER,`info`);try{t(e=>({...e,isAwaitingNetworkRequest:!0,peers:{}})),d?.leave();let{valueAdjustments:e}=await getData(endpoints.getMarketData,{farmId:u,room:l});T(),t(t=>({...t,activePlayers:1,peerRoom:joinRoom({appId:`@jeremyckahn/farmhand`,rtcConfig},l),valueAdjustments:FarmhandService.applyPriceEvents(e,o,s)})),n.current.showNotification(CONNECTED_TO_ROOM(``,l),`success`)}catch(e){n.current.showNotification(SERVER_ERROR,`error`),console.error(e),t(e=>({...e,redirect:`/`,cowIdOfferedForTrade:``}))}t(e=>({...e,isAwaitingNetworkRequest:!1,isAwaitingCowTradeRequest:!1}))}},[T,n,a,t]),D=(0,import_react$24.useCallback)((e,t)=>{n.current.prependPendingPeerMessage(e,t)},[n]);return(0,import_react$24.useEffect)(()=>{if(!d||!o)return;let e=decodeURIComponent(s),S=l.startsWith(`/online`),C=!!h&&h!==o.redirect;if(!C&&(S!==f||e!==m)?t(t=>({...t,isOnline:S,redirect:``,room:e})):h&&!C&&S===f&&e===m&&t(e=>({...e,redirect:``})),(f!==o.isOnline||m!==o.room)&&(f&&E(),!f&&typeof v==`number`&&(clearTimeout(v),t(e=>({...e,activePlayers:null,heartbeatTimeoutId:null,peerRoom:null})))),f===!1&&o.isOnline===!0&&n.current.showNotification(DISCONNECTED_FROM_SERVER,`info`),y!==o.peerRoom)if(y){y.onPeerJoin(e=>n.current.addPeer(e)),y.onPeerLeave(e=>n.current.removePeer(e));let[e,o]=y.makeAction(`peerMetadata`);o((...e)=>handlePeerMetadataRequest(a.current,e[0],e[1]));let[s,l]=y.makeAction(`cowTrade`);l((...e)=>handleCowTradeRequest(a.current,e[0],e[1]));let[d,f]=y.makeAction(`cowAccept`);f((...e)=>handleCowTradeRequestAccept(a.current,e[0],e[1]));let[m,h]=y.makeAction(`cowReject`);h((...e)=>handleCowTradeRequestReject(a.current,e[0])),t(t=>({...t,getCowAccept:f,getCowReject:h,getCowTradeRequest:l,getPeerMetadata:o,pendingPeerMessages:[],sendCowAccept:d,sendCowReject:m,sendCowTradeRequest:s,sendPeerMetadata:x(e)})),e(u)}else o.peerRoom?.leave(),t(e=>({...e,peers:{},sendPeerMetadata:null}));b?.(u)},[d,f,m,h,v,y,b,o,s,l,E,x,u,n,a,t]),{syncToRoom:E,scheduleHeartbeat:T,wrapSendPeerMetadata:x,tradeForPeerCow:C,handleCowTradeTimeout:S,messagePeers:D}},computeMarketPositions=(e,t,n)=>n.reduce((n,{id:a,quantity:o})=>{let s=e[a]||0,l=t[a]||0;return itemsMap[a].doesPriceFluctuate&&s!==o&&(o<s||o<l?n[a]=-1:(o>s||o>l)&&(n[a]=1)),n},{}),useFarmhandDayAdvancement=(e,t,n,a,o)=>{let s=(0,import_react$24.useCallback)(async()=>{await n.localforage?.clear(),a.current.showNotification(DATA_DELETED)},[n.localforage,a]),l=(0,import_react$24.useCallback)((e,t={})=>n.localforage?.setItem(`state`,reduceByPersistedKeys({...e,...t})),[n.localforage]),u=(0,import_react$24.useCallback)(async()=>{let n=[],a=null;t(e=>({...e,isAwaitingNetworkRequest:!0}));let o;if(e.current.isOnline){let{inventory:s,room:l,todaysPurchases:u,todaysStartingInventory:d}=e.current,f=computeMarketPositions(d,u,s);try{o=(await postData(endpoints.postDayResults,{positions:f,room:l})).valueAdjustments,Object.keys(f).length&&(n.push({message:POSITIONS_POSTED_NOTIFICATION(``,`You`,f),severity:`info`}),a=POSITIONS_POSTED_NOTIFICATION(``,``,f))}catch(e){n.push({message:SERVER_ERROR,severity:`error`}),t(e=>({...e,redirect:`/`,cowIdOfferedForTrade:``,isAwaitingNetworkRequest:!1})),console.error(e)}}return{broadcastedPositionMessage:a,serverMessages:n,serverValueAdjustments:o}},[e,t]);return{clearPersistedData:s,persistState:l,updateServerForNextDay:u,incrementDay:(0,import_react$24.useCallback)(async(n=!1)=>{if(e.current.isWaitingForDayToCompleteIncrementing&&!n)return;n||t(e=>({...e,isWaitingForDayToCompleteIncrementing:!0}));let{broadcastedPositionMessage:a,serverMessages:s,serverValueAdjustments:l}=await u();t(e=>{let t=computeStateForNextDay(e,n),u=[...s,...t.newDayNotifications];return t.valueAdjustments=FarmhandService.applyPriceEvents(l??t.valueAdjustments,t.priceCrashes,t.priceSurges),t.isAwaitingNetworkRequest=!1,t.isWaitingForDayToCompleteIncrementing=!0,t.newDayNotifications=[],t.todaysNotifications=[],o.current={state:t,pendingNotifications:u,broadcastedPositionMessage:a,isFirstDay:n},t})},[e,u,t,o])}},useFarmhandNotifications=(e,t)=>({showInventoryFullNotifications:(0,import_react$24.useCallback)((e,n)=>{inventorySpaceRemaining(e)>0&&inventorySpaceRemaining(n)<=0&&t.current.showNotification(INVENTORY_FULL_NOTIFICATION,`warning`)},[t]),showRecipeLearnedNotifications:(0,import_react$24.useCallback)(({learnedRecipes:n})=>{let a=[];Object.keys(e.learnedRecipes).forEach(e=>{n.hasOwnProperty(e)||a.push(recipesMap[e])}),a.length>1?t.current.showNotification(RECIPES_LEARNED(``,a)):a.length===1&&t.current.showNotification(RECIPE_LEARNED(``,a[0]))},[e.learnedRecipes,t])}),FarmhandReducers=class e extends import_react$24.Component{addCowToInventory(...e){throw Error(`Unimplemented`)}addPeer(...e){throw Error(`Unimplemented`)}adjustLoan(...e){throw Error(`Unimplemented`)}changeCowAutomaticHugState(...e){throw Error(`Unimplemented`)}changeCowBreedingPenResident(...e){throw Error(`Unimplemented`)}changeCowName(...e){throw Error(`Unimplemented`)}clearPlot(...e){throw Error(`Unimplemented`)}computeStateForNextDay(...e){throw Error(`Unimplemented`)}fertilizePlot(...e){throw Error(`Unimplemented`)}forRange(...e){throw Error(`Unimplemented`)}harvestPlot(...e){throw Error(`Unimplemented`)}hugCow(...e){throw Error(`Unimplemented`)}makeRecipe(...e){throw Error(`Unimplemented`)}makeFermentationRecipe(...e){throw Error(`Unimplemented`)}makeWine(...e){throw Error(`Unimplemented`)}modifyCow(...e){throw Error(`Unimplemented`)}offerCow(...e){throw Error(`Unimplemented`)}plantInPlot(...e){throw Error(`Unimplemented`)}prependPendingPeerMessage(...e){throw Error(`Unimplemented`)}purchaseCombine(...e){throw Error(`Unimplemented`)}purchaseComposter(...e){throw Error(`Unimplemented`)}purchaseCow(...e){throw Error(`Unimplemented`)}purchaseCowPen(...e){throw Error(`Unimplemented`)}purchaseCellar(...e){throw Error(`Unimplemented`)}purchaseField(...e){throw Error(`Unimplemented`)}purchaseForest(...e){throw Error(`Unimplemented`)}purchaseItem(...e){throw Error(`Unimplemented`)}purchaseSmelter(...e){throw Error(`Unimplemented`)}purchaseStorageExpansion(...e){throw Error(`Unimplemented`)}removeCowFromInventory(...e){throw Error(`Unimplemented`)}removeKegFromCellar(...e){throw Error(`Unimplemented`)}removePeer(...e){throw Error(`Unimplemented`)}selectCow(...e){throw Error(`Unimplemented`)}sellCow(...e){throw Error(`Unimplemented`)}sellItem(...e){throw Error(`Unimplemented`)}sellKeg(...e){throw Error(`Unimplemented`)}setScarecrow(...e){throw Error(`Unimplemented`)}setSprinkler(...e){throw Error(`Unimplemented`)}showNotification(...e){throw Error(`Unimplemented`)}updatePeer(...e){throw Error(`Unimplemented`)}upgradeTool(...e){throw Error(`Unimplemented`)}waterAllPlots(...e){throw Error(`Unimplemented`)}waterField(...e){throw Error(`Unimplemented`)}waterPlot(...e){throw Error(`Unimplemented`)}withdrawCow(...e){throw Error(`Unimplemented`)}constructor(t){super(t);let n=Object.getOwnPropertyNames(e.prototype).filter(e=>e!==`constructor`);for(let e of n){let t=reducers_exports[e];t&&(this[e]=(...e)=>{this.setState(n=>t(n,...e))})}}},useFarmhandReducers=e=>(0,import_react$24.useMemo)(()=>{let t={};Object.assign(t,reducers_exports);let n=Object.getOwnPropertyNames(FarmhandReducers.prototype).filter(e=>e!==`constructor`);for(let a of n){let n=reducers_exports[a];typeof n==`function`&&(t[a]=(...t)=>{e(e=>{let a=n(e,...t);return!a||a===e?e:{...a}})})}return t},[e]),usePrevious=e=>{let t=(0,import_react$24.useRef)();return(0,import_react$24.useEffect)(()=>{t.current=e},[e]),t.current},{CLEANUP,HARVEST,MINE,WATER}=fieldMode,useFarmhand=e=>{let{features:t,match:{path:n=``,params:{room:a}={}}={}}=e,o=(0,import_react$24.useCallback)(()=>({activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:dialogView.NONE,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:-1},cowColorsPurchased:{},cowIdOfferedForTrade:``,cowInventory:[],cowsSold:{},cowsTraded:0,cowTradeTimeoutId:-1,cropsHarvested:{},dayCount:0,experience:0,farmName:`Unnamed`,field:createNewField(),fieldMode:fieldMode.OBSERVE,forest:createNewForest(),getCowAccept:noop$3,getCowReject:noop$3,getCowTradeRequest:noop$3,getPeerMetadata:noop$3,hasBooted:!1,heartbeatTimeoutId:null,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:v4(),inventory:[{id:scarecrow.id,quantity:1}],inventoryLimit:100,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!1,isMenuOpen:!doesMenuObstructStage(),itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:n.startsWith(`/online`)??!1,isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:500,loansTakenOut:1,money:500,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendPeerMetadata:null,selectedCowId:``,selectedItemId:``,priceCrashes:{},priceSurges:{},profitabilityStreak:0,record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:``,room:decodeURIComponent(e.match?.params?.room||`global`),sendCowAccept:noop$3,sendCowReject:noop$3,purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,sendCowTradeRequest:noop$3,showHomeScreen:!0,showNotifications:!0,stageFocus:stageFocusType.HOME,todaysNotifications:[],todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{[toolType.HOE]:toolLevel.DEFAULT,[toolType.SCYTHE]:toolLevel.DEFAULT,[toolType.SHOVEL]:toolLevel.UNAVAILABLE,[toolType.WATERING_CAN]:toolLevel.DEFAULT},useAlternateEndDayButtonPosition:!1,valueAdjustments:{},version:`1.19.28`}),[n,e.match?.params?.room]),[s,l]=(0,import_react$24.useState)(o),u=(0,import_react$24.useRef)(s);u.current=s;let d=a===void 0?s.room:a,f=(0,import_react$24.useRef)(null),m=(0,import_react$24.useRef)(!1),h=useFarmhandReducers(l),v=(0,import_react$24.useRef)(h);v.current=h;let y=usePrevious(s),b=STAGE_TITLE_MAP[s.stageFocus],x=FarmhandService.getFieldToolInventory(s.inventory),S=FarmhandService.computePlayerInventory(s.inventory,s.valueAdjustments),C=FarmhandService.getPlantableCropInventory(s.inventory),T=(0,import_react$24.useMemo)(()=>getLevelEntitlements(levelAchieved(s.experience)),[s.experience]),E=(0,import_react$24.useMemo)(()=>getAvailableShopInventory(T),[T]),D=T.stageFocusType[stageFocusType.FOREST],O=s.isOnline&&s.room!==`global`,k=(0,import_react$24.useMemo)(()=>{let{CELLAR:e,COW_PEN:t,HOME:n,WORKSHOP:a,FOREST:o}=stageFocusType,l=[...STANDARD_VIEW_LIST];return s.showHomeScreen&&l.unshift(n),D&&features.FOREST&&l.push(o),s.purchasedCowPen&&l.push(t),l.push(a),s.purchasedCellar&&l.push(e),l},[s.showHomeScreen,D,s.purchasedCowPen,s.purchasedCellar]),j=(0,import_react$24.useMemo)(()=>getPeerMetadata(s),[s]),M=s.isAwaitingNetworkRequest||s.isAwaitingCowTradeRequest||s.isWaitingForDayToCompleteIncrementing,N=(0,import_react$24.useRef)(null),{openDialogView:F,closeDialogView:I,focusNextView:L,focusPreviousView:R}=useFarmhandNavigation(l,k),{syncToRoom:z,scheduleHeartbeat:B,tradeForPeerCow:V,handleCowTradeTimeout:H,messagePeers:U}=useFarmhandNetwork(s,l,v,N,y,d,n,j),{clearPersistedData:W,persistState:G,updateServerForNextDay:ee,incrementDay:K}=useFarmhandDayAdvancement(u,l,e,v,f),{showInventoryFullNotifications:q,showRecipeLearnedNotifications:J}=useFarmhandNotifications(s,v);N.current=(0,import_react$24.useMemo)(()=>({state:s,props:e,viewTitle:b,fieldToolInventory:x,playerInventory:S,plantableCropInventory:C,viewList:k,levelEntitlements:T,shopInventory:E,peerMetadata:j,isInputBlocked:M,isChatAvailable:O,isForestUnlocked:D,setState:(e,t)=>{l(n=>{let a=typeof e==`function`?e(n):e;if(a==null)return n;let o={...n,...a};return t&&setTimeout(t,0),o})},...v.current,purchaseItem:(e,t)=>v.current.purchaseItem(e,t),sellItem:(e,t)=>v.current.sellItem(e,t),showNotification:(e,t)=>v.current.showNotification(e,t),prependPendingPeerMessage:(e,t)=>v.current.prependPendingPeerMessage(e,t),forRange:(e,t,n,a,o)=>v.current.forRange(e,t,n,a,o),createInitialState:o,getData,postData,tradeForPeerCow:V,handleCowTradeTimeout:H,clearPersistedData:W,syncToRoom:z,scheduleHeartbeat:B,showInventoryFullNotifications:q,showRecipeLearnedNotifications:J,persistState:(e={})=>G(N.current?.state??s,e),updateServerForNextDay:ee,incrementDay:K,openDialogView:F,closeDialogView:I,focusNextView:L,focusPreviousView:R,messagePeers:U}),[s,e,b,x,S,C,k,T,E,j,M,O,D,V,H,W,z,B,q,J,G,ee,K,F,I,L,R,U,o]);let te=(0,import_react$24.useMemo)(()=>{let e={debounced:{}};return Object.keys(ui_events_default).forEach(t=>{let n=t;e[n]=(...e)=>ui_events_default[n].apply(N.current,e),e.debounced[n]=(0,import_lodash_debounce.default)(e[n],50)}),e},[]),ne=(0,import_react$24.useMemo)(()=>{let e={incrementDay:`shift+c`,nextView:`right`,openAccounting:`b`,openAchievements:`a`,openLog:`l`,openPriceEvents:`e`,openStats:`s`,openSettings:`,`,openKeybindings:`shift+?`,previousView:`left`,toggleMenu:`m`};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=String(n+1)}),e},[]),re=(0,import_react$24.useMemo)(()=>{let e={incrementDay:()=>K(),nextView:L,openAccounting:()=>F(dialogView.ACCOUNTING),openAchievements:()=>F(dialogView.ACHIEVEMENTS),openLog:()=>F(dialogView.FARMERS_LOG),openPriceEvents:()=>F(dialogView.PRICE_EVENTS),openStats:()=>F(dialogView.STATS),openSettings:()=>F(dialogView.SETTINGS),openKeybindings:()=>F(dialogView.KEYBINDINGS),previousView:R,selectHoe:()=>te.handleFieldModeSelect(CLEANUP),selectScythe:()=>te.handleFieldModeSelect(HARVEST),selectWateringCan:()=>te.handleFieldModeSelect(WATER),selectShovel:()=>{s.toolLevels[toolType.SHOVEL]!==toolLevel.UNAVAILABLE&&te.handleFieldModeSelect(MINE)},toggleMenu:()=>te.handleMenuToggle()};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=()=>{let e=k[n];typeof e==`string`&&l(t=>({...t,stageFocus:stageFocusType[e]}))}}),e},[K,L,F,R,te,s.toolLevels,k,W]);(0,import_react$24.useEffect)(()=>{if(m.current)return;m.current=!0,Object.defineProperty(import_window.default,`farmhand`,{get:()=>N.current,configurable:!0});let t=!0;return(async()=>{let n=await e.localforage?.getItem(`state`);if(t){if(n){let e=transformStateDataForImport({...o(),...n}),{isCombineEnabled:t,newDayNotifications:a}=e;l(t=>({...t,...e,newDayNotifications:[],hasBooted:!0})),a.forEach(({message:e,severity:t})=>{setTimeout(()=>v.current.showNotification(e,t),0)}),t&&v.current.forRange(harvestPlot,1/0,0,0)}else await K(!0),l(e=>({...e,historicalValueAdjustments:[]})),v.current.showNotification(LOAN_INCREASED(``,500),`info`),l(e=>({...e,hasBooted:!0}));z()}})(),()=>{t=!1}},[o,K,e.localforage,z]),(0,import_react$24.useEffect)(()=>{if(!s.hasBooted||!f.current)return;let t=!0,{state:n,pendingNotifications:a,broadcastedPositionMessage:o,isFirstDay:u}=f.current;return f.current=null,(async()=>{try{if(await e.localforage?.setItem(`state`,reduceByPersistedKeys({...n,...u&&{historicalValueAdjustments:[]},newDayNotifications:a})),!t)return;if([...a].concat(u?[]:[{message:PROGRESS_SAVED_MESSAGE,severity:`info`}]).forEach(({message:e,severity:t})=>v.current.showNotification(e,t)),n.isCombineEnabled){if(n.stageFocus===stageFocusType.FIELD&&await sleep(1e3),!t)return;v.current.forRange(harvestPlot,1/0,0,0)}}catch(e){console.error(e),t&&v.current.showNotification(JSON.stringify(e),`error`)}finally{t&&(l(e=>({...e,isWaitingForDayToCompleteIncrementing:!1})),o&&v.current.prependPendingPeerMessage(o))}})(),()=>{t=!1}},[s.dayCount,s.hasBooted,e.localforage,l]),(0,import_react$24.useEffect)(()=>()=>{u.current.heartbeatTimeoutId&&clearTimeout(u.current.heartbeatTimeoutId),u.current.peerRoom?.leave()},[]),(0,import_react$24.useEffect)(()=>{!s.hasBooted||!y||(updateAchievements(s,y)!==s&&l(e=>{let t=updateAchievements(e,y);return t===e?e:t}),s.stageFocus===stageFocusType.COW_PEN&&y.stageFocus!==stageFocusType.COW_PEN&&l(e=>({...e,selectedCowId:``})),s.stageFocus!==y.stageFocus&&s.isMenuOpen&&l(e=>({...e,isMenuOpen:!doesMenuObstructStage()})),s.money<y.money&&l(e=>({...e,todaysLosses:moneyTotal(e.todaysLosses,s.money-y.money)})),q(y,s),J(y))},[s,y,q,J]);let Y=s.redirect;return{gameState:{...s,blockInput:M,features:t??{},fieldToolInventory:x,isChatAvailable:O,levelEntitlements:T,plantableCropInventory:C,playerInventory:S,playerInventoryQuantities:getInventoryQuantities(s.inventory),shopInventory:E,viewList:k,viewTitle:b},handlers:te,isInputBlocked:M,keyMap:ne,keyHandlers:re,redirect:Y,state:s,viewList:k,focusPreviousView:R,focusNextView:L,isChatAvailable:O}},emptyObject=Object.freeze({}),Farmhand=e=>{let{gameState:t,handlers:n,isInputBlocked:a,keyMap:o,keyHandlers:s,redirect:l,state:u,viewList:d,focusPreviousView:f,focusNextView:m,isChatAvailable:h}=useFarmhand(e);return(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{allowChanges:!0,keyMap:a?emptyObject:o,handlers:a?emptyObject:s,children:(0,import_jsx_runtime.jsxs)(ThemeProvider,{theme:mui_theme_default,children:[(0,import_jsx_runtime.jsx)(CssBaseline,{}),(0,import_jsx_runtime.jsxs)(SnackbarProvider,{anchorOrigin:{vertical:`top`,horizontal:`right`},classes:{containerRoot:`Farmhand notification-container`},content:snackbarProviderContentCallback,maxSnack:4,children:[l&&(0,import_jsx_runtime.jsx)(Redirect,{to:l}),(0,import_jsx_runtime.jsxs)(FarmhandContext.Provider,{value:{gameState:t,handlers:n},children:[(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Farmhand farmhand-root fill`,u.isMenuOpen?`menu-open`:`menu-closed`,{"use-alternate-end-day-button-position":u.useAlternateEndDayButtonPosition,"block-input":a,"has-booted":u.hasBooted}),sx:e=>({...fillSx,display:`flex`,paddingTop:`3.5em`,position:`fixed`,touchAction:`manipulation`,opacity:+!!u.hasBooted,transform:u.hasBooted?`scale(1)`:`scale(0)`,transition:`opacity, transform 200ms`,...a&&{"& button, & input":{filter:`contrast(65%)`,pointerEvents:`none`}},[`@media (min-width: ${breakpoints.smallPhone}px) and (orientation: landscape)`]:{paddingTop:`3em`},[`@media (min-width: ${breakpoints.sm}px)`]:{paddingTop:`4em`},"& .sidebar-wrapper":{display:`flex`},"& .bottom-controls":{alignItems:`center`,bottom:`1em`,display:`flex`,flexFlow:`column`,justifyContent:`center`,left:`50%`,opacity:.85,position:`fixed`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:0,zIndex:20,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.5em`},"& .MuiMobileStepper-root":{background:`none`},"& .fab-buttons":{display:`flex`,flexFlow:`row`,"& button":{margin:`0.5em`,position:`relative`,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{margin:`0.25em 0.5em`},"@media (max-width: 320px)":{margin:`0.25em 0.1em`}}},...u.isMenuOpen&&{"@media (orientation: landscape)":{left:`calc(50vw + ${layout.sidebarWidth} / 2)`}}},"& .end-day":{position:`fixed`,top:`5em`,right:`1em`,[`@media (min-width: ${breakpoints.sm}px)`]:{right:`1.25em`,top:`5.5em`},...u.useAlternateEndDayButtonPosition&&{right:`auto`,left:`1em`}},"& .menu-button":{transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter}),transform:u.isMenuOpen?`rotate(-90deg)`:`rotate(0deg)`}}),children:[(0,import_jsx_runtime.jsx)(UpdateNotifier,{}),(0,import_jsx_runtime.jsx)(Consumer$27,{}),(0,import_jsx_runtime.jsxs)(Drawer,{className:`sidebar-wrapper`,open:t.isMenuOpen,variant:`persistent`,role:`complementary`,PaperProps:{className:`sidebar`,sx:{backgroundImage:`url(${blue_stripe_bg_default})`,boxSizing:`border-box`,overflow:`auto`,padding:`1em 1em 0`,position:`relative`,width:layout.sidebarWidth,zIndex:20,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{width:layout.narrowSidebarWidth},"& .button-array":{display:`flex`,flexWrap:`wrap`,margin:`0.5em 0`}}},children:[(0,import_jsx_runtime.jsx)(Consumer$12,{}),(0,import_jsx_runtime.jsx)(Consumer$22,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]}),(0,import_jsx_runtime.jsx)(Consumer,{}),(0,import_jsx_runtime.jsxs)(`div`,{className:`bottom-controls`,children:[(0,import_jsx_runtime.jsx)(MobileStepper,{variant:`dots`,steps:d.length,position:`static`,activeStep:d.indexOf(u.stageFocus),className:``,backButton:null,nextButton:null}),(0,import_jsx_runtime.jsxs)(`div`,{className:`fab-buttons buttons`,children:[(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Previous view`,color:`primary`,onClick:f,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowLeft.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{className:(0,import_classnames.default)(`menu-button`,{"is-open":u.isMenuOpen}),color:`primary`,"aria-label":`Open drawer`,onClick:()=>n.handleMenuToggle(),children:(0,import_jsx_runtime.jsx)(import_Menu.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Next view`,color:`primary`,onClick:m,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowRight.default,{})})]})]}),(0,import_jsx_runtime.jsx)(Tooltip,{placement:`left`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`p`,{children:`End the day to save your progress and advance the game.`}),(0,import_jsx_runtime.jsx)(`p`,{children:`(shift + c)`})]}),children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`End the day to save your progress and advance the game.`,className:`end-day`,color:`error`,onClick:n.handleClickEndDayButton,sx:{zIndex:Z_INDEX.END_DAY_BUTTON},children:(0,import_jsx_runtime.jsx)(import_Hotel.default,{})})})]}),h?(0,import_jsx_runtime.jsx)(ChatRoom,{}):null,(0,import_jsx_runtime.jsx)(NotificationSystem_default,{})]})]})]})})};Farmhand.defaultProps={localforage:import_localforage.default.createInstance({name:`farmhand`,description:`Persisted game data for Farmhand`}),features:{},match:{path:``,params:{}}},Farmhand.propTypes={features:import_prop_types$1.object,history:import_prop_types$1.object,location:import_prop_types$1.object,match:import_prop_types$1.object.isRequired};var FarmhandRoute=e=>(0,import_jsx_runtime.jsx)(Farmhand,{...e,features});import_react_dom.render((0,import_jsx_runtime.jsx)(HashRouter,{hashType:`noslash`,children:(0,import_jsx_runtime.jsx)(Route,{path:[`/online/:room`,`/online`,`/`],component:FarmhandRoute})}),document.getElementById(`root`));
|
|
840
|
-
//# sourceMappingURL=index-
|
|
839
|
+
Kegs that contain wine compound in value at a rate of ${WINE_INTEREST_RATE}% for up to ${integerString(100)} days and never spoil.`})})})})})]})};CellarInventoryTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};function getCropsAvailableToFerment(e){return Object.keys(e.items).reduce((e,t)=>{let n=getFinalCropItemFromSeedItem(itemsMap[t]);return n&&Number.isFinite(n.daysToFerment)&&e.push(n),e},[])}var FermentationRecipe=({item:e})=>{let{gameState:{inventory:t,cellarInventory:n,purchasedCellar:a},handlers:{handleMakeFermentationRecipeClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=getInventoryQuantityMap(t),d=FERMENTED_CROP_NAME`${e}`,{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0};(0,import_react$24.useEffect)(()=>{l(Math.min(getMaxYieldOfFermentationRecipe(e,t,n,f),Math.max(1,s)))},[n,f,t,e,s]);let m=s>0&&cellarService.doesCellarSpaceRemain(n,a),h=()=>{m&&o(e,s)},v=getMaxYieldOfFermentationRecipe(e,t,n,f),y=cellarService.getItemInstancesInCellar(n,e);return(0,import_jsx_runtime.jsxs)(Card,{className:`FermentationRecipe`,sx:{position:`relative`,"& .MuiCardHeader-avatar img":{width:`3em`,filter:`drop-shadow(1px 1px 2px rgba(255, 0, 131, 0.63))`}},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:d,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:items[e.id],alt:d}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to ferment: `,e.daysToFerment]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,itemsMap[e.id].name,` in inventory:`,` `,integerString(u[e.id]??0)]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of`,` `,itemsMap.salt.name,` `,`required: `,getSaltRequirementsForFermentationRecipe(e),` `,`(available:`,` `,(0,import_jsx_runtime.jsx)(AnimatedNumber,{number:u[itemsMap.salt.id]??0,formatter:integerString}),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(y??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{className:`make-recipe`,color:`primary`,disabled:!m||!s,onClick:h,variant:`contained`,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:h,handleUpdateNumber:l,maxQuantity:v,setQuantity:l,value:s})]})]})};FermentationRecipe.propTypes={item:import_prop_types$1.object.isRequired};var totalFermentableItems=Object.keys(fermentableItemsMap).length,FermentationRecipeList=()=>{let{gameState:{levelEntitlements:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getCropsAvailableToFerment(e),[n,a]=(0,import_react$24.useState)(``),o=n.toLowerCase().split(` `).filter(e=>e.length>0),s=t.filter(e=>{let t=e,n=`${FERMENTED_CROP_NAME}${t.name}`.toLowerCase();return o.every(e=>n.includes(e)||t.name.toLowerCase().includes(e))}),l=s.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Fermentation Recipes (`,l,` /`,` `,totalFermentableItems,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search fermentation recipes...`,onSearch:a}),s.length>0&&(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:s.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(FermentationRecipe,{item:e})},e.id))})]})};FermentationRecipeList.propTypes={};var FermentationTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(FermentationRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Some items can be fermented and become much more valuable over time.`})})})})})]});FermentationTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var getGrapesSold=e=>Object.entries(e).reduce((e,[t,n])=>{let a=itemsMap[t];return(n||0)>0&&isGrape(a)&&e.push(a),e},[]);function getWineVarietiesAvailableToMake(e){return getGrapesSold(e).map(({variety:e})=>e)}var WineRecipe=({wineVariety:e})=>{let{gameState:{cellarInventory:t,inventory:n,purchasedCellar:a},handlers:{handleMakeWineClick:o}}=(0,import_react$24.useContext)(FarmhandContext),[s,l]=(0,import_react$24.useState)(1),u=grapeVarietyNameMap[e],d=grapeVarietyToGrapeItemMap[e],{space:f}=PURCHASEABLE_CELLARS.get(a)??{space:0},m=getInventoryQuantityMap(n);if((0,import_react$24.useEffect)(()=>{d&&l(Math.min(wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),Math.max(1,s)))},[t,f,d,n,s,e]),!d)return null;let h=itemsMap[d.wineId];if(!h)return null;let v=m[d.id]??0,y=m[yeast.id]??0,b=s>0&&v>=50&&cellarService.doesCellarSpaceRemain(t,a),x=!b||!s,S=cellarService.getItemInstancesInCellar(t,h),C=wineService.getMaxWineYield({grape:d,inventory:n,cellarInventory:t,cellarSize:f}),T=()=>{b&&o(d,s)};return(0,import_jsx_runtime.jsxs)(Card,{className:`WineRecipe`,sx:{position:`relative`},children:[(0,import_jsx_runtime.jsx)(CardHeader,{title:u,avatar:(0,import_jsx_runtime.jsx)(`img`,{src:wines[e],alt:u}),subheader:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`p`,{children:[`Days to mature:`,` `,integerString(wineService.getDaysToMature(e))]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,d.name,` required:`,` `,integerString(50),` (available:`,` `,integerString(v),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`Units of `,yeast.name,` required:`,` `,integerString(getYeastRequiredForWine(e)*s),` `,`(available: `,integerString(y),`)`]}),(0,import_jsx_runtime.jsxs)(`p`,{children:[`In cellar: `,integerString(S??0)]})]})}),(0,import_jsx_runtime.jsxs)(CardActions,{children:[(0,import_jsx_runtime.jsx)(Button,{color:`primary`,variant:`contained`,disabled:x,onClick:T,children:`Make`}),(0,import_jsx_runtime.jsx)(QuantityInput,{handleSubmit:T,handleUpdateNumber:l,maxQuantity:C,setQuantity:l,value:s})]})]})};WineRecipe.propTypes={wineVariety:(0,import_prop_types$1.oneOf)(Object.keys(grapeVariety))};var totalGrapeVarieties=Object.keys(grapeVariety).length,WineRecipeList=()=>{let{gameState:{itemsSold:e}}=(0,import_react$24.useContext)(FarmhandContext),t=getWineVarietiesAvailableToMake(e),[n,a]=(0,import_react$24.useState)(``),o=t.filter(e=>e.toLowerCase().includes(n.toLowerCase())),s=o.length;return(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsxs)(`h3`,{children:[`Available Wine Recipes (`,s,` /`,` `,totalGrapeVarieties,`)`]}),t.length>0&&(0,import_jsx_runtime.jsx)(SearchBar,{placeholder:`Search wine varieties...`,onSearch:a}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:o.map(e=>(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(WineRecipe,{wineVariety:e})},e))})]})},WinemakingTabPanel=({index:e,currentTab:t})=>(0,import_jsx_runtime.jsxs)(TabPanel,{value:t,index:e,children:[(0,import_jsx_runtime.jsx)(WineRecipeList,{}),(0,import_jsx_runtime.jsx)(Divider,{}),(0,import_jsx_runtime.jsx)(`ul`,{className:`card-list`,children:(0,import_jsx_runtime.jsx)(`li`,{children:(0,import_jsx_runtime.jsx)(Card,{children:(0,import_jsx_runtime.jsx)(CardContent,{children:(0,import_jsx_runtime.jsx)(import_react_markdown.default,{linkTarget:`_blank`,className:`markdown`,source:`Grapes can be made into wine. Wine becomes very valuable in time and never spoils.`})})})})})]});WinemakingTabPanel.propTypes={currentTab:import_prop_types$1.number.isRequired,index:import_prop_types$1.number.isRequired};var Cellar=()=>{let[e,t]=(0,import_react$24.useState)(0);return(0,import_jsx_runtime.jsxs)(Div,{className:`Cellar`,sx:centerTabsSx,children:[(0,import_jsx_runtime.jsxs)(Tabs,{value:e,onChange:(e,n)=>t(n),"aria-label":`Cellar tabs`,children:[(0,import_jsx_runtime.jsx)(Tab,{label:`Cellar Inventory`,...a11yProps(0)}),(0,import_jsx_runtime.jsx)(Tab,{label:`Fermentation`,...a11yProps(1)}),(0,import_jsx_runtime.jsx)(Tab,{label:`Winemaking`,...a11yProps(2)})]}),(0,import_jsx_runtime.jsx)(CellarInventoryTabPanel,{index:0,currentTab:e}),(0,import_jsx_runtime.jsx)(FermentationTabPanel,{index:1,currentTab:e}),(0,import_jsx_runtime.jsx)(WinemakingTabPanel,{index:2,currentTab:e})]})};Cellar.propTypes={};var brown_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAk0lEQVRoge2UoRGAMBAECZYS8HRDw5QSnxKig88gfgaxl59befPi12wZzz22idr6dp3HPEvu5UtgJXb6gb9YgCaPQG3980B9d4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNDkFVAoT2V0hGgvQ5BFQLExkd4VoLECTU0ClMJHdFaKxAE0eAcXCRHZXiMYCNMsLvBG5ypkvoIETAAAAAElFTkSuQmCC`,jack_o_lantern_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAYAAABNChwpAAAA4UlEQVRYR+2VMQ6DMAxFYe4R2LsxdOopuHBv0KkDW/ceoTOVK/0qhICd8K0wNBNyIv3nH5PfTrdhaiqu9vAAz9f768+5O7n4tOmAt7h0tAAIRde+mVbMACCoCTCv4wcQio+Pe9NfrjOOuMaCWACIEBYgUjU3AM1+7LsCVL0CdBjaLrV4JugOiEjVvwCdhxDoMlWzzop27vhZoHWwd//vgLsDWqK6AmjiyTjeO1S5cU51oOQhowGUxjkdIDfO6QDWGcIz7wKQE+cuAOKCNc5pAKVxTgWIISxxTgewDiHOVQf4AHx92LXFZzetAAAAAElFTkSuQmCC`,winter_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAAAQdJREFUeJztmcERgyAUBZ9pIjVRUa5UldT0K/BITnhKZpgYXYG3Bei6oyCwxFrKPb9EEznpTI/ISZK06PEsp931YkROcweQpBstQNMcoH4zo9EUoD78iBGaAtTR+Qqzxb/xIEgL0DgALUDTTYCjZiAPgrQAjQPQAjQOcNSFe1k3eBagBWgcgBagcYBeRuujmP4NWGIt2zQ44pbXN7aDkaucDFH4E/Cf4OQ4AC1A4wC0AI0D0AI0DkAL0DgALUDjALQAze4AkVM3hyCfmP4N8H4ALUDjALQAjQPQAjQOQAvQOAAtQDNEgD3rkSECSL+fbHstQAvQOAAtQOMAtACNA9ACFWJjNXLSG2nxQbKUEorlAAAAAElFTkSuQmCC`,yellow_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAx0lEQVRoQ+2WwQ3AIAwDYRVW6dx9dg1GKf1WlEcTAUks94maBHzGIt/taqn7aj1TKUe/nDyu59EBPjt3vMADWMMhATcEPCbMnySkhdxYyHoj2vm0kFa5WXVDApESiRaaZQVtHxLQKjerDodApOR5v5FwCMzy5O4+JLBb8X4eJoFIiYRJwNrXkvkkIFFrxb84BCIlD99CK7ys7YlzB7QKWNdhEoiUSJgErH0tmU8CErVW/ItDIFLy8C20wsvanjh3QKuAdV14Ag9MlnJUFzG78wAAAABJRU5ErkJgggAA`,lavender_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAyUlEQVRoQ+2WwRGAIAwEQw0WYf/l+LQAPzaAXwd5mAyQ5OZ8MiaB2+OGcp+1SvNdh8i2t6siEddL7wDfrcdd4QG82ZBAGAIRE+ZPEtJCYSzkvRHrfFrIqtyoui6BTIlEC42ygrUPCViVG1WHQyBT8rzfSDgERnlydR8SWK14Ow+TQKZEwiTg7WvNfBLQqDXjXxwCmZKHb6EZXrb2xLkDVgW86zAJZEokTALevtbMJwGNWjP+xSGQKXn4FprhZWtPnDtgVcC7Lj2BB3XCNohEy6k2AAAAAElFTkSuQmCC`,green_dot_bg_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAzUlEQVRoQ+2WwRGAIAwEoQDb8GEX/mzTpnzYhgXo10EekgkkuTmfjEng9rghb/t6p+I7ryPN01IuJ4/ruXaAz84dL/AA1nBIwA0BjwnzJwlpITcWst6IdD4tJFVOq65KIFIi0UJaVpD2IQGpclp1OAQiJc/7jYRDQMuTo/uQwGjFy3mYBCIlEiYBa1+3zCeBFrV6/ItDIFLy8C3Uw8vSnjh3QKqAdR0mgUiJhEnA2tct80mgRa0e/+IQiJQ8fAv18LK0J84dkCpgXReewAMJ+CZ83BE+2AAAAABJRU5ErkJgggAA`,grass_default=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABp0lEQVRoQ92Y63HDMAyD5RE6QMfLCp2qi2SODtARkmt7yTmuJIAEeHbiv+LrIyjZ8vJxbpe28/P91drbe66IZQ2gBMql//Ni8o5sZAAm+RqOtd/aUQCzLo4CsAXdYrP2rN2DAhkAZXQcvjSAI1lFjBIAVn4H0K4ADtASALaz7EkzO8V+ARydYItWD4ptrVMAJ5gz1roJ0xFyJnXGogGiclcVOasjvYl7xT4VgGPTOmKkFXAkd8S4AyD50fqoGNZvZjdbex0Ah5xsDFYVJp60B7KFZP16d4pdAJjOsu8gCaCXRO1uFE6+E28TPj1AtIOqinCEqjuqfpIcEiCiIgRAwaoVmt3GftZKAdxwvXjL6bNdsv8lj6BOKYB6wqAGWUaISYLmOBrDcqVUkiLfyN75t4lZZ9YOFauO2SEBItDyMcp+NTJFZVSlATLBoz6Za2UpANN11mb0zUQDsIlYu6g6o81uAcgUk/HpQewG4Hq50b9V2NHI2ClqHAIgA33zgSOkdMcxJij/6wMo8lb5rlWBCkSLQJKjeIy/BIASoHUHgHQfUAtEANH1K9JWO4Tg58LYAAAAAElFTkSuQmCC`,Stage=({field:e,isMenuOpen:t=!0,stageFocus:n,useAlternateEndDayButtonPosition:a=!1,viewTitle:o})=>{let s=(0,import_react$24.useRef)(null);(0,import_react$24.useEffect)(()=>{if(s.current){let e=s.current,{style:t}=e;e.scrollTop=0,t.overflow=`hidden`,setTimeout(()=>t.overflow=``,0)}},[n]);let l={[stageFocusType.HOME]:isOctober()?jack_o_lantern_bg_default:isDecember()?winter_bg_default:brown_dot_bg_default,[stageFocusType.SHOP]:yellow_dot_bg_default,[stageFocusType.WORKSHOP]:lavender_dot_bg_default,[stageFocusType.CELLAR]:green_dot_bg_default,[stageFocusType.FIELD]:grass_default,[stageFocusType.COW_PEN]:grass_default}[n];return(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Stage`,{"is-october":isOctober(),"is-december":isDecember()}),"data-stage-focus":n,role:`main`,ref:s,sx:e=>({backgroundSize:`96px`,flex:2,imageRendering:`pixelated`,marginLeft:0,overflow:`auto`,padding:`1.5em 1.5em 0`,position:`relative`,transition:e.transitions.create(`margin-left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),...l?{backgroundImage:`url(${l})`}:{},...[stageFocusType.FIELD,stageFocusType.COW_PEN].includes(n)?{backgroundSize:`30%`,[`@media (min-width: ${breakpoints.md}px)`]:{backgroundSize:`10%`}}:{},"& h3":{textAlign:`center`},"& h2":{fontSize:`1.2em`},"& .view-title":{fontSize:`2.5em`,marginBottom:`0.6em`,textAlign:`center`,[`@media (min-width: ${breakpoints.largePhone}px)`]:{display:`none`}},"& section":{padding:`0.5em 0`,[`@media (max-width: ${breakpoints.sm}px)`]:{fontSize:`1em`}},...a?{paddingTop:`4em`,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{paddingTop:`4.5em`}}:{},...t?{transitionProperty:`padding, margin-left`,[`@media (max-width: ${breakpoints.sm}px)`]:{padding:0},"& > *":{opacity:1,transition:e.transitions.create(`opacity`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),[`@media (max-width: ${breakpoints.sm}px)`]:{opacity:0}}}:{marginLeft:`-${layout.sidebarWidth}`,transition:e.transitions.create(`margin-left`,{duration:e.transitions.duration.leavingScreen,easing:e.transitions.easing.sharp}),[`@media (max-width: ${breakpoints.smallPhone}px)`]:{marginLeft:`-${layout.narrowSidebarWidth}px`}}}),children:[(0,import_jsx_runtime.jsx)(`h2`,{className:`view-title`,children:o}),n===stageFocusType.HOME&&(0,import_jsx_runtime.jsx)(Consumer$7,{}),n===stageFocusType.FIELD&&(0,import_jsx_runtime.jsx)(Consumer$8,{columns:e[0].length,rows:e.length}),n===stageFocusType.FOREST&&(0,import_jsx_runtime.jsx)(Forest,{}),n===stageFocusType.SHOP&&(0,import_jsx_runtime.jsx)(Consumer$4,{}),n===stageFocusType.COW_PEN&&(0,import_jsx_runtime.jsx)(Consumer$6,{}),n===stageFocusType.WORKSHOP&&(0,import_jsx_runtime.jsx)(Consumer$1,{}),n===stageFocusType.CELLAR&&(0,import_jsx_runtime.jsx)(Cellar,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]})};Stage.propTypes={field:(0,import_prop_types$1.arrayOf)(import_prop_types$1.array).isRequired,isMenuOpen:import_prop_types$1.bool,stageFocus:import_prop_types$1.string.isRequired,useAlternateEndDayButtonPosition:import_prop_types$1.bool,viewTitle:import_prop_types$1.string.isRequired};function Consumer(e){return(0,import_jsx_runtime.jsx)(FarmhandContext.Consumer,{children:({gameState:t,handlers:n})=>(0,import_jsx_runtime.jsx)(Stage,{...t,...n,...e})})}var scriptRel=`modulepreload`,assetsURL=function(e,t){return new URL(e,t).href},seen={},__vitePreload=function(e,t,n){let a=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),o=document.querySelector(`meta[property=csp-nonce]`),s=o?.nonce||o?.getAttribute(`nonce`);function l(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}a=l(t.map(t=>{if(t=assetsURL(t,n),t in seen)return;seen[t]=!0;let a=t.endsWith(`.css`),o=a?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let o=e[n];if(o.href===t&&(!a||o.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${o}`))return;let l=document.createElement(`link`);if(l.rel=a?`stylesheet`:scriptRel,a||(l.as=`script`),l.crossOrigin=``,l.href=t,s&&l.setAttribute(`nonce`,s),document.head.appendChild(l),a)return new Promise((e,n)=>{l.addEventListener(`load`,e),l.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function o(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return a.then(t=>{for(let e of t||[])e.status===`rejected`&&o(e.reason);return e().catch(o)})},autoUpdateMode=`false`,selfDestroying=`false`,auto=autoUpdateMode===`true`,autoDestroy=selfDestroying===`true`;function registerSW(e={}){let{immediate:t=!1,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,d,f,m,h=async(e=!0)=>{await f,auto||m?.()};async function v(){if(`serviceWorker`in navigator){if(d=await __vitePreload(async()=>{let{Workbox:e}=await import(`./workbox-window.prod.es5-Cch4wiA5.js`);return{Workbox:e}},[],import.meta.url).then(({Workbox:e})=>new e(`./service-worker.js`,{scope:`./`,type:`classic`})).catch(e=>{u?.(e)}),!d)return;if(m=()=>{d?.messageSkipWaiting()},!autoDestroy)if(auto)d.addEventListener(`activated`,e=>{(e.isUpdate||e.isExternal)&&(n?n():window.location.reload())}),d.addEventListener(`installed`,e=>{e.isUpdate||o?.()});else{let e=!1,t=()=>{e=!0,d?.addEventListener(`controlling`,e=>{e.isUpdate&&(n?n():window.location.reload())}),a?.()};d.addEventListener(`installed`,n=>{n.isUpdate===void 0?n.isExternal===void 0?!e&&o?.():n.isExternal?t():!e&&o?.():n.isUpdate||o?.()}),d.addEventListener(`waiting`,t)}d.register({immediate:t}).then(e=>{l?l(`./service-worker.js`,e):s?.(e)}).catch(e=>{u?.(e)})}}return f=v(),h}function useRegisterSW(e={}){let{immediate:t=!0,onNeedReload:n,onNeedRefresh:a,onOfflineReady:o,onRegistered:s,onRegisteredSW:l,onRegisterError:u}=e,[d,f]=(0,import_react$24.useState)(!1),[m,h]=(0,import_react$24.useState)(!1),[v]=(0,import_react$24.useState)(()=>registerSW({immediate:t,onNeedReload:n,onOfflineReady(){h(!0),o?.()},onNeedRefresh(){f(!0),a?.()},onRegistered:s,onRegisteredSW:l,onRegisterError:u}));return{needRefresh:[d,f],offlineReady:[m,h],updateServiceWorker:v}}var UpdateNotifier=()=>{let{handlers:{handleGameUpdateAvailable:e}}=(0,import_react$24.useContext)(FarmhandContext),{needRefresh:[t],updateServiceWorker:n}=useRegisterSW();return(0,import_react$24.useEffect)(()=>{t&&(e(n),window.addEventListener(`beforeunload`,()=>{n(!0)}))},[t,e,n]),null},commonFetchConfig={mode:`cors`,cache:`no-cache`,credentials:`same-origin`,headers:{"Content-Type":`application/json`},redirect:`follow`,referrerPolicy:`no-referrer`};async function getData(e=``,t={}){let n=new URLSearchParams;return Object.keys(t).forEach(e=>n.append(encodeURIComponent(e),encodeURIComponent(t[e]))),(await fetch(`${e}?${n}`,{...commonFetchConfig,method:`GET`})).json()}async function postData(e=``,t={}){return(await fetch(e,{...commonFetchConfig,method:`POST`,body:JSON.stringify(t)})).json()}var createNewField=()=>Array(10).fill(void 0).map(()=>[,,,,,,].fill(null)),createNewForest=()=>[,].fill(void 0).map(()=>[,,,,].fill(null)),doesMenuObstructStage=()=>window.innerWidth<BREAKPOINTS.MD,getAvailableShopInventory=memoize(e=>inventory.filter(({id:t})=>!(unlockableItems.hasOwnProperty(t)&&!e.items.hasOwnProperty(t)))),getPeerMetadata=e=>{let t=PEER_METADATA_STATE_KEYS.reduce((t,n)=>(t[n]=e[n],t),{});return Object.assign(t,{cowOfferedForTrade:e.cowInventory.find(({id:t})=>t===e.cowIdOfferedForTrade)}),t},sleep=e=>new Promise(t=>setTimeout(t,e)),{PLANT}=fieldMode,FarmhandService=class{static computePlayerInventory=memoize((e,t)=>e.map(({quantity:e,id:n})=>({quantity:e,...itemsMap[n],value:getItemCurrentValue(itemsMap[n],t)})));static getFieldToolInventory=memoize(e=>e.filter(({id:e})=>{let{enablesFieldMode:t}=itemsMap[e];return typeof t==`string`&&t!==PLANT}).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static getPlantableCropInventory=memoize(e=>e.filter(({id:e})=>itemsMap[e].isPlantableCrop).map(({id:e,quantity:t})=>({...itemsMap[e],quantity:t})));static applyPriceEvents=(e,t,n)=>{let a={...e};return Object.keys(t).forEach(e=>{a[e]=.5}),Object.keys(n).forEach(e=>{a[e]=1.5}),a}},itemIds=Object.keys(itemsMap),getInventoryQuantities=e=>{let t={};for(let e of itemIds)t[e]=0;for(let{id:n,quantity:a}of e)t[n]=a;return t},useFarmhandNavigation=(e,t)=>({openDialogView:(0,import_react$24.useCallback)(t=>{e(e=>({...e,currentDialogView:t,isDialogViewOpen:!0}))},[e]),closeDialogView:(0,import_react$24.useCallback)(()=>{e(e=>({...e,isDialogViewOpen:!1}))},[e]),focusNextView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus);return{...e,stageFocus:t[(n+1)%t.length]}})},[e,t]),focusPreviousView:(0,import_react$24.useCallback)(()=>{document.activeElement?.getAttribute(`role`)!==`tab`&&e(e=>{let n=t.indexOf(e.stageFocus),a=n===0?t.length-1:(n-1)%t.length;return{...e,stageFocus:t[a]}})},[e,t])}),{floor,random,sin}=Math,libName=`Trystero`,alloc=(e,t)=>Array(e).fill(void 0).map(t),charSet=`0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz`,genId=e=>alloc(e,()=>charSet[floor(random()*62)]??``).join(``),selfId=genId(20),all=Promise.all.bind(Promise),isBrowser=typeof window<`u`,{entries,fromEntries,keys,values}=Object,noOp=()=>{},candidateType=`candidate`,resetTimer=e=>(e!==null&&clearTimeout(e),null),mkErr=e=>Error(`${libName}: ${e}`),toErrorMessage=(e,t)=>e instanceof Error&&e.message?e.message:typeof e==`string`&&e?e:toJson(e??t),toError=(e,t)=>e instanceof Error?e:mkErr(toErrorMessage(e,t)),encoder=new TextEncoder,decoder=new TextDecoder,encodeBytes=e=>encoder.encode(e),decodeBytes=e=>decoder.decode(e),toHex=e=>e.reduce((e,t)=>e+t.toString(16).padStart(2,`0`),``),topicPath=(...e)=>e.join(`@`),shuffle=(e,t)=>{let n=[...e],a=()=>{let e=sin(t++)*1e4;return e-floor(e)},o=n.length;for(;o;){let e=floor(a()*o--),t=n[o];n[o]=n[e],n[e]=t}return n},getRelays=(e,t,n,a=!1)=>e.relayConfig?.urls||(a?shuffle(t,strToNum(e.appId)):t).slice(0,e.relayConfig?.redundancy??n),toJson=JSON.stringify,fromJson=e=>{try{return JSON.parse(e)}catch{throw mkErr(`failed to parse JSON: ${e}`)}},strToNum=(e,t=2**53-1)=>e.split(``).reduce((e,t)=>e+t.charCodeAt(0),0)%t,defaultRetryMs=3333,socketRetryPeriods={},reconnectionLockingPromise=null,resolver=null,pauseRelayReconnection=()=>{reconnectionLockingPromise||=new Promise(e=>{resolver=e}).finally(()=>{resolver=null,reconnectionLockingPromise=null})},resumeRelayReconnection=()=>{resolver?.()},makeSocket=(e,t)=>{let n={},a=()=>{let o=new WebSocket(e);o.onclose=()=>{if(reconnectionLockingPromise){reconnectionLockingPromise.then(a);return}socketRetryPeriods[e]??=defaultRetryMs,setTimeout(a,socketRetryPeriods[e]),socketRetryPeriods[e]*=2},o.onmessage=e=>t(String(e.data)),n.socket=o,n.url=o.url,n.ready=new Promise(t=>o.onopen=()=>{t(n),socketRetryPeriods[e]=defaultRetryMs}),n.send=e=>{o.readyState===1&&o.send(e)}};return a(),n},createRelayManager=e=>{let t={},n=new WeakMap,a=e=>{let t=n.get(e);if(!t)throw mkErr(`relay bookkeeping missing registration for relay client`);return t};return{register:(e,a)=>(t[e]=a,n.set(a,e),a),keyOf:a,scoped:()=>{let e={},t=t=>e[t]??={};return{forKey:t,forRelay:e=>t(a(e))}},getSockets:()=>fromEntries(entries(t).flatMap(([t,n])=>{let a=e(n);return a?[[t,a]]:[]}))}},watchOnline=()=>{if(isBrowser){let e=new AbortController;return addEventListener(`online`,resumeRelayReconnection,{signal:e.signal}),addEventListener(`offline`,pauseRelayReconnection,{signal:e.signal}),()=>e.abort()}return noOp},algo=`AES-GCM`,strToSha1={},pack=e=>btoa(String.fromCharCode.apply(null,Array.from(new Uint8Array(e)))),unpack=e=>{let t=atob(e);return new Uint8Array(t.length).map((e,n)=>t.charCodeAt(n)).buffer},hashWith=async(e,t)=>new Uint8Array(await crypto.subtle.digest(e,encodeBytes(t))),sha1=async e=>strToSha1[e]??=Array.from(await hashWith(`SHA-1`,e)).map(e=>e.toString(36)).join(``),genKey=async(e,t,n)=>crypto.subtle.importKey(`raw`,await crypto.subtle.digest({name:`SHA-256`},encodeBytes(`${e}:${t}:${n}`)),{name:algo},!1,[`encrypt`,`decrypt`]),deriveRoomNamespace=async(e,t)=>toHex(await hashWith(`SHA-256`,`${libName}:${e}:${t}`)),joinChar=`$`,ivJoinChar=`,`,encrypt=async(e,t)=>{let n=crypto.getRandomValues(new Uint8Array(16));return n.join(ivJoinChar)+joinChar+pack(await crypto.subtle.encrypt({name:algo,iv:n},await e,encodeBytes(t)))},decrypt=async(e,t)=>{let[n,a]=t.split(joinChar);return decodeBytes(await crypto.subtle.decrypt({name:algo,iv:new Uint8Array(n?.split(ivJoinChar).map(Number)??[])},await e,unpack(a??``)))},offerTtl=57333,offerLeaseTtlMs=18e4,poolSize=20,OfferPool=class{pool=[];pooled=new Set;leased=new Map;recycling=new Set;cleanupTimer=null;active=!1;constructor(e){this.makeOffer=e}get isActive(){return this.active}warmup(){this.pool=[],this.pooled.clear(),alloc(poolSize,this.makeOffer).forEach(e=>this.push(e)),this.active=!0,this.cleanupTimer=setInterval(()=>{this.pool=this.pool.filter(e=>e.isDead?(this.pooled.delete(e),!1):!0)},offerTtl)}push(e){e.isDead||this.pooled.has(e)||this.leased.has(e)||(this.pool.push(e),this.pooled.add(e))}shift(e){let t=[];for(;t.length<e&&this.pool.length>0;){let e=this.pool.shift();if(!e)break;this.pooled.delete(e),t.push(e)}return t}claimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e))}recycle(e){if(!(e.isDead||this.recycling.has(e))){if(e.connection.remoteDescription){e.destroy();return}if(!this.active){e.destroy();return}this.recycling.add(e),e.setHandlers({connect:noOp,close:noOp,error:noOp}),e.getOffer(!0).then(t=>{if(!t||t.type!==`offer`||e.isDead||!this.active){e.destroy();return}this.push(e)}).catch(()=>e.destroy()).finally(()=>this.recycling.delete(e))}}reclaimLeased(e){let t=this.leased.get(e);t&&(resetTimer(t),this.leased.delete(e),this.recycle(e))}lease(e){this.claimLeased(e),this.leased.set(e,setTimeout(()=>{this.leased.delete(e),this.recycle(e)},offerLeaseTtlMs))}checkout(e,t,n){let a=this.shift(e),o=Math.max(0,e-a.length);o>0&&a.push(...alloc(o,this.makeOffer));let s=async(e,a=!1)=>{try{let a=await n(e);return t?(this.lease(e),{peer:e,offer:a,claim:()=>this.claimLeased(e),reclaim:()=>this.reclaimLeased(e)}):{peer:e,offer:a}}catch(t){if(this.claimLeased(e),this.pooled.delete(e),e.destroy(),!a)return s(this.makeOffer(),!0);throw t}};return all(a.map(e=>s(e)))}getOffers(e,t){return this.checkout(e,!0,t)}destroy(){this.active=!1,this.cleanupTimer&&=(clearInterval(this.cleanupTimer),null),this.pool.forEach(e=>e.destroy()),this.pool=[],this.pooled.clear(),this.leased.forEach((e,t)=>{resetTimer(e),t.destroy()}),this.leased.clear(),this.recycling.forEach(e=>e.destroy()),this.recycling.clear()}},overlapRoomPasswordErr=mkErr(`incorrect password for overlapping room`),createPasswordHandshake=(e,t,n)=>{let a=a=>hashWith(`SHA-256`,`${a}:${e}:${t}:${n}`).then(toHex),o=async(t,n,o)=>{if(!e)return;if(o){let e=genId(36);await t({__trystero_pw:`challenge`,c:e});let{data:o}=await n();if(!o||typeof o!=`object`||o.__trystero_pw!==`response`||typeof o.h!=`string`)throw overlapRoomPasswordErr;let s=await a(e);if(o.h!==s)throw overlapRoomPasswordErr;return}let{data:s}=await n();if(!s||typeof s!=`object`||s.__trystero_pw!==`challenge`||typeof s.c!=`string`)throw overlapRoomPasswordErr;await t({__trystero_pw:`response`,h:await a(s.c)})};return{run:o,compose:t=>e||t?async(e,n,a,s)=>{await o(n,a,s),await t?.(e,n,a,s)}:void 0}},iceTimeout=15e3,disconnectedCloseDelayMs=5e3,iceStateEvent=`icegatheringstatechange`,offerType=`offer`,answerType=`answer`,outOfRangePattern=/out of range/i,rewriteMdnsCandidatesToLoopback=e=>e.replace(/ (\S+\.local) (\d+) typ host/g,` 127.0.0.1 $2 typ host`),peer_default=(e,{trickleIce:t,rtcConfig:n,rtcPolyfill:a,turnConfig:o,_test_only_mdnsHostFallbackToLoopback:s})=>{let l=new(a??RTCPeerConnection)({iceServers:defaultIceServers.concat(o??[]),...n}),u={},d=[],f=[],m=t!==!1,h=[],v=[],y=!1,b=!1,x=null,S=null,C=!1,T=()=>S=resetTimer(S),E=()=>{C||(C=!0,T(),u.close?.())},D=e=>{u.signal?u.signal(e):d.push(e)},O=e=>{let t=u.signal;u.signal=n=>{t?.(n),e(n)},d.length>0&&d.splice(0).forEach(e=>u.signal?.(e))},k=e=>s?rewriteMdnsCandidatesToLoopback(e):e,j=e=>{if(!s||typeof e.candidate!=`string`)return e;let t=rewriteMdnsCandidatesToLoopback(e.candidate);return t===e.candidate?e:{...e,candidate:t}},M=e=>({type:e.localDescription?.type??offerType,sdp:k(e.localDescription?.sdp??``)}),N=()=>{let e=l.remoteDescription?.sdp;return e?e.match(/a=ice-ufrag:([^\s]+)/)?.[1]??null:null},F=()=>(l.remoteDescription?.sdp?.match(/^m=/gm)??[]).length,I=e=>{if(!l.remoteDescription)return!1;let t=F();if(typeof e.sdpMLineIndex==`number`&&t>0&&e.sdpMLineIndex>=t)return!1;let n=N();return!(n&&e.usernameFragment&&e.usernameFragment!==n)},L=async e=>{try{return await l.addIceCandidate(e),!0}catch(t){if(t instanceof Error&&outOfRangePattern.test(t.message)&&typeof e.sdpMLineIndex==`number`)return!1;throw t}},R=async()=>{if(!l.remoteDescription||h.length===0)return;let e=h.splice(0),t=[];for(let n of e){if(!I(n)){t.push(n);continue}await L(n)||t.push(n)}t.length>0&&h.push(...t)},z=async e=>{if(I(e)){await L(e)||h.push(e);return}h.push(e)},B=e=>{e.binaryType=`arraybuffer`,e.bufferedAmountLowThreshold=65535,e.onmessage=e=>{let t=e.data;u.data?u.data(t):f.push(t)},e.onopen=()=>u.connect?.(),e.onclose=E,e.onerror=({error:e})=>u.error?.(toError(e,`data channel error`))},V=async e=>{let t=null;try{await Promise.race([new Promise(t=>{let n=()=>{e.iceGatheringState===`complete`&&(e.removeEventListener(iceStateEvent,n),t())};e.addEventListener(iceStateEvent,n),n()}),new Promise(e=>{t=setTimeout(e,iceTimeout)})])}finally{resetTimer(t)}return M(e)},H=async()=>{let e=m?M(l):await V(l);return D(e),e};e?(x=l.createDataChannel(`data`),B(x)):l.ondatachannel=({channel:e})=>{x=e,B(e)};let U=async(e=!1)=>{if(l.connectionState!==`closed`)try{return y=!0,e&&(l.signalingState!==`stable`&&l.signalingState!==`closed`&&l.localDescription?.type===offerType&&await l.setLocalDescription({type:`rollback`}),typeof l.restartIce==`function`&&l.restartIce()),await l.setLocalDescription(e?await l.createOffer({iceRestart:!0}):void 0),await H()}catch(e){u.error?.(toError(e,`failed to create local offer`))}finally{y=!1}};l.onnegotiationneeded=async()=>U(!1),l.onicecandidate=({candidate:e})=>{if(!m||!e)return;let t=j(typeof e.toJSON==`function`?e.toJSON():{candidate:e.candidate,sdpMid:e.sdpMid,sdpMLineIndex:e.sdpMLineIndex,usernameFragment:e.usernameFragment});D({type:candidateType,sdp:JSON.stringify(t)})},l.onconnectionstatechange=()=>{if(l.connectionState===`connected`||l.connectionState===`connecting`){T();return}if(l.connectionState===`disconnected`){S||=setTimeout(()=>{S=null,l.connectionState===`disconnected`&&E()},disconnectedCloseDelayMs);return}(l.connectionState===`failed`||l.connectionState===`closed`)&&E()},l.ontrack=e=>{let t=e.streams[0];if(t){if(!u.track&&!u.stream){v.push({track:e.track,stream:t});return}u.track?.(e.track,t),u.stream?.(t)}},l.onremovestream=e=>u.stream?.(e.stream);let W=e?new Promise(e=>O(t=>{t.type===offerType&&e(t)})):Promise.resolve();return e&&queueMicrotask(()=>{!y&&l.signalingState===`stable`&&!l.localDescription&&l.connectionState!==`closed`&&l.onnegotiationneeded?.(new Event(`negotiationneeded`))}),{created:Date.now(),connection:l,get channel(){return x},get isDead(){return l.connectionState===`closed`},getOffer:async(t=!1)=>{if(e)return t?U(!0):l.localDescription?.type===offerType?m?M(l):V(l):W},async signal(t){if(t.type===`candidate`){try{let e=JSON.parse(t.sdp);e&&typeof e==`object`&&await z(j(e))}catch(e){u.error?.(toError(e,`failed to parse remote candidate`))}return}if(!(x?.readyState===`open`&&!t.sdp?.includes(`a=rtpmap`)))try{let n={...t,sdp:k(t.sdp)};if(t.type===offerType){if(y||l.signalingState!==`stable`&&!b){if(e)return;await all([l.setLocalDescription({type:`rollback`}),l.setRemoteDescription(n)])}else await l.setRemoteDescription(n);return await R(),await l.setLocalDescription(),await H()}if(t.type===answerType){b=!0;try{await l.setRemoteDescription(n),await R()}finally{b=!1}}}catch(e){u.error?.(toError(e,`failed to apply remote signal`))}},sendData:e=>x?.send(e),destroy:()=>{T(),x?.close(),l.close(),y=!1,b=!1,E()},setHandlers:e=>{let{signal:t,...n}=e;Object.assign(u,n),u.data&&f.length>0&&f.splice(0).forEach(e=>u.data?.(e)),t&&O(t),(u.track||u.stream)&&v.length>0&&v.splice(0).forEach(({track:e,stream:t})=>{u.track?.(e,t),u.stream?.(t)})},offerPromise:W,addStream:e=>e.getTracks().forEach(t=>l.addTrack(t,e)),removeStream:e=>l.getSenders().filter(t=>t.track&&e.getTracks().includes(t.track)).forEach(e=>l.removeTrack(e)),addTrack:(e,t)=>l.addTrack(e,t),removeTrack:e=>{let t=l.getSenders().find(t=>t.track===e);t&&l.removeTrack(t)},replaceTrack:(e,t)=>{let n=l.getSenders().find(t=>t.track===e);if(n)return n.replaceTrack(t)}}},defaultIceServers=[...alloc(3,(e,t)=>`stun:stun${t||``}.l.google.com:19302`),`stun:stun.cloudflare.com:3478`].map(e=>({urls:e})),TypedArray=Object.getPrototypeOf(Uint8Array),typeByteLimit=32,nonceByteLimit=2,typeIndex=0,nonceIndex=typeIndex+typeByteLimit,tagIndex=nonceIndex+nonceByteLimit,progressIndex=tagIndex+1,payloadIndex=progressIndex+1,chunkSize=16*2**10-payloadIndex,oneByteMax=255,twoByteMax=65535,buffLowEvent=`bufferedamountlow`,channelCloseEvent=`close`,channelErrorEvent=`error`,unloadEvent=`beforeunload`,defaultHandshakeTimeoutMs=1e4,backpressureWaitTimeoutMs=1e4,internalNs=e=>`@_`+e,beforeUnloadRoomCleanups=new Set,cleanupActiveRoomsOnBeforeUnload=()=>beforeUnloadRoomCleanups.forEach(e=>e()),registerBeforeUnloadCleanup=e=>(beforeUnloadRoomCleanups.add(e),beforeUnloadRoomCleanups.size===1&&addEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload),()=>{beforeUnloadRoomCleanups.delete(e),beforeUnloadRoomCleanups.size||removeEventListener(unloadEvent,cleanupActiveRoomsOnBeforeUnload)}),toByteArray=e=>e instanceof ArrayBuffer?new Uint8Array(e):new Uint8Array(e.buffer,e.byteOffset,e.byteLength),toHandshakeErrorMessage=e=>{let t=toErrorMessage(e,`unknown error`);return t.startsWith(`handshake `)?t:`handshake failed: ${t}`},waitForBufferedAmountLow=(e,t=backpressureWaitTimeoutMs)=>e.readyState!==`open`||e.bufferedAmount<=e.bufferedAmountLowThreshold?Promise.resolve(e.readyState===`open`):new Promise(n=>{let a=!1,o=null,s=t=>{a||(a=!0,e.removeEventListener(buffLowEvent,l),e.removeEventListener(channelCloseEvent,u),e.removeEventListener(channelErrorEvent,u),resetTimer(o),n(t))},l=()=>s(!0),u=()=>s(!1);if(e.addEventListener(buffLowEvent,l),e.addEventListener(channelCloseEvent,u),e.addEventListener(channelErrorEvent,u),o=setTimeout(()=>s(!1),t),e.readyState!==`open`){s(!1);return}e.bufferedAmount<=e.bufferedAmountLowThreshold&&s(!0)}),room_default=(e,t,n,{onPeerHandshake:a,onHandshakeError:o,handshakeTimeoutMs:s=defaultHandshakeTimeoutMs}={})=>{let l={},u={},d={},f={},m={},h={},v={},y={},b={},x={},S=new WeakMap,C=new WeakMap,T={onPeerJoin:noOp,onPeerLeave:noOp,onPeerStream:noOp,onPeerTrack:noOp},E=noOp,D=(e,t,{includePending:n=!1}={})=>(e?Array.isArray(e)?e:[e]:keys(n?l:u)).flatMap(e=>{let a=n?l[e]:u[e];return a?[Promise.resolve(t(e,a))]:(console.warn(`${libName}: no peer with id ${e} found`),[])}),O=(e,t,n,a,o,s={})=>{let l={k:t,...s,...n===void 0?{}:{m:n}};return D(e,async(e,t)=>{await a(l,e),o(t)})},k=e=>t=>{let n=e.get(t);return n||(n=genId(20),e.set(t,n)),n},j=k(S),M=k(C),N=e=>l[e]??null,F=(e,t,n,a)=>{u[e]&&(N(e)?.__trysteroSetRemoteStreamByKey?.(t,n),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(n.id,n),T.onPeerStream(n,e,a))},I=(e,t,n,a,o)=>{u[e]&&(N(e)?.__trysteroSetRemoteTrackByKey?.(t,n,a),typeof a.id==`string`&&N(e)?.__trysteroSetRemoteStreamById?.(a.id,a),typeof n.id==`string`&&N(e)?.__trysteroSetRemoteTrackById?.(n.id,n,a),T.onPeerTrack(n,a,e,o))},L=(e,t=mkErr(`peer disconnected`))=>{let n=d[e],a=toError(t,`peer disconnected`);n&&(resetTimer(n.handshakeTimer),n.pendingHandshakePayloads.length=0,n.handshakeWaiters.splice(0).forEach(e=>e.reject(a)),delete d[e]),delete l[e],delete u[e],delete h[e],y[e]?.splice(0).forEach(e=>e.reject(a)),delete y[e],delete b[e],delete x[e]},R=(e,n,a)=>{let o=l[e];if(!o||n&&o!==n)return;let s=!!u[e];L(e,a),o.destroy(),s&&T.onPeerLeave(e),t(e)},z=(e,t={})=>{let n=m[e];if(f[e]&&n){let a=f[e].options;if(a.sendToPending!==!!t.sendToPending||a.receiveWhilePending!==!!t.receiveWhilePending)throw mkErr(`action type "${e}" cannot be redefined`);return n}if(!e)throw mkErr(`action type argument is required`);let a=encodeBytes(e);if(a.byteLength>typeByteLimit)throw mkErr(`action type string "${e}" (${a.byteLength}b) exceeds byte limit (${typeByteLimit}). Hint: choose a shorter name.`);let o={sendToPending:!!t.sendToPending,receiveWhilePending:!!t.receiveWhilePending},s=new Uint8Array(typeByteLimit);s.set(a);let d=0;return f[e]={onComplete:noOp,onProgress:noOp,setOnComplete:t=>{f[e].onComplete=t;let n=v[e];n?.length&&(delete v[e],n.forEach(({payload:e,peerId:n,metadata:a})=>t(e,n,a)))},setOnProgress:t=>{f[e].onProgress=t},send:async(e,t,n,a)=>{let f=typeof e;if(f===`undefined`)throw mkErr(`action data cannot be undefined`);let m=f!==`string`,h=e instanceof Blob,v=h||e instanceof ArrayBuffer||e instanceof TypedArray,y=n!==void 0,b=v?toByteArray(h?await e.arrayBuffer():e):encodeBytes(m?toJson(e):e),x=y?encodeBytes(toJson(n)):null,S=Math.ceil(b.byteLength/chunkSize)+ +!!y||1,C=alloc(S,(e,t)=>{let n=t===S-1,a=!!(y&&t===0),o=new Uint8Array(payloadIndex+(a?x?.byteLength??0:n?b.byteLength-chunkSize*(S-(y?2:1)):chunkSize));return o.set(s),o.set([d>>8,d&oneByteMax],nonceIndex),o.set([Number(n)|Number(a)<<1|Number(v)<<2|Number(m)<<3],tagIndex),o.set([Math.round((t+1)/S*oneByteMax)],progressIndex),o.set(y?a?x??new Uint8Array:b.subarray((t-1)*chunkSize,t*chunkSize):b.subarray(t*chunkSize,(t+1)*chunkSize),payloadIndex),o});return d=d+1&twoByteMax,await all(D(t,async(e,t)=>{let{channel:s}=t,d=0;for(;d<S;){let f=C[d];if(!f||s&&s.bufferedAmount>s.bufferedAmountLowThreshold&&!await waitForBufferedAmountLow(s))break;let m=o.sendToPending?l[e]:u[e];if(!m||m!==t)break;t.sendData(f),d++;let h=f[progressIndex]??oneByteMax;a?.(h/oneByteMax,e,n)}},{includePending:o.sendToPending})),[]},options:o},m[e]=[f[e].send,f[e].setOnComplete,f[e].setOnProgress]},B=e=>z(e),V=(e,t)=>{let n=d[e];if(!n)return;let a=new Uint8Array(t),o=decodeBytes(a.subarray(typeIndex,nonceIndex)).replaceAll(`\0`,``),s=f[o];if(!n.isActive&&!s?.options.receiveWhilePending)return;let l=(a[nonceIndex]??0)<<8|(a[nonceIndex+1]??0),u=a[tagIndex]??0,m=a[progressIndex]??0,y=a.subarray(payloadIndex),b=!!(u&1),x=!!(u&2),S=!!(u&4),C=!!(u&8);h[e]??={},h[e][o]??={};let T=h[e][o][l]??={chunks:[]};if(x?T.meta=fromJson(decodeBytes(y)):T.chunks.push(y),s?.onProgress(m/oneByteMax,e,T.meta),!b)return;let E=new Uint8Array(T.chunks.reduce((e,t)=>e+t.byteLength,0));if(T.chunks.reduce((e,t)=>(E.set(t,e),e+t.byteLength),0),delete h[e][o][l],S)s?s.onComplete(E,e,T.meta):(v[o]??=[]).push({payload:E,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}});else{let t=decodeBytes(E),n=C?fromJson(t):t;s?s.onComplete(n,e,T.meta):(v[o]??=[]).push({payload:n,peerId:e,...T.meta===void 0?{}:{metadata:T.meta}})}},H=async()=>{await Y(``),await new Promise(e=>setTimeout(e,99)),entries(l).forEach(([e,t])=>{t.destroy(),L(e,mkErr(`room left`))}),E(),n()},[U,W]=z(internalNs(`ping`)),[G,ee]=z(internalNs(`pong`)),[K,q]=z(internalNs(`signal`)),[J,te]=z(internalNs(`stream`)),[ne,re]=z(internalNs(`track`)),[Y,ie]=z(internalNs(`leave`),{sendToPending:!0,receiveWhilePending:!0}),[ae,oe]=z(internalNs(`hsdata`),{sendToPending:!0,receiveWhilePending:!0}),[se,ce]=z(internalNs(`hsready`),{sendToPending:!0,receiveWhilePending:!0}),le=(e,t)=>{let n=d[e];!n||t&&n.peer!==t||n.isActive||!n.didLocalHandshakePass||!n.didReceiveRemoteReady||(n.isActive=!0,u[e]=n.peer,n.handshakeTimer=resetTimer(n.handshakeTimer),T.onPeerJoin(e))},ue=(e,t,n)=>{let a=d[e];if(!a||a.peer!==t)return;let s=toHandshakeErrorMessage(n);o?.(e,s),R(e,t,mkErr(s))},de=(e,t)=>{let n=d[e];!n||n.peer!==t||n.isActive||(n.didLocalHandshakePass=!0,se(``,e).catch(n=>ue(e,t,mkErr(`failed sending handshake readiness: ${toErrorMessage(n,`unknown send failure`)}`))),le(e,t))},X=(e,t)=>{let n=d[e];if(!n||n.peer!==t)return;n.handshakeTimer=setTimeout(()=>ue(e,t,mkErr(`handshake timed out after ${s}ms`)),s);let o=async(t,n)=>{await ae(t,e,n)},l=()=>new Promise((n,a)=>{let o=d[e];if(!o||o.peer!==t){a(mkErr(`peer disconnected during handshake`));return}let s=o.pendingHandshakePayloads.shift();if(s){n(s);return}o.handshakeWaiters.push({resolve:n,reject:e=>a(e)})}),u=selfId<e;Promise.resolve(a?.(e,o,l,u)).then(()=>de(e,t)).catch(n=>ue(e,t,toError(n,`handshake failed`)))},fe=e=>e&&typeof e==`object`&&!Array.isArray(e)&&typeof e.k==`string`?{key:e.k,...typeof e.s==`string`?{streamId:e.s}:{},...typeof e.t==`string`?{trackId:e.t}:{},...Object.hasOwn(e,`m`)?{metadata:e.m}:{}}:null;return W((e,t)=>G(``,t)),ee((e,t)=>{let n=y[t];(n?.shift())?.resolve(),n&&!n.length&&delete y[t]}),q((e,t)=>{u[t]&&l[t]?.signal(e)}),te((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteStreamByKey?.(n.key)??(n.streamId?a?.__trysteroGetRemoteStreamById?.(n.streamId):void 0);if(o){F(t,n.key,o,n.metadata);return}(b[t]??=[]).push(n)}),re((e,t)=>{if(!u[t])return;let n=fe(e);if(!n)return;let a=N(t),o=a?.__trysteroGetRemoteTrackByKey?.(n.key)??(n.trackId?a?.__trysteroGetRemoteTrackById?.(n.trackId):void 0);if(o){I(t,n.key,o.track,o.stream,n.metadata);return}(x[t]??=[]).push(n)}),ie((e,t)=>R(t,void 0,mkErr(`peer left room`))),oe((e,t,n)=>{let a=d[t];if(!a||a.isActive)return;let o=n===void 0?{data:e}:{data:e,metadata:n},s=a.handshakeWaiters.shift();if(s){s.resolve(o);return}a.pendingHandshakePayloads.push(o)}),ce((e,t)=>{let n=d[t];!n||n.isActive||(n.didReceiveRemoteReady=!0,le(t))}),e((e,t)=>{let n=l[t];if(n){if(n===e)return;n.destroy(),L(t,mkErr(`peer replaced`))}l[t]=e,d[t]={peer:e,isActive:!1,didLocalHandshakePass:!1,didReceiveRemoteReady:!1,handshakeTimer:null,pendingHandshakePayloads:[],handshakeWaiters:[]},e.setHandlers({data:e=>V(t,e),stream:e=>{if(!u[t])return;let n=b[t]?.shift();n&&F(t,n.key,e,n.metadata)},track:(e,n)=>{if(!u[t])return;let a=x[t]?.shift();a&&I(t,a.key,e,n,a.metadata)},signal:e=>{u[t]&&K(e,t)},close:()=>R(t,e,mkErr(`peer disconnected`)),error:n=>{console.error(`${libName} peer error:`,n),R(t,e,n)}}),X(t,e)}),isBrowser&&(E=registerBeforeUnloadCleanup(()=>H().catch(noOp))),{makeAction:B,leave:H,ping:async e=>{if(!u[e])throw mkErr(`no active peer with id ${e}`);let t=Date.now();return await new Promise((t,n)=>{let a=y[e]??=[],o=()=>{let t=y[e];if(!t)return;let n=t.indexOf(s);n>-1&&t.splice(n,1),t.length||delete y[e]},s={resolve:()=>{o(),t()},reject:e=>{o(),n(e)}};a.push(s),U(``,e).catch(e=>s.reject(toError(e,`peer disconnected`)))}),Date.now()-t},getPeers:()=>fromEntries(entries(u).map(([e,t])=>[e,t.connection])),addStream:(e,t,n)=>O(t,j(e),n,J,t=>t.addStream(e),{s:e.id}),removeStream:(e,t)=>{D(t,(t,n)=>n.removeStream(e))},addTrack:(e,t,n,a)=>O(n,M(e),a,ne,n=>n.addTrack(e,t),{s:t.id,t:e.id}),removeTrack:(e,t)=>{D(t,(t,n)=>n.removeTrack(e))},replaceTrack:(e,t,n,a)=>O(n,M(t),a,ne,n=>n.replaceTrack(e,t),{t:e.id}),onPeerJoin:e=>{T.onPeerJoin=e,keys(u).forEach(t=>e(t))},onPeerLeave:e=>T.onPeerLeave=e,onPeerStream:e=>T.onPeerStream=e,onPeerTrack:e=>T.onPeerTrack=e}},roomFrameVersion=1,roomPresenceFrameVersion=2,wrapRoomFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(3+n.byteLength+t.byteLength);return a[0]=roomFrameVersion,a[1]=n.byteLength>>>8&255,a[2]=n.byteLength&255,a.set(n,3),a.set(t,3+n.byteLength),a},wrapRoomPresenceFrame=(e,t)=>{let n=encodeBytes(e),a=new Uint8Array(4+n.byteLength);return a[0]=roomPresenceFrameVersion,a[1]=Number(t),a[2]=n.byteLength>>>8&255,a[3]=n.byteLength&255,a.set(n,4),a},unwrapFrame=e=>{let t=new Uint8Array(e);if(t.byteLength<3)return null;if(t[0]===roomFrameVersion){let e=(t[1]??0)<<8|(t[2]??0),n=3+e;return e<=0||t.byteLength<n?null:{type:`room`,roomToken:decodeBytes(t.subarray(3,n)),payload:t.subarray(n).slice().buffer}}if(t[0]!==roomPresenceFrameVersion||t.byteLength<4)return null;let n=(t[2]??0)<<8|(t[3]??0),a=4+n;return n<=0||t.byteLength<a?null:{type:`presence`,roomToken:decodeBytes(t.subarray(4,a)),isPresent:t[1]===1}},isPeerUnderlyingStale=e=>{let{connection:t,channel:n}=e;return e.isDead||t.connectionState===`closed`||t.connectionState===`failed`||t.iceConnectionState===`closed`||t.iceConnectionState===`failed`||n?.readyState===`closing`||n?.readyState===`closed`},getConnectedPeerHealth=e=>{if(isPeerUnderlyingStale(e))return`stale`;let{channel:t}=e;return!t||t.readyState!==`open`?`transient`:`live`},SharedPeerManager=class{byApp={};roomPresenceHandlers={};getMap(e){return this.byApp[e]??={}}get(e,t){return this.byApp[e]?.[t]}isPeerStale(e){return isPeerUnderlyingStale(e)}getHealth(e){return this.isPeerStale(e)?`stale`:`live`}setRoomPresenceHandler(e,t){return this.roomPresenceHandlers[e]=t,()=>{this.roomPresenceHandlers[e]===t&&delete this.roomPresenceHandlers[e]}}sendRoomPresence(e,t,n){e.isClosing||e.peer.isDead||e.peer.sendData(wrapRoomPresenceFrame(t,n))}clear(e,t,{destroyPeer:n}){let a=this.byApp[e],o=a?.[t];if(!o||o.isClosing)return;o.idleTimer=resetTimer(o.idleTimer),o.isClosing=!0,n&&!o.peer.isDead&&o.peer.destroy();let s=values(o.bindings);o.bindings={},o.bindingsByToken={},o.controlRoomId=null,delete a[t],s.forEach(e=>{e.handlers.close?.(),e.pendingData.length=0,e.pendingSendData.length=0,e.pendingTracks.length=0}),o.remoteStreamsByKey.clear(),o.remoteStreamsById.clear(),o.remoteTracksByKey.clear(),o.remoteTracksById.clear(),o.pendingDataByToken.clear(),o.remoteRoomTokens.clear(),keys(a).length===0&&delete this.byApp[e]}register(e,t,n,a){let o=this.getMap(e),s=o[t];if(s){if(s.idleTimer=resetTimer(s.idleTimer),s.peer===n)return s;this.clear(e,t,{destroyPeer:!0})}let l={appId:e,peerId:t,peer:n,bindings:{},bindingsByToken:{},pendingDataByToken:new Map,remoteRoomTokens:new Set,idleTimer:null,controlRoomId:null,streamOwners:new Map,trackOwners:new Map,remoteStreamsByKey:new Map,remoteStreamsById:new Map,remoteTracksByKey:new Map,remoteTracksById:new Map,idleMs:a,isClosing:!1};return n.setHandlers({data:e=>this.dispatchData(l,e),signal:e=>this.dispatchSignal(l,e),close:()=>this.clear(e,t,{destroyPeer:!1}),error:n=>{console.error(`${libName} peer error:`,n),this.clear(e,t,{destroyPeer:!1})},track:(e,t)=>this.dispatchTrack(l,e,t)}),o[t]=l,l}bind(e,t,n,{onDetach:a}){let o=n.bindings[e];if(o)return n.idleTimer=resetTimer(n.idleTimer),{proxy:o.proxy,isNew:!1};let s={roomId:e,roomToken:null,roomTokenPromise:t,handlers:{},pendingData:[],pendingSendData:[],pendingTracks:[],detach:noOp,proxy:{}},l=()=>{n.bindings[e]&&(this.pruneRoomOwnership(n,e),delete n.bindings[e],s.roomToken&&n.bindingsByToken[s.roomToken]===s&&delete n.bindingsByToken[s.roomToken],n.controlRoomId===e&&(n.controlRoomId=keys(n.bindings)[0]??null),a(),this.scheduleIdleTimer(n))},u={created:n.peer.created,get connection(){return n.peer.connection},get channel(){return n.peer.channel},get isDead(){return n.peer.isDead},getOffer:e=>n.peer.getOffer(e),signal:e=>n.peer.signal(e),sendData:e=>{if(!s.roomToken){s.pendingSendData.push(e);return}n.peer.sendData(wrapRoomFrame(s.roomToken,e))},destroy:()=>l(),setHandlers:e=>{let{signal:t,...n}=e;Object.assign(s.handlers,n),t&&(s.handlers.signal=t),this.flushBindingQueues(s)},offerPromise:n.peer.offerPromise,addStream:t=>{let a=n.streamOwners.get(t)??new Set,o=a.size===0;a.add(e),n.streamOwners.set(t,a),o&&n.peer.addStream(t)},removeStream:t=>{let a=n.streamOwners.get(t);a&&(a.delete(e),a.size===0&&(n.streamOwners.delete(t),n.peer.removeStream(t)))},addTrack:(t,a)=>{let o=n.trackOwners.get(t)??{stream:a,rooms:new Set},s=o.rooms.size===0;return o.stream=a,o.rooms.add(e),n.trackOwners.set(t,o),s?n.peer.addTrack(t,a):n.peer.connection.getSenders().find(e=>e.track===t)??n.peer.addTrack(t,a)},removeTrack:t=>{let a=n.trackOwners.get(t);a&&(a.rooms.delete(e),a.rooms.size===0&&(n.trackOwners.delete(t),n.peer.removeTrack(t)))},replaceTrack:(e,t)=>{let a=n.trackOwners.get(e);if(a){n.trackOwners.delete(e);let o=n.trackOwners.get(t)??{stream:a.stream,rooms:new Set};a.rooms.forEach(e=>o.rooms.add(e)),n.trackOwners.set(t,o)}return n.peer.replaceTrack(e,t)},__trysteroGetRemoteStreamByKey:e=>n.remoteStreamsByKey.get(e),__trysteroSetRemoteStreamByKey:(e,t)=>void n.remoteStreamsByKey.set(e,t),__trysteroGetRemoteStreamById:e=>n.remoteStreamsById.get(e),__trysteroSetRemoteStreamById:(e,t)=>void n.remoteStreamsById.set(e,t),__trysteroGetRemoteTrackByKey:e=>n.remoteTracksByKey.get(e),__trysteroSetRemoteTrackByKey:(e,t,a)=>void n.remoteTracksByKey.set(e,{track:t,stream:a}),__trysteroGetRemoteTrackById:e=>n.remoteTracksById.get(e),__trysteroSetRemoteTrackById:(e,t,a)=>void n.remoteTracksById.set(e,{track:t,stream:a})};return s.proxy=u,s.detach=l,n.bindings[e]=s,n.controlRoomId??=e,n.idleTimer=resetTimer(n.idleTimer),t.then(t=>{if(n.isClosing||n.bindings[e]!==s)return;s.roomToken=t,n.bindingsByToken[t]=s;let a=n.pendingDataByToken.get(t);a?.length&&(s.pendingData.push(...a),n.pendingDataByToken.delete(t)),s.pendingSendData.splice(0).forEach(e=>n.peer.sendData(wrapRoomFrame(t,e))),this.flushBindingQueues(s)}),{proxy:u,isNew:!0}}pruneRoomOwnership(e,t){e.streamOwners.forEach((n,a)=>{n.delete(t),n.size===0&&(e.streamOwners.delete(a),e.peer.removeStream(a))}),e.trackOwners.forEach((n,a)=>{n.rooms.delete(t),n.rooms.size===0&&(e.trackOwners.delete(a),e.peer.removeTrack(a))})}scheduleIdleTimer(e){e.isClosing||keys(e.bindings).length>0||(e.idleTimer=resetTimer(e.idleTimer),e.idleTimer=setTimeout(()=>{let t=this.byApp[e.appId]?.[e.peerId];!t||keys(t.bindings).length>0||this.clear(e.appId,e.peerId,{destroyPeer:!0})},e.idleMs))}getSignalBinding(e){if(e.controlRoomId){let t=e.bindings[e.controlRoomId];if(t?.handlers.signal)return t}let t=values(e.bindings).find(e=>!!e.handlers.signal);return t?(e.controlRoomId=t.roomId,t):null}flushBindingQueues(e){let{handlers:t}=e;t.data&&e.pendingData.length>0&&e.pendingData.splice(0).forEach(e=>t.data?.(e)),(t.track||t.stream)&&e.pendingTracks.length&&e.pendingTracks.splice(0).forEach(({track:e,stream:n})=>{t.track?.(e,n),t.stream?.(n)})}dispatchData(e,t){let n=unwrapFrame(t);if(!n)return;if(n.type===`presence`){n.isPresent?e.remoteRoomTokens.add(n.roomToken):e.remoteRoomTokens.delete(n.roomToken),this.roomPresenceHandlers[e.appId]?.(e.peerId,n.roomToken,n.isPresent);return}let a=e.bindingsByToken[n.roomToken];if(!a){let t=e.pendingDataByToken.get(n.roomToken)??[];t.push(n.payload),e.pendingDataByToken.set(n.roomToken,t);return}a.handlers.data?a.handlers.data(n.payload):a.pendingData.push(n.payload)}dispatchSignal(e,t){this.getSignalBinding(e)?.handlers.signal?.(t)}dispatchTrack(e,t,n){values(e.bindings).forEach(e=>{if(e.handlers.track||e.handlers.stream){e.handlers.track?.(t,n),e.handlers.stream?.(n);return}e.pendingTracks.push({track:t,stream:n})})}},offerPostAnswerTtlMs=23333,offerIdSize=12,disconnectedPeerGraceMs=7533,answeringTtlMs=23333,legacyCandidateKey=`__legacy__`,offerRelayPlaceholder=`offer-placeholder`,publishCipheredSignalingMessage=(e,t,n,a,o,s)=>{e.toCipher(t).then(t=>{e.isLeaving()||!s()||a(n,toJson(o(t.sdp)))})},makeState=()=>({status:`idle`,offerPeer:null,offerId:null,offerSdp:null,offerInitPromise:null,offerAnswered:!1,offerRelays:[],offerSignalRelays:[],offerSignalBacklog:[],offerRelayTimers:[],offerExpiryTimer:null,connectedPeer:null,connectedPeerUnhealthySinceMs:null,answeringExpiryTimer:null,answeringPeer:null,pendingCandidates:{}}),getState=(e,t)=>e[t]??=makeState(),updateStatus=e=>{e.connectedPeer?e.status=`connected`:e.answeringPeer?e.status=`answering`:e.offerPeer||e.offerRelays.some(Boolean)?e.status=`offering`:e.status=`idle`},clearAnswering=(e,t)=>{e.answeringPeer===t&&(e.answeringExpiryTimer=resetTimer(e.answeringExpiryTimer),e.answeringPeer=null,updateStatus(e))},clearConnectedPeer=(e,t,n)=>{e.connectedPeer&&(e.connectedPeer.isDead||e.connectedPeer.destroy(),e.connectedPeer=null,e.connectedPeerUnhealthySinceMs=null,updateStatus(e))},clearOfferRelay=(e,t)=>{e.offerRelayTimers[t]=resetTimer(e.offerRelayTimers[t]),e.offerRelays[t]&&(e.offerRelays[t]=void 0,updateStatus(e))},clearOfferRelayIfPlaceholder=(e,t)=>{e?.offerRelays[t]===offerRelayPlaceholder&&clearOfferRelay(e,t)},hasRemoteDescription=e=>{if(e.isDead||e.connection.connectionState===`closed`)return!0;try{return!!e.connection.remoteDescription}catch{return!0}},resetOfferState=(e,t)=>{let n=e.offerAnswered;e.offerExpiryTimer=resetTimer(e.offerExpiryTimer),e.offerInitPromise=null,e.offerRelays.forEach((t,n)=>clearOfferRelay(e,n)),e.offerRelays=[],e.offerSignalRelays=[],e.offerRelayTimers=[],e.offerSignalBacklog=[],e.offerPeer&&e.offerPeer!==e.connectedPeer&&(n||hasRemoteDescription(e.offerPeer)?e.offerPeer.isDead||e.offerPeer.destroy():t.recycle(e.offerPeer)),e.offerPeer=null,e.offerId=null,e.offerSdp=null,e.offerAnswered=!1,updateStatus(e)},scheduleAnsweringExpiry=(e,t,n,a)=>{resetTimer(t.answeringExpiryTimer),t.answeringExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.answeringPeer!==a||(a.destroy(),clearAnswering(t,a))},answeringTtlMs)},flushBufferedCandidates=async(e,t,n)=>{let a=n?[n,legacyCandidateKey]:[legacyCandidateKey];for(let n of a){let a=e.pendingCandidates[n];if(a?.length){delete e.pendingCandidates[n];for(let e of a)await t.signal(e)}}},scheduleOfferExpiry=(e,t,n,a=offerTtl)=>{resetTimer(t.offerExpiryTimer);let o=t.offerId;t.offerExpiryTimer=setTimeout(()=>{let t=e.peerStates[n];!t||t.connectedPeer||t.offerId!==o||resetOfferState(t,e.offerPool)},a)},ensureOffer=(e,t,n,a)=>t.offerPeer&&t.offerId&&t.offerSdp?Promise.resolve({peer:t.offerPeer,offer:t.offerSdp,offerId:t.offerId}):(t.offerInitPromise||=(async()=>{let o=(await e.offerPool.checkout(1,!1,e.encryptOffer))[0];if(!o)throw mkErr(`failed to allocate offer peer`);let{peer:s,offer:l}=o;t.offerPeer=s,t.offerId=genId(offerIdSize),t.offerSdp=l,t.offerAnswered=!1,t.offerSignalBacklog=[],updateStatus(t);let u=()=>{t.offerPeer===s&&!t.connectedPeer&&resetOfferState(t,e.offerPool),e.disconnectPeer(s,n)};return s.setHandlers({connect:()=>e.connectPeer(s,n,a),signal:e=>{t.offerPeer===s&&(t.offerSignalBacklog.push(e),t.offerSignalRelays.forEach(t=>t?.(e)))},close:u,error:u}),scheduleOfferExpiry(e,t,n),{peer:s,offer:l,offerId:t.offerId}})().finally(()=>t.offerInitPromise=null),t.offerInitPromise),handleAnnouncement=async(e,t,n,a,o)=>{if(a){e.attachSharedPeerToRoom(n,a);return}let s=e.peerStates[n];if(!s||s.connectedPeer||s.answeringPeer||s.offerAnswered){clearOfferRelayIfPlaceholder(s,t);return}if(s.offerRelays[t]!==offerRelayPlaceholder)return;let[l,u]=await all([sha1(topicPath(e.rootTopicPlaintext,n)),ensureOffer(e,s,n,t)]);if(e.isLeaving())return;if(s.connectedPeer||s.answeringPeer||s.offerAnswered||s.offerRelays[t]!==offerRelayPlaceholder){clearOfferRelayIfPlaceholder(s,t);return}s.offerRelayTimers[t]=resetTimer(s.offerRelayTimers[t]),s.offerRelays[t]=!0,updateStatus(s),s.offerRelayTimers[t]=setTimeout(()=>prunePendingOffer(e,n,t),(e.announceIntervals[t]??e.announceIntervalMs)*.9);let d=!1;s.offerSignalRelays[t]=t=>{d&&(e.isLeaving()||s.connectedPeer||s.offerPeer!==u.peer||s.offerId!==u.offerId||t.type!==`candidate`||publishCipheredSignalingMessage(e,t,l,o,e=>({peerId:selfId,offerId:u.offerId,candidate:e}),()=>!s.connectedPeer&&s.offerPeer===u.peer&&s.offerId===u.offerId))},o(l,toJson({peerId:selfId,offerId:u.offerId,offer:u.offer})),d=!0,s.offerSignalBacklog.forEach(e=>s.offerSignalRelays[t]?.(e))},handleOffer=async(e,t,n,a,o,s,l)=>{let u=getState(e.peerStates,n);if(u.answeringPeer||u.offerAnswered)return;let d=!!(u.offerPeer||u.offerRelays.some(Boolean));if((d||s)&&selfId<n)return;d&&resetOfferState(u,e.offerPool);let f=e.initPeer(!1,e.config);u.answeringPeer=f,scheduleAnsweringExpiry(e,u,n,f),updateStatus(u);let m=()=>{clearAnswering(u,f),e.disconnectPeer(f,n)};f.setHandlers({connect:()=>e.connectPeer(f,n,t),close:m,error:m});let h;try{h=await e.toPlain({type:`offer`,sdp:a})}catch{clearAnswering(u,f),e.onJoinError?.({error:`incorrect room password when decrypting offer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(f.isDead){clearAnswering(u,f);return}let v=await sha1(topicPath(e.rootTopicPlaintext,n));e.isLeaving()||(f.setHandlers({signal:t=>{e.isLeaving()||u.answeringPeer!==f||f.isDead||t.type!==`answer`&&t.type!==`candidate`||publishCipheredSignalingMessage(e,t,v,l,e=>{let n={peerId:selfId};return t.type===`answer`?n.answer=e:n.candidate=e,o&&(n.offerId=o),n},()=>u.answeringPeer===f&&!f.isDead)}}),await f.signal(h),await flushBufferedCandidates(u,f,o))},handleCandidate=async(e,t,n,a,o)=>{let s;try{s=await e.toPlain({type:candidateType,sdp:n})}catch{return}let l=getState(e.peerStates,t),u=a&&l?.offerPeer&&l.offerId===a?l.offerPeer:null,d=l?.answeringPeer??null,f=!a&&l?.offerPeer?l.offerPeer:null,m=o&&!o.isDead?o:u??d??f;if(!m||m.isDead){let e=a??legacyCandidateKey;(l.pendingCandidates[e]??=[]).push(s);return}m.signal(s)},handleAnswer=async(e,t,n,a,o,s)=>{let l;try{l=await e.toPlain({type:`answer`,sdp:a})}catch{e.onJoinError?.({error:`incorrect room password when decrypting answer`,appId:e.appId,peerId:n,roomId:e.roomId});return}if(s)e.offerPool.claimLeased(s),s.setHandlers({connect:()=>e.connectPeer(s,n,t),close:()=>e.disconnectPeer(s,n)}),s.signal(l);else{let t=e.peerStates[n];if(!t||!t.offerPeer||t.offerAnswered||o&&t.offerId&&o!==t.offerId||t.offerPeer.isDead)return;t.offerAnswered=!0,scheduleOfferExpiry(e,t,n,offerPostAnswerTtlMs),t.offerPeer.signal(l)}},prunePendingOffer=(e,t,n)=>{let a=e.peerStates[t];!a||a.connectedPeer||a.offerRelays[n]&&clearOfferRelay(a,n)},createSignalHandler=e=>t=>async(n,a,o)=>{if(e.isLeaving())return;let s=typeof a==`string`?fromJson(a):a,l=typeof s.peerId==`string`?s.peerId:``,u=s.offer,d=s.answer,f=s.candidate,m=s.offerId,h=s.peer,v=s.hasOutgoingOffer===!0;if(l===selfId)return;let y=e.peerStates[l],b=y?.connectedPeer;if(b&&y){let e=getConnectedPeerHealth(b);if(e===`live`){y.connectedPeerUnhealthySinceMs=null;return}if(e===`stale`)clearConnectedPeer(y,l,`message-from-stale-peer`);else{let e=Date.now(),t=y.connectedPeerUnhealthySinceMs??e;if(y.connectedPeerUnhealthySinceMs=t,e-t<disconnectedPeerGraceMs)return;clearConnectedPeer(y,l,`message-from-prolonged-disconnect`)}}let x=e.sharedPeers.get(e.appId,l);x&&e.sharedPeers.getHealth(x.peer)===`stale`&&(e.sharedPeers.clear(e.appId,l,{destroyPeer:!0}),x=void 0);let S=!!(l&&!u&&!d&&!f),[C,T]=await all([e.rootTopicP,e.selfTopicP]);if(!e.isLeaving()&&!(n!==C&&n!==T)){if(S&&!x){let n=getState(e.peerStates,l),a=selfId<l;if(n.answeringPeer||n.connectedPeer||n.offerAnswered)return;if(!a&&!n.offerPeer){let t=await sha1(topicPath(e.rootTopicPlaintext,l));!e.isLeaving()&&!n.connectedPeer&&o(t,toJson({peerId:selfId}));return}if(n.offerRelays[t])return;n.offerRelays[t]=offerRelayPlaceholder,updateStatus(n)}if(x&&(u||d||f)){if(x.bindings[e.roomId])return;e.attachSharedPeerToRoom(l,x);return}if(S)return handleAnnouncement(e,t,l,x,o);if(u)return handleOffer(e,t,l,u,m,v,o);if(f)return handleCandidate(e,l,f,m,h);if(d)return handleAnswer(e,t,l,d,m,h)}},announceIntervalMs=5333,announceWarmupIntervalsMs=[233,533,1333],sharedPeerIdleMsDefault=123333,strategy_default=({init:e,subscribe:t,announce:n})=>{let a={},o={},s={},l={},u=new SharedPeerManager,d=()=>values(a).some(e=>keys(e).length>0),f=e=>o[e]??={},m=e=>s[e]??={},h=(e,t,n)=>{u.getHealth(e.peer)===`live`&&u.sendRoomPresence(e,t,n)},v=(e,t)=>{entries(o[e]??{}).forEach(([n,a])=>{let{roomToken:s,roomTokenPromise:l}=a;if(s){h(t,s,!0);return}l.then(s=>{o[e]?.[n]===a&&a.roomToken===s&&(u.get(e,t.peerId)!==t||t.isClosing||h(t,s,!0))})})},y=(e,t,n)=>values(u.getMap(e)).forEach(e=>h(e,t,n)),b=e=>{l[e]||(l[e]=u.setRoomPresenceHandler(e,(t,n,a)=>{if(!a)return;let l=u.get(e,t),d=s[e]?.[n];!l||!d||o[e]?.[d]?.attachSharedPeerToRoom(t,l)}))},x=e=>{a[e]&&keys(a[e]).length>0||(l[e]?.(),delete l[e],delete o[e],delete s[e])},S=!1,C=[],T=null,E=noOp;return(l,h,D)=>{if(!l)throw mkErr(`requires a config map as the first argument`);if(D&&typeof D!=`object`)throw mkErr(`third argument must be a callbacks object`);let{appId:O}=l,k=D?.onJoinError,j=D?.onPeerHandshake,M=D?.handshakeTimeoutMs;if(!O)throw mkErr(`config map is missing appId field`);if(!h)throw mkErr(`roomId argument required`);if(M!==void 0&&(!Number.isFinite(M)||M<=0))throw mkErr(`handshakeTimeoutMs must be a positive number`);if(a[O]?.[h])return a[O][h];b(O);let N=topicPath(libName,O,h),F=sha1(N),I=sha1(topicPath(N,selfId)),L=genKey(l.password??``,O,h),R=deriveRoomNamespace(O,h),z=l._test_only_sharedPeerIdleMs??sharedPeerIdleMsDefault,B=!1,V=e=>async t=>({type:t.type,sdp:await e(L,t.sdp)}),H=V(decrypt),U=V(encrypt),W=u.getMap(O);T||=new OfferPool(()=>peer_default(!0,l));let G=T,ee=async e=>{let t=await e.getOffer(Date.now()-e.created>offerTtl);if(!t||t.type!==`offer`)throw mkErr(`failed to get offer for peer`);return(await U(t)).sdp},K=(e,t)=>{let n=getState(q.peerStates,e);n.answeringExpiryTimer=resetTimer(n.answeringExpiryTimer),n.answeringPeer=null;let{proxy:a,isNew:o}=u.bind(h,R,t,{onDetach:()=>{let n=q.peerStates[e];n?.connectedPeer===t.peer&&(n.connectedPeer=null,n.connectedPeerUnhealthySinceMs=null,updateStatus(n))}});n.connectedPeer=t.peer,n.connectedPeerUnhealthySinceMs=null,updateStatus(n),o&&Y(a,e),resetOfferState(n,G)},q={appId:O,roomId:h,config:l,peerStates:{},rootTopicPlaintext:N,rootTopicP:F,selfTopicP:I,toPlain:H,toCipher:U,isLeaving:()=>B,onJoinError:k,sharedPeers:u,offerPool:G,encryptOffer:ee,initPeer:peer_default,connectPeer:(e,t,n)=>{if(B){e.destroy();return}let a=getState(q.peerStates,t);if(a.connectedPeer){let n=W[t];if(n&&a.connectedPeer===n.peer&&n.bindings[h])return;a.connectedPeer!==e&&!e.isDead&&e.destroy();return}let o=W[t];if(o&&u.getHealth(o.peer)===`stale`&&(u.clear(O,t,{destroyPeer:!0}),o=void 0),o&&o.peer!==e){e.isDead||e.destroy(),K(t,o);return}let s=!o;o||=u.register(O,t,e,z),K(t,o),s&&v(O,o)},disconnectPeer:(e,t)=>{if(B)return;let n=q.peerStates[t];n?.connectedPeer===e&&clearConnectedPeer(n,t,`close-event`)},attachSharedPeerToRoom:K,announceIntervals:[],announceIntervalMs},J=createSignalHandler(q);if(!S){let t=e(l);G.warmup(),C=(Array.isArray(t)?t:[t]).map(e=>Promise.resolve(e)),S=!0,E=l.relayConfig?.manualReconnection?noOp:watchOnline()}q.announceIntervals=C.map(()=>announceIntervalMs);let te=C.map(()=>0),ne=[],re=C.map(async(e,n)=>t(await e,await F,await I,J(n),e=>G.getOffers(e,ee)));all([F,I]).then(([e,t])=>{if(B)return;let a=async(o,s)=>{if(B)return;let l=await n(o,e,t);if(B)return;typeof l==`number`&&(q.announceIntervals[s]=l);let u=te[s]??0;te[s]=u+1;let d=q.announceIntervals[s]??announceIntervalMs,f=announceWarmupIntervalsMs[u];ne[s]=setTimeout(()=>{a(o,s)},typeof f==`number`?Math.min(d,f):d)};re.forEach(async(e,t)=>{if(await e,B)return;let n=await C[t];n&&!B&&a(n,t)})});let Y=noOp,{compose:ie}=createPasswordHandshake(l.password??``,O,h),ae=ie(j),oe={...ae?{onPeerHandshake:ae}:{},...M===void 0?{}:{handshakeTimeoutMs:M},onHandshakeError:(e,t)=>k?.({error:t.replace(/^handshake failed: /,``),appId:O,peerId:e,roomId:h})};a[O]??={};let se=f(O),ce=room_default(e=>Y=e,e=>{if(B)return;let t=q.peerStates[e];t?.connectedPeer&&(t.connectedPeer=null,updateStatus(t))},()=>{B=!0,Y=noOp;let e=o[O]?.[h];e?.roomToken&&(y(O,e.roomToken,!1),delete s[O]?.[e.roomToken],s[O]&&!keys(s[O]).length&&delete s[O]),o[O]&&(delete o[O][h],keys(o[O]).length||delete o[O]),entries(q.peerStates).forEach(([e,t])=>{if(t.answeringExpiryTimer=resetTimer(t.answeringExpiryTimer),t.connectedPeer&&!t.connectedPeer.isDead){let n=W[e];(!n||n.peer!==t.connectedPeer)&&t.connectedPeer.destroy()}t.answeringPeer&&!t.answeringPeer.isDead&&t.answeringPeer.destroy(),resetOfferState(t,G),t.connectedPeer=null,t.answeringPeer=null,updateStatus(t)}),a[O]&&(delete a[O][h],keys(a[O]).length===0&&delete a[O]),ne.forEach(resetTimer),re.forEach(async e=>{(await e)()}),!d()&&(S=!1,G.destroy(),T=null,E(),x(O))},oe),le={roomToken:null,roomTokenPromise:R,attachSharedPeerToRoom:K};return se[h]=le,R.then(e=>{B||o[O]?.[h]!==le||(le.roomToken=e,m(O)[e]=h,values(W).forEach(t=>{t.remoteRoomTokens.has(e)&&K(t.peerId,t)}),y(O,e,!0))}),a[O][h]=ce}},relayManager=createRelayManager(e=>e.socket),topicToInfoHash={},infoHashToTopic={},announceIntervals=relayManager.scoped(),announceFns=relayManager.scoped(),subscriptionTokens=relayManager.scoped(),trackerAnnounceMs={},handledSignals={},msgHandlers=relayManager.scoped(),roomOutstandingOffers={},roomOfferGenerationPromises={},roomSubscriberCounts={},trackerAction=`announce`,hashLimit=20,offerPoolSize=3,defaultAnnounceMs=1e4,maxAnnounceMs=2e4,offerRetentionMs=12e4,signalDedupeWindowMs=4e3,defaultRedundancy=3,getInfoHash=async e=>{if(topicToInfoHash[e])return topicToInfoHash[e];let t=(await sha1(e)).slice(0,hashLimit);return topicToInfoHash[e]=t,infoHashToTopic[t]=e,t},send=async(e,t,n)=>e.send(toJson({action:trackerAction,info_hash:await getInfoHash(t),peer_id:selfId,...n})),warn=(e,t,n=!1)=>console.warn(`${libName}: torrent tracker ${n?`failure`:`warning`} from ${e} - ${t}`),getRoomOutstandingOffers=e=>roomOutstandingOffers[e]??={},deleteRoomOfferBookkeeping=e=>{delete roomOutstandingOffers[e],delete roomOfferGenerationPromises[e]},claimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];if(a)return delete n[t],a.claim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e),a},reclaimOutstandingOffer=(e,t)=>{let n=roomOutstandingOffers[e],a=n?.[t];a&&(delete n[t],a.reclaim?.(),!keys(n).length&&!roomSubscriberCounts[e]&&deleteRoomOfferBookkeeping(e))},reclaimAllOutstandingOffers=e=>{keys(getRoomOutstandingOffers(e)).forEach(t=>reclaimOutstandingOffer(e,t)),deleteRoomOfferBookkeeping(e)},pruneOutstandingOffers=e=>{let t=Date.now();entries(getRoomOutstandingOffers(e)).forEach(([n,a])=>{t-a.createdAt>offerRetentionMs&&reclaimOutstandingOffer(e,n)})},ensureOutstandingOffers=async(e,t)=>{for(;roomOfferGenerationPromises[e];)await roomOfferGenerationPromises[e];let n=(async()=>{pruneOutstandingOffers(e);let n=getRoomOutstandingOffers(e),a=keys(n).length,o=Math.max(0,offerPoolSize-a);o>0&&(await t(o)).forEach(e=>{n[genId(hashLimit)]={...e,createdAt:Date.now()}})})().finally(()=>{roomOfferGenerationPromises[e]===n&&delete roomOfferGenerationPromises[e]});return roomOfferGenerationPromises[e]=n,await n,getRoomOutstandingOffers(e)},joinRoomStrategy=strategy_default({init:e=>getRelays(e,defaultRelayUrls,defaultRedundancy).map(e=>{let t=relayManager.register(e,makeSocket(e,n=>{let a=fromJson(n),o=a[`failure reason`],s=a[`warning message`],{interval:l}=a,u=a.info_hash?infoHashToTopic[a.info_hash]:void 0;if(o){warn(t.url,o,!0);return}if(s&&warn(t.url,s),l&&l*1e3>(trackerAnnounceMs[t.url]??defaultAnnounceMs)&&u&&announceFns.forKey(e)[u]){let n=Math.min(l*1e3,maxAnnounceMs),a=announceIntervals.forKey(e),o=announceFns.forKey(e);a[u]&&clearInterval(a[u]),trackerAnnounceMs[t.url]=n;let s=o[u];s&&(a[u]=setInterval(()=>{s()},n))}if((a.offer||a.answer)&&u&&a.offer_id){if(a.peer_id===selfId)return;let t=`${u}:${a.offer?`offer`:`answer`}:${a.offer_id}:${a.peer_id??``}`,n=Date.now(),o=handledSignals[t];if(typeof o==`number`&&n-o<signalDedupeWindowMs)return;handledSignals[t]=n,entries(handledSignals).forEach(([e,t])=>{n-t>signalDedupeWindowMs*6&&delete handledSignals[e]}),msgHandlers.forKey(e)[u]?.(a)}}));return t.ready}),subscribe:(e,t,n,a,o)=>{let s=msgHandlers.forRelay(e),l=announceFns.forRelay(e),u=announceIntervals.forRelay(e),d=subscriptionTokens.forRelay(e),f=Symbol(t);d[t]=f,roomSubscriberCounts[t]=(roomSubscriberCounts[t]??0)+1;let m=n=>{if(n.offer&&n.peer_id&&n.offer_id)a(t,{offer:n.offer.sdp,peerId:n.peer_id,hasOutgoingOffer:keys(getRoomOutstandingOffers(t)).length>0},(a,o)=>void send(e,t,{answer:{type:`answer`,sdp:fromJson(o).answer},offer_id:n.offer_id,to_peer_id:n.peer_id}));else if(n.answer&&n.offer_id&&n.peer_id){let e=claimOutstandingOffer(t,n.offer_id);e&&a(t,{answer:n.answer.sdp,peerId:n.peer_id,peer:e.peer},()=>{})}};s[t]=m;let h=async()=>{d[t]===f&&send(e,t,{numwant:offerPoolSize,offers:entries(await ensureOutstandingOffers(t,o)).map(([e,{offer:t}])=>({offer_id:e,offer:{type:`offer`,sdp:t}}))})};return trackerAnnounceMs[e.url]=defaultAnnounceMs,l[t]=h,u[t]=setInterval(h,trackerAnnounceMs[e.url]),h(),()=>{if(roomSubscriberCounts[t]=Math.max(0,(roomSubscriberCounts[t]??1)-1),roomSubscriberCounts[t]||delete roomSubscriberCounts[t],d[t]!==f){roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t);return}let e=u[t];e&&(clearInterval(e),delete u[t]),s[t]===m&&delete s[t],l[t]===h&&delete l[t],delete d[t],roomSubscriberCounts[t]||reclaimAllOutstandingOffers(t)}},announce:e=>trackerAnnounceMs[e.url]}),joinRoom=(e,t,n)=>joinRoomStrategy({...e,trickleIce:e.trickleIce??!1},t,n),getRelaySockets=relayManager.getSockets,defaultRelayUrls=[`tracker.webtorrent.dev`,`tracker.openwebtorrent.com`,`tracker.btorrent.xyz`,`tracker.files.fm:7073/announce`].map(e=>`wss://`+e),require_lodash_throttle=__commonJSMin(((e,t)=>{var n=`Expected a function`,a=NaN,o=`[object Symbol]`,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,d=/^0o[0-7]+$/i,f=parseInt,m={}.Object===Object&&{},h=typeof self==`object`&&self&&self.Object===Object&&self,v=m||h||Function(`return this`)(),y=Object.prototype.toString,b=Math.max,x=Math.min,S=function(){return v.Date.now()};function C(e,t,a){var o,s,l,u,d,f,m=0,h=!1,v=!1,y=!0;if(typeof e!=`function`)throw TypeError(n);t=k(t)||0,E(a)&&(h=!!a.leading,v=`maxWait`in a,l=v?b(k(a.maxWait)||0,t):l,y=`trailing`in a?!!a.trailing:y);function C(t){var n=o,a=s;return o=s=void 0,m=t,u=e.apply(a,n),u}function T(e){return m=e,d=setTimeout(j,t),h?C(e):u}function D(e){var n=e-f,a=e-m,o=t-n;return v?x(o,l-a):o}function O(e){var n=e-f,a=e-m;return f===void 0||n>=t||n<0||v&&a>=l}function j(){var e=S();if(O(e))return M(e);d=setTimeout(j,D(e))}function M(e){return d=void 0,y&&o?C(e):(o=s=void 0,u)}function N(){d!==void 0&&clearTimeout(d),m=0,o=f=s=d=void 0}function F(){return d===void 0?u:M(S())}function I(){var e=S(),n=O(e);if(o=arguments,s=this,f=e,n){if(d===void 0)return T(f);if(v)return d=setTimeout(j,t),C(f)}return d===void 0&&(d=setTimeout(j,t)),u}return I.cancel=N,I.flush=F,I}function T(e,t,a){var o=!0,s=!0;if(typeof e!=`function`)throw TypeError(n);return E(a)&&(o=`leading`in a?!!a.leading:o,s=`trailing`in a?!!a.trailing:s),C(e,t,{leading:o,maxWait:t,trailing:s})}function E(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function D(e){return!!e&&typeof e==`object`}function O(e){return typeof e==`symbol`||D(e)&&y.call(e)==o}function k(e){if(typeof e==`number`)return e;if(O(e))return a;if(E(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=E(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=e.replace(s,``);var n=u.test(e);return n||d.test(e)?f(e.slice(2),n?2:8):l.test(e)?a:+e}t.exports=T})),import_lodash_throttle=__toESM(require_lodash_throttle()),handlePeerMetadataRequest=(e,t,n)=>{e.updatePeer(e,t,n)},handleCowTradeRequest=async(e,{cowOffered:t,cowRequested:n},a)=>{let o=!1;e.setState(e=>{let{allowCustomPeerCowNames:s,cowIdOfferedForTrade:l,cowsTraded:u,cowInventory:d,playerId:f,isAwaitingCowTradeRequest:m,peers:h,sendCowAccept:v,sendCowReject:y}=e;if(!v||!y)return console.error(`Peer connection not set up correctly`),null;let b=d.find(({id:e})=>e===l);if(m||n.id!==l||!b)return y({reason:cowTradeRejectionReason.REQUESTED_COW_UNAVAILABLE},a),null;let x={...t,timesTraded:t.originalOwnerId===f?t.timesTraded:t.timesTraded+1},[,S]=Object.entries(h).find(([,e])=>e?.playerId===x.ownerId)??[];return S?(e=changeCowAutomaticHugState(e,b,!1),e=removeCowFromInventory(e,b),e=addCowToInventory(e,{...x,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,b,t,f,s),`success`),v({...b,isUsingHuggingMachine:!1},a),o=!0,{...e,cowIdOfferedForTrade:x.id,cowsTraded:x.originalOwnerId===f?u:u+1,isAwaitingCowTradeRequest:!0,selectedCowId:x.id,peers:{...h,[a]:{...S,cowOfferedForTrade:{...b,ownerId:S.playerId}}}}):(console.error(`No data for peer ${x.ownerId}`),null)},async()=>{o&&(await sleep(750),await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`),e.setState(()=>({isAwaitingCowTradeRequest:!1})))})},handleCowTradeRequestAccept=(e,t,n)=>{let a=!1;e.setState(e=>{let{allowCustomPeerCowNames:o,cowIdOfferedForTrade:s,cowInventory:l,cowsTraded:u,cowTradeTimeoutId:d,playerId:f,peers:m}=e,h=l.find(({id:e})=>e===s);if(!h)return console.error(`handleCowTradeRequestAccept: cow with ID ${s} is no longer available`),e=showNotification(e,UNKNOWN_COW_TRADE_FAILURE,`error`),{...e,isAwaitingCowTradeRequest:!1};let[,v]=Object.entries(m).find(([,e])=>{let{playerId:n}=e;return n===t.ownerId})||[],y=t.originalOwnerId===f,b={...t,timesTraded:y?t.timesTraded:t.timesTraded+1};return e=removeCowFromInventory(e,h),e=addCowToInventory(e,{...b,ownerId:f}),e=showNotification(e,COW_TRADED_NOTIFICATION(``,h,b,f,o),`success`),y||(e=addExperience(e,EXPERIENCE_VALUES.COW_TRADED)),d&&clearTimeout(d),a=!0,{...e,cowsTraded:b.originalOwnerId===f?u:u+1,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1,cowIdOfferedForTrade:b.id,selectedCowId:b.id,peers:{...m,[n]:{...v,cowOfferedForTrade:{...h,ownerId:v.playerId}}}}},async()=>{a&&(await e.persistState(),e.showNotification(PROGRESS_SAVED_MESSAGE,`info`))})},handleCowTradeRequestReject=(e,{reason:t})=>{let{cowTradeTimeoutId:n}=e.state;typeof n==`number`&&clearTimeout(n),e.setState({cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1}),e.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`)},relayRedundancy=4,useFarmhandNetwork=(e,t,n,a,o,s,l,u)=>{let{hasBooted:d,isOnline:f,room:m,redirect:h,heartbeatTimeoutId:v,peerRoom:y,sendPeerMetadata:b}=e,x=(0,import_react$24.useCallback)(e=>(0,import_lodash_throttle.default)((...n)=>{e(...n),t(e=>({...e,pendingPeerMessages:[]}))},5e3,{trailing:!0}),[t]),S=(0,import_react$24.useCallback)(()=>{typeof a.current?.state?.cowTradeTimeoutId==`number`&&(n.current.showNotification(REQUESTED_COW_TRADE_UNAVAILABLE,`error`),console.error(`Cow trade request timed out`),t(e=>({...e,cowTradeTimeoutId:null,isAwaitingCowTradeRequest:!1})))},[t,n,a]),C=(0,import_react$24.useCallback)(o=>{let{cowIdOfferedForTrade:s,cowInventory:l,peers:u,sendCowTradeRequest:d}=a.current?.state??e;if(!d)return;let{ownerId:f}=o,[m]=Object.entries(u).find(([,e])=>e?.playerId===f)??[];if(!m){console.error(`Owner not found for cow ${JSON.stringify(o)}`);return}if(l.find(({id:e})=>e===o.id)){console.error(`Cow ID ${o.id} is already in inventory`),n.current.showNotification(COW_ALREADY_OWNED,`error`);return}let h=l.find(({id:e})=>e===s);if(!h){console.error(`Cow ID ${s} not found`);return}let v=setTimeout(S,COW_TRADE_TIMEOUT);d({cowOffered:{...h,isUsingHuggingMachine:!1},cowRequested:o},m),t(e=>({...e,cowTradeTimeoutId:v,isAwaitingCowTradeRequest:!0}))},[t,S,n,a]),T=(0,import_react$24.useCallback)(()=>{t(e=>(clearTimeout(e.heartbeatTimeoutId??-1),e));let e=import_window.default.setTimeout(()=>{t(e=>({...e,money:moneyTotal(e.money,e.activePlayers??0)})),T()},HEARTBEAT_INTERVAL_PERIOD);t(t=>({...t,heartbeatTimeoutId:e}))},[t]),E=(0,import_react$24.useCallback)(async()=>{let{isOnline:e,priceCrashes:o,priceSurges:s,room:l,playerId:u,peerRoom:d}=a.current.state;if(e){n.current.showNotification(CONNECTING_TO_SERVER,`info`);try{t(e=>({...e,isAwaitingNetworkRequest:!0,peers:{}})),d?.leave();let{valueAdjustments:e}=await getData(endpoints.getMarketData,{farmId:u,room:l});T(),t(t=>({...t,activePlayers:1,peerRoom:joinRoom({appId:`@jeremyckahn/farmhand`,rtcConfig},l),valueAdjustments:FarmhandService.applyPriceEvents(e,o,s)})),n.current.showNotification(CONNECTED_TO_ROOM(``,l),`success`)}catch(e){n.current.showNotification(SERVER_ERROR,`error`),console.error(e),t(e=>({...e,redirect:`/`,cowIdOfferedForTrade:``}))}t(e=>({...e,isAwaitingNetworkRequest:!1,isAwaitingCowTradeRequest:!1}))}},[T,n,a,t]),D=(0,import_react$24.useCallback)((e,t)=>{n.current.prependPendingPeerMessage(e,t)},[n]);return(0,import_react$24.useEffect)(()=>{if(!d||!o)return;let e=decodeURIComponent(s),S=l.startsWith(`/online`),C=!!h&&h!==o.redirect;if(!C&&(S!==f||e!==m)?t(t=>({...t,isOnline:S,redirect:``,room:e})):h&&!C&&S===f&&e===m&&t(e=>({...e,redirect:``})),(f!==o.isOnline||m!==o.room)&&(f&&E(),!f&&typeof v==`number`&&(clearTimeout(v),t(e=>({...e,activePlayers:null,heartbeatTimeoutId:null,peerRoom:null})))),f===!1&&o.isOnline===!0&&n.current.showNotification(DISCONNECTED_FROM_SERVER,`info`),y!==o.peerRoom)if(y){y.onPeerJoin(e=>n.current.addPeer(e)),y.onPeerLeave(e=>n.current.removePeer(e));let[e,o]=y.makeAction(`peerMetadata`);o((...e)=>handlePeerMetadataRequest(a.current,e[0],e[1]));let[s,l]=y.makeAction(`cowTrade`);l((...e)=>handleCowTradeRequest(a.current,e[0],e[1]));let[d,f]=y.makeAction(`cowAccept`);f((...e)=>handleCowTradeRequestAccept(a.current,e[0],e[1]));let[m,h]=y.makeAction(`cowReject`);h((...e)=>handleCowTradeRequestReject(a.current,e[0])),t(t=>({...t,getCowAccept:f,getCowReject:h,getCowTradeRequest:l,getPeerMetadata:o,pendingPeerMessages:[],sendCowAccept:d,sendCowReject:m,sendCowTradeRequest:s,sendPeerMetadata:x(e)})),e(u)}else o.peerRoom?.leave(),t(e=>({...e,peers:{},sendPeerMetadata:null}));b?.(u)},[d,f,m,h,v,y,b,o,s,l,E,x,u,n,a,t]),{syncToRoom:E,scheduleHeartbeat:T,wrapSendPeerMetadata:x,tradeForPeerCow:C,handleCowTradeTimeout:S,messagePeers:D}},computeMarketPositions=(e,t,n)=>n.reduce((n,{id:a,quantity:o})=>{let s=e[a]||0,l=t[a]||0;return itemsMap[a].doesPriceFluctuate&&s!==o&&(o<s||o<l?n[a]=-1:(o>s||o>l)&&(n[a]=1)),n},{}),useFarmhandDayAdvancement=(e,t,n,a,o)=>{let s=(0,import_react$24.useCallback)(async()=>{await n.localforage?.clear(),a.current.showNotification(DATA_DELETED)},[n.localforage,a]),l=(0,import_react$24.useCallback)((e,t={})=>n.localforage?.setItem(`state`,reduceByPersistedKeys({...e,...t})),[n.localforage]),u=(0,import_react$24.useCallback)(async()=>{let n=[],a=null;t(e=>({...e,isAwaitingNetworkRequest:!0}));let o;if(e.current.isOnline){let{inventory:s,room:l,todaysPurchases:u,todaysStartingInventory:d}=e.current,f=computeMarketPositions(d,u,s);try{o=(await postData(endpoints.postDayResults,{positions:f,room:l})).valueAdjustments,Object.keys(f).length&&(n.push({message:POSITIONS_POSTED_NOTIFICATION(``,`You`,f),severity:`info`}),a=POSITIONS_POSTED_NOTIFICATION(``,``,f))}catch(e){n.push({message:SERVER_ERROR,severity:`error`}),t(e=>({...e,redirect:`/`,cowIdOfferedForTrade:``,isAwaitingNetworkRequest:!1})),console.error(e)}}return{broadcastedPositionMessage:a,serverMessages:n,serverValueAdjustments:o}},[e,t]);return{clearPersistedData:s,persistState:l,updateServerForNextDay:u,incrementDay:(0,import_react$24.useCallback)(async(n=!1)=>{if(e.current.isWaitingForDayToCompleteIncrementing&&!n)return;n||t(e=>({...e,isWaitingForDayToCompleteIncrementing:!0}));let{broadcastedPositionMessage:a,serverMessages:s,serverValueAdjustments:l}=await u();t(e=>{let t=computeStateForNextDay(e,n),u=[...s,...t.newDayNotifications];return t.valueAdjustments=FarmhandService.applyPriceEvents(l??t.valueAdjustments,t.priceCrashes,t.priceSurges),t.isAwaitingNetworkRequest=!1,t.isWaitingForDayToCompleteIncrementing=!0,t.newDayNotifications=[],t.todaysNotifications=[],o.current={state:t,pendingNotifications:u,broadcastedPositionMessage:a,isFirstDay:n},t})},[e,u,t,o])}},useFarmhandNotifications=(e,t)=>({showInventoryFullNotifications:(0,import_react$24.useCallback)((e,n)=>{inventorySpaceRemaining(e)>0&&inventorySpaceRemaining(n)<=0&&t.current.showNotification(INVENTORY_FULL_NOTIFICATION,`warning`)},[t]),showRecipeLearnedNotifications:(0,import_react$24.useCallback)(({learnedRecipes:n})=>{let a=[];Object.keys(e.learnedRecipes).forEach(e=>{n.hasOwnProperty(e)||a.push(recipesMap[e])}),a.length>1?t.current.showNotification(RECIPES_LEARNED(``,a)):a.length===1&&t.current.showNotification(RECIPE_LEARNED(``,a[0]))},[e.learnedRecipes,t])}),FarmhandReducers=class e extends import_react$24.Component{addCowToInventory(...e){throw Error(`Unimplemented`)}addPeer(...e){throw Error(`Unimplemented`)}adjustLoan(...e){throw Error(`Unimplemented`)}changeCowAutomaticHugState(...e){throw Error(`Unimplemented`)}changeCowBreedingPenResident(...e){throw Error(`Unimplemented`)}changeCowName(...e){throw Error(`Unimplemented`)}clearPlot(...e){throw Error(`Unimplemented`)}computeStateForNextDay(...e){throw Error(`Unimplemented`)}fertilizePlot(...e){throw Error(`Unimplemented`)}forRange(...e){throw Error(`Unimplemented`)}harvestPlot(...e){throw Error(`Unimplemented`)}hugCow(...e){throw Error(`Unimplemented`)}makeRecipe(...e){throw Error(`Unimplemented`)}makeFermentationRecipe(...e){throw Error(`Unimplemented`)}makeWine(...e){throw Error(`Unimplemented`)}modifyCow(...e){throw Error(`Unimplemented`)}offerCow(...e){throw Error(`Unimplemented`)}plantInPlot(...e){throw Error(`Unimplemented`)}prependPendingPeerMessage(...e){throw Error(`Unimplemented`)}purchaseCombine(...e){throw Error(`Unimplemented`)}purchaseComposter(...e){throw Error(`Unimplemented`)}purchaseCow(...e){throw Error(`Unimplemented`)}purchaseCowPen(...e){throw Error(`Unimplemented`)}purchaseCellar(...e){throw Error(`Unimplemented`)}purchaseField(...e){throw Error(`Unimplemented`)}purchaseForest(...e){throw Error(`Unimplemented`)}purchaseItem(...e){throw Error(`Unimplemented`)}purchaseSmelter(...e){throw Error(`Unimplemented`)}purchaseStorageExpansion(...e){throw Error(`Unimplemented`)}removeCowFromInventory(...e){throw Error(`Unimplemented`)}removeKegFromCellar(...e){throw Error(`Unimplemented`)}removePeer(...e){throw Error(`Unimplemented`)}selectCow(...e){throw Error(`Unimplemented`)}sellCow(...e){throw Error(`Unimplemented`)}sellItem(...e){throw Error(`Unimplemented`)}sellKeg(...e){throw Error(`Unimplemented`)}setScarecrow(...e){throw Error(`Unimplemented`)}setSprinkler(...e){throw Error(`Unimplemented`)}showNotification(...e){throw Error(`Unimplemented`)}updatePeer(...e){throw Error(`Unimplemented`)}upgradeTool(...e){throw Error(`Unimplemented`)}waterAllPlots(...e){throw Error(`Unimplemented`)}waterField(...e){throw Error(`Unimplemented`)}waterPlot(...e){throw Error(`Unimplemented`)}withdrawCow(...e){throw Error(`Unimplemented`)}constructor(t){super(t);let n=Object.getOwnPropertyNames(e.prototype).filter(e=>e!==`constructor`);for(let e of n){let t=reducers_exports[e];t&&(this[e]=(...e)=>{this.setState(n=>t(n,...e))})}}},useFarmhandReducers=e=>(0,import_react$24.useMemo)(()=>{let t={};Object.assign(t,reducers_exports);let n=Object.getOwnPropertyNames(FarmhandReducers.prototype).filter(e=>e!==`constructor`);for(let a of n){let n=reducers_exports[a];typeof n==`function`&&(t[a]=(...t)=>{e(e=>{let a=n(e,...t);return!a||a===e?e:{...a}})})}return t},[e]),usePrevious=e=>{let t=(0,import_react$24.useRef)();return(0,import_react$24.useEffect)(()=>{t.current=e},[e]),t.current},{CLEANUP,HARVEST,MINE,WATER}=fieldMode,useFarmhand=e=>{let{features:t,match:{path:n=``,params:{room:a}={}}={}}=e,o=(0,import_react$24.useCallback)(()=>({activePlayers:null,allowCustomPeerCowNames:!1,cellarInventory:[],currentDialogView:dialogView.NONE,completedAchievements:{},cowForSale:generateCow(),cowBreedingPen:{cowId1:null,cowId2:null,daysUntilBirth:-1},cowColorsPurchased:{},cowIdOfferedForTrade:``,cowInventory:[],cowsSold:{},cowsTraded:0,cowTradeTimeoutId:-1,cropsHarvested:{},dayCount:0,experience:0,farmName:`Unnamed`,field:createNewField(),fieldMode:fieldMode.OBSERVE,forest:createNewForest(),getCowAccept:noop$3,getCowReject:noop$3,getCowTradeRequest:noop$3,getPeerMetadata:noop$3,hasBooted:!1,heartbeatTimeoutId:null,historicalDailyLosses:[],historicalDailyRevenue:[],historicalValueAdjustments:[],hoveredPlotRangeSize:0,playerId:v4(),inventory:[{id:scarecrow.id,quantity:1}],inventoryLimit:100,isAwaitingCowTradeRequest:!1,isAwaitingNetworkRequest:!1,isCombineEnabled:!1,isMenuOpen:!doesMenuObstructStage(),itemsSold:{},cellarItemsSold:{},isChatOpen:!1,isDialogViewOpen:!1,isOnline:n.startsWith(`/online`)??!1,isWaitingForDayToCompleteIncrementing:!1,learnedRecipes:{},loanBalance:500,loansTakenOut:1,money:500,latestNotification:null,newDayNotifications:[],notificationLog:[],peers:{},peerRoom:null,pendingPeerMessages:[],latestPeerMessages:[],sendPeerMetadata:null,selectedCowId:``,selectedItemId:``,priceCrashes:{},priceSurges:{},profitabilityStreak:0,record7dayProfitAverage:0,recordProfitabilityStreak:0,recordSingleDayProfit:0,revenue:0,redirect:``,room:decodeURIComponent(e.match?.params?.room||`global`),sendCowAccept:noop$3,sendCowReject:noop$3,purchasedCombine:0,purchasedComposter:0,purchasedCowPen:0,purchasedCellar:0,purchasedField:0,purchasedForest:0,purchasedSmelter:0,sendCowTradeRequest:noop$3,showHomeScreen:!0,showNotifications:!0,stageFocus:stageFocusType.HOME,todaysNotifications:[],todaysLosses:0,todaysPurchases:{},todaysRevenue:0,todaysStartingInventory:{},toolLevels:{[toolType.HOE]:toolLevel.DEFAULT,[toolType.SCYTHE]:toolLevel.DEFAULT,[toolType.SHOVEL]:toolLevel.UNAVAILABLE,[toolType.WATERING_CAN]:toolLevel.DEFAULT},useAlternateEndDayButtonPosition:!1,valueAdjustments:{},version:`1.19.29`}),[n,e.match?.params?.room]),[s,l]=(0,import_react$24.useState)(o),u=(0,import_react$24.useRef)(s);u.current=s;let d=a===void 0?s.room:a,f=(0,import_react$24.useRef)(null),m=(0,import_react$24.useRef)(!1),h=useFarmhandReducers(l),v=(0,import_react$24.useRef)(h);v.current=h;let y=usePrevious(s),b=STAGE_TITLE_MAP[s.stageFocus],x=FarmhandService.getFieldToolInventory(s.inventory),S=FarmhandService.computePlayerInventory(s.inventory,s.valueAdjustments),C=FarmhandService.getPlantableCropInventory(s.inventory),T=(0,import_react$24.useMemo)(()=>getLevelEntitlements(levelAchieved(s.experience)),[s.experience]),E=(0,import_react$24.useMemo)(()=>getAvailableShopInventory(T),[T]),D=T.stageFocusType[stageFocusType.FOREST],O=s.isOnline&&s.room!==`global`,k=(0,import_react$24.useMemo)(()=>{let{CELLAR:e,COW_PEN:t,HOME:n,WORKSHOP:a,FOREST:o}=stageFocusType,l=[...STANDARD_VIEW_LIST];return s.showHomeScreen&&l.unshift(n),D&&features.FOREST&&l.push(o),s.purchasedCowPen&&l.push(t),l.push(a),s.purchasedCellar&&l.push(e),l},[s.showHomeScreen,D,s.purchasedCowPen,s.purchasedCellar]),j=(0,import_react$24.useMemo)(()=>getPeerMetadata(s),[s]),M=s.isAwaitingNetworkRequest||s.isAwaitingCowTradeRequest||s.isWaitingForDayToCompleteIncrementing,N=(0,import_react$24.useRef)(null),{openDialogView:F,closeDialogView:I,focusNextView:L,focusPreviousView:R}=useFarmhandNavigation(l,k),{syncToRoom:z,scheduleHeartbeat:B,tradeForPeerCow:V,handleCowTradeTimeout:H,messagePeers:U}=useFarmhandNetwork(s,l,v,N,y,d,n,j),{clearPersistedData:W,persistState:G,updateServerForNextDay:ee,incrementDay:K}=useFarmhandDayAdvancement(u,l,e,v,f),{showInventoryFullNotifications:q,showRecipeLearnedNotifications:J}=useFarmhandNotifications(s,v);N.current=(0,import_react$24.useMemo)(()=>({state:s,props:e,viewTitle:b,fieldToolInventory:x,playerInventory:S,plantableCropInventory:C,viewList:k,levelEntitlements:T,shopInventory:E,peerMetadata:j,isInputBlocked:M,isChatAvailable:O,isForestUnlocked:D,setState:(e,t)=>{l(n=>{let a=typeof e==`function`?e(n):e;if(a==null)return n;let o={...n,...a};return t&&setTimeout(t,0),o})},...v.current,purchaseItem:(e,t)=>v.current.purchaseItem(e,t),sellItem:(e,t)=>v.current.sellItem(e,t),showNotification:(e,t)=>v.current.showNotification(e,t),prependPendingPeerMessage:(e,t)=>v.current.prependPendingPeerMessage(e,t),forRange:(e,t,n,a,o)=>v.current.forRange(e,t,n,a,o),createInitialState:o,getData,postData,tradeForPeerCow:V,handleCowTradeTimeout:H,clearPersistedData:W,syncToRoom:z,scheduleHeartbeat:B,showInventoryFullNotifications:q,showRecipeLearnedNotifications:J,persistState:(e={})=>G(N.current?.state??s,e),updateServerForNextDay:ee,incrementDay:K,openDialogView:F,closeDialogView:I,focusNextView:L,focusPreviousView:R,messagePeers:U}),[s,e,b,x,S,C,k,T,E,j,M,O,D,V,H,W,z,B,q,J,G,ee,K,F,I,L,R,U,o]);let te=(0,import_react$24.useMemo)(()=>{let e={debounced:{}};return Object.keys(ui_events_default).forEach(t=>{let n=t;e[n]=(...e)=>ui_events_default[n].apply(N.current,e),e.debounced[n]=(0,import_lodash_debounce.default)(e[n],50)}),e},[]),ne=(0,import_react$24.useMemo)(()=>{let e={incrementDay:`shift+c`,nextView:`right`,openAccounting:`b`,openAchievements:`a`,openLog:`l`,openPriceEvents:`e`,openStats:`s`,openSettings:`,`,openKeybindings:`shift+?`,previousView:`left`,toggleMenu:`m`};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=String(n+1)}),e},[]),re=(0,import_react$24.useMemo)(()=>{let e={incrementDay:()=>K(),nextView:L,openAccounting:()=>F(dialogView.ACCOUNTING),openAchievements:()=>F(dialogView.ACHIEVEMENTS),openLog:()=>F(dialogView.FARMERS_LOG),openPriceEvents:()=>F(dialogView.PRICE_EVENTS),openStats:()=>F(dialogView.STATS),openSettings:()=>F(dialogView.SETTINGS),openKeybindings:()=>F(dialogView.KEYBINDINGS),previousView:R,selectHoe:()=>te.handleFieldModeSelect(CLEANUP),selectScythe:()=>te.handleFieldModeSelect(HARVEST),selectWateringCan:()=>te.handleFieldModeSelect(WATER),selectShovel:()=>{s.toolLevels[toolType.SHOVEL]!==toolLevel.UNAVAILABLE&&te.handleFieldModeSelect(MINE)},toggleMenu:()=>te.handleMenuToggle()};return nullArray(9).forEach((t,n)=>{e[`numberKey${n+1}`]=()=>{let e=k[n];typeof e==`string`&&l(t=>({...t,stageFocus:stageFocusType[e]}))}}),e},[K,L,F,R,te,s.toolLevels,k,W]);(0,import_react$24.useEffect)(()=>{if(m.current)return;m.current=!0,Object.defineProperty(import_window.default,`farmhand`,{get:()=>N.current,configurable:!0});let t=!0;return(async()=>{let n=await e.localforage?.getItem(`state`);if(t){if(n){let e=transformStateDataForImport({...o(),...n}),{isCombineEnabled:t,newDayNotifications:a}=e;l(t=>({...t,...e,newDayNotifications:[],hasBooted:!0})),a.forEach(({message:e,severity:t})=>{setTimeout(()=>v.current.showNotification(e,t),0)}),t&&v.current.forRange(harvestPlot,1/0,0,0)}else await K(!0),l(e=>({...e,historicalValueAdjustments:[]})),v.current.showNotification(LOAN_INCREASED(``,500),`info`),l(e=>({...e,hasBooted:!0}));z()}})(),()=>{t=!1}},[o,K,e.localforage,z]),(0,import_react$24.useEffect)(()=>{if(!s.hasBooted||!f.current)return;let t=!0,{state:n,pendingNotifications:a,broadcastedPositionMessage:o,isFirstDay:u}=f.current;return f.current=null,(async()=>{try{if(await e.localforage?.setItem(`state`,reduceByPersistedKeys({...n,...u&&{historicalValueAdjustments:[]},newDayNotifications:a})),!t)return;if([...a].concat(u?[]:[{message:PROGRESS_SAVED_MESSAGE,severity:`info`}]).forEach(({message:e,severity:t})=>v.current.showNotification(e,t)),n.isCombineEnabled){if(n.stageFocus===stageFocusType.FIELD&&await sleep(1e3),!t)return;v.current.forRange(harvestPlot,1/0,0,0)}}catch(e){console.error(e),t&&v.current.showNotification(JSON.stringify(e),`error`)}finally{t&&(l(e=>({...e,isWaitingForDayToCompleteIncrementing:!1})),o&&v.current.prependPendingPeerMessage(o))}})(),()=>{t=!1}},[s.dayCount,s.hasBooted,e.localforage,l]),(0,import_react$24.useEffect)(()=>()=>{u.current.heartbeatTimeoutId&&clearTimeout(u.current.heartbeatTimeoutId),u.current.peerRoom?.leave()},[]),(0,import_react$24.useEffect)(()=>{!s.hasBooted||!y||(updateAchievements(s,y)!==s&&l(e=>{let t=updateAchievements(e,y);return t===e?e:t}),s.stageFocus===stageFocusType.COW_PEN&&y.stageFocus!==stageFocusType.COW_PEN&&l(e=>({...e,selectedCowId:``})),s.stageFocus!==y.stageFocus&&s.isMenuOpen&&l(e=>({...e,isMenuOpen:!doesMenuObstructStage()})),s.money<y.money&&l(e=>({...e,todaysLosses:moneyTotal(e.todaysLosses,s.money-y.money)})),q(y,s),J(y))},[s,y,q,J]);let Y=s.redirect;return{gameState:{...s,blockInput:M,features:t??{},fieldToolInventory:x,isChatAvailable:O,levelEntitlements:T,plantableCropInventory:C,playerInventory:S,playerInventoryQuantities:getInventoryQuantities(s.inventory),shopInventory:E,viewList:k,viewTitle:b},handlers:te,isInputBlocked:M,keyMap:ne,keyHandlers:re,redirect:Y,state:s,viewList:k,focusPreviousView:R,focusNextView:L,isChatAvailable:O}},emptyObject=Object.freeze({}),Farmhand=e=>{let{gameState:t,handlers:n,isInputBlocked:a,keyMap:o,keyHandlers:s,redirect:l,state:u,viewList:d,focusPreviousView:f,focusNextView:m,isChatAvailable:h}=useFarmhand(e);return(0,import_jsx_runtime.jsx)(import_index_es.GlobalHotKeys,{allowChanges:!0,keyMap:a?emptyObject:o,handlers:a?emptyObject:s,children:(0,import_jsx_runtime.jsxs)(ThemeProvider,{theme:mui_theme_default,children:[(0,import_jsx_runtime.jsx)(CssBaseline,{}),(0,import_jsx_runtime.jsxs)(SnackbarProvider,{anchorOrigin:{vertical:`top`,horizontal:`right`},classes:{containerRoot:`Farmhand notification-container`},content:snackbarProviderContentCallback,maxSnack:4,children:[l&&(0,import_jsx_runtime.jsx)(Redirect,{to:l}),(0,import_jsx_runtime.jsxs)(FarmhandContext.Provider,{value:{gameState:t,handlers:n},children:[(0,import_jsx_runtime.jsxs)(Div,{className:(0,import_classnames.default)(`Farmhand farmhand-root fill`,u.isMenuOpen?`menu-open`:`menu-closed`,{"use-alternate-end-day-button-position":u.useAlternateEndDayButtonPosition,"block-input":a,"has-booted":u.hasBooted}),sx:e=>({...fillSx,display:`flex`,paddingTop:`3.5em`,position:`fixed`,touchAction:`manipulation`,opacity:+!!u.hasBooted,transform:u.hasBooted?`scale(1)`:`scale(0)`,transition:`opacity, transform 200ms`,...a&&{"& button, & input":{filter:`contrast(65%)`,pointerEvents:`none`}},[`@media (min-width: ${breakpoints.smallPhone}px) and (orientation: landscape)`]:{paddingTop:`3em`},[`@media (min-width: ${breakpoints.sm}px)`]:{paddingTop:`4em`},"& .sidebar-wrapper":{display:`flex`},"& .bottom-controls":{alignItems:`center`,bottom:`1em`,display:`flex`,flexFlow:`column`,justifyContent:`center`,left:`50%`,opacity:.85,position:`fixed`,transition:e.transitions.create(`left`,{duration:e.transitions.duration.enteringScreen,easing:e.transitions.easing.easeOut}),width:0,zIndex:20,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{bottom:`0.5em`},"& .MuiMobileStepper-root":{background:`none`},"& .fab-buttons":{display:`flex`,flexFlow:`row`,"& button":{margin:`0.5em`,position:`relative`,[`@media (max-width: ${breakpoints.mediumPhone}px)`]:{margin:`0.25em 0.5em`},"@media (max-width: 320px)":{margin:`0.25em 0.1em`}}},...u.isMenuOpen&&{"@media (orientation: landscape)":{left:`calc(50vw + ${layout.sidebarWidth} / 2)`}}},"& .end-day":{position:`fixed`,top:`5em`,right:`1em`,[`@media (min-width: ${breakpoints.sm}px)`]:{right:`1.25em`,top:`5.5em`},...u.useAlternateEndDayButtonPosition&&{right:`auto`,left:`1em`}},"& .menu-button":{transition:e.transitions.create(`transform`,{duration:e.transitions.duration.shorter}),transform:u.isMenuOpen?`rotate(-90deg)`:`rotate(0deg)`}}),children:[(0,import_jsx_runtime.jsx)(UpdateNotifier,{}),(0,import_jsx_runtime.jsx)(Consumer$27,{}),(0,import_jsx_runtime.jsxs)(Drawer,{className:`sidebar-wrapper`,open:t.isMenuOpen,variant:`persistent`,role:`complementary`,PaperProps:{className:`sidebar`,sx:{backgroundImage:`url(${blue_stripe_bg_default})`,boxSizing:`border-box`,overflow:`auto`,padding:`1em 1em 0`,position:`relative`,width:layout.sidebarWidth,zIndex:20,[`@media (max-width: ${breakpoints.smallPhone}px)`]:{width:layout.narrowSidebarWidth},"& .button-array":{display:`flex`,flexWrap:`wrap`,margin:`0.5em 0`}}},children:[(0,import_jsx_runtime.jsx)(Consumer$12,{}),(0,import_jsx_runtime.jsx)(Consumer$22,{}),(0,import_jsx_runtime.jsx)(`div`,{className:`spacer`})]}),(0,import_jsx_runtime.jsx)(Consumer,{}),(0,import_jsx_runtime.jsxs)(`div`,{className:`bottom-controls`,children:[(0,import_jsx_runtime.jsx)(MobileStepper,{variant:`dots`,steps:d.length,position:`static`,activeStep:d.indexOf(u.stageFocus),className:``,backButton:null,nextButton:null}),(0,import_jsx_runtime.jsxs)(`div`,{className:`fab-buttons buttons`,children:[(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Previous view`,color:`primary`,onClick:f,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowLeft.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{className:(0,import_classnames.default)(`menu-button`,{"is-open":u.isMenuOpen}),color:`primary`,"aria-label":`Open drawer`,onClick:()=>n.handleMenuToggle(),children:(0,import_jsx_runtime.jsx)(import_Menu.default,{})}),(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`Next view`,color:`primary`,onClick:m,children:(0,import_jsx_runtime.jsx)(import_KeyboardArrowRight.default,{})})]})]}),(0,import_jsx_runtime.jsx)(Tooltip,{placement:`left`,title:(0,import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment,{children:[(0,import_jsx_runtime.jsx)(`p`,{children:`End the day to save your progress and advance the game.`}),(0,import_jsx_runtime.jsx)(`p`,{children:`(shift + c)`})]}),children:(0,import_jsx_runtime.jsx)(Fab,{"aria-label":`End the day to save your progress and advance the game.`,className:`end-day`,color:`error`,onClick:n.handleClickEndDayButton,sx:{zIndex:Z_INDEX.END_DAY_BUTTON},children:(0,import_jsx_runtime.jsx)(import_Hotel.default,{})})})]}),h?(0,import_jsx_runtime.jsx)(ChatRoom,{}):null,(0,import_jsx_runtime.jsx)(NotificationSystem_default,{})]})]})]})})};Farmhand.defaultProps={localforage:import_localforage.default.createInstance({name:`farmhand`,description:`Persisted game data for Farmhand`}),features:{},match:{path:``,params:{}}},Farmhand.propTypes={features:import_prop_types$1.object,history:import_prop_types$1.object,location:import_prop_types$1.object,match:import_prop_types$1.object.isRequired};var FarmhandRoute=e=>(0,import_jsx_runtime.jsx)(Farmhand,{...e,features});import_react_dom.render((0,import_jsx_runtime.jsx)(HashRouter,{hashType:`noslash`,children:(0,import_jsx_runtime.jsx)(Route,{path:[`/online/:room`,`/online`,`/`],component:FarmhandRoute})}),document.getElementById(`root`));
|
|
840
|
+
//# sourceMappingURL=index-DEgzdLWx.js.map
|