chayns-components
Version:
A set of beautiful React components for developing chayns® applications.
15 lines • 481 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("react-dom"),require("stream")):"function"==typeof define&&define.amd?define(["exports","react","react-dom","stream"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).ChaynsComponents={},e.React,e.ReactDOM,e.aa)}(this,(function(exports,React,ReactDOM,aa){"use strict";function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React),ReactDOM__default=_interopDefaultLegacy(ReactDOM),aa__default=_interopDefaultLegacy(aa);const CHAYNS_CSS_VERSION="4.2";var commonjsGlobal="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function createCommonjsModule(e,t,n){return e(n={path:t,exports:{},require:function(e,t){return commonjsRequire(e,null==t?n.path:t)}},n.exports),n.exports}function commonjsRequire(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var _extends_1=createCommonjsModule((function(e){function t(){return e.exports=t=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},e.exports.__esModule=!0,e.exports.default=e.exports,t.apply(this,arguments)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports})),_extends=getDefaultExportFromCjs(_extends_1);function r$2(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r$2(e[t]))&&(r&&(r+=" "),r+=n);else for(t in e)e[t]&&(r&&(r+=" "),r+=t);return r}function clsx(){for(var e,t,n=0,r="";n<arguments.length;)(e=arguments[n++])&&(t=r$2(e))&&(r&&(r+=" "),r+=t);return r}
/** @license React v16.13.1
* react-is.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var b="function"==typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p$1=b?Symbol.for("react.suspense"):60113,q$1=b?Symbol.for("react.suspense_list"):60120,r$1=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;function z$1(r){if("object"==typeof r&&null!==r){var o=r.$$typeof;switch(o){case c:switch(r=r.type){case l:case m:case e:case g:case f:case p$1:return r;default:switch(r=r&&r.$$typeof){case k:case n:case t:case r$1:case h:return r;default:return o}}case d:return o}}}function A(e){return z$1(e)===m}var AsyncMode=l,ConcurrentMode=m,ContextConsumer=k,ContextProvider=h,Element$1=c,ForwardRef=n,Fragment=e,Lazy=t,Memo=r$1,Portal=d,Profiler=g,StrictMode=f,Suspense=p$1,isAsyncMode=function(e){return A(e)||z$1(e)===l},isConcurrentMode=A,isContextConsumer=function(e){return z$1(e)===k},isContextProvider=function(e){return z$1(e)===h},isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===c},isForwardRef=function(e){return z$1(e)===n},isFragment=function(t){return z$1(t)===e},isLazy=function(e){return z$1(e)===t},isMemo=function(e){return z$1(e)===r$1},isPortal=function(e){return z$1(e)===d},isProfiler=function(e){return z$1(e)===g},isStrictMode=function(e){return z$1(e)===f},isSuspense=function(e){return z$1(e)===p$1},isValidElementType=function(r){return"string"==typeof r||"function"==typeof r||r===e||r===m||r===g||r===f||r===p$1||r===q$1||"object"==typeof r&&null!==r&&(r.$$typeof===t||r.$$typeof===r$1||r.$$typeof===h||r.$$typeof===k||r.$$typeof===n||r.$$typeof===w||r.$$typeof===x||r.$$typeof===y||r.$$typeof===v)},typeOf=z$1,reactIs_production_min={AsyncMode:AsyncMode,ConcurrentMode:ConcurrentMode,ContextConsumer:ContextConsumer,ContextProvider:ContextProvider,Element:Element$1,ForwardRef:ForwardRef,Fragment:Fragment,Lazy:Lazy,Memo:Memo,Portal:Portal,Profiler:Profiler,StrictMode:StrictMode,Suspense:Suspense,isAsyncMode:isAsyncMode,isConcurrentMode:isConcurrentMode,isContextConsumer:isContextConsumer,isContextProvider:isContextProvider,isElement:isElement,isForwardRef:isForwardRef,isFragment:isFragment,isLazy:isLazy,isMemo:isMemo,isPortal:isPortal,isProfiler:isProfiler,isStrictMode:isStrictMode,isSuspense:isSuspense,isValidElementType:isValidElementType,typeOf:typeOf};createCommonjsModule((function(e,t){})),createCommonjsModule((function(e){e.exports=reactIs_production_min}));
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
var getOwnPropertySymbols=Object.getOwnPropertySymbols,hasOwnProperty=Object.prototype.hasOwnProperty,propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function shouldUseNative(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map((function(e){return t[e]}));if("0123456789"!==r.join(""))return!1;var o={};return"abcdefghijklmnopqrst".split("").forEach((function(e){o[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return!1}}var objectAssign=shouldUseNative()?Object.assign:function(e,t){for(var n,r,o=toObject(e),s=1;s<arguments.length;s++){for(var a in n=Object(arguments[s]))hasOwnProperty.call(n,a)&&(o[a]=n[a]);if(getOwnPropertySymbols){r=getOwnPropertySymbols(n);for(var i=0;i<r.length;i++)propIsEnumerable.call(n,r[i])&&(o[r[i]]=n[r[i]])}}return o},ReactPropTypesSecret$1="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ReactPropTypesSecret_1=ReactPropTypesSecret$1,ReactPropTypesSecret=ReactPropTypesSecret_1;function emptyFunction(){}function emptyFunctionWithReset(){}emptyFunctionWithReset.resetWarningCache=emptyFunction;var factoryWithThrowingShims=function(){function e(e,t,n,r,o,s){if(s!==ReactPropTypesSecret){var a=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw a.name="Invariant Violation",a}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:emptyFunctionWithReset,resetWarningCache:emptyFunction};return n.PropTypes=n,n},require$$2=factoryWithThrowingShims,propTypes=createCommonjsModule((function(e){e.exports=require$$2()})),PropTypes=propTypes;function isString$1(e){return"string"==typeof e}function isNumber$1(e){return"number"==typeof e&&!isNaN(e)}function isFunction(e){return"function"==typeof e}function isNullOrWhiteSpace(e){return null==e||"string"==typeof e&&""===e.trim()}let displayedIconWarning=!1;class Icon extends React.Component{constructor(e){super(e),this.onClick=this.onClick.bind(this)}componentDidMount(){const{icon:e}=this.props;displayedIconWarning||!e||isString$1(e)||(displayedIconWarning=!0,console.warn("[chayns components] Icon: You are still using fortawesome SVG-icons. Consider changing to fontawesome-font-icons. https://github.com/TobitSoftware/chayns-components/blob/master/src/react-chayns-icon/README.md#deprecated"))}onClick(e){const{onClick:t,disabled:n,stopPropagation:r}=this.props;t&&!n&&t(e),r&&e.stopPropagation()}render(){const{icon:e,className:t,onClick:n,disabled:r,stopPropagation:o,style:s,...a}=this.props;if(Array.isArray(e))return React__default.default.createElement("span",{className:`fa-stack ${t}`,style:{height:"1em",width:"1.4em",lineHeight:"1em",...s}},e.map((e=>React__default.default.createElement("i",_extends({key:e,className:`${e} fa-stack-1x`,onClick:this.onClick},a)))));let i=e;if("object"==typeof e&&(i=`${e.prefix} fa-${e.iconName}`),!isString$1(i))return null;const l=clsx("react-chayns-icon",i,t,n&&"react-chayns-icon--clickable",r&&"react-chayns-icon--disabled");return React__default.default.createElement("i",_extends({className:l,style:s,onClick:this.onClick},a))}}Icon.propTypes={icon:PropTypes.oneOfType([PropTypes.string.isRequired,PropTypes.shape({iconName:PropTypes.string.isRequired,prefix:PropTypes.string.isRequired}).isRequired,PropTypes.arrayOf(PropTypes.string.isRequired)]).isRequired,className:PropTypes.string,style:PropTypes.objectOf(PropTypes.oneOfType([PropTypes.number,PropTypes.string])),onClick:PropTypes.func,disabled:PropTypes.bool,stopPropagation:PropTypes.bool},Icon.defaultProps={className:"",style:void 0,onClick:void 0,disabled:!1,stopPropagation:!1},Icon.displayName="Icon";const requestAnimationFrame$1="undefined"!=typeof window&&(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||(e=>window.setTimeout(e,0)));var requestAnimationFrame$2=requestAnimationFrame$1;const PRE_ENTER=0,ENTERING=1,ENTERED=2,PRE_EXIT=3,EXITING=4,EXITED=5,UNMOUNTED=6,STATUS=["preEnter","entering","entered","preExit","exiting","exited","unmounted"],getState=e=>({_s:e,status:STATUS[e],isEnter:e<PRE_EXIT,isMounted:e!==UNMOUNTED,isResolved:e===ENTERED||e>EXITING}),startOrEnd=e=>e?UNMOUNTED:EXITED,getEndStatus=(e,t)=>{switch(e){case ENTERING:case PRE_ENTER:return ENTERED;case EXITING:case PRE_EXIT:return startOrEnd(t)}},getTimeout=e=>"object"==typeof e?[e.enter,e.exit]:[e,e],nextTick=(e,t)=>setTimeout((()=>{isNaN(document.body.offsetTop)||e(t+1)}),0),updateState=(e,t,n,r,o)=>{clearTimeout(r.current);const s=getState(e);t(s),n.current=s,o&&o({current:s})},useTransitionState=({enter:e=!0,exit:t=!0,preEnter:n,preExit:r,timeout:o,initialEntered:s,mountOnEnter:a,unmountOnExit:i,onStateChange:l}={})=>{const[c,p]=React.useState((()=>getState(s?ENTERED:startOrEnd(a)))),u=React.useRef(c),d=React.useRef(),[h,f]=getTimeout(o),m=React.useCallback((()=>{const e=getEndStatus(u.current._s,i);e&&updateState(e,p,u,d,l)}),[l,i]);return[c,React.useCallback((o=>{const s=e=>{switch(updateState(e,p,u,d,l),e){case ENTERING:h>=0&&(d.current=setTimeout(m,h));break;case EXITING:f>=0&&(d.current=setTimeout(m,f));break;case PRE_ENTER:case PRE_EXIT:d.current=nextTick(s,e)}},a=u.current.isEnter;"boolean"!=typeof o&&(o=!a),o?!a&&s(e?n?PRE_ENTER:ENTERING:ENTERED):a&&s(t?r?PRE_EXIT:EXITING:startOrEnd(i))}),[m,l,e,t,n,r,h,f,i]),m]};function mapStatusToClass(e,t){switch(e){case"preEnter":return`${t}-enter`;case"entering":return`${t}-enter ${t}-enter-active`;case"entered":return t;case"exiting":return`${t}-exit ${t}-exit-active`;case"exited":return`${t}-exit`;default:return""}}const Button=React.forwardRef(((e,t)=>{let{chooseButton:n=!1,disabled:r=!1,children:o,className:s,icon:a,secondary:i=!1,stopPropagation:l=!1,onClick:c,type:p="button",...u}=e;return React__default.default.createElement("button",_extends({type:p,className:clsx(s,n?"choosebutton"+(a?" choosebutton--icon":""):"button"+(a?" button--icon":""),r&&"button--disabled",i&&"button--secondary"),onClick:e=>{c&&!r&&c(e),l&&e.stopPropagation()},disabled:r,ref:t},u),a&&React__default.default.createElement("span",{className:n?"choosebutton__icon":"button__icon"},React__default.default.createElement(Icon,{icon:a})),o)}));var Button$1=Button;Button.propTypes={children:PropTypes.node.isRequired,chooseButton:PropTypes.bool,disabled:PropTypes.bool,onClick:PropTypes.func,className:PropTypes.string,icon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),secondary:PropTypes.bool,stopPropagation:PropTypes.bool,type:PropTypes.oneOf(["button","submit","reset"])},Button.displayName="Button";let currentId$5=0;const PREFIX$4="CC_INPUT_";class Input extends React.PureComponent{constructor(e){super(e),this.state={valid:(!e.regExp||!e.value||e.value.match(e.regExp))&&!(""===e.value&&e.required),initial:!0,right:!1,value:e.value||e.defaultValue||""},this.id=`${PREFIX$4}${currentId$5++}`,this.setRef=this.setRef.bind(this),this.onKeyUp=this.onKeyUp.bind(this),this.onKeyPress=this.onKeyPress.bind(this),this.onBlur=this.onBlur.bind(this),this.onChange=this.onChange.bind(this),this.onPaste=this.onPaste.bind(this),this.callValidated=this.callValidated.bind(this),this.onIconClick=this.onIconClick.bind(this)}componentDidUpdate(e){let{regExp:t,value:n}=e;const{regExp:r,onChange:o,value:s}=this.props;String(t)!==String(r)&&this.ref&&this.callValidated(this.ref.value,o),s!==n&&this.callValidated(s)}onKeyUp(e){const{onKeyUp:t,onEnter:n}=this.props;t&&t(e),13===e.keyCode&&this.callValidated(e.target.value,n,e)}onKeyPress(e){const{type:t}=this.props;"number"===t&&e.code&&e.code.startsWith("Key")&&e.preventDefault()}onBlur(e){const{onBlur:t}=this.props;this.callValidated(e.target.value,t,e)}onChange(e){const{onChange:t}=this.props;this.setState({value:e.target.value}),this.callValidated(e.target.value,t,e)}onPaste(e){const{type:t}=this.props;if("number"===t){const t=e.clipboardData.getData("text/plain");/^[0-9.,]*$/.test(t)||e.preventDefault()}}onIconClick(e){const{right:t,initial:n}=this.state,{onIconClick:r,clearIcon:o,value:s,defaultValue:a}=this.props;o&&(t||!isNullOrWhiteSpace(s)||n&&!isNullOrWhiteSpace(a))?(this.onChange({target:{value:""}}),e.stopPropagation(),this.ref.value=""):r&&(r(e),e.stopPropagation())}setRef(e){const{inputRef:t}=this.props;t&&t(e),this.ref=e}callValidated(e,t,n){const{regExp:r,required:o}=this.props,s=!(o&&!e||r&&!e.match(r));t&&t(e,s,n),this.setState({valid:s,initial:!1,right:!isNullOrWhiteSpace(e)})}render(){const{className:e,defaultValue:t,value:n,style:r,placeholder:o,type:s,dynamic:a,icon:i,iconLeft:l,wrapperRef:c,invalid:p,onIconClick:u,onKeyDown:d,id:h,onFocus:f,stopPropagation:m,customProps:y,disabled:g,design:T,clearIcon:b,required:_,invalidMessage:P,emptyValue:v,autoComplete:R,left:S,right:E}=this.props,{valid:C,right:O,initial:w,value:I}=this.state,F=b&&(O||!isNullOrWhiteSpace(n)||w&&!isNullOrWhiteSpace(t))?"fa fa-times":i;return T===Input.BORDER_DESIGN?React__default.default.createElement("div",{className:clsx("input--border-design",e,(O||!isNullOrWhiteSpace(n)||w&&!isNullOrWhiteSpace(t))&&"input--label-right",(!C||p)&&"input--border-design--invalid",a===Input.BOTTOM_DYNAMIC?"input--bottom-dynamic":a&&"input--dynamic",g&&"input--disabled",_&&"input--border-design--required",F&&"input--border_has-icon",E&&"input--border_has-right",S&&"input--border_has-left"),onClick:()=>{this.ref.focus()},style:r},l&&React__default.default.createElement(Icon,{icon:l,className:"input__icon-left"}),S,React__default.default.createElement("div",{className:"input__input-wrapper"},React__default.default.createElement("input",_extends({ref:this.setRef,value:n,defaultValue:t,onKeyUp:this.onKeyUp,onKeyDown:d,onBlur:this.onBlur,onChange:this.onChange,onKeyPress:this.onKeyPress,onPaste:this.onPaste,onFocus:f,type:s||"text",id:h||this.id,required:!0,onClick:m?e=>e.stopPropagation():null,disabled:g,autoComplete:R},y)),o&&!v&&React__default.default.createElement("label",{htmlFor:h||this.id},React__default.default.createElement("div",{className:"space"},isString$1(n)?n:I),React__default.default.createElement("div",{className:"ellipsis"},(p||!C)&&P&&(n||I||t)?P:o)),v&&!(n||null==n&&I||t)&&React__default.default.createElement("div",{style:{position:"absolute",top:0,left:0,color:"var(--chayns-color--text)"}},v)),E,F&&React__default.default.createElement(Button$1,{onClick:this.onIconClick},React__default.default.createElement(Icon,{icon:F,style:!u&&!b||g?null:{pointerEvents:"all"},className:"input__icon-right"}))):a||F?React__default.default.createElement("div",{className:clsx("input-group",e,(O||!isNullOrWhiteSpace(n)||w&&!isNullOrWhiteSpace(t))&&"labelRight",g&&"input-group--disabled"),ref:c},React__default.default.createElement("input",_extends({style:{width:"100%",paddingRight:F?"30px":null,...r},ref:this.setRef,className:clsx("input",e,(!C||p)&&"input--invalid"),value:n,defaultValue:t,onKeyUp:this.onKeyUp,onKeyDown:d,onBlur:this.onBlur,onChange:this.onChange,onFocus:f,type:s||"text",id:h||this.id,required:!0,onClick:m?e=>e.stopPropagation():null,disabled:g,autoComplete:R},y)),o&&React__default.default.createElement("label",{style:{paddingRight:F?"30px":null},htmlFor:h||this.id,className:clsx((!C||p)&&"input--invalid",F&&"labelIcon")},React__default.default.createElement("div",{className:"space"},isString$1(n)?n:I),React__default.default.createElement("div",{className:"ellipsis"},o)),F?React__default.default.createElement(Icon,{icon:F,className:"input-group__icon",style:F?{opacity:".3",pointerEvents:"all"}:{opacity:"0"},onClick:this.onIconClick}):null):React__default.default.createElement("input",_extends({className:clsx("input",e,(!C||p)&&"input--invalid",g&&"input--disabled"),style:{width:"100%",...r},placeholder:o,onKeyUp:this.onKeyUp,onKeyDown:d,onBlur:this.onBlur,onChange:this.onChange,onFocus:f,value:n,defaultValue:t,type:s,ref:this.setRef,id:h||this.id,onClick:m?e=>e.stopPropagation():null,required:!0,disabled:g,autoComplete:R},y))}}Input.DEFAULT_DESIGN=0,Input.BORDER_DESIGN=1,Input.MOVING_DYNAMIC=!0,Input.NO_DYNAMIC=!1,Input.BOTTOM_DYNAMIC=2,Input.propTypes={className:PropTypes.string,onKeyUp:PropTypes.func,onKeyDown:PropTypes.func,onEnter:PropTypes.func,onChange:PropTypes.func,onBlur:PropTypes.func,onFocus:PropTypes.func,regExp:PropTypes.instanceOf(RegExp),style:PropTypes.objectOf(PropTypes.oneOfType([PropTypes.number,PropTypes.string])),placeholder:PropTypes.string,value:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),defaultValue:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),invalid:PropTypes.bool,type:PropTypes.string,inputRef:PropTypes.func,icon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),onIconClick:PropTypes.func,wrapperRef:PropTypes.func,dynamic:PropTypes.oneOfType([PropTypes.bool,PropTypes.number]),customProps:PropTypes.object,id:PropTypes.string,stopPropagation:PropTypes.bool,required:PropTypes.bool,disabled:PropTypes.bool,clearIcon:PropTypes.bool,design:PropTypes.number,iconLeft:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),left:PropTypes.node,right:PropTypes.node,invalidMessage:PropTypes.string,emptyValue:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),autoComplete:PropTypes.string},Input.defaultProps={className:"",onKeyUp:null,onKeyDown:null,onEnter:null,onChange:null,onBlur:null,onFocus:null,regExp:null,style:{},placeholder:"",value:void 0,defaultValue:void 0,invalid:!1,type:"text",inputRef:null,icon:null,onIconClick:null,wrapperRef:null,dynamic:!1,customProps:null,id:null,stopPropagation:!1,required:!1,disabled:!1,clearIcon:!1,design:Input.DEFAULT_DESIGN,iconLeft:null,left:null,right:null,invalidMessage:null,emptyValue:null,autoComplete:"off"},Input.displayName="Input";const AccordionSearch=e=>{let{onSearch:t,searchPlaceholder:n,onSearchEnter:r,searchValue:o}=e;return React__default.default.createElement(Input,{placeholder:n,onChange:t,onEnter:r,onIconClick:r,icon:"fa fa-search",value:o,stopPropagation:!0,dynamic:!0})};AccordionSearch.propTypes={onSearch:PropTypes.func,searchPlaceholder:PropTypes.string,onSearchEnter:PropTypes.func,searchValue:PropTypes.string},AccordionSearch.displayName="AccordionSearch";var AccordionSearch$1=AccordionSearch;const OPEN$1=2,CLOSE$1=1,AccordionHeadRight=e=>{let{right:t,onSearch:n,onSearchEnter:r,searchPlaceholder:o,searchValue:s,state:a}=e;const i=t&&!(!t.open&&!t.close),l=i?t.open:null,c=i?t.close:t,[{status:p,isMounted:u},d]=useTransitionState({timeout:500,mountOnEnter:!0,unmountOnExit:!0,preEnter:!0,initialEntered:a===CLOSE$1}),[{status:h,isMounted:f},m]=useTransitionState({timeout:500,mountOnEnter:!0,unmountOnExit:!0,preEnter:!0,initialEntered:a===OPEN$1});React.useEffect((()=>{d(a===CLOSE$1),m(a===OPEN$1)}),[a,d,m]);return t||n||r?n||r||i?React__default.default.createElement("div",{className:"accordion__head__right"},u&&React__default.default.createElement("div",{key:"closed",className:mapStatusToClass(p,"right--background")},c),f&&React__default.default.createElement("div",{key:"open",className:mapStatusToClass(h,"right--foreground")},l||(n||r?React__default.default.createElement(AccordionSearch$1,{onSearch:n,onSearchEnter:r,currentState:a,searchPlaceholder:o,searchValue:s}):null))):React__default.default.createElement("div",{className:"accordion__head__right"},c):null};AccordionHeadRight.propTypes={right:PropTypes.oneOfType([PropTypes.node.isRequired,PropTypes.shape({open:PropTypes.node.isRequired,close:PropTypes.node.isRequired}).isRequired]),onSearch:PropTypes.func,onSearchEnter:PropTypes.func,searchPlaceholder:PropTypes.string,searchValue:PropTypes.string,state:PropTypes.oneOf([OPEN$1,CLOSE$1])},AccordionHeadRight.defaultProps={right:null,onSearch:null,onSearchEnter:null,searchPlaceholder:"",searchValue:void 0,state:null},AccordionHeadRight.displayName="AccordionHeadRight";var AccordionHeadRight$1=AccordionHeadRight;const CLOSE=1,OPEN=2;let rqAnimationFrame;class Accordion extends React.PureComponent{constructor(e){super(e),this.handleAccordionClick=e=>{const{fixed:t,onClick:n,disabled:r}=this.props;if(n&&n(e),t||r||null===e)return;let o=!0,s=e.target;for(let e=0;e<15;e+=1){if(s.classList){if(s.classList.contains("accordion--no-trigger")){o=!1;break}if(s.classList.contains("accordion__head"))break}if(!s.parentNode){o=!1;break}s=s.parentNode}if(o){const{currentState:t}=this.state,{dataGroup:n}=this.props;!n&&t===OPEN||this.accordion.classList.contains("accordion--open")?this.accordionCloseListener(e):this.accordionOpenListener(e)}};const{defaultOpened:t,open:n,className:r}=e,o=e&&t||n||r&&-1!==r.indexOf("accordion--open")?OPEN:CLOSE;this.state={currentState:o,showBody:o===OPEN},this.ref=e=>{this.body=e}}componentDidMount(){const{className:e,autogrow:t,dataGroup:n}=this.props,{currentState:r}=this.state;-1!==e.indexOf("accordion--open")&&this.accordion.classList.add("accordion--open"),n&&(Accordion.dataGroups[n]||(Accordion.dataGroups[n]=[]),Accordion.dataGroups[n].push(this)),r===OPEN&&t&&this.body&&this.body.style.setProperty("max-height","initial","important"),this.body.addEventListener("transitionend",(e=>{if(t&&"max-height"===e.propertyName){const{currentState:e}=this.state;e!==OPEN||this.isClosing||this.body.style.setProperty("max-height","initial","important")}}))}componentDidUpdate(e,t){const{open:n}=this.props,{currentState:r}=this.state;r===CLOSE&&t.currentState!==r&&(this.timeout=setTimeout((()=>{this.setState({showBody:!1})}),500)),void 0!==n&&n!==e.open&&(n?this.accordionOpenListener(null,!0,!0):this.accordionCloseListener(null,!0,!0))}componentWillUnmount(){const{dataGroup:e}=this.props;if(e&&Accordion.dataGroups[e]){const t=Accordion.dataGroups[e].indexOf(this);-1!==t&&Accordion.dataGroups[e].splice(t,1)}cancelAnimationFrame(rqAnimationFrame),window.clearTimeout(this.timeout)}getBody(){const{renderClosed:e,children:t,removeContentClosed:n}=this.props,{currentState:r,showBody:o}=this.state;return r===OPEN||e||this.rendered&&!n||o?(this.rendered=!0,t):null}accordionCloseListener(e,t,n){void 0===n&&(n=!1);const{onClose:r,autogrow:o,controlled:s}=this.props,{body:a}=this;o&&a?rqAnimationFrame=requestAnimationFrame$2((()=>{this.body&&(this.isClosing=!0,this.body.style.removeProperty("max-height")),rqAnimationFrame=requestAnimationFrame$2((()=>{o&&a&&(this.setState({currentState:CLOSE},(()=>{this.isClosing=!1})),r&&!t&&r(e))}))})):(s&&!n||this.setState({currentState:CLOSE}),r&&!t&&r(e))}accordionOpenListener(e,t,n){void 0===n&&(n=!1);const{onOpen:r,dataGroup:o,controlled:s}=this.props;s&&!n||(o&&Accordion.dataGroups[o]&&Accordion.dataGroups[o].forEach((e=>{e!==this&&e.state&&e.state.currentState===OPEN&&e.accordionCloseListener()})),this.setState({currentState:OPEN,showBody:!0})),r&&!t&&r(e)}render(){const{id:e,style:t,isWrapped:n,className:r,styleBody:o,reference:s,icon:a,head:i,headMultiline:l,headClassNames:c,headCustomAttributes:p,noRotate:u,noIcon:d,disabled:h,fixed:f,right:m,onSearch:y,onSearchEnter:g,searchPlaceholder:T,searchValue:b}=this.props,{currentState:_}=this.state;let P=null;return i&&(P=i.open?_===OPEN?i.open:i.close:i),React__default.default.createElement("div",{className:clsx("accordion react-accordion",r,!0===n&&"accordion--wrapped",_===OPEN&&"accordion--open",h&&"accordion--disabled",f&&"accordion--fixed"),ref:e=>{this.accordion=e,s&&isFunction(s)&&s(e)},id:e,style:t},React__default.default.createElement("div",_extends({className:clsx("accordion__head",c,l&&"accordion__head__multiline",f&&"accordion__head--no-padding"),onClick:this.handleAccordionClick},p),d&&!f?null:React__default.default.createElement("div",{className:"accordion__head__icon"+(u||f?" accordion__head__icon--no-rotate":"")},isString$1(a)||a.iconName?React__default.default.createElement(Icon,{icon:f&&"ts-angle-right"===a?"fa fa-horizontal-rule":a,className:f&&"ts-angle-right"===a?"accordion--fixed__head__icon":null}):a),React__default.default.createElement("div",{className:"accordion__head__title",style:{...d&&!f?{paddingLeft:"10px"}:null,...i&&!isString$1(i.open)&&isString$1(i.close)&&n?{fontWeight:"inherit"}:null}},P),React__default.default.createElement(AccordionHeadRight$1,{right:m,onSearch:y,onSearchEnter:g,searchPlaceholder:T,searchValue:b,state:_})),React__default.default.createElement("div",{className:"accordion__body",ref:this.ref,style:o},this.getBody()))}}Accordion.dataGroups={},Accordion.propTypes={head:PropTypes.oneOfType([PropTypes.node.isRequired,PropTypes.shape({open:PropTypes.node.isRequired,close:PropTypes.node.isRequired}).isRequired]).isRequired,headMultiline:PropTypes.bool,headClassNames:PropTypes.oneOfType([PropTypes.string,PropTypes.arrayOf(PropTypes.string),PropTypes.object]),headCustomAttributes:PropTypes.object,children:PropTypes.node.isRequired,right:PropTypes.oneOfType([PropTypes.node.isRequired,PropTypes.shape({open:PropTypes.node,close:PropTypes.node}).isRequired]),renderClosed:PropTypes.bool,isWrapped:PropTypes.bool,dataGroup:PropTypes.string,className:PropTypes.string,id:PropTypes.string,style:PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string,PropTypes.number])),styleBody:PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string,PropTypes.number])),onOpen:PropTypes.func,onClose:PropTypes.func,defaultOpened:PropTypes.bool,reference:PropTypes.func,autogrow:PropTypes.bool,open:PropTypes.bool,icon:PropTypes.oneOfType([PropTypes.object,PropTypes.string,PropTypes.node]),noRotate:PropTypes.bool,fixed:PropTypes.bool,noIcon:PropTypes.bool,onSearch:PropTypes.func,onSearchEnter:PropTypes.func,searchPlaceholder:PropTypes.string,searchValue:PropTypes.string,removeContentClosed:PropTypes.bool,onClick:PropTypes.func,disabled:PropTypes.bool,controlled:PropTypes.bool},Accordion.defaultProps={className:"",headClassNames:null,headMultiline:!1,headCustomAttributes:null,dataGroup:null,id:null,style:null,styleBody:null,onOpen:null,onClose:null,defaultOpened:null,reference:null,isWrapped:!1,renderClosed:!1,right:null,autogrow:!0,open:void 0,icon:"ts-angle-right",noRotate:!1,fixed:!1,noIcon:!1,onSearch:null,onSearchEnter:null,searchPlaceholder:"",searchValue:void 0,removeContentClosed:!1,onClick:null,disabled:!1,controlled:!1},Accordion.displayName="Accordion";const AccordionIntro=e=>{let{children:t}=e;return React__default.default.createElement("div",{className:"accordion__intro"},t)};AccordionIntro.propTypes={children:PropTypes.node.isRequired},AccordionIntro.displayName="AccordionIntro";var AccordionIntro$1=AccordionIntro;const dimension={WIDTH:"width",MIN_WIDTH:"minWidth",HEIGHT:"height",MIN_HEIGHT:"minHeight"};function equalizeDimensions(e,t,n){const{length:r}=e,o=n||t;let s=0;if(r>1){let n;for(let o=0;o<r;o+=1)n=Math.ceil(e[o].getBoundingClientRect()[t]),s<n&&(s=n);if(s>0)for(let t=0;t<r;t+=1){e[t].style[o]=`${s}px`}}}function equalizer(e){const t=Array.prototype.slice.call((e||document).querySelectorAll("[data-cc-equalize], [data-equalize]"));e&&(e.hasAttribute("data-cc-equalize")||e.hasAttribute("data-equalize"))&&t.push(e);for(let e=0,n=t.length;e<n;e+=1){const n=t[e],r=n.getAttribute("data-cc-equalize")||n.getAttribute("data-equalize")||"";let o=n.querySelectorAll(`[data-cc-equalize-width="${r}"]`);o.length&&equalizeDimensions(o,dimension.WIDTH,dimension.MIN_WIDTH),o=n.querySelectorAll(`[data-cc-equalize-height="${r}"]`),o.length&&equalizeDimensions(o,dimension.HEIGHT,dimension.MIN_HEIGHT),o=n.querySelectorAll(`[data-cc-equalize-both="${r}"]`),o.length&&(equalizeDimensions(o,dimension.WIDTH,dimension.MIN_WIDTH),equalizeDimensions(o,dimension.HEIGHT,dimension.MIN_HEIGHT))}}const AUTO_HIDE_INPUT_MAX_AMOUNT=9;class AmountInput extends React.PureComponent{constructor(e){super(e),this.onButtonClick=e=>{const{amount:t,onAdd:n,stopPropagation:r}=this.props;t<=0&&n(),r&&e.stopPropagation()},this.onInputChange=e=>{const{isReadonly:t}=this.state;if(t)return;let n=e.replace(/[\D\s]+/g,"");n=parseInt(n,10),Number.isNaN(n)&&(n="");const{onInput:r}=this.props;r&&r(n)},this.onInputBlur=()=>{const{onChange:e}=this.props;let{tempAmount:t}=this.props;t=null===t?0:t,e(t),this.setState({isReadonly:!0})},this.onInputFocus=()=>{this.setState({isReadonly:!1})},this.setRef=e=>{this.inputRef=e},this.state={isReadonly:!0}}componentDidMount(){const{equalize:e}=this.props;e&&equalizer()}componentDidUpdate(e){const{equalize:t,showInput:n,focusOnClick:r}=this.props;e.equalize!==t&&equalizer(),n&&!e.showInput&&r&&this.inputRef&&this.inputRef.focus()}getButtonValue(){const{amount:e,buttonText:t,buttonFormatHandler:n,max:r}=this.props;return n?n({amount:e,buttonText:t}):e>0&&1!==r?`${e}`:t||0}render(){const{amount:e,disabled:t,disableInput:n,autoInput:r,showInput:o,equalize:s,tempValue:a,contentWidth:i,stopPropagation:l}=this.props,{isReadonly:c}=this.state,p=!t&&!n&&(r&&e>AUTO_HIDE_INPUT_MAX_AMOUNT||o);return[React__default.default.createElement(Input,{onClick:l?e=>e.stopPropagation():null,key:"amountInput",type:"number",value:a.toString(),onChange:this.onInputChange,className:"cc__amount-control__input",onFocus:this.onInputFocus,onBlur:this.onInputBlur,disabled:t,onEnter:this.onInputBlur,customProps:{"data-cc-equalize-width":s,readOnly:chayns.env.isIOS?void 0:c},inputRef:this.setRef,style:{width:`${i||55}px`,...p?null:{display:"none"}}}),React__default.default.createElement("div",{key:"amountDiv",onClick:this.onButtonClick,className:clsx("cc__amount-control__button",e?"cc__amount-control__button--amount":"cc__amount-control__button--price",t&&"disabled"),"data-cc-equalize-width":s,style:{...i?{width:`${i}px`}:null,...p?{display:"none"}:null}},this.getButtonValue())]}}AmountInput.propTypes={amount:PropTypes.number.isRequired,onAdd:PropTypes.func.isRequired,onInput:PropTypes.func.isRequired,onChange:PropTypes.func.isRequired,buttonText:PropTypes.string,showInput:PropTypes.bool.isRequired,disabled:PropTypes.bool,disableInput:PropTypes.bool,autoInput:PropTypes.bool,buttonFormatHandler:PropTypes.func,tempAmount:PropTypes.number,tempValue:PropTypes.oneOfType([PropTypes.string,PropTypes.number]),equalize:PropTypes.string,focusOnClick:PropTypes.bool,contentWidth:PropTypes.number,stopPropagation:PropTypes.bool.isRequired},AmountInput.defaultProps={buttonText:null,disabled:!1,disableInput:!1,autoInput:!1,buttonFormatHandler:void 0,tempAmount:0,tempValue:"0",equalize:null,focusOnClick:!0,contentWidth:null},AmountInput.displayName="AmountInput";class ControlButton extends React.PureComponent{render(){const{icon:e,backgroundColor:t,onClick:n,className:r,disabled:o,color:s,stopPropagation:a}=this.props;return React__default.default.createElement("div",{onClick:e=>{o||n(e),a&&e.stopPropagation()},className:clsx(r,o&&"disabled"),style:{backgroundColor:t}},React__default.default.createElement(Icon,{icon:e,style:s?{color:s}:null}))}}ControlButton.propTypes={icon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]).isRequired,onClick:PropTypes.func.isRequired,className:PropTypes.string.isRequired,stopPropagation:PropTypes.bool.isRequired,disabled:PropTypes.bool,color:PropTypes.string},ControlButton.defaultProps={disabled:!1,color:null},ControlButton.displayName="ControlButton";const DEFAULT_PLUS_ICON="fa fa-plus",DEFAULT_MINUS_ICON="fa fa-minus",DEFAULT_REMOVE_ICON="fa fa-minus",DEFAULT_SINGLE_REMOVE_ICON="fa fa-check";class AmountControl extends React.PureComponent{constructor(e){super(e),this.onInput=e=>{const{onInput:t}=this.props;let n=0;chayns.utils.isNumber(e)&&(n=e),this.setState({tempAmount:n,tempValue:e}),t&&(n||n>=0)&&t(n)},this.addItem=()=>{const{amount:e,onAdd:t,max:n}=this.props;n&&e+1>n||(t&&t(),this.changeAmount(e+1))},this.removeItem=()=>{const{amount:e,onRemove:t,min:n,hasAlwaysControls:r}=this.props;n&&e-1<n||(t&&t(),e>0?this.changeAmount(e-1):r||this.addItem())},this.changeAmount=e=>{const{onChange:t,onInput:n,amount:r,disableAdd:o,disableRemove:s,min:a,max:i}=this.props;if(n&&n(e),t){if(o&&e>r||s&&e<r||a&&e<a||i&&e>i)return void this.setState({tempValue:r,tempAmount:r});t(e)}},this.state={tempAmount:e.amount,tempValue:e.amount}}componentDidUpdate(e){const{amount:t}=this.props;e.amount!==t&&this.setState({tempAmount:t,tempValue:t})}getRemoveIcon(){const{amount:e,icon:t,removeIcon:n,minusIcon:r,hasAlwaysControls:o,max:s}=this.props,{tempAmount:a}=this.state;return!t||a||o?a>1||e>1?r:null!=n?n:1===s?DEFAULT_SINGLE_REMOVE_ICON:DEFAULT_REMOVE_ICON:t}isAddButtonShown(){const{showAddButton:e,max:t}=this.props;return void 0!==e?e:1!==t}isInputEnabled(){const{disableInput:e,max:t,amount:n}=this.props;return(1!==t||1!==n)&&(void 0!==e?!e:1!==t)}render(){const{amount:e,buttonText:t,disabled:n,disableAdd:r,disableRemove:o,className:s,autoInput:a,buttonFormatHandler:i,showInput:l,icon:c,removeColor:p,addColor:u,iconColor:d,equalize:h,focusOnClick:f,contentWidth:m,stopPropagation:y,plusIcon:g,max:T,min:b,hasAlwaysControls:_}=this.props,{tempAmount:P,tempValue:v}=this.state,R=!c||P||_?p:d,S=!c||P||_?u:d;return React__default.default.createElement("div",{className:clsx("cc__amount-control choosebutton",s,(e>0&&1!==T||_)&&"cc__amount-control--active",n&&"cc__amount-control--disabled"),onClick:1===e&&1===T?this.removeItem:null},React__default.default.createElement(ControlButton,{stopPropagation:y,icon:this.getRemoveIcon(),onClick:1===e&&1===T?null:this.removeItem,disabled:n||o||b&&e<=(b||0),className:"cc__amount-control__remove"+(e>0||c||_?" cc__amount-control--icon":""),color:1===e&&1===T?"#fff":R,backgroundColor:1===e&&1===T?S:null}),React__default.default.createElement(AmountInput,{stopPropagation:y&&!(1===e&&1===T),contentWidth:m,equalize:h,autoInput:a,amount:e,onChange:this.changeAmount,onInput:this.onInput,onAdd:this.addItem,buttonText:t,disabled:n,disableInput:!this.isInputEnabled(),buttonFormatHandler:i,showInput:0!==P||0!==v||l||_,tempAmount:P,tempValue:v,focusOnClick:f,max:T}),this.isAddButtonShown()&&React__default.default.createElement(ControlButton,{stopPropagation:y,icon:g,onClick:this.addItem,disabled:n||r||T&&e>=T,className:"cc__amount-control__add"+(e>0||_?" cc__amount-control--icon":""),color:u}))}}AmountControl.propTypes={buttonText:PropTypes.string,amount:PropTypes.number,onChange:PropTypes.func,onInput:PropTypes.func,onAdd:PropTypes.func,onRemove:PropTypes.func,disabled:PropTypes.bool,disableInput:PropTypes.bool,disableAdd:PropTypes.bool,disableRemove:PropTypes.bool,className:PropTypes.string,autoInput:PropTypes.bool,buttonFormatHandler:PropTypes.func,showInput:PropTypes.bool,showAddButton:PropTypes.bool,icon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),plusIcon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),minusIcon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),removeIcon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),removeColor:PropTypes.string,addColor:PropTypes.string,iconColor:PropTypes.string,equalize:PropTypes.string,focusOnClick:PropTypes.bool,contentWidth:PropTypes.number,min:PropTypes.number,max:PropTypes.number,stopPropagation:PropTypes.bool,hasAlwaysControls:PropTypes.bool},AmountControl.defaultProps={buttonText:null,amount:0,onChange:null,onInput:null,onAdd:null,onRemove:null,disabled:!1,disableAdd:!1,disableRemove:!1,className:"",autoInput:!1,buttonFormatHandler:void 0,showInput:!1,icon:null,removeColor:null,addColor:null,iconColor:null,equalize:null,focusOnClick:!0,contentWidth:null,stopPropagation:!1,min:null,max:null,plusIcon:DEFAULT_PLUS_ICON,minusIcon:DEFAULT_MINUS_ICON,removeIcon:void 0,hasAlwaysControls:!1,disableInput:void 0,showAddButton:void 0},AmountControl.displayName="AmountControl";const AnimationWrapper=e=>{let{children:t=React__default.default.createElement("div",null),animationTime:n=.2,setAutoTime:r=400}=e;const[o,s]=React.useState(0),a=React.useRef(0);return React.useEffect((()=>{const e=document.getElementById("animated__content"),t=getComputedStyle(e),n=parseInt(t.marginTop,10)+parseInt(t.marginBottom,10),o=e.offsetHeight+n,[i]=Array.from(a.current.children),l=parseInt(window.getComputedStyle(i).marginTop,10);s(o+l);const c=setTimeout((()=>{e.parentElement.style.height=`${o+l}px`,e.parentElement.style.opacity="1",setTimeout((()=>{e.parentElement.style.height="auto"}),r||o?(o+l)/5*200:400)}),300);return()=>clearTimeout(c)}),[]),React__default.default.createElement("div",{className:"animation__wrapper",style:{transition:`height ${n||o/40*.2}s, opacity ${n||o/40*.3}s `}},React__default.default.createElement("div",{ref:a,id:"animated__content"},t))};AnimationWrapper.propTypes={children:PropTypes.node,animationTime:PropTypes.number,setAutoTime:PropTypes.number};var AnimationWrapper$1=AnimationWrapper;const Badge=React.forwardRef(((e,t)=>{let{children:n,className:r,style:o,badgeRef:s,...a}=e;const[i,l]=React.useState(),c=React.useCallback((e=>{e&&l(e.getBoundingClientRect().height)}),[]);return React__default.default.createElement("div",_extends({className:clsx(r,"badge"),ref:e=>{c(e),t&&t(e),s&&s(e)},style:{minWidth:i,...o}},a),n)}));var Badge$1=Badge;Badge.propTypes={children:PropTypes.node.isRequired,className:PropTypes.string,style:PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string,PropTypes.number])),badgeRef:PropTypes.func},Badge.displayName="Badge";const TappPortal=e=>{let{children:t,parent:n}=e,r="undefined"!=typeof document?document.getElementsByClassName("tapp")[0]:null;return n&&(r=n),r?ReactDOM.createPortal(t,r):null};TappPortal.propTypes={children:PropTypes.oneOfType([PropTypes.node,PropTypes.arrayOf(PropTypes.node)]),parent:"undefined"!=typeof Element?PropTypes.instanceOf(Element):()=>{}},TappPortal.displayName="TappPortal";var TappPortal$1=TappPortal;let currentId$4=0;const Bubble=React__default.default.forwardRef(((e,t)=>{let{position:n=Bubble.position.TOP_LEFT,parent:r,topDivStyle:o,onMouseEnter:s,onMouseLeave:a,className:i,children:l,style:c,coordinates:p}=e;const u=React.useRef(),[d]=React.useState((()=>"cc__bubble"+ ++currentId$4)),h=React.useRef();React.useEffect((()=>()=>clearTimeout(h.current)),[]);const[f,m]=React.useState(!1),[y,g]=React.useState(!0);React.useImperativeHandle(t,(()=>({show(){g(!1),clearTimeout(h.current),h.current=setTimeout((()=>m(!0)))},hide(){m(!1),clearTimeout(h.current),h.current=setTimeout((()=>g(!0)),500)}})),[]);const T=clsx(`cc__bubble cc__bubble--position${n}`,f&&"cc__bubble--active",y&&"cc__bubble--hide"),{x:b,y:_}=p;return React__default.default.createElement(TappPortal$1,{parent:r},React__default.default.createElement("div",{className:T,style:{top:`${_}px`,left:`${b}px`,...o},ref:u,onMouseEnter:s,onMouseLeave:a,key:d},React__default.default.createElement("div",{className:clsx("cc__bubble__overlay",i),style:c},l)))}));Bubble.position={TOP_LEFT:0,BOTTOM_LEFT:1,BOTTOM_RIGHT:2,TOP_RIGHT:3,TOP_CENTER:4,BOTTOM_CENTER:5},Bubble.isPositionBottom=e=>{const{BOTTOM_LEFT:t,BOTTOM_CENTER:n,BOTTOM_RIGHT:r}=Bubble.position;return[t,n,r].includes(e)},Bubble.propTypes={children:PropTypes.node,className:PropTypes.string,style:PropTypes.PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string,PropTypes.number])),position:PropTypes.oneOf([0,1,2,3,4,5]),parent:"undefined"!=typeof Element?PropTypes.instanceOf(Element):()=>{},coordinates:PropTypes.shape({x:PropTypes.number.isRequired,y:PropTypes.number.isRequired}),onMouseEnter:PropTypes.func,onMouseLeave:PropTypes.func,topDivStyle:PropTypes.objectOf(PropTypes.oneOfType([PropTypes.string,PropTypes.number]))},Bubble.displayName="Bubble";var Bubble$1=Bubble;const ChooseButton=e=>{let{children:t,...n}=e;return React__default.default.createElement(Button$1,_extends({chooseButton:!0},n),t)};ChooseButton.propTypes={children:PropTypes.node.isRequired,disabled:PropTypes.bool,onClick:PropTypes.func,className:PropTypes.string,icon:PropTypes.oneOfType([PropTypes.string,PropTypes.object]),stopPropagation:PropTypes.bool,type:PropTypes.oneOf(["button","submit","reset"])},ChooseButton.displayName="ChooseButton";var ChooseButton$1=ChooseButton;function areDatesEqual(e,t){return e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}const dates={};class DateStorage{static From(e,t,n){const r=`${e}_${t}_${n}`;return dates[r]||(dates[r]=new Date(e,t,n)),dates[r]}}class DayItem extends React.PureComponent{constructor(e){super(e),this.onClick=this.onClick.bind(this)}onClick(){const{onDateSelect:e,date:t}=this.props;e&&e(t)}render(){const{date:e,inMonth:t,activateAll:n,activated:r,selected:o,highlighted:s,highlightStyle:a,categories:i,circleColor:l}=this.props;let c=n,p=!1,u=!1,d=!1,h=!1,f="day__item day-in-month",m="day__item__content",y=null;return c&&(h=!0),r&&(c=!0,u=!0,h=!0),o&&areDatesEqual(o,e)&&(c=!0,p=!0),s&&(c=!0,u=!0,h=!0,d=!0,a&&(y=a)),t?(f=clsx("day__item day-in-month",c?"is-active":"is-deactive",u&&["is-marked",c?"chayns__background-color--80 chayns__color--5":!p&&"chayns__background-color--80",d&&"is-marked-is-highlighted"]),m="day__item__content"+(p?" is-selected":""),React__default.default.createElement("div",{className:f,style:y,onClick:h?this.onClick:null},React__default.default.createElement("div",{className:m,style:p&&l?{backgroundColor:l}:void 0},e.getDate()),(null==i?void 0:i.length)>0&&React__default.default.createElement("div",{className:"day__item__category--wrapper"},i.map(((e,t)=>React__default.default.createElement("div",{key:`${t}__${e}`,className:"day__item__category-circle",style:{backgroundColor:e}})))))):React__default.default.createElement("div",{className:"day__item day-out-month"},React__default.default.createElement("div",{className:"day__item__content"},e.getDate()))}}DayItem.propTypes={date:PropTypes.instanceOf(Date).isRequired,inMonth:PropTypes.bool.isRequired,onDateSelect:PropTypes.func,activateAll:PropTypes.bool,selected:PropTypes.instanceOf(Date),activated:PropTypes.bool,highlighted:PropTypes.bool,highlightStyle:PropTypes.object,circleColor:PropTypes.string,categories:PropTypes.arrayOf(PropTypes.string)},DayItem.defaultProps={selected:null,activated:!1,highlighted:!1,activateAll:null,highlightStyle:null,circleColor:null,onDateSelect:null,categories:null},DayItem.displayName="DayItem";var DayItem$1=DayItem;const DAYS={de:["Mo","Di","Mi","Do","Fr","Sa","So"],en:["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]};function getDayNames(e){return void 0===e&&(e=chayns.env.language),DAYS[e]||DAYS.de}class MonthTable extends React.PureComponent{static isActivated(e,t){for(let n=0;n<e.length;n+=1)if(areDatesEqual(e[n],t))return!0;return!1}static getHighlightedData(e,t){for(let n=0;n<e.length;n+=1)for(let r=0;e[n].dates&&r<e[n].dates.length;r+=1)if(areDatesEqual(e[n].dates[r],t))return{highlighted:!0,style:e[n].style||null};return{highlighted:!1,style:null}}static getCategoryData(e,t){return e?e.filter((e=>areDatesEqual(new Date(e.date),t))).map((e=>e.color)):null}createTable(){const{startDate:e}=this.props,t=[];let n;n=e.getDay()>0?DateStorage.From(e.getFullYear(),e.getMonth(),9-e.getDay()):DateStorage.From(e.getFullYear(),e.getMonth(),2-e.getDay());for(let r=0;r<6;r+=1){const o=[];if(0===r)if(e.getDay()>0){for(let t=2;t<=e.getDay();t+=1)o.push({date:DateStorage.From(e.getFullYear(),e.getMonth(),-1*e.getDay()+t),inMonth:!1});for(let t=1;t<=8-e.getDay();t+=1)o.push({date:DateStorage.From(e.getFullYear(),e.getMonth(),t),inMonth:!0})}else{for(let t=6;t>0;t-=1)o.push({date:DateStorage.From(e.getFullYear(),e.getMonth(),e.getDate()-t),inMonth:!1});o.push({date:DateStorage.From(e.getFullYear(),e.getMonth(),e.getDate()),inMonth:!0})}else{for(let t=0;t<7;t+=1){const r=DateStorage.From(n.getFullYear(),n.getMonth(),n.getDate()+t);r.getMonth()===e.getMonth()?o.push({date:r,inMonth:!0}):o.push({date:r,inMonth:!1})}n=DateStorage.From(n.getFullYear(),n.getMonth(),n.getDate()+7)}t.push(o)}return t}render(){const{activateAll:e,activated:t,selected:n,highlighted:r,circleColor:o,categories:s,onDateSelect:a}=this.props,i=this.createTable(),l=getDayNames();return React__default.default.createElement("div",{className:"month__table noselect"},React__default.default.createElement("div",{className:"day__row"},l.map(((e,t)=>React__default.default.createElement("div",{className:"day__item--text chayns__color--headline",key:t},e)))),i.map(((i,l)=>React__default.default.createElement("div",{className:"day__row",key:l},i.map((i=>{const{style:l,highlighted:c}=MonthTable.getHighlightedData(r,i.date);return React__default.default.createElement(DayItem$1,{key:i.date.getTime(),date:i.date,inMonth:i.inMonth,categories:MonthTable.getCategoryData(s,i.date),activateAll:e,activated:MonthTable.isActivated(t,i.date),selected:n,highlightStyle:l,highlighted:c,circleColor:o,onDateSelect:a})}))))))}}MonthTable.propTypes={onDateSelect:PropTypes.func,activateAll:PropTypes.bool,startDate:PropTypes.instanceOf(Date),selected:PropTypes.instanceOf(Date),activated:PropTypes.arrayOf(Date),highlighted:PropTypes.arrayOf(PropTypes.shape({dates:PropTypes.arrayOf(Date).isRequired,style:PropTypes.object})),categories:PropTypes.arrayOf(PropTypes.shape({date:PropTypes.oneOfType([PropTypes.instanceOf(Date),PropTypes.string]),color:PropTypes.string})),circleColor:PropTypes.string},MonthTable.defaultProps={selected:null,activated:null,highlighted:null,circleColor:null,categories:null,startDate:null,activateAll:!0,onDateSelect:null},MonthTable.displayName="MonthTable";const Month=e=>{let{title:t,className:n,onDateSelect:r,startDate:o,endDate:s,selected:a,activated:i,highlighted:l=!1,categories:c,circleColor:p,activateAll:u=!0}=e;return React__default.default.createElement("div",{className:`month__item ${n||""}`},React__default.default.createElement("div",{className:"month__title"},t||""),React__default.default.createElement(MonthTable,{onDateSelect:r,startDate:o,endDate:s,selected:a,activated:i,highlighted:l,categories:c,circleColor:p,activateAll:u}))};Month.propTypes={title:PropTypes.string,className:PropTypes.string,onDateSelect:PropTypes.func,activateAll:PropTypes.bool,startDate:PropTypes.instanceOf(Date),endDate:PropTypes.instanceOf(Date),selected:PropTypes.instanceOf(Date),activated:PropTypes.arrayOf(Date),highlighted:PropTypes.oneOfType([PropTypes.shape({dates:PropTypes.arrayOf(PropTypes.instanceOf(Date)),style:PropTypes.shape({color:PropTypes.string,backgroundColor:PropTypes.string})}),PropTypes.arrayOf(PropTypes.shape({dates:PropTypes.arrayOf(PropTypes.instanceOf(Date)),style:PropTypes.shape({color:PropTypes.string,backgroundColor:PropTypes.string})}))]),categories:PropTypes.arrayOf(PropTypes.shape({date:PropTypes.oneOfType([PropTypes.instanceOf(Date),PropTypes.string]),color:PropTypes.string})),circleColor:PropTypes.string},Month.displayName="Month";var Month$1=Month;const TODAY=new Date,MONTH_NAMES={de:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],en:["January","February","March","April","May","June","July","August","September","October","November","December"]};function getMonthNames(e){return void 0===e&&(e=chayns.env.language),MONTH_NAMES[e]||MONTH_NAMES.de}class Calendar extends React.Component{constructor(e){super(e),this.state={focus:new Date,months:[]},this.navigateLeftOnClick=this.navigateLeftOnClick.bind(this),this.navigateRightOnClick=this.navigateRightOnClick.bind(this),this.setMonths=this.setMonths.bind(this),this.handleTouchStart=this.handleTouchStart.bind(this),this.handleTouchMove=this.handleTouchMove.bind(this),this.handleTouchEnd=this.handleTouchEnd.bind(this);const{selected:t}=e,n=new Date(t.getFullYear(),t.getMonth(),t.getDate());this.setMonths(n)}handleTouchStart(e){this.swipeX=e.touches[0].clientX}handleTouchMove(e){this.moveSwipeX=e.touches[0].clientX}handleTouchEnd(){this.swipeX&&this.moveSwipeX&&(this.moveSwipeX>=this.swipeX+60?(this.navigateLeftOnClick(),this.swipeX=null,this.moveSwipeX=null):this.moveSwipeX<=this.swipeX-60&&(this.navigateRightOnClick(),this.swipeX=null,this.moveSwipeX=null))}setMonths(e,t){const{onMonthSelect:n}=this.props,{setTimeout:r}=window,o=Calendar.IsMobile()?-50:-25;this.timeout&&(clearTimeout(this.timeout),this.setState({months:this.newMonths,translate:`${o}%`,animate:!1}));const s=new Date(e.getFullYear(),e.getMonth()-2,1),a=new Date(e.getFullYear(),e.getMonth()-1,1),i=new Date(e.getFullYear(),e.getMonth()+1,1),l=getMonthNames(),c=[{title:l[s.getMonth()],className:"month",startDate:s,endDate:new Date(s.getFullYear(),s.getMonth()+1,s.getDate(),23,59,59,999)},{title:l[a.getMonth()],className:"month",startDate:a,endDate:new Date(a.getFullYear(),a.getMonth()+1,a.getDate(),23,59,59,999)},{title:l[e.getMonth()],className:"month",startDate:new Date(e.getFullYear(),e.getMonth(),1),endDate: