diff --git a/README.md b/README.md index 4e1c6db58..b9c13baf7 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ And then call `npm run build`. Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> -### **WORK IN PROGRESS** +### 5.8.7 (2022-07-12) * (klein0r) Fixed function edit dialog (cursor jumps to first position) * (klein0r) Added error message when using number or boolean as trigger id diff --git a/admin/asset-manifest.json b/admin/asset-manifest.json index e9dbaccf6..6d69dd5cc 100644 --- a/admin/asset-manifest.json +++ b/admin/asset-manifest.json @@ -1,8 +1,8 @@ { "files": { - "main.js": "/static/js/main.6786f272.js", + "main.js": "/static/js/main.b354b87f.js", "static/css/62.6133d7c1.chunk.css": "/static/css/62.6133d7c1.chunk.css", - "static/js/62.819eb7c1.chunk.js": "/static/js/62.819eb7c1.chunk.js", + "static/js/62.1898e699.chunk.js": "/static/js/62.1898e699.chunk.js", "static/js/90.728d6560.chunk.js": "/static/js/90.728d6560.chunk.js", "static/js/969.769d4d61.chunk.js": "/static/js/969.769d4d61.chunk.js", "static/js/13.6f214f89.chunk.js": "/static/js/13.6f214f89.chunk.js", @@ -10,16 +10,15 @@ "static/js/526.b7e29abd.chunk.js": "/static/js/526.b7e29abd.chunk.js", "static/js/961.21586481.chunk.js": "/static/js/961.21586481.chunk.js", "static/js/869.9d08162f.chunk.js": "/static/js/869.9d08162f.chunk.js", - "static/js/333.38d9fc99.chunk.js": "/static/js/333.38d9fc99.chunk.js", + "static/js/200.c6266fbe.chunk.js": "/static/js/200.c6266fbe.chunk.js", "static/js/815.ab923bde.chunk.js": "/static/js/815.ab923bde.chunk.js", - "static/js/262.2a9e4f2b.chunk.js": "/static/js/262.2a9e4f2b.chunk.js", "static/js/114.45340edf.chunk.js": "/static/js/114.45340edf.chunk.js", - "static/js/293.de1af88d.chunk.js": "/static/js/293.de1af88d.chunk.js", + "static/js/909.aef20231.chunk.js": "/static/js/909.aef20231.chunk.js", "static/js/230.9729f0f5.chunk.js": "/static/js/230.9729f0f5.chunk.js", "static/js/624.953d447c.chunk.js": "/static/js/624.953d447c.chunk.js", - "static/js/178.23a28337.chunk.js": "/static/js/178.23a28337.chunk.js", - "static/js/270.b22285e7.chunk.js": "/static/js/270.b22285e7.chunk.js", - "static/js/691.b32a65f0.chunk.js": "/static/js/691.b32a65f0.chunk.js", + "static/js/270.2f146e4b.chunk.js": "/static/js/270.2f146e4b.chunk.js", + "static/js/178.f52a4814.chunk.js": "/static/js/178.f52a4814.chunk.js", + "static/js/691.8c6be625.chunk.js": "/static/js/691.8c6be625.chunk.js", "static/media/back.jpg": "/static/media/back.bda2bbe51be338a0f657.jpg", "static/media/hysteresis.png": "/static/media/hysteresis.04ebd02c6062432f891d.png", "static/media/Ground Floor.svg": "/static/media/Ground Floor.2b7c5c91db7f070935a2.svg", @@ -142,9 +141,9 @@ "static/media/Garage Doors.svg": "/static/media/Garage Doors.0c2a1cfca7ad1ea59625.svg", "static/media/Outdoor Blinds.svg": "/static/media/Outdoor Blinds.37b85a9c060a4af48da9.svg", "static/media/Upstairs.svg": "/static/media/Upstairs.441813e54e0daca0882d.svg", - "main.6786f272.js.map": "/static/js/main.6786f272.js.map", + "main.b354b87f.js.map": "/static/js/main.b354b87f.js.map", "62.6133d7c1.chunk.css.map": "/static/css/62.6133d7c1.chunk.css.map", - "62.819eb7c1.chunk.js.map": "/static/js/62.819eb7c1.chunk.js.map", + "62.1898e699.chunk.js.map": "/static/js/62.1898e699.chunk.js.map", "90.728d6560.chunk.js.map": "/static/js/90.728d6560.chunk.js.map", "969.769d4d61.chunk.js.map": "/static/js/969.769d4d61.chunk.js.map", "13.6f214f89.chunk.js.map": "/static/js/13.6f214f89.chunk.js.map", @@ -152,18 +151,17 @@ "526.b7e29abd.chunk.js.map": "/static/js/526.b7e29abd.chunk.js.map", "961.21586481.chunk.js.map": "/static/js/961.21586481.chunk.js.map", "869.9d08162f.chunk.js.map": "/static/js/869.9d08162f.chunk.js.map", - "333.38d9fc99.chunk.js.map": "/static/js/333.38d9fc99.chunk.js.map", + "200.c6266fbe.chunk.js.map": "/static/js/200.c6266fbe.chunk.js.map", "815.ab923bde.chunk.js.map": "/static/js/815.ab923bde.chunk.js.map", - "262.2a9e4f2b.chunk.js.map": "/static/js/262.2a9e4f2b.chunk.js.map", "114.45340edf.chunk.js.map": "/static/js/114.45340edf.chunk.js.map", - "293.de1af88d.chunk.js.map": "/static/js/293.de1af88d.chunk.js.map", + "909.aef20231.chunk.js.map": "/static/js/909.aef20231.chunk.js.map", "230.9729f0f5.chunk.js.map": "/static/js/230.9729f0f5.chunk.js.map", "624.953d447c.chunk.js.map": "/static/js/624.953d447c.chunk.js.map", - "178.23a28337.chunk.js.map": "/static/js/178.23a28337.chunk.js.map", - "270.b22285e7.chunk.js.map": "/static/js/270.b22285e7.chunk.js.map", - "691.b32a65f0.chunk.js.map": "/static/js/691.b32a65f0.chunk.js.map" + "270.2f146e4b.chunk.js.map": "/static/js/270.2f146e4b.chunk.js.map", + "178.f52a4814.chunk.js.map": "/static/js/178.f52a4814.chunk.js.map", + "691.8c6be625.chunk.js.map": "/static/js/691.8c6be625.chunk.js.map" }, "entrypoints": [ - "static/js/main.6786f272.js" + "static/js/main.b354b87f.js" ] } \ No newline at end of file diff --git a/admin/static/js/178.23a28337.chunk.js b/admin/static/js/178.23a28337.chunk.js deleted file mode 100644 index 8c868df22..000000000 --- a/admin/static/js/178.23a28337.chunk.js +++ /dev/null @@ -1,480 +0,0 @@ -var el=Math.pow;(self.webpackChunkjs=self.webpackChunkjs||[]).push([[178],{68551:function(l,r,e){var t=e(22858),a=e(46860),s=e(60379),m=e(80521);function O(M){return t(M)||a(M)||s(M)||m()}l.exports=O,l.exports.__esModule=!0,l.exports.default=l.exports},21112:function(l,r,e){"use strict";var t;t={value:!0};var a=Object.assign||function(o){for(var c=1;c=0||!Object.prototype.hasOwnProperty.call(o,w)||(u[w]=o[w]);return u}var x=24;r.Z=function(o){var c=o.fill,u=c===void 0?"currentColor":c,w=o.width,j=w===void 0?x:w,f=o.height,v=f===void 0?x:f,Y=o.style,U=Y===void 0?{}:Y,A=M(o,["fill","width","height","style"]);return m.default.createElement("svg",a({viewBox:"0 0 "+x+" "+x,style:a({fill:u,width:j,height:v},U)},A),m.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}},47327:function(l,r,e){"use strict";var t;t={value:!0};var a=Object.assign||function(o){for(var c=1;c=0||!Object.prototype.hasOwnProperty.call(o,w)||(u[w]=o[w]);return u}var x=24;r.Z=function(o){var c=o.fill,u=c===void 0?"currentColor":c,w=o.width,j=w===void 0?x:w,f=o.height,v=f===void 0?x:f,Y=o.style,U=Y===void 0?{}:Y,A=M(o,["fill","width","height","style"]);return m.default.createElement("svg",a({viewBox:"0 0 "+x+" "+x,style:a({fill:u,width:j,height:v},U)},A),m.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))}},49021:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(50008)),s=t(e(34575)),m=t(e(93913)),O=t(e(81506)),M=t(e(2205)),x=t(e(78585)),o=t(e(29754)),c=t(e(59713)),u=t(e(4819)),w=e(49246),j=t(e(15854)),f=t(e(42390)),v=t(e(61318)),Y=t(e(72952)),U=t(e(91495));function A(g){var L=_();return function(){var C=(0,o.default)(g),E;if(L){var b=(0,o.default)(this).constructor;E=Reflect.construct(C,arguments,b)}else E=C.apply(this,arguments);return(0,x.default)(this,E)}}function _(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(g){return!1}}var q=function(L){return{color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{marginTop:16,padding:5,background:"#fff",borderRadius:1,boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{position:"absolute",zIndex:2},cover:{position:"fixed",top:0,right:0,bottom:0,left:0},textDense:{marginTop:0,marginBottom:0}}},y=function(g){(0,M.default)(k,g);var L=A(k);function k(C){var E;return(0,s.default)(this,k),E=L.call(this,C),(0,c.default)((0,O.default)(E),"handleClick",function(){E.setState({displayColorPicker:!E.state.displayColorPicker})}),(0,c.default)((0,O.default)(E),"handleClose",function(){E.setState({displayColorPicker:!1})}),(0,c.default)((0,O.default)(E),"handleChange",function(b){E.setState({color:b}),E.props.onChange&&E.props.onChange(k.getColor(b))}),E.state={displayColorPicker:!1,color:E.props.value||E.props.color},E}return(0,m.default)(k,[{key:"render",value:function(){var E=this,b=k.getColor(this.state.color),P={};return this.state.displayColorPicker&&this.props.openAbove&&(P={top:-241}),u.default.createElement("div",{style:Object.assign({},this.props.style||{},{position:"relative"}),className:this.props.className||""},u.default.createElement(v.default,{disabled:this.props.disabled,variant:"standard",id:"name",style:b?{width:"calc(100% - 80px)"}:{width:"calc(100% - 54px)",marginRight:8},label:this.props.name||"color",value:b,margin:"dense",classes:{root:this.props.classes.textDense},onChange:function(p){return E.handleChange(p.target.value)}}),b?u.default.createElement(Y.default,{disabled:this.props.disabled,onClick:function(){return E.handleChange("")},size:"small",className:this.props.classes.delButton,style:b?{}:{opacity:0,cursor:"default"}},u.default.createElement(U.default,null)):null,u.default.createElement("div",{className:"".concat(this.props.classes.swatch).concat(this.props.disabled?" "+this.props.classes.swatchDisabled:""),onClick:function(){return!E.props.disabled&&E.handleClick()}},u.default.createElement("div",{className:this.props.classes.color,style:{background:b}})),this.state.displayColorPicker&&!this.props.disabled?u.default.createElement("div",{className:this.props.classes.popover,style:P},u.default.createElement("div",{className:this.props.classes.cover,onClick:function(){return E.handleClose()}}),u.default.createElement(w.ChromePicker,{color:this.state.color,onChangeComplete:function(p){return E.handleChange(p)}})):null)}}],[{key:"getDerivedStateFromProps",value:function(E,b){var P=k.getColor(E.value||E.color),F=k.getColor(b.color);return P!==F?{color:E.value||E.color}:null}},{key:"getColor",value:function(E,b){return E&&(0,a.default)(E)==="object"?E.rgb?b?"#"+E.rgb.r.toString(16).padStart(2,"0")+E.rgb.g.toString(16).padStart(2,"0")+E.rgb.b.toString(16).padStart(2,"0"):"rgba("+E.rgb.r+","+E.rgb.g+","+E.rgb.b+","+E.rgb.a+")":b?"#"+E.r.toString(16).padStart(2,"0")+E.g.toString(16).padStart(2,"0")+E.b.toString(16).padStart(2,"0"):"rgba("+E.r+","+E.g+","+E.b+","+E.a+")":b?k.rgb2hex(E||""):E||""}},{key:"rgb2hex",value:function(E){var b=E.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);return b&&b.length===4?"#"+parseInt(b[1],10).toString(16).padStart(2,"0")+parseInt(b[2],10).toString(16).padStart(2,"0")+parseInt(b[3],10).toString(16).padStart(2,"0"):E}}]),k}(u.default.Component);y.propTypes={disabled:j.default.bool,value:j.default.string,onChange:j.default.func.isRequired,name:j.default.string,style:j.default.object,className:j.default.string,openAbove:j.default.bool};var T=(0,f.default)(q)(y),D=T;r.default=D},42550:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var s=t(e(63038)),m=U(e(4819)),O=t(e(15854)),M=t(e(23060)),x=t(e(73319)),o=e(94427),c=e(58503),u=t(e(26021)),w=t(e(62976)),j=t(e(79802)),f=t(e(33919)),v=t(e(55289));function Y(y){if(typeof WeakMap!="function")return null;var T=new WeakMap,D=new WeakMap;return(Y=function(L){return L?D:T})(y)}function U(y,T){if(!T&&y&&y.__esModule)return y;if(y===null||a(y)!=="object"&&typeof y!="function")return{default:y};var D=Y(T);if(D&&D.has(y))return D.get(y);var g={},L=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var k in y)if(k!=="default"&&Object.prototype.hasOwnProperty.call(y,k)){var C=L?Object.getOwnPropertyDescriptor(y,k):null;C&&(C.get||C.set)?Object.defineProperty(g,k,C):g[k]=y[k]}return g.default=y,D&&D.set(y,g),g}var A=function(T){return{modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:T.spacing(1),top:T.spacing(1)},languageButtonActive:{color:T.palette.primary.main}}},_=function(T){var D=T.toggleTranslation,g=T.noTranslation,L=T.title,k=T.fullWidth,C=T.help,E=T.maxWidth,b=T.progress,P=T.icon,F=T.applyDisabled,p=T.applyButton,B=T.classes,d=T.open,z=T.onClose,K=T.children,Q=T.titleButtonApply,oe=T.titleButtonClose,De=T.onApply,Te=T.textInput,J=T.defaultValue,le=T.overflowHidden,Re=(0,m.useState)(J),ae=(0,s.default)(Re,2),be=ae[0],Ce=ae[1];(0,m.useEffect)(function(){Ce(J)},[J]);var ke=null;return P&&(ke=P),m.default.createElement(o.Dialog,{open:d,maxWidth:E||"md",fullWidth:!!k,disableEscapeKeyDown:!1,onClose:z,classes:{paper:B.modalDialog}},L&&m.default.createElement(o.DialogTitle,null,P?m.default.createElement(ke,{className:B.titleIcon}):null,L,v.default.getLanguage()!=="en"&&D?m.default.createElement(o.IconButton,{size:"large",className:f.default.clsx(B.languageButton,g&&B.languageButtonActive),onClick:function(){return D()},title:v.default.t("Disable/Enable translation")},m.default.createElement(j.default,null)):null),m.default.createElement(o.DialogContent,{className:(0,M.default)(le?B.overflowHidden:null,B.content),style:{paddingTop:8}},Te&&m.default.createElement(o.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:be,onChange:function(Ke){return Ce(Ke.target.value)}}),K,C?m.default.createElement("div",null,C):null),m.default.createElement(o.DialogActions,null,p&&m.default.createElement(x.default,{startIcon:m.default.createElement(u.default,null),disabled:b||F&&J===be,onClick:function(){return De(Te?be:"")},variant:"contained",color:"primary"},v.default.t(Q)),m.default.createElement(x.default,{color:"grey",onClick:z,disabled:b,variant:"contained",startIcon:m.default.createElement(w.default,null)},v.default.t(oe))))};_.defaultProps={open:!1,onApply:function(){},onClose:function(){},applyButton:!0,applyDisabled:!1,titleButtonClose:"Cancel",titleButtonApply:"Ok",overflowHidden:!1,help:""},_.propTypes={icon:O.default.object,open:O.default.bool,onClose:O.default.func,children:O.default.any,titleButtonClose:O.default.string,titleButtonApply:O.default.string,onApply:O.default.func,fullWidth:O.default.bool,maxWidth:O.default.string,help:O.default.string,noTranslation:O.default.bool,toggleTranslation:O.default.func};var q=(0,c.withStyles)(A)(_);r.default=q},90010:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var s=t(e(67154)),m=t(e(50008)),O=t(e(319)),M=t(e(34575)),x=t(e(93913)),o=t(e(81506)),c=t(e(2205)),u=t(e(78585)),w=t(e(29754)),j=t(e(59713)),f=_e(e(4819)),v=e(58503),Y=t(e(15854)),U=t(e(23167)),A=t(e(23180)),_=t(e(62428)),q=t(e(57585)),y=t(e(72952)),T=t(e(22238)),D=t(e(28020)),g=t(e(89676)),L=t(e(67730)),k=t(e(81602)),C=t(e(41818)),E=t(e(73319)),b=t(e(49521)),P=e(94427),F=t(e(99822)),p=t(e(33919)),B=t(e(93451)),d=_e(e(70043)),z=t(e(22675)),K=t(e(62976)),Q=t(e(29450)),oe=t(e(55374)),De=t(e(9790)),Te=t(e(39323)),J=t(e(41173)),le=t(e(59954)),Re=t(e(43820)),ae=t(e(43760)),be=t(e(7264)),Ce=t(e(84335)),ke=t(e(19110)),qe=t(e(94884)),Ke=t(e(21936)),st=t(e(28364)),H=t(e(91495)),te=t(e(77717)),Z=t(e(94201)),he=t(e(37943)),se=t(e(78444)),ce=t(e(32717)),Ie=t(e(70703));function We(re){if(typeof WeakMap!="function")return null;var ge=new WeakMap,$e=new WeakMap;return(We=function(V){return V?$e:ge})(re)}function _e(re,ge){if(!ge&&re&&re.__esModule)return re;if(re===null||a(re)!=="object"&&typeof re!="function")return{default:re};var $e=We(ge);if($e&&$e.has(re))return $e.get(re);var Ge={},V=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var ne in re)if(ne!=="default"&&Object.prototype.hasOwnProperty.call(re,ne)){var Oe=V?Object.getOwnPropertyDescriptor(re,ne):null;Oe&&(Oe.get||Oe.set)?Object.defineProperty(Ge,ne,Oe):Ge[ne]=re[ne]}return Ge.default=re,$e&&$e.set(re,Ge),Ge}function ct(re){var ge=dt();return function(){var Ge=(0,w.default)(re),V;if(ge){var ne=(0,w.default)(this).constructor;V=Reflect.construct(Ge,arguments,ne)}else V=Ge.apply(this,arguments);return(0,u.default)(this,V)}}function dt(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(re){return!1}}var nt=32,mt=32,It=120,aa=64,ua="Not found",St=function(ge){return{dialog:{height:"calc(100% - ".concat(ge.mixins.toolbar.minHeight,"px)")},root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - ".concat(ge.spacing(2),")"),overflowX:"hidden",overflowY:"auto",padding:ge.spacing(1)},filesDivTable:{height:"calc(100% - ".concat(48+parseInt(ge.spacing(1),10),"px)")},filesDivTile:{height:"calc(100% - ".concat(48*2+parseInt(ge.spacing(1),10),"px)"),display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:"0 0 ".concat(aa,"px")},itemTile:{position:"relative",userSelect:"none",cursor:"pointer",height:It,width:aa,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:4,"&:hover":{background:ge.palette.secondary.light,color:p.default.invertColor(ge.palette.secondary.main,!0)}},itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:{width:"100%",height:It-32-16-8,display:"block",paddingLeft:8,color:ge.palette.secondary.main||"#fbff7d"},itemFolderIconBack:{position:"absolute",top:22,left:18,zIndex:1,color:ge.palette.mode==="dark"?"#FFF":"#000"},itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:It-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:It-32-16-8,display:"block",objectFit:"contain"},itemSelected:{background:ge.palette.primary.main,color:p.default.invertColor(ge.palette.primary.main,!0)},itemTable:{userSelect:"none",cursor:"pointer",height:nt,display:"inline-flex",lineHeight:"".concat(nt,"px"),"&:hover":{background:ge.palette.secondary.light,color:p.default.invertColor(ge.palette.secondary.main,!0)}},itemNameTable:{display:"inline-block",paddingLeft:10,fontSize:"1rem",verticalAlign:"top",flexGrow:1},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:{marginTop:1,marginLeft:ge.spacing(1),display:"inline-block",width:30,height:30,color:ge.palette.secondary.main||"#fbff7d"},itemDownloadButtonTable:{display:"inline-block",width:mt,height:nt,minWidth:mt,verticalAlign:"top",padding:0,"& span":{paddingTop:9},"& svg":{width:14,height:14,fontSize:"1rem"}},itemAclButtonTable:{width:mt,height:nt,minWidth:mt,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:mt,height:nt,minWidth:mt,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:{margin:20,border:"3px dashed grey",borderRadius:30,width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:ge.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"},uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",top:"50%",left:"50%",height:"30%",width:"50%",margin:"-15% 0 0 -25%"},menuButtonExpertActive:{color:"#c00000"},pathDiv:{display:"flex",width:"calc(100% - ".concat(ge.spacing(2),")"),marginLeft:ge.spacing(1),marginRight:ge.spacing(1),textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap"},pathDivInput:{width:"100%"},pathDivBreadcrumb:{paddingTop:3,paddingBottom:2,borderBottom:"solid 1px"},pathDivBreadcrumbDir:{paddingLeft:4,paddingRight:4,paddingBottom:4,cursor:"pointer","&:hover":{background:ge.palette.mode==="dark"?"#333":"#CCC"}},pathDivBreadcrumbSlash:{paddingLeft:4,paddingRight:4,paddingBottom:4,opacity:.7},pathDivBreadcrumbFile:{cursor:"pointer",flexGrow:1},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},"@media screen and (max-width: 500px)":{itemNameTable:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:"end",direction:"rtl"}},specialFolder:{color:ge.palette.mode==="dark"?"#229b0f":"#5dd300"}}},_t="0_userdata.0";function ca(re,ge){return re.folder&&ge.folder?re.name>ge.name?1:re.namege.name?1:re.name10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(function(Oe){if(ne.browseList){var Ae=ne.browseList.shift();if(Ae){var He=Ae.resolve;Ae.resolve=null,Ae.reject=null,Ae.adapter=null,Ae.relPath=null,He(Oe),ne.browseListRunning=!1,ne.browseList.length?V<5?ne.processBrowseList(V+1):setTimeout(function(){return ne.processBrowseList(0)},0):ne.setState({queueLength:0})}else ne.setState({queueLength:0})}}).catch(function(Oe){if(ne.browseList){var Ae=ne.browseList.shift();if(Ae){var He=Ae.reject;Ae.resolve=null,Ae.reject=null,Ae.adapter=null,Ae.relPath=null,He(Oe),ne.browseListRunning=!1,ne.browseList.length?V<5?ne.processBrowseList(V+1):setTimeout(function(){return ne.processBrowseList(0)},0):ne.setState({queueLength:0})}else ne.setState({queueLength:0})}}))}},{key:"browseFolder",value:function(V,ne,Oe,Ae){var He=this;if(typeof ne=="boolean"&&(Ae=ne,ne=null),ne||(ne={},Object.keys(this.state.folders).forEach(function(zt){return ne[zt]=He.state.folders[zt]})),ne[V]&&!Ae)return Oe?Promise.resolve(ne):new Promise(function(zt,Rt){return Promise.all(ne[V].filter(function(jt){return jt.folder}).map(function(jt){return He.browseFolder(jt.id,ne,!0).catch(function(Ot){})})).then(function(){return zt(ne)}).catch(function(jt){return Rt(jt)})});if(!V||V==="/")return this.props.socket.readMetaItems().then(function(zt){var Rt=[],jt=null;He.state.expertMode||(zt=zt.filter(function(ht){return!ht._id.endsWith(".admin")}));var Ot=zt.findIndex(function(ht){return ht._id==="system.meta.uuid"});return Ot!==-1&&zt.splice(Ot,1),He.state.expertMode&&He.setState({allFoldersLoaded:!0,loadFolders:!1}),zt.forEach(function(ht){if(!(He.limitToObjectID&&He.limitToObjectID!==ht._id)){var Kt={id:ht._id,name:ht._id,title:ht.common&&ht.common.name||ht._id,meta:!0,from:ht.from,ts:ht.ts,color:ht.common&&ht.common.color,icon:ht.common&&ht.common.icon,folder:!0,acl:ht.acl,level:0};Kt.id===_t?jt=Kt:Rt.push(Kt)}}),Rt.sort(function(ht,Kt){return ht.id>Kt.id?1:ht.idDate.now()?Oe.deleteItem(V.id):Oe.setState({deleteItem:V.id})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},f.default.createElement(H.default,{fontSize:"small"})):this.state.viewType===Qe&&this.props.allowDelete?f.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]}):null)}},{key:"renderBackFolder",value:function(){var V=this;return f.default.createElement("div",{key:this.state.currentDir,id:this.state.currentDir,onClick:function(Oe){return V.changeFolder(Oe)},title:this.props.t("ra_Back to %s",Bt(this.state.currentDir)),className:p.default.clsx("browserItem",this.props.classes["item".concat(this.state.viewType)],this.props.classes["itemFolder".concat(this.state.viewType)])},f.default.createElement(he.default,{className:this.props.classes["itemFolderIcon".concat(this.state.viewType)]}),f.default.createElement(st.default,{className:this.props.classes.itemFolderIconBack}),f.default.createElement("div",{className:p.default.clsx(this.props.classes["itemName".concat(this.state.viewType)],this.props.classes["itemNameFolder".concat(this.state.viewType)])},".."))}},{key:"formatSize",value:function(V){return f.default.createElement("div",{className:this.props.classes["itemSize".concat(this.state.viewType)]},V||V===0?p.default.formatBytes(V):"")}},{key:"formatAcl",value:function(V){var ne=this,Oe=V&&(V.permissions||V.file);return Oe&&(Oe=Oe.toString(16).padStart(3,"0")),f.default.createElement("div",{className:this.props.classes["itemAccess"+this.state.viewType]},f.default.createElement(y.default,{size:"large",onClick:function(){return ne.setState({modalEditOfAccess:!0})},className:this.props.classes["itemAclButton"+this.state.viewType]},Oe||"---"))}},{key:"getFileIcon",value:function(V){switch(V){case"json":return f.default.createElement(Q.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"css":return f.default.createElement(oe.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"js":case"ts":return f.default.createElement(J.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"html":case"md":return f.default.createElement(De.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return f.default.createElement(ae.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});default:return f.default.createElement(le.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]})}}},{key:"renderFile",value:function(V){var ne=this,Oe=this.state.viewType===Qe?V.level*this.levelPadding:0,Ae=p.default.getFileExtension(V.name);return f.default.createElement("div",{key:V.id,id:V.id,onDoubleClick:function(){ne.props.onSelect?(!ne.props.filterFiles||ne.props.filterFiles.includes(V.ext))&&(!ne.props.filterByType||d.EXTENSIONS[ne.props.filterByType].includes(V.ext))&&ne.props.onSelect(V.id,!0,!!ne.state.folders[V.id]):ne.setState({viewer:ne.imagePrefix+V.id})},onClick:function(rt){return ne.select(V.id,rt)},style:this.state.viewType===Qe?{marginLeft:Oe,width:"calc(100% - ".concat(Oe,"px)")}:{},className:p.default.clsx("browserItem",this.props.classes["item".concat(this.state.viewType)],this.props.classes["itemFile".concat(this.state.viewType)],this.state.selected===V.id&&this.props.classes.itemSelected)},d.EXTENSIONS.images.includes(Ae)?this.state.fileErrors.includes(V.id)?f.default.createElement(ce.default,{className:p.default.clsx(this.props.classes["itemImage"+this.state.viewType],this.getClassBackgroundImage())}):f.default.createElement("img",{onError:function(rt){rt.target.onerror=null;var yt=(0,O.default)(ne.state.fileErrors);yt.includes(V.id)||(yt.push(V.id),ne.setState({fileErrors:yt}))},className:p.default.clsx(this.props.classes["itemImage"+this.state.viewType],this.getClassBackgroundImage()),src:this.imagePrefix+V.id,alt:V.name}):this.getFileIcon(Ae),f.default.createElement("div",{className:this.props.classes["itemName".concat(this.state.viewType)]},V.name),f.default.createElement(P.Hidden,{smDown:!0},this.formatSize(V.size)),f.default.createElement(P.Hidden,{smDown:!0},this.state.viewType===Qe?this.formatAcl(V.acl):null),f.default.createElement(P.Hidden,{smDown:!0},this.state.viewType===Qe&&this.props.expertMode&&$e.getEditFile(Ae)?f.default.createElement(y.default,{"aria-label":"edit",onClick:function(rt){rt.stopPropagation(),ne.props.onSelect?(!ne.props.filterFiles||ne.props.filterFiles.includes(V.ext))&&(!ne.props.filterByType||d.EXTENSIONS[ne.props.filterByType].includes(V.ext))&&ne.props.onSelect(V.id,!0,!!ne.state.folders[V.id]):ne.setState({viewer:ne.imagePrefix+V.id,formatEditFile:Ae})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},f.default.createElement(Te.default,{fontSize:"small"})):f.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]})),this.state.viewType===Qe&&this.props.allowDownload?f.default.createElement(y.default,{download:!0,href:this.imagePrefix+V.id,className:this.props.classes["itemDownloadButton".concat(this.state.viewType)],onClick:function(rt){return rt.stopPropagation()},size:"large"},f.default.createElement(be.default,null)):null,this.state.viewType===Qe&&this.props.allowDelete&&V.id!=="vis.0/"&&V.id!==_t?f.default.createElement(y.default,{"aria-label":"delete",onClick:function(rt){rt.stopPropagation(),ne.suppressDeleteConfirm>Date.now()?ne.deleteItem(V.id):ne.setState({deleteItem:V.id})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},f.default.createElement(H.default,{fontSize:"small"})):this.state.viewType===Qe&&this.props.allowDelete?f.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]}):null)}},{key:"renderItems",value:function(V){var ne=this;if(this.state.folders&&this.state.folders[V]){if(this.state.viewType===Xt){var Oe=[];return V&&V!=="/"&&Oe.push(this.renderBackFolder()),this.state.folders[V].forEach(function(Ae){Ae.folder?Oe.push(ne.renderFolder(Ae)):(!ne.props.filterFiles||ne.props.filterFiles.includes(Ae.ext))&&(!ne.props.filterByType||d.EXTENSIONS[ne.props.filterByType].includes(Ae.ext))&&Oe.push(ne.renderFile(Ae))}),Oe}return this.state.folders[V].map(function(Ae){var He=[];if(Ae.folder){var rt=ne.state.expanded.includes(Ae.id);He.push(ne.renderFolder(Ae,rt)),ne.state.folders[Ae.id]&&rt&&He.push(ne.renderItems(Ae.id))}else if((!ne.props.filterFiles||ne.props.filterFiles.includes(Ae.ext))&&(!ne.props.filterByType||d.EXTENSIONS[ne.props.filterByType].includes(Ae.ext)))He.push(ne.renderFile(Ae));else return null;return He})}return f.default.createElement("div",{style:{position:"relative"}},f.default.createElement(_.default,{key:V,color:"secondary",size:24}),f.default.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}},{key:"renderToolbar",value:function(){var V=this;return f.default.createElement(q.default,{key:"toolbar",variant:"dense"},this.props.showExpertButton?f.default.createElement(y.default,{edge:"start",title:this.props.t("ra_Toggle expert mode"),className:p.default.clsx(this.props.classes.menuButton,this.state.expertMode&&this.props.classes.menuButtonExpertActive),"aria-label":"expert mode",onClick:function(){return V.setState({expertMode:!V.state.expertMode})},size:"large"},f.default.createElement(Z.default,null)):null,this.props.showViewTypeButton?f.default.createElement(y.default,{edge:"start",title:this.props.t("ra_Toggle view mode"),className:this.props.classes.menuButton,"aria-label":"view mode",onClick:function(){var Oe=V.state.viewType===Qe?Xt:Qe;(window._localStorage||window.localStorage).setItem("files.viewType",Oe);var Ae=V.state.selected;wt(Ae)&&(Ae=Bt(Ae)),V.setState({viewType:Oe,currentDir:Ae},function(){V.state.viewType===Qe&&V.scrollToSelected()})},size:"large"},this.state.viewType!==Qe?f.default.createElement(qe.default,null):f.default.createElement(Ke.default,null)):null,f.default.createElement(y.default,{edge:"start",title:this.props.t("ra_Hide empty folders"),className:this.props.classes.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:function(){(window._localStorage||window.localStorage).setItem("file.empty",!V.state.filterEmpty),V.setState({filterEmpty:!V.state.filterEmpty})},size:"large"},f.default.createElement(ke.default,null)),f.default.createElement(y.default,{edge:"start",title:this.props.t("ra_Reload files"),className:this.props.classes.menuButton,color:"inherit","aria-label":"reload files",onClick:function(){return V.setState({folders:{}},function(){return V.loadFolders()})},size:"large"},f.default.createElement(z.default,null)),this.props.allowCreateFolder?f.default.createElement(y.default,{edge:"start",disabled:!this.state.selected||!this.state.folders[this.state.selected]||this.limitToPath&&!this.state.selected.startsWith(this.limitToPath+"/")&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),className:this.props.classes.menuButton,color:"inherit","aria-label":"add folder",onClick:function(){return V.setState({addFolder:!0})},size:"large"},f.default.createElement(Ce.default,null)):null,this.props.allowUpload?f.default.createElement(y.default,{edge:"start",disabled:!this.state.selected||!this.state.folders[this.state.selected]||this.limitToPath&&!this.state.selected.startsWith(this.limitToPath+"/")&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),className:this.props.classes.menuButton,color:"inherit","aria-label":"upload file",onClick:function(){return V.setState({uploadFile:!0})},size:"large"},f.default.createElement(Re.default,null)):null,f.default.createElement(P.Tooltip,{title:this.props.t("ra_Background image")},f.default.createElement(y.default,{color:"inherit",edge:"start",className:this.props.classes.menuButton,onClick:this.setStateBackgroundImage,size:"large"},f.default.createElement(te.default,null))))}},{key:"findItem",value:function(V,ne){if(ne=ne||this.state.folders,!ne)return null;var Oe=V.split("/");Oe.pop();var Ae=Oe.join("/")||"/";return ne[Ae]?ne[Ae].find(function(He){return He.id===V}):null}},{key:"renderInputDialog",value:function(){var V=this;if(this.state.addFolder){var ne=this.findFirstFolder(this.state.selected);return ne?f.default.createElement(B.default,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:function(Ae){return V.state.folders[ne].find(function(He){return He.name===Ae})?"":V.props.t("ra_Duplicate name")},onClose:function(Ae){if(Ae){var He={};Object.keys(V.state.folders).forEach(function(gt){return He[gt]=V.state.folders[gt]});var rt=V.findItem(ne),yt="".concat(ne,"/").concat(Ae);He[ne].push({id:yt,level:rt.level+1,name:Ae,folder:!0,temp:!0}),He[ne].sort(ca),He[yt]=[];var ft=(0,O.default)(V.state.expanded);ft.includes(ne)||(ft.push(ne),ft.sort()),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(ft)),V.setState({addFolder:!1,folders:He,expanded:ft},function(){return V.select(yt)})}else V.setState({addFolder:!1})},replace:function(Ae){return Ae.replace(/[^-_\w\d]/,"_")}}):window.alert(this.props.t("ra_Invalid parent folder!"))}return null}},{key:"componentDidUpdate",value:function(){var V=this;this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(function(){V.setOpacityTimer=null;for(var ne=window.document.getElementsByClassName("browserItem"),Oe=0;Oe=1){var rt=V.split("/"),yt=rt.shift();ne.props.socket.deleteFolder(yt,rt.join("/")).then(function(){var ft=JSON.parse(JSON.stringify(ne.state.folders));delete ft[Oe.id];var gt=Bt(Oe.id),zt=ft[gt];if(zt){var Rt=zt.indexOf(zt.find(function(jt){return jt.id===Oe.id}));Rt!==-1&&zt.splice(Rt,1),ne.select(gt,function(){return ne.setState({folders:ft})})}})}});var Ae=V.split("/"),He=Ae.shift();return Ae.length?this.props.socket.deleteFile(He,Ae.join("/")).catch(function(rt){return window.alert("Cannot delete file: ".concat(rt))}):Promise.resolve()}},{key:"deleteItem",value:function(V){var ne=this;V=V||this.state.deleteItem,this.setState({deleteItem:""},function(){return ne.deleteRecursive(V).then(function(){var Oe={},Ae=ne.state.expanded.indexOf(V);if(Ae!==-1){var He=(0,O.default)(ne.state.expanded);He.splice(Ae,1),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(He)),Oe.expanded=He}if(ne.supportSubscribes)ne.setState(Oe);else{var rt=ne.findFirstFolder(V),yt={};Object.keys(ne.state.folders).forEach(function(ft){ft!==rt&&!ft.startsWith(rt+"/")&&(yt[ft]=ne.state.folders[ft])}),Oe.folders=yt,ne.setState(Oe,function(){return setTimeout(function(){return ne.browseFolders((0,O.default)(ne.state.expanded),yt).then(function(ft){return ne.setState({folders:ft})})},200)})}})})}},{key:"renderDeleteDialog",value:function(){var V=this;return this.state.deleteItem?f.default.createElement(D.default,{key:"deleteDialog",open:!0,onClose:function(){return V.setState({deleteItem:""})},"aria-labelledby":"form-dialog-title"},f.default.createElement(g.default,{id:"form-dialog-title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),f.default.createElement(L.default,null,f.default.createElement(k.default,null,this.props.t("ra_Are you sure?"))),f.default.createElement(C.default,null,f.default.createElement(E.default,{color:"grey",variant:"contained",onClick:function(){V.suppressDeleteConfirm=Date.now()+6e4*5,V.deleteItem()}},this.props.t("ra_Delete (no confirm for 5 mins)")),f.default.createElement(E.default,{variant:"contained",onClick:function(){return V.deleteItem()},color:"primary",autoFocus:!0},this.props.t("ra_Delete")),f.default.createElement(E.default,{variant:"contained",onClick:function(){return V.setState({deleteItem:""})},color:"grey"},this.props.t("ra_Cancel")))):!1}},{key:"renderViewDialog",value:function(){var V=this;return this.state.viewer?f.default.createElement(d.default,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeName:this.props.themeName,setStateBackgroundImage:this.setStateBackgroundImage,getClassBackgroundImage:this.getClassBackgroundImage,t:this.props.t,socket:this.props.socket,lang:this.props.lang,expertMode:this.state.expertMode,onClose:function(){return V.setState({viewer:"",formatEditFile:""})}}):null}},{key:"renderError",value:function(){var V=this;return this.state.errorText?f.default.createElement(F.default,{key:"errorDialog",text:this.state.errorText,onClose:function(){return V.setState({errorText:""})}}):null}},{key:"updateItemsAcl",value:function(V){var ne=this,Oe=JSON.parse(JSON.stringify(this.state.folders)),Ae;V.forEach(function(He){var rt=ne.findItem(He.id,Oe);rt&&JSON.stringify(rt.acl)!==JSON.stringify(He.acl)&&(rt.acl=He.acl,Ae=!0)}),Ae&&this.setState({folders:Oe})}},{key:"changeToPath",value:function(){var V=this;setTimeout(function(){if(V.state.path!==V.state.selected&&(!V.lastSelect||Date.now()-V.lastSelect>100)){var ne=V.state.path;wt(V.state.path)&&(ne=Bt(V.state.path)),new Promise(function(Oe){return V.state.folders[ne]?Oe(!0):V.browseFolder(ne).then(function(Ae){return V.setState({folders:Ae},function(){return Oe(!0)})}).catch(function(Ae){return V.setState({errorText:Ae===ua?V.props.t('ra_Cannot find "%s"',ne):V.props.t('ra_Cannot read "%s"',ne)})})}).then(function(Oe){return Oe&&V.setState({selected:V.state.path,currentDir:ne,pathFocus:!1})})}else(!V.lastSelect||Date.now()-V.lastSelect>100)&&V.setState({pathFocus:!1})},100)}},{key:"renderBreadcrumb",value:function(){var V=this,ne=this.state.selected.startsWith("/")?this.state.selected.split("/"):"/".concat(this.state.selected).split("/"),Oe=[];return ne.map(function(Ae,He){Ae&&Oe.push(Ae);var rt=Oe.join("/");return He")]:f.default.createElement("div",{key:"".concat(V.state.selected,"_").concat(He),className:V.props.classes.pathDivBreadcrumbFile,onClick:function(){return V.setState({pathFocus:!0})}},Ae)})}},{key:"renderPath",value:function(){var V=this;return f.default.createElement("div",{key:"path",className:p.default.clsx(this.props.classes.pathDiv,!this.state.pathFocus&&this.props.classes.pathDivBreadcrumb)},this.state.pathFocus?f.default.createElement(b.default,{value:this.state.path,onKeyDown:function(Oe){return Oe.keyCode===13&&V.changeToPath()},onBlur:function(){return V.changeToPath()},onChange:function(Oe){return V.setState({path:Oe.target.value})},className:this.props.classes.pathDivInput}):this.renderBreadcrumb())}},{key:"render",value:function(){var V=this;return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(function(){V.setState({loadAllFolders:!1,folders:{}},function(){V.foldersLoading=!1,V.loadFolders()})},300)),f.default.createElement("div",{style:this.props.style,className:p.default.clsx(this.props.classes.root,this.props.className)},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===Xt?this.renderPath():null,f.default.createElement("div",{className:p.default.clsx(this.props.classes.filesDiv,this.props.classes["filesDiv".concat(this.state.viewType)])},this.state.viewType===Qe?this.renderItems("/"):this.renderItems(this.state.currentDir||"/")),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData),this.renderError())):f.default.createElement(A.default,null)}}],[{key:"getDerivedStateFromProps",value:function(V,ne){return V.expertMode!==void 0&&V.expertMode!==ne.expertMode?{expertMode:V.expertMode,loadAllFolders:!0}:null}},{key:"getEditFile",value:function(V){switch(V){case"json":case"js":case"html":case"txt":return!0;default:return!1}}}]),$e}(f.Component);Qt.defaultProps={modalEditOfAccessControl:function(){}},Qt.propTypes={style:Y.default.object,className:Y.default.string,t:Y.default.func.isRequired,lang:Y.default.string.isRequired,socket:Y.default.object.isRequired,ready:Y.default.bool,expertMode:Y.default.bool,showToolbar:Y.default.bool,allowUpload:Y.default.bool,allowDownload:Y.default.bool,allowCreateFolder:Y.default.bool,allowDelete:Y.default.bool,allowView:Y.default.bool,imagePrefix:Y.default.string,showExpertButton:Y.default.bool,viewType:Y.default.string,showViewTypeButton:Y.default.bool,selected:Y.default.string,tileView:Y.default.bool,filterFiles:Y.default.array,filterByType:Y.default.string,onSelect:Y.default.func,modalEditOfAccessControl:Y.default.func};var pa=(0,Ie.default)()((0,v.withStyles)(St)(Qt)),kt=pa;r.default=kt},70043:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=r.EXTENSIONS=void 0;var s=t(e(34575)),m=t(e(93913)),O=t(e(81506)),M=t(e(2205)),x=t(e(78585)),o=t(e(29754)),c=t(e(59713)),u=b(e(4819)),w=e(58503),j=t(e(15854)),f=t(e(61318)),v=t(e(73319)),Y=t(e(28020)),U=t(e(41818)),A=t(e(67730)),_=t(e(89676)),q=e(94427),y=t(e(32717)),T=t(e(70703)),D=t(e(33919)),g=e(42158),L=t(e(77717)),k=t(e(62976)),C=t(e(28027));function E(oe){if(typeof WeakMap!="function")return null;var De=new WeakMap,Te=new WeakMap;return(E=function(le){return le?Te:De})(oe)}function b(oe,De){if(!De&&oe&&oe.__esModule)return oe;if(oe===null||a(oe)!=="object"&&typeof oe!="function")return{default:oe};var Te=E(De);if(Te&&Te.has(oe))return Te.get(oe);var J={},le=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Re in oe)if(Re!=="default"&&Object.prototype.hasOwnProperty.call(oe,Re)){var ae=le?Object.getOwnPropertyDescriptor(oe,Re):null;ae&&(ae.get||ae.set)?Object.defineProperty(J,Re,ae):J[Re]=oe[Re]}return J.default=oe,Te&&Te.set(oe,J),J}function P(oe){var De=F();return function(){var J=(0,o.default)(oe),le;if(De){var Re=(0,o.default)(this).constructor;le=Reflect.construct(J,arguments,Re)}else le=J.apply(this,arguments);return(0,x.default)(this,le)}}function F(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(oe){return!1}}var p=function(De){return{dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}}},B={images:["png","jpg","svg","jpeg","bmp"],code:["js","json","md"],txt:["log","txt","html","css","xml"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};r.EXTENSIONS=B;function d(oe){for(var De="",Te=new Uint8Array(oe),J=Te.byteLength,le=0;le0&&J.setState({focusedChip:Re-1});break;case B.RIGHT_ARROW:Re!=null&&Re=0||J.props.newChipKeys.indexOf(le.key)>=0)&&J._keyPressed?J.clearInput():J.updateInput(le.target.value),J.props.onKeyUp&&J.props.onKeyUp(le)}),(0,w.default)((0,x.default)(J),"handleKeyPress",function(le){J._keyPressed=!0,J.props.onKeyPress&&J.props.onKeyPress(le)}),(0,w.default)((0,x.default)(J),"handleUpdateInput",function(le){J.props.inputValue==null&&J.updateInput(le.target.value),J.props.onUpdateInput&&J.props.onUpdateInput(le)}),(0,w.default)((0,x.default)(J),"setActualInputRef",function(le){J.actualInput=le,J.props.inputRef&&J.props.inputRef(le)}),Te.defaultValue&&(J.state.chips=Te.defaultValue),J.labelRef=j.default.createRef(),J.input=j.default.createRef(),J}return(0,M.default)(De,[{key:"componentDidMount",value:function(){this.props.variant==="outlined"&&(this.labelNode=f.default.findDOMNode(this.labelRef.current),this.forceUpdate())}},{key:"componentWillUnmount",value:function(){clearTimeout(this.inputBlurTimeout)}},{key:"blur",value:function(){this.input&&this.actualInput.blur()}},{key:"handleAddChip",value:function(J,le){var Re=this;if(this.props.onBeforeAdd&&!this.props.onBeforeAdd(J))return this._preventChipCreation=!0,le&&le.clearInputOnFail&&this.clearInput(),!1;this.clearInput();var ae=this.props.value||this.state.chips;if(this.props.dataSourceConfig){if(typeof J=="string"){var be;J=(be={},(0,w.default)(be,this.props.dataSourceConfig.text,J),(0,w.default)(be,this.props.dataSourceConfig.value,J),be)}return(this.props.allowDuplicates||!ae.some(function(Ce){return Ce[Re.props.dataSourceConfig.value]===J[Re.props.dataSourceConfig.value]}))&&(this.props.value&&this.props.onAdd?this.props.onAdd(J):this.updateChips([].concat((0,m.default)(this.state.chips),[J]))),!0}return J.trim().length>0?((this.props.allowDuplicates||!ae.includes(J))&&(this.props.value&&this.props.onAdd?this.props.onAdd(J):this.updateChips([].concat((0,m.default)(this.state.chips),[J]))),!0):!1}},{key:"handleDeleteChip",value:function(J,le){if(this.props.value)this.props.onDelete&&this.props.onDelete(J,le);else{var Re=this.state.chips.slice(),ae=Re.splice(le,1);if(ae){var be=this.state.focusedChip;this.state.focusedChip===le?be=null:this.state.focusedChip>le&&(be=this.state.focusedChip-1),this.updateChips(Re,{focusedChip:be})}}}},{key:"updateChips",value:function(J){var le=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.setState(E({chips:J,chipsUpdated:!0},le)),this.props.onChange&&this.props.onChange(J)}},{key:"clearInput",value:function(){this.updateInput("")}},{key:"updateInput",value:function(J){this.setState({inputValue:J})}},{key:"render",value:function(){var J=this,le=this.props,Re=le.allowDuplicates,ae=le.alwaysShowPlaceholder,be=le.blurBehavior,Ce=le.children,ke=le.chipRenderer,qe=ke===void 0?K:ke,Ke=le.classes,st=le.className,H=le.clearInputValueOnChange,te=le.dataSource,Z=le.dataSourceConfig,he=le.defaultValue,se=le.delayBeforeAdd,ce=le.disabled,Ie=le.disableUnderline,We=le.error,_e=le.filter,ct=le.FormHelperTextProps,dt=le.fullWidth,nt=le.fullWidthInput,mt=le.helperText,It=le.id,aa=le.InputProps,ua=aa===void 0?{}:aa,St=le.inputRef,_t=le.InputLabelProps,ca=_t===void 0?{}:_t,Bt=le.inputValue,wt=le.label,Qe=le.newChipKeyCodes,Xt=le.newChipKeys,Qt=le.onBeforeAdd,pa=le.onAdd,kt=le.onBlur,re=le.onDelete,ge=le.onChange,$e=le.onFocus,Ge=le.onKeyDown,V=le.onKeyPress,ne=le.onKeyUp,Oe=le.onUpdateInput,Ae=le.placeholder,He=le.readOnly,rt=le.required,yt=le.rootRef,ft=le.value,gt=le.variant,zt=(0,s.default)(le,k),Rt=ft||this.state.chips||[],jt=Bt!=null?Bt:this.state.inputValue,Ot=(this.props.value||jt).length||jt.length,ht=ca.shrink!=null?ca.shrink:wt!=null&&(Ot||this.state.isFocused||Rt.length),Kt=Rt.map(function(Ma,La){var cn=Z?Ma[Z.value]:Ma;return qe({value:cn,text:Z?Ma[Z.text]:Ma,chip:Ma,isDisabled:!!ce,isReadOnly:He,isFocused:J.state.focusedChip===La,handleClick:function(){return J.setState({focusedChip:La})},handleDelete:function(){return J.handleDeleteChip(Ma,La)},className:Ke.chip},La)}),xa={};gt==="outlined"&&(xa.notched=ht,xa.labelWidth=ht&&this.labelNode&&this.labelNode.offsetWidth||0),gt!=="standard"?xa.startAdornment=j.default.createElement(j.default.Fragment,null,Kt):ua.disableUnderline=!0;var Na=F[gt];return j.default.createElement(D.default,(0,a.default)({ref:yt,fullWidth:dt,className:L.default.clsx(st,Ke.root,zt.margin==="dense"&&Ke.marginDense),error:We,required:Rt.length>0?void 0:rt,onClick:this.focus,disabled:ce,variant:gt},zt),wt&&j.default.createElement(_.default,(0,a.default)({htmlFor:It,classes:{root:L.default.clsx(Ke[gt],Ke.label),shrink:Ke.labelShrink},shrink:ht,focused:this.state.isFocused,variant:gt,ref:this.labelRef,required:rt},ca),wt),j.default.createElement("div",{className:L.default.clsx(Ke[gt],Ke.chipContainer,this.state.isFocused&&Ke.focused,!Ie&>==="standard"&&Ke.underline,ce&&Ke.disabled,wt&&Ke.labeled,We&&Ke.error)},gt==="standard"&&Kt,j.default.createElement(Na,(0,a.default)({ref:this.input,classes:{input:L.default.clsx(Ke.input,Ke[gt]),root:L.default.clsx(Ke.inputRoot,Ke[gt])},id:It,value:jt,onChange:this.handleUpdateInput,onKeyDown:this.handleKeyDown,onKeyPress:this.handleKeyPress,onKeyUp:this.handleKeyUp,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,inputRef:this.setActualInputRef,disabled:ce,fullWidth:nt,placeholder:!Ot&&(ht||wt==null)||ae?Ae:null,readOnly:He},ua,xa))),mt&&j.default.createElement(g.default,(0,a.default)({},ct,{className:ct?L.default.clsx(ct.className,Ke.helperText):Ke.helperText}),mt))}}],[{key:"getDerivedStateFromProps",value:function(J,le){var Re=null;return J.value&&J.value.length!==le.prevPropsValue.length&&(Re={prevPropsValue:J.value},J.clearInputValueOnChange&&(Re.inputValue="")),J.clearInputValueOnChange&&J.value&&J.value.length!==le.prevPropsValue.length&&(Re={prevPropsValue:J.value,inputValue:""}),J.disabled&&(Re=E(E({},Re),{},{focusedChip:null})),!le.chipsUpdated&&J.defaultValue&&(Re=E(E({},Re),{},{chips:J.defaultValue})),Re}}]),De}(j.default.Component);d.propTypes={allowDuplicates:v.default.bool,alwaysShowPlaceholder:v.default.bool,blurBehavior:v.default.oneOf(["clear","add","add-or-clear","ignore"]),chipRenderer:v.default.func,clearInputValueOnChange:v.default.bool,dataSource:v.default.array,dataSourceConfig:v.default.shape({text:v.default.string.isRequired,value:v.default.string.isRequired}),defaultValue:v.default.array,delayBeforeAdd:v.default.bool,disabled:v.default.bool,disableUnderline:v.default.bool,FormHelperTextProps:v.default.object,fullWidth:v.default.bool,fullWidthInput:v.default.bool,helperText:v.default.node,InputLabelProps:v.default.object,InputProps:v.default.object,inputRef:v.default.func,inputValue:v.default.string,label:v.default.node,newChipKeyCodes:v.default.arrayOf(v.default.number),newChipKeys:v.default.arrayOf(v.default.string),onAdd:v.default.func,onBeforeAdd:v.default.func,onChange:v.default.func,onDelete:v.default.func,onUpdateInput:v.default.func,placeholder:v.default.string,readOnly:v.default.bool,value:v.default.array,variant:v.default.oneOf(["outlined","standard","filled"])},d.defaultProps={allowDuplicates:!1,blurBehavior:"clear",clearInputValueOnChange:!1,delayBeforeAdd:!1,disableUnderline:!1,newChipKeyCodes:[13],newChipKeys:["Enter"],variant:"standard"};var z=(0,y.default)(p,{name:"WAMuiChipInput"})(d);r.default=z;var K=function(oe,De){var Te=oe.value,J=oe.text,le=oe.isFocused,Re=oe.isDisabled,ae=oe.isReadOnly,be=oe.handleClick,Ce=oe.handleDelete,ke=oe.className;return j.default.createElement(q.default,{key:De,className:ke,style:{pointerEvents:Re||ae?"none":void 0,backgroundColor:le?T.default[300]:void 0},onClick:be,onDelete:Ce,label:J})};r.defaultChipRenderer=K},88327:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(92636)),j=t(e(55289)),f=t(e(33919));function v(q){var y=Y();return function(){var D=(0,x.default)(q),g;if(y){var L=(0,x.default)(this).constructor;g=Reflect.construct(D,arguments,L)}else g=D.apply(this,arguments);return(0,M.default)(this,g)}}function Y(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(q){return!1}}var U=function(y){return{root:{width:"100%"},notAlive:{color:"#a30000"}}},A=function(q){(0,O.default)(T,q);var y=v(T);function T(){return(0,a.default)(this,T),y.apply(this,arguments)}return(0,s.default)(T,[{key:"componentDidMount",value:function(){var g=this;(0,m.default)((0,x.default)(T.prototype),"componentDidMount",this).call(this);var L=this.getInstance();this.props.socket.getState(L+".alive").then(function(k){return g.setState({alive:!!(k&&k.val),instance:L})})}},{key:"getInstance",value:function(){var g=this.props.schema.instance||this.props.adapterName+"."+this.props.instance;return g.includes("${")&&(g=this.getPattern(g)),g&&!g.startsWith("system.adapter.")&&(g="system.adapter."+g),g}},{key:"renderItem",value:function(){var g=this;if(this.getInstance()!==this.state.instance&&setTimeout(function(){var k=g.getInstance();k?g.props.socket.getState(k+".alive").then(function(C){return g.setState({alive:!!(C&&C.val),instance:k})}):g.setState({alive:null,instance:k})},200),this.state.alive!==!1&&this.state.alive!==!0)return null;var L=this.state.instance.replace(/^system.adapter./,"");return o.default.createElement("div",{className:f.default.clsx(this.props.classes.root,!this.state.alive&&this.props.classes.notAlive)},this.state.alive?this.props.schema.textAlive!==void 0?this.props.schema.textAlive?j.default.t(this.props.schema.textAlive,L):"":j.default.t("ra_Instance %s is alive",L):this.props.schema.textNotAlive!==void 0?this.props.schema.textNotAlive?j.default.t(this.props.schema.textNotAlive,L):"":j.default.t("ra_Instance %s is not alive",L))}}]),T}(w.default);A.propTypes={socket:c.default.object.isRequired,data:c.default.object.isRequired,schema:c.default.object,adapterName:c.default.string,instance:c.default.number};var _=(0,u.withStyles)(U)(A);r.default=_},16226:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(67154)),s=t(e(50008)),m=t(e(319)),O=t(e(34575)),M=t(e(93913)),x=t(e(16525)),o=t(e(2205)),c=t(e(78585)),u=t(e(29754)),w=t(e(4819)),j=t(e(15854)),f=e(58503),v=e(94427),Y=t(e(55289)),U=t(e(92636));function A(D){var g=_();return function(){var k=(0,u.default)(D),C;if(g){var E=(0,u.default)(this).constructor;C=Reflect.construct(k,arguments,E)}else C=k.apply(this,arguments);return(0,c.default)(this,C)}}function _(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(D){return!1}}var q=function(g){return{fullWidth:{width:"100%"}}},y=function(D){(0,o.default)(L,D);var g=A(L);function L(){return(0,O.default)(this,L),g.apply(this,arguments)}return(0,M.default)(L,[{key:"componentDidMount",value:function(){(0,x.default)((0,u.default)(L.prototype),"componentDidMount",this).call(this);var C=U.default.getValue(this.props.data,this.props.attr),E=this.props.schema.options.map(function(b){return typeof b=="string"?{label:b,value:b}:JSON.parse(JSON.stringify(b))});Array.isArray(C)?(E.unshift({label:Y.default.t(U.default.DIFFERENT_LABEL),value:U.default.DIFFERENT_VALUE}),this.setState({value:U.default.DIFFERENT_VALUE,selectOptions:E})):this.setState({value:C,selectOptions:E})}},{key:"renderItem",value:function(C,E,b){var P=this;if(!this.state.selectOptions)return null;var F,p=JSON.parse(JSON.stringify(this.state.selectOptions)),B=Array.isArray(this.state.value)||this.state.value===U.default.DIFFERENT_VALUE;return B?((0,m.default)(this.state.value).filter(function(d){return!p.find(function(z){return z.value===d})}).forEach(function(d){return p.push({label:d.toString(),value:d})}),F={label:Y.default.t(U.default.DIFFERENT_LABEL),value:U.default.DIFFERENT_VALUE},p.unshift(F)):(F=this.state.value!==null&&this.state.value!==void 0&&p.find(function(d){return d.value==P.state.value}),this.state.value!==null&&this.state.value!==void 0&&!F&&(F={value:this.state.value,label:this.state.value},p.push(F))),w.default.createElement(v.Autocomplete,{className:this.props.classes.indeterminate,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,value:F,onInputChange:function(z){if(z){var K=z.target.value;K!==P.state.value&&P.setState({value:K},function(){return P.onChange(P.props.attr,K)})}},onChange:function(z,K){var Q=(0,s.default)(K)==="object"?K?K.value:"":K;Q!==P.state.value&&P.setState({value:Q},function(){return P.onChange(P.props.attr,Q)})},options:p,getOptionLabel:function(z){return z&&z.label||""},renderInput:function(z){return w.default.createElement(v.TextField,(0,a.default)({variant:"standard"},z,{error:!!C,placeholder:P.getText(P.props.schema.placeholder),label:P.getText(P.props.schema.label),helperText:P.renderHelp(P.props.schema.help,P.props.schema.helpLink,P.props.schema.noTranslation),disabled:!!E}))}})}}]),L}(U.default);y.propTypes={socket:j.default.object.isRequired,themeType:j.default.string,themeName:j.default.string,style:j.default.object,className:j.default.string,data:j.default.object.isRequired,schema:j.default.object,onError:j.default.func,onChange:j.default.func};var T=(0,f.withStyles)(q)(y);r.default=T},35815:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(67154)),s=t(e(50008)),m=t(e(319)),O=t(e(34575)),M=t(e(93913)),x=t(e(16525)),o=t(e(2205)),c=t(e(78585)),u=t(e(29754)),w=t(e(4819)),j=t(e(15854)),f=e(58503),v=e(94427),Y=t(e(55289)),U=t(e(92636));function A(D){var g=_();return function(){var k=(0,u.default)(D),C;if(g){var E=(0,u.default)(this).constructor;C=Reflect.construct(k,arguments,E)}else C=k.apply(this,arguments);return(0,c.default)(this,C)}}function _(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(D){return!1}}var q=function(g){return{fullWidth:{width:"100%"}}},y=function(D){(0,o.default)(L,D);var g=A(L);function L(){return(0,O.default)(this,L),g.apply(this,arguments)}return(0,M.default)(L,[{key:"componentDidMount",value:function(){(0,x.default)((0,u.default)(L.prototype),"componentDidMount",this).call(this),this.askInstance()}},{key:"askInstance",value:function(){var C=this,E=U.default.getValue(this.props.data,this.props.attr),b=this.props.schema.options?this.props.schema.options.map(function(F){return typeof F=="string"?{label:F,value:F}:JSON.parse(JSON.stringify(F))}):[];if(this.props.alive){var P=this.props.schema.data;if(P===void 0&&this.props.schema.jsonData){P=this.getPattern(this.props.schema.jsonData);try{P=JSON.parse(P)}catch(F){console.error("Cannot parse json data: "+P)}}P===void 0&&(P=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",P).then(function(F){F&&Array.isArray(F)&&F.forEach(function(p){return b.push(typeof p=="string"?{label:p,value:p}:JSON.parse(JSON.stringify(p)))}),Array.isArray(E)?(b.unshift({label:Y.default.t(U.default.DIFFERENT_LABEL),value:U.default.DIFFERENT_VALUE}),C.setState({value:U.default.DIFFERENT_VALUE,selectOptions:b,context:C.getContext()})):C.setState({value:E,selectOptions:b,context:C.getContext()})})}else Array.isArray(E)?(b.unshift({label:Y.default.t(U.default.DIFFERENT_LABEL),value:U.default.DIFFERENT_VALUE}),this.setState({value:U.default.DIFFERENT_VALUE,selectOptions:b})):this.setState({value:E,selectOptions:b})}},{key:"getContext",value:function(){var C=this,E={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(function(b){return E[b]=U.default.getValue(C.props.data,b)}),JSON.stringify(E)}},{key:"renderItem",value:function(C,E,b){var P=this;if(!this.state.selectOptions)return null;if(this.props.alive){var F=this.getContext();F!==this.state.context&&setTimeout(function(){return P.askInstance()},300)}var p,B=JSON.parse(JSON.stringify(this.state.selectOptions)),d=Array.isArray(this.state.value)||this.state.value===U.default.DIFFERENT_LABEL;return d?((0,m.default)(this.state.value).filter(function(z){return!B.find(function(K){return K.value===z})}).forEach(function(z){return B.push({label:z.toString(),value:z})}),p={label:Y.default.t(U.default.DIFFERENT_LABEL),value:U.default.DIFFERENT_VALUE},B.unshift(p)):(p=this.state.value!==null&&this.state.value!==void 0&&B.find(function(z){return z.value==P.state.value}),this.state.value!==null&&this.state.value!==void 0&&!p&&(p={value:this.state.value,label:this.state.value},B.push(p)),p=p||null),B.length?w.default.createElement(v.Autocomplete,{value:p,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,options:B,getOptionLabel:function(K){return K&&K.label||""},className:this.props.classes.indeterminate,onInputChange:function(K){if(K){var Q=K.target.value;Q!==P.state.value&&P.setState({value:Q},function(){return P.onChange(P.props.attr,Q)})}},onChange:function(K,Q){var oe=(0,s.default)(Q)==="object"?Q?Q.value:"":Q;oe!==P.state.value&&P.setState({value:oe},function(){return P.onChange(P.props.attr,oe)})},renderInput:function(K){return w.default.createElement(v.TextField,(0,a.default)({variant:"standard"},K,{error:!!C,placeholder:P.getText(P.props.schema.placeholder),label:P.getText(P.props.schema.label),helperText:P.renderHelp(P.props.schema.help,P.props.schema.helpLink,P.props.schema.noTranslation),disabled:!!E}))}}):w.default.createElement(v.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!C,disabled:!!E,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(K){var Q=K.target.value;P.setState({value:Q},function(){return P.onChange(P.props.attr,(Q||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),L}(U.default);y.propTypes={socket:j.default.object.isRequired,themeType:j.default.string,themeName:j.default.string,style:j.default.object,className:j.default.string,data:j.default.object.isRequired,schema:j.default.object,onError:j.default.func,onChange:j.default.func};var T=(0,f.withStyles)(q)(y);r.default=T},36587:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),s=t(e(48926)),m=t(e(34575)),O=t(e(93913)),M=t(e(16525)),x=t(e(2205)),o=t(e(78585)),c=t(e(29754)),u=t(e(4819)),w=t(e(15854)),j=e(58503),f=t(e(10391)),v=t(e(75197)),Y=e(94427),U=t(e(30472)),A=t(e(55289)),_=t(e(92636));function q(L){var k=y();return function(){var E=(0,c.default)(L),b;if(k){var P=(0,c.default)(this).constructor;b=Reflect.construct(E,arguments,P)}else b=E.apply(this,arguments);return(0,o.default)(this,b)}}function y(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(L){return!1}}var T=function(k){return{fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}}},D=function(L){(0,x.default)(C,L);var k=q(C);function C(){return(0,m.default)(this,C),k.apply(this,arguments)}return(0,O.default)(C,[{key:"componentDidMount",value:function(){var E=(0,s.default)(a.default.mark(function P(){var F,p,B,d;return a.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:(0,M.default)((0,c.default)(C.prototype),"componentDidMount",this).call(this),F=this.props,p=F.data,B=F.attr,d=_.default.getValue(p,B)||"",this.setState({value:d});case 4:case"end":return K.stop()}},P,this)}));function b(){return E.apply(this,arguments)}return b}()},{key:"renderItem",value:function(b,P,F){var p=this,B=this.props,d=B.classes,z=B.schema,K=B.attr,Q=this.state,oe=Q.value,De=Q.showDialog;return u.default.createElement(v.default,{className:d.fullWidth,variant:"standard"},u.default.createElement(f.default,{shrink:!0},this.getText(z.label)),u.default.createElement("div",{className:d.flex},u.default.createElement(Y.TextField,{variant:"standard",fullWidth:!0,value:oe,error:!!b,disabled:P,placeholder:this.getText(z.placeholder),label:this.getText(z.label),helperText:this.renderHelp(z.help,z.helpLink,z.noTranslation),onChange:function(J){var le=J.target.value;p.setState({value:le},function(){return p.onChange(K,le)})}}),u.default.createElement(Y.Button,{color:"grey",className:this.props.classes.button,size:"small",variant:"outlined",onClick:function(){return p.setState({showDialog:!0})}},"...")),De?u.default.createElement(U.default,{title:A.default.t("ra_Define schedule"),simple:z.simple,complex:z.complex,cron:oe,language:A.default.getLanguage(),onClose:function(){return p.setState({showDialog:!1})},cancel:A.default.t("ra_Cancel"),ok:A.default.t("ra_Ok"),onOk:function(J){return p.setState({showDialog:!1,value:J},function(){return p.onChange(K,J)})}}):null)}}]),C}(_.default);D.propTypes={themeType:w.default.string,themeName:w.default.string,style:w.default.object,className:w.default.string,data:w.default.object.isRequired,schema:w.default.object,onError:w.default.func,onChange:w.default.func,dateFormat:w.default.string,isFloatComma:w.default.bool};var g=(0,j.withStyles)(T)(D);r.default=g},94249:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),s=t(e(48926)),m=t(e(34575)),O=t(e(93913)),M=t(e(16525)),x=t(e(2205)),o=t(e(78585)),c=t(e(29754)),u=t(e(4819)),w=t(e(15854)),j=e(58503),f=t(e(10391)),v=t(e(46881)),Y=t(e(93640)),U=t(e(75197)),A=t(e(96489)),_=t(e(92636)),q=t(e(55289));function y(k){var C=T();return function(){var b=(0,c.default)(k),P;if(C){var F=(0,c.default)(this).constructor;P=Reflect.construct(b,arguments,F)}else P=b.apply(this,arguments);return(0,o.default)(this,P)}}function T(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(k){return!1}}var D=function(C){return{fullWidth:{width:"100%"}}},g=function(k){(0,x.default)(E,k);var C=y(E);function E(){return(0,m.default)(this,E),C.apply(this,arguments)}return(0,O.default)(E,[{key:"componentDidMount",value:function(){var b=(0,s.default)(a.default.mark(function F(){var p=this,B,d;return a.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:return(0,M.default)((0,c.default)(E.prototype),"componentDidMount",this).call(this),B=_.default.getValue(this.props.data,this.props.attr),K.next=4,this.props.socket.getCertificates();case 4:d=K.sent,d=d.filter(function(Q){var oe=p.props.attr.toLowerCase();return oe.includes(Q.type)||Q.type==="public"&&oe.includes("cert")||Q.type==="private"&&(oe.includes("priv")||oe.includes("key"))?!0:!!(Q.type==="chained"&&(oe.includes("chain")||oe.includes("ca")))}).map(function(Q){return{label:Q.name,value:Q.name}}),d.unshift({label:q.default.t(_.default.NONE_LABEL),value:_.default.NONE_VALUE}),this.setState({value:B,selectOptions:d});case 8:case"end":return K.stop()}},F,this)}));function P(){return b.apply(this,arguments)}return P}()},{key:"renderItem",value:function(P,F,p){var B,d=this,z;if(!this.state.selectOptions)return null;var K=(B=this.state.selectOptions)===null||B===void 0?void 0:B.find(function(Q){return Q.value===d.state.value});return u.default.createElement(U.default,{className:this.props.classes.fullWidth,variant:"standard"},u.default.createElement(f.default,{shrink:!0},this.getText(this.props.schema.label)),u.default.createElement(A.default,{variant:"standard",error:!!P,displayEmpty:!0,disabled:!!F,value:this.state.value,renderValue:function(oe){return d.getText(K==null?void 0:K.label,d.props.schema.noTranslation!==!1)},onChange:function(oe){return d.setState({value:oe.target.value},function(){return d.onChange(d.props.attr,d.state.value)})}},(z=this.state.selectOptions)===null||z===void 0?void 0:z.map(function(Q){return u.default.createElement(v.default,{key:Q.value,value:Q.value,style:Q.value===_.default.NONE_VALUE?{opacity:.5}:{}},d.getText(Q.label,d.props.schema.noTranslation!==!1))})),this.props.schema.help?u.default.createElement(Y.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),E}(_.default);g.propTypes={socket:w.default.object.isRequired,themeType:w.default.string,themeName:w.default.string,style:w.default.object,className:w.default.string,data:w.default.object.isRequired,schema:w.default.object,onError:w.default.func,onChange:w.default.func};var L=(0,j.withStyles)(D)(g);r.default=L},22638:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=t(e(11933)),w=t(e(23082)),j=t(e(93640)),f=t(e(75197)),v=t(e(92636)),Y=t(e(55289));function U(T){var D=A();return function(){var L=(0,M.default)(T),k;if(D){var C=(0,M.default)(this).constructor;k=Reflect.construct(L,arguments,C)}else k=L.apply(this,arguments);return(0,O.default)(this,k)}}function A(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(T){return!1}}var _=function(D){return{error:{color:"red"}}},q=function(T){(0,m.default)(g,T);var D=U(g);function g(){return(0,a.default)(this,g),D.apply(this,arguments)}return(0,s.default)(g,[{key:"renderItem",value:function(k,C){var E=this,b=v.default.getValue(this.props.data,this.props.attr),P=Array.isArray(b);return x.default.createElement(f.default,{className:this.props.classes.fullWidth,variant:"standard"},x.default.createElement(u.default,{onClick:function(p){p.preventDefault(),p.stopPropagation(),E.onChange(E.props.attr,!b)},control:x.default.createElement(w.default,{indeterminate:P,checked:!!b,onChange:function(p){P?E.onChange(E.props.attr,!0):E.onChange(E.props.attr,p.target.checked)},disabled:!!C}),label:this.getText(this.props.schema.label)}),x.default.createElement(j.default,{className:this.props.classes.error},k?this.props.schema.validatorErrorText?Y.default.t(this.props.schema.validatorErrorText):Y.default.t("ra_Error"):null),this.props.schema.help?x.default.createElement(j.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),g}(v.default);q.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,schema:o.default.object,onError:o.default.func,onChange:o.default.func};var y=(0,c.withStyles)(_)(q);r.default=y},82600:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(93640)),j=t(e(75197)),f=t(e(92636)),v=t(e(90291));function Y(y){var T=U();return function(){var g=(0,x.default)(y),L;if(T){var k=(0,x.default)(this).constructor;L=Reflect.construct(g,arguments,k)}else L=g.apply(this,arguments);return(0,M.default)(this,L)}}function U(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(y){return!1}}var A=function(T){return{fullWidth:{width:"100%"}}},_=function(y){(0,O.default)(D,y);var T=Y(D);function D(){return(0,a.default)(this,D),T.apply(this,arguments)}return(0,s.default)(D,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(D.prototype),"componentDidMount",this).call(this);var L=this.props,k=L.data,C=L.attr,E=f.default.getValue(k,C);if(this.props.schema.delimiter&&typeof E=="string"){var b=E.split(this.props.schema.delimiter).map(function(P){return P.trim()}).filter(function(P){return P});this.setState({value:b})}else this.setState({value:E||[]})}},{key:"renderItem",value:function(L,k,C){var E=this,b=this.props,P=b.attr,F=b.schema,p=this.state.value;return o.default.createElement(j.default,{className:this.props.classes.fullWidth,variant:"standard"},o.default.createElement(v.default,{value:p,disabled:!!k,label:this.getText(F.label),error:!!L,onAdd:function(d){var z=JSON.parse(JSON.stringify(p));z.push(d),E.setState({value:z,prevValue:""},function(){E.props.schema.delimiter?E.onChange(P,z.join(E.props.schema.delimiter+" ")):E.onChange(P,z)})},onDelete:function(d,z){var K=JSON.parse(JSON.stringify(p));K.splice(z,1),E.setState({value:K,prevValue:""},function(){E.props.schema.delimiter?E.onChange(P,K.join(E.props.schema.delimiter+" ")):E.onChange(P,K)})}}),this.props.schema.help?o.default.createElement(w.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),D}(f.default);_.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var q=(0,u.withStyles)(A)(_);r.default=q},73689:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=e(49246),w=t(e(72952)),j=t(e(61318)),f=t(e(28020)),v=t(e(62976)),Y=t(e(33919)),U=t(e(49021)),A=t(e(92636));function _(g){var L=q();return function(){var C=(0,M.default)(g),E;if(L){var b=(0,M.default)(this).constructor;E=Reflect.construct(C,arguments,b)}else E=C.apply(this,arguments);return(0,O.default)(this,E)}}function q(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(g){return!1}}var y=function(L){return{}},T=function(g){(0,m.default)(k,g);var L=_(k);function k(){return(0,a.default)(this,k),L.apply(this,arguments)}return(0,s.default)(k,[{key:"renderColorDialog",value:function(){var E=this;return!!this.state.showColorDialog&&x.default.createElement(f.default,{onClose:function(){return E.setState({showColorDialog:!1})},open:this.state.showColorDialog},x.default.createElement(u.ChromePicker,{color:this.state.colorDialogValue,onChange:function(P){E.setState({colorDialogValue:P},function(){return E.onChange(E.props.attr,U.default.getColor(E.state.colorDialogValue,!0))})}}))}},{key:"renderItem",value:function(E,b,P){var F=this,p=A.default.getValue(this.props.data,this.props.attr),B=Y.default.isUseBright(p,null);return B===null&&(B=void 0),x.default.createElement(x.default.Fragment,null,this.renderColorDialog(),x.default.createElement(j.default,{variant:"standard",disabled:!!b,style:{minWidth:100,width:"calc(100% - 8px)"},label:this.getText(this.props.schema.label),value:p||"",onClick:function(){return F.setState({showColorDialog:!0,colorDialogValue:p})},onChange:function(z){var K=z.target.value;F.onChange(F.props.attr,K)},inputProps:{style:{backgroundColor:p,color:B?"#FFF":"#000"}},InputProps:{endAdornment:p?x.default.createElement(w.default,{disabled:!!this.props.onPaste,size:"small",onClick:function(z){z.stopPropagation(),F.onChange(F.props.attr,"")}},x.default.createElement(v.default,null)):void 0},InputLabelProps:{shrink:!0}}))}}]),k}(A.default);T.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,schema:o.default.object,onError:o.default.func,onChange:o.default.func};var D=(0,c.withStyles)(y)(T);r.default=D},95648:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(61318)),j=t(e(22238)),f=t(e(94719)),v=t(e(55289)),Y=t(e(92636));function U(T){var D=A();return function(){var L=(0,x.default)(T),k;if(D){var C=(0,x.default)(this).constructor;k=Reflect.construct(L,arguments,C)}else k=L.apply(this,arguments);return(0,M.default)(this,k)}}function A(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(T){return!1}}var _=function(D){return{width:{width:"calc(100% - 40px)"}}},q=function(T){(0,O.default)(g,T);var D=U(g);function g(){return(0,a.default)(this,g),D.apply(this,arguments)}return(0,s.default)(g,[{key:"componentDidMount",value:function(){var k=this;(0,m.default)((0,x.default)(g.prototype),"componentDidMount",this).call(this);var C=Y.default.getValue(this.props.data,this.props.attr);!C&&this.props.schema.autoInit&&setTimeout(function(){return k.getCoordinates()},300)}},{key:"getSystemCoordinates",value:function(){var k=this;return this.props.socket.getSystemConfig().then(function(C){C&&C.common&&(C.common.longitude||C.common.latitude)?(window.alert(v.default.t("ra_Used system settings")),k.setState({value:C.common.latitude+(k.props.schema.divider||",")+C.common.longitude})):window.alert(v.default.t("ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser"))})}},{key:"getCoordinates",value:function(){var k=this;navigator.geolocation?navigator.geolocation.getCurrentPosition(function(C){C&&C.coords?k.setState({value:C.coords.latitude+(k.props.schema.divider||",")+C.coords.longitude}):k.getSystemCoordinates()},function(C){k.getSystemCoordinates()}):this.getSystemCoordinates()}},{key:"renderItem",value:function(k,C,E){var b=this;return o.default.createElement(o.default.Fragment,null,o.default.createElement(w.default,{variant:"standard",className:this.props.classes.width,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!k,disabled:!!C,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(F){var p=F.target.value;b.setState({value:p},function(){return b.onChange(b.props.attr,(p||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),o.default.createElement(j.default,{size:"small",onClick:function(){return b.getCoordinates()}},o.default.createElement(f.default,null)))}}]),g}(Y.default);q.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var y=(0,u.withStyles)(_)(q);r.default=y},19329:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var s=t(e(87757)),m=t(e(68551)),O=t(e(50008)),M=t(e(34575)),x=t(e(93913)),o=t(e(2205)),c=t(e(78585)),u=t(e(29754)),w=t(e(48926)),j=_(e(4819)),f=t(e(15854)),v=t(e(23180)),Y=t(e(61711)),U=t(e(55289));function A(k){if(typeof WeakMap!="function")return null;var C=new WeakMap,E=new WeakMap;return(A=function(P){return P?E:C})(k)}function _(k,C){if(!C&&k&&k.__esModule)return k;if(k===null||a(k)!=="object"&&typeof k!="function")return{default:k};var E=A(C);if(E&&E.has(k))return E.get(k);var b={},P=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var F in k)if(F!=="default"&&Object.prototype.hasOwnProperty.call(k,F)){var p=P?Object.getOwnPropertyDescriptor(k,F):null;p&&(p.get||p.set)?Object.defineProperty(b,F,p):b[F]=k[F]}return b.default=k,E&&E.set(k,b),b}function q(k){var C=y();return function(){var b=(0,u.default)(k),P;if(C){var F=(0,u.default)(this).constructor;P=Reflect.construct(b,arguments,F)}else P=b.apply(this,arguments);return(0,c.default)(this,P)}}function y(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(k){return!1}}var T=function(C,E){var b=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;return new Promise(function(P,F){if(window[C])P(window[C]);else{var p=document.querySelector('script[data-webpack="'.concat(C,'"]')),B=function(){var K=(0,w.default)(s.default.mark(function Q(){return s.default.wrap(function(De){for(;;)switch(De.prev=De.next){case 0:if(!window[C]){De.next=12;break}if(window[C].__initialized){De.next=10;break}De.next=7;break;case 5:De.next=9;break;case 7:return De.next=9,window[C].init(e.S[E]);case 9:window[C].__initialized=!0;case 10:De.next=14;break;case 12:return console.error("Cannot load "+C),De.abrupt("return",F("Cannot load "+C));case 14:P(window[C]);case 15:case"end":return De.stop()}},Q)}));return function(){return K.apply(this,arguments)}}();if(p)p.onload=B,p.onerror=F;else if(b){var d=document,z=d.createElement("script");z.type="text/javascript",z.setAttribute("data-webpack","".concat(C)),z.async=!0,z.onerror=F,z.onload=B,z.src=b,d.getElementsByTagName("head")[0].appendChild(z)}else F("Cannot Find Remote ".concat(C," to inject"))}})},D=function(C,E,b,P){return(0,w.default)(s.default.mark(function F(){var p,B,d;return s.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:return K.next=2,T(C,E,P);case 2:return p=K.sent,K.next=5,p.get(b);case 5:return B=K.sent,d=B(),K.abrupt("return",d);case 8:case"end":return K.stop()}},F)}))},g=function(k){(0,o.default)(E,k);var C=q(E);function E(b){var P;return(0,M.default)(this,E),P=C.call(this,b),P.state={Component:null,error:""},P}return(0,x.default)(E,[{key:"componentDidMount",value:function(){var b=(0,w.default)(s.default.mark(function F(){var p,B,d,z,K,Q,oe,De,Te,J,le,Re;return s.default.wrap(function(be){for(;;)switch(be.prev=be.next){case 0:if(this.props.schema.url){be.next=4;break}return console.error("URL is empty. Cannot load custom component!"),this.setState({error:"URL is empty. Cannot load custom component!"}),be.abrupt("return");case 4:if(this.props.schema.url.startsWith("http:")||this.props.schema.url.startsWith("https:")?p=this.props.schema.url:this.props.schema.url.startsWith("./")?p="".concat(window.location.protocol,"//").concat(window.location.host).concat(this.props.schema.url.replace(/^\./,"")):p="".concat(window.location.protocol,"//").concat(window.location.host,"/adapter/").concat(this.props.adapterName,"/").concat(this.props.schema.url),this.props.schema.i18n!==!0){be.next=14;break}return B=p.lastIndexOf("/"),B!==-1?d=p.substring(0,B):d=p,z=U.default.getLanguage(),K="".concat(d,"/i18n/").concat(z,".json"),be.next=12,fetch(K).then(function(Ce){return Ce.json()}).then(function(Ce){return U.default.extendTranslations(Ce,z)}).catch(function(Ce){return console.log('Cannot load i18n "'.concat(K,'": ').concat(Ce))});case 12:be.next=15;break;case 14:if(this.props.schema.i18n&&(0,O.default)(this.props.schema.i18n)==="object")try{U.default.extendTranslations(this.props.schema.i18n)}catch(Ce){console.error("Cannot import i18n: ".concat(Ce))}case 15:return be.prev=15,Q=this.props.schema.name.split("/"),oe=(0,m.default)(Q),De=oe[0],Te=oe[1],J=oe.slice(2),console.log(De,Te,J.join("/")),be.next=20,D(De,"default","./".concat(Te),p)();case 20:le=be.sent.default,!le||!le||!le[J.join("/")]?(Re=Object.keys(le||{}),console.error("URL is empty. Cannot load custom component!"),this.setState({error:"Component ".concat(this.props.schema.name," not found in ").concat(this.props.schema.url,". Found: ").concat(Re.join(", "))})):this.setState({Component:le[J.join("/")]}),be.next=27;break;case 24:be.prev=24,be.t0=be.catch(15),this.setState({error:"Cannot import from ".concat(this.props.schema.url,": ").concat(be.t0)});case 27:case"end":return be.stop()}},F,this,[[15,24]])}));function P(){return b.apply(this,arguments)}return P}()},{key:"render",value:function(){var P=this.state.Component;if(!P){if(this.state.error)return;var F=this.props.schema||{},p=j.default.createElement(Y.default,{item:!0,xs:F.xs||void 0,lg:F.lg||void 0,md:F.md||void 0,sm:F.sm||void 0,style:Object.assign({},{marginBottom:0,textAlign:"left",width:F.type==="divider"||F.type==="header"?F.width||"100%":void 0},F.style,this.props.themeType==="dark"?F.darkStyle:{})},this.state.error?j.default.createElement("div",null,this.state.error):j.default.createElement(v.default,null));return F.newLine?j.default.createElement(j.default.Fragment,null,j.default.createElement("div",{style:{flexBasis:"100%",height:0}}),p):p}return j.default.createElement(P,this.props)}}]),E}(j.Component);g.propTypes={socket:f.default.object,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,attr:f.default.string,data:f.default.object.isRequired,schema:f.default.object.isRequired,onError:f.default.func,onChange:f.default.func};var L=g;r.default=L},1154:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=e(4186),j=t(e(92636));function f(_){var q=v();return function(){var T=(0,x.default)(_),D;if(q){var g=(0,x.default)(this).constructor;D=Reflect.construct(T,arguments,g)}else D=T.apply(this,arguments);return(0,M.default)(this,D)}}function v(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(_){return!1}}var Y=function(q){return{indeterminate:{opacity:.5}}},U=function(_){(0,O.default)(y,_);var q=f(y);function y(){return(0,a.default)(this,y),q.apply(this,arguments)}return(0,s.default)(y,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(y.prototype),"componentDidMount",this).call(this);var D=j.default.getValue(this.props.data,this.props.attr);this.setState({value:D})}},{key:"renderItem",value:function(D,g,L){var k=this;return o.default.createElement(w.DatePicker,{fullWidth:!0,margin:"normal",format:this.props.systemConfig.dateFormat.toLowerCase().replace("mm","MM"),error:!!D,disabled:!!g,value:this.state.value===null||this.state.value===void 0?new Date:this.state.value,KeyboardButtonProps:{"aria-label":"change date"},inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(E){k.setState({value:E},function(){return k.onChange(k.props.attr,E)})},InputLabelProps:{shrink:!0},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),y}(j.default);U.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var A=(0,u.withStyles)(Y)(U);r.default=A},19900:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(73319)),j=t(e(61318)),f=t(e(72952)),v=t(e(12660)),Y=t(e(32002)),U=t(e(41173)),A=t(e(37538)),_=t(e(35956)),q=t(e(92636)),y=t(e(56045));function T(p){var B=D();return function(){var z=(0,x.default)(p),K;if(B){var Q=(0,x.default)(this).constructor;K=Reflect.construct(z,arguments,Q)}else K=z.apply(this,arguments);return(0,M.default)(this,K)}}function D(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(p){return!1}}var g=function(B){return{fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 69px)",marginRight:4},fullWidthIcon:{width:"calc(100% - 119px)",marginRight:4},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}}},L=["jpg","jpeg","svg","png","webp"],k=["mp3","ogg","wav","aac"],C=["avi","mp4","mov"],E=["txt","log","html","htm"],b=["json","js","ts"],P=function(p){(0,O.default)(d,p);var B=T(d);function d(){return(0,a.default)(this,d),B.apply(this,arguments)}return(0,s.default)(d,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(d.prototype),"componentDidMount",this).call(this);var K=q.default.getValue(this.props.data,this.props.attr);this.imagePrefix=this.props.imagePrefix===void 0?"./files":this.props.imagePrefix,this.setState({value:K})}},{key:"loadFile",value:function(){var K=this.state.value.indexOf("/");if(K!==-1){var Q=this.state.value.substring(0,K),oe=this.state.value.substring(K+1);return this.props.socket.readFile(Q,oe,!0)}}},{key:"play",value:function(){this.loadFile().then(function(K){if(typeof AudioContext!="undefined"){var Q=new AudioContext,oe=y.default.base64ToArrayBuffer(K.file);Q.decodeAudioData(oe,function(De){var Te=Q.createBufferSource();Te.buffer=De,Te.connect(Q.destination),Te.start(0)},function(De){return window.alert("Cannot play: "+De)})}})}},{key:"getIcon",value:function(){var K=this,Q=this.state.value.split(".").pop().toLowerCase();return L.includes(Q)?o.default.createElement("div",{className:this.props.classes.selectedImage,style:{backgroundImage:"url(".concat(this.imagePrefix,"/").concat(this.state.value,")"),backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):k.includes(Q)?o.default.createElement(f.default,{style:{color:"#00FF00"},onClick:function(){return K.play()}},o.default.createElement(A.default,null)):E.includes(Q)?o.default.createElement(v.default,null):C.includes(Q)?o.default.createElement(Y.default,null):b.includes(Q)?o.default.createElement(U.default,null):null}},{key:"renderFileBrowser",value:function(){var K=this;return this.state.showFileBrowser?o.default.createElement(_.default,{imagePrefix:this.props.imagePrefix,socket:this.props.socket,selected:this.state.value,onClose:function(){return K.setState({showFileBrowser:!1})},onOk:function(oe){K.setState({value:oe},function(){return K.onChange(K.props.attr,K.props.schema.trim===!1?oe:(oe||"").trim())})},selectOnlyFolders:this.props.schema.selectOnlyFolders,allowUpload:this.props.schema.allowUpload,allowDownload:this.props.schema.allowDownload,allowCreateFolder:this.props.schema.allowCreateFolder,allowView:this.props.schema.allowView,showToolbar:this.props.schema.showToolbar,limitPath:this.props.schema.limitPath}):null}},{key:"renderItem",value:function(K,Q,oe){var De=this,Te=this.getIcon();return o.default.createElement("div",{className:this.props.classes.fullWidth},Te,o.default.createElement(j.default,{variant:"standard",className:Te?this.props.classes.fullWidthIcon:this.props.classes.fullWidthOneButton,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!K,disabled:!!Q,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:!!this.props.schema.disableEdit},onChange:function(le){var Re=le.target.value;De.setState({value:Re},function(){return De.onChange(De.props.attr,De.props.schema.trim===!1?Re:(Re||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),o.default.createElement(w.default,{variant:"outlined",onClick:function(){return De.setState({showFileBrowser:!0})}},"..."),this.renderFileBrowser())}}],[{key:"getDerivedStateFromProps",value:function(K,Q){var oe=q.default.getValue(K.data,K.attr);return oe==null||oe.toString().trim()!==(Q.value||"").toString().trim()?{value:oe}:null}}]),d}(q.default);P.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func,imagePrefix:c.default.func};var F=(0,u.withStyles)(g)(P);r.default=F},56045:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),s=t(e(67154)),m=t(e(48926)),O=t(e(34575)),M=t(e(93913)),x=t(e(16525)),o=t(e(2205)),c=t(e(78585)),u=t(e(29754)),w=t(e(4819)),j=t(e(15854)),f=e(58503),v=t(e(23167)),Y=t(e(10391)),U=t(e(46881)),A=t(e(93640)),_=t(e(75197)),q=t(e(96489)),y=t(e(72952)),T=t(e(60128)),D=t(e(58206)),g=t(e(22675)),L=t(e(72489)),k=t(e(91495)),C=t(e(37538)),E=t(e(43760)),b=t(e(32002)),P=t(e(12660)),F=t(e(41173)),p=e(42158),B=t(e(33919)),d=t(e(55289)),z=t(e(41728)),K=t(e(92636));function Q(ke){var qe=oe();return function(){var st=(0,u.default)(ke),H;if(qe){var te=(0,u.default)(this).constructor;H=Reflect.construct(st,arguments,te)}else H=st.apply(this,arguments);return(0,c.default)(this,H)}}function oe(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(ke){return!1}}var De=function(qe){return{fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 42px)"},fullWidthTwoButtons:{width:"calc(100% - 84px)"},fullWidthThreeButtons:{width:"calc(100% - 126x)"},dropZone:{width:"100%",height:"100%",position:"absolute"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"100%",height:"100%",position:"absolute",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},error:{border:"2px solid red"},deleteButton:{},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}}},Te=["jpg","jpeg","svg","png","webp"],J=["mp3","ogg","wav","aac"],le=["avi","mp4","mov"],Re=["txt","log","html","htm"],ae=["json","js","ts"],be=function(ke){(0,o.default)(Ke,ke);var qe=Q(Ke);function Ke(st){var H;return(0,O.default)(this,Ke),H=qe.call(this,st),H.dropzoneRef=w.default.createRef(),H.imagePrefix=H.props.imagePrefix===void 0?"./files":H.props.imagePrefix,H}return(0,M.default)(Ke,[{key:"componentDidMount",value:function(){var H=this;(0,x.default)((0,u.default)(Ke.prototype),"componentDidMount",this).call(this),this.objectID=(this.props.schema.objectID||"0_userdata.0").replace("%INSTANCE%",this.props.instance),this.path=this.props.schema.upload,this.path&&(this.path==="/"?this.path="":this.path.endsWith("/")||(this.path=this.path+"/")),this.updateFiles().then(function(){var te=K.default.getValue(H.props.data,H.props.attr);H.setState({value:te})})}},{key:"updateFiles",value:function(){var H=this;return this.readFiles(this.props.schema.pattern).then(function(te){return H.setState({files:te})})}},{key:"readFolder",value:function(){var st=(0,m.default)(a.default.mark(function te(Z,he,se){var ce,Ie,We,_e,ct;return a.default.wrap(function(nt){for(;;)switch(nt.prev=nt.next){case 0:return nt.prev=0,nt.next=3,this.props.socket.readDir(this.objectID,Z.replace(/^\//,"")||null);case 3:ce=nt.sent,Ie=0;case 5:if(!(Iese)return window.alert(d.default.t("File is too big. Max %sk allowed. Try use SVG.",Math.round(se/1024)));var Ie="data:".concat(ce,";base64,").concat(btoa(new Uint8Array(he.result).reduce(function(We,_e){return We+String.fromCharCode(_e)},"")));te.props.socket.writeFile64(te.objectID,te.path+Z.name,Ie).then(function(){return te.updateFiles()}).catch(function(We){return window.alert("Cannot upload file: "+We)})},he.readAsArrayBuffer(Z)}},{key:"renderDeleteDialog",value:function(){var H=this;return this.state.deleteFile?w.default.createElement(z.default,{title:d.default.t("ra_Are you sure?"),text:d.default.t("ra_File will be deleted"),ok:d.default.t("ra_Delete"),cancel:d.default.t("ra_Cancel"),onClose:function(Z){var he=H.state.deleteFile;H.setState({deleteFile:!1},function(){Z&&H.props.socket.deleteFile(H.objectID,he).then(function(){return H.updateFiles()}).catch(function(se){return window.alert("Cannot delete file: "+se)})})}}):null}},{key:"loadFile",value:function(){return this.props.socket.readFile(this.objectID,this.state.value,!0)}},{key:"play",value:function(){this.loadFile().then(function(H){if(typeof AudioContext!="undefined"){var te=new AudioContext,Z=Ke.base64ToArrayBuffer(H.file);te.decodeAudioData(Z,function(he){var se=te.createBufferSource();se.buffer=he,se.connect(te.destination),se.start(0)},function(he){return window.alert("Cannot play: "+he)})}})}},{key:"getIcon",value:function(H){return!H||!H.extension?null:Te.includes(H.extension)?w.default.createElement("div",{className:this.props.classes.selectedImage,style:{backgroundImage:"url(".concat(this.imagePrefix,"/").concat(this.objectID,"/").concat(H.value,")"),backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):J.includes(H.extension)?w.default.createElement(E.default,null):Re.includes(H.extension)?w.default.createElement(P.default,null):le.includes(H.extension)?w.default.createElement(b.default,null):ae.includes(H.extension)?w.default.createElement(F.default,null):null}},{key:"renderItem",value:function(H,te,Z){var he=this;if(!this.state.files)return null;var se=[];this.props.schema.withFolder||this.state.files.forEach(function(mt){var It=mt.name.lastIndexOf("/");if(It===-1)se.includes("/")||se.push("/");else{var aa=mt.name.substring(0,It+1);se.includes(aa)||se.push(aa)}});var ce=this.state.files.map(function(mt){return{value:mt.name,label:!he.props.schema.withFolder&&se.length===1?"".concat(mt.name.substring(se[0].length)):"".concat(mt.name)+(he.props.schema.noSize?"":"(".concat(mt.size,")")),extension:mt.name.toLowerCase().split(".").pop()}});this.props.schema.noNone||ce.unshift({label:d.default.t("ra_none"),value:""});var Ie=ce.find(function(mt){return mt.value===he.state.value}),We=0;this.props.schema.upload&&We++,this.props.schema.refresh&&We++;var _e=this.state.value&&(this.state.value.endsWith(".mp3")||this.state.value.endsWith(".ogg")||this.state.value.endsWith(".wav"));_e&&We++;var ct=w.default.createElement("div",{className:this.props.classes.fullWidth},w.default.createElement(_.default,{variant:"standard",style:{width:"calc(100% - ".concat(We*42,"px)")}},w.default.createElement(Y.default,null,this.getText(this.props.schema.label)),w.default.createElement(q.default,{variant:"standard",error:!!H,disabled:!!te,value:this.state.value||"_",renderValue:function(It){return w.default.createElement(w.default.Fragment,null,he.getIcon(Ie),w.default.createElement("span",null,(Ie==null?void 0:Ie.label)||""))},onChange:function(It){he.setState({value:It.target.value==="_"?"":It.target.value},function(){return he.onChange(he.props.attr,he.state.value)})}},ce.map(function(mt){return w.default.createElement(U.default,{key:mt.value,value:mt.value},w.default.createElement(D.default,null,he.getIcon(mt)),w.default.createElement(T.default,null,mt.label),he.props.schema.delete&&mt.value?w.default.createElement(y.default,{className:he.props.classes.deleteButton,size:"small",onClick:function(){return he.setState({deleteFile:mt.value})}},w.default.createElement(k.default,null)):null)})),this.props.schema.help?w.default.createElement(A.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null),this.props.schema.refresh&&w.default.createElement(y.default,{onClick:function(){return he.updateFiles()}},w.default.createElement(g.default,null)),this.props.schema.upload&&w.default.createElement(y.default,{onClick:function(){var It;return(It=he.dropzoneRef.current)===null||It===void 0?void 0:It.open()}},w.default.createElement(L.default,null)),_e&&w.default.createElement(y.default,{style:{color:"#00FF00"},onClick:function(){return he.play()}},w.default.createElement(C.default,null)));if(this.props.schema.upload){var dt={"*/*":[]};if(this.props.schema.pattern){var nt=this.props.schema.pattern.split("/").pop().toLowerCase().replace(/.*\./,"");nt==="png"||nt==="jpg"||nt==="svg"?dt={"image/*":[".png",".jpg",".svg"]}:nt==="mp3"||nt==="ogg"||nt==="wav"?dt={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:nt==="ics"?dt={"text/calendar":[".mp3",".ogg",".wav",".mp4"]}:nt==="txt"?dt={"text/plain":[".txt"]}:nt==="pem"?dt={"text/plain":[".pem"]}:nt==="pem"&&(dt={"*/*":["."+nt]})}return w.default.createElement(v.default,{ref:this.dropzoneRef,multiple:!1,accept:dt,noKeyboard:!0,noClick:!0,maxSize:this.props.schema.maxSize||2*1024*1024,onDragEnter:function(){he.setState({uploadFile:"dragging"})},onDragLeave:function(){return he.setState({uploadFile:!0})},onDrop:function(It,aa){if(he.setState({uploadFile:!1}),!It.length)window.alert(aa&&aa[0]&&aa[0].errors&&aa[0].errors[0]&&aa[0].errors[0].message||d.default.t("Cannot upload"));else return he.onDrop(It)}},function(mt){var It=mt.getRootProps,aa=mt.getInputProps;return w.default.createElement("div",(0,s.default)({className:B.default.clsx(he.props.classes.uploadDiv,he.state.uploadFile==="dragging"&&he.props.classes.uploadDivDragging,te&&he.props.classes.disabledOpacity)},It()),w.default.createElement("input",aa()),he.state.uploadFile==="dragging"?w.default.createElement("div",{className:B.default.clsx(he.props.classes.uploadCenterDiv,he.state.uploadError&&he.props.classes.error)},w.default.createElement("div",{className:he.props.classes.uploadCenterTextAndIcon},w.default.createElement(p.FaFileUpload,{className:he.props.classes.uploadCenterIcon}),w.default.createElement("div",{className:he.props.classes.uploadCenterText},he.state.uploadFile==="dragging"?d.default.t("ra_Drop file here"):d.default.t("ra_Place your files here or click here to open the browse dialog")))):null,ct,he.renderDeleteDialog())})}else return w.default.createElement(w.default.Fragment,null,ct,this.renderDeleteDialog())}}],[{key:"base64ToArrayBuffer",value:function(H){for(var te=window.atob(H),Z=te.length,he=new Uint8Array(Z),se=0;seRe.label?1:le.labelCe.value?1:be.valuethis.props.schema.max&&(C=v.default.t("ra_Too big")));var B="number";(this.props.schema.min!==void 0&&this.props.schema.min<0||this.props.schema.max!==void 0&&this.props.schema.max<0)&&(B="text");var d=this.state._value!==null&&this.state._value!==void 0&&(typeof this.state._value=="number"||typeof this.state._value=="string"&&this.state._value.trim()===parseFloat(this.state._value).toString());return u.default.createElement(f.FormControl,{variant:"standard",className:this.props.classes.control},u.default.createElement(f.TextField,{variant:"standard",type:B,fullWidth:!0,inputProps:{min:this.props.schema.min,max:this.props.schema.max,step:this.props.schema.step},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!C,disabled:!!E,className:Y.default.clsx(B==="text"&&d&&this.props.classes.textWithArrows),onChange:function(K){var Q=K.target.value;isFinite(Q)?P.props.schema.min!==void 0&&parseFloat(Q)P.props.schema.max?P.onError(P.props.attr,v.default.t("ra_Too big")):Q==="-"||isNaN(parseFloat(Q))?P.onError(P.props.attr,v.default.t("ra_Not a number")):P.onError(P.props.attr):Q!==""?P.onError(P.props.attr,v.default.t("ra_Not a number")):P.onError(P.props.attr),P.setState({_value:Q},function(){Q.trim()===parseFloat(Q).toString()&&P.onChange(P.props.attr,parseFloat(Q)||0)})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:C&&typeof C=="string"?C:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),B==="text"&&d?u.default.createElement("div",{className:this.props.classes.arrows},u.default.createElement("div",{className:this.props.classes.arrowUp,onClick:function(){var K=parseFloat(P.state._value)+1;P.props.schema.max!==void 0&&K<=P.props.schema.max&&P.setState({_value:K})}},"\u25B2"),u.default.createElement("div",{className:this.props.classes.arrowDown,onClick:function(){var K=parseFloat(P.state._value)-1;P.props.schema.min!==void 0&&K>=P.props.schema.min&&P.setState({_value:K})}},"\u25BC")):null)}}}],[{key:"getDerivedStateFromProps",value:function(C,E){if(C.schema.min!==void 0&&C.schema.min<0||C.schema.max!==void 0&&C.schema.max<0)return null;var b=U.default.getValue(C.data,C.attr);return b==null||b.toString()!==parseFloat(E._value).toString()?{_value:b}:null}}]),L}(U.default);y.propTypes={socket:w.default.object.isRequired,themeType:w.default.string,themeName:w.default.string,style:w.default.object,className:w.default.string,data:w.default.object.isRequired,schema:w.default.object,onError:w.default.func,onChange:w.default.func};var T=(0,j.withStyles)(q)(y);r.default=T},37350:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),s=t(e(48926)),m=t(e(34575)),O=t(e(93913)),M=t(e(16525)),x=t(e(2205)),o=t(e(78585)),c=t(e(29754)),u=t(e(4819)),w=t(e(15854)),j=e(58503),f=t(e(10391)),v=t(e(75197)),Y=e(94427),U=t(e(98735)),A=t(e(92636));function _(g){var L=q();return function(){var C=(0,c.default)(g),E;if(L){var b=(0,c.default)(this).constructor;E=Reflect.construct(C,arguments,b)}else E=C.apply(this,arguments);return(0,o.default)(this,E)}}function q(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(g){return!1}}var y=function(L){return{fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}}},T=function(g){(0,x.default)(k,g);var L=_(k);function k(){return(0,m.default)(this,k),L.apply(this,arguments)}return(0,O.default)(k,[{key:"componentDidMount",value:function(){var C=(0,s.default)(a.default.mark(function b(){var P,F,p,B;return a.default.wrap(function(z){for(;;)switch(z.prev=z.next){case 0:(0,M.default)((0,c.default)(k.prototype),"componentDidMount",this).call(this),P=this.props,F=P.data,p=P.attr,B=A.default.getValue(F,p)||"",this.setState({value:B,initialized:!0});case 4:case"end":return z.stop()}},b,this)}));function E(){return C.apply(this,arguments)}return E}()},{key:"renderItem",value:function(E,b,P){var F=this;if(!this.state.initialized)return null;var p=this.props,B=p.classes,d=p.schema,z=p.socket,K=p.attr,Q=this.state,oe=Q.value,De=Q.showSelectId;return u.default.createElement(v.default,{className:B.fullWidth,variant:"standard"},u.default.createElement(f.default,{shrink:!0},this.getText(d.label)),u.default.createElement("div",{className:B.flex},u.default.createElement(Y.TextField,{variant:"standard",fullWidth:!0,value:oe,error:!!E,disabled:b,placeholder:this.getText(d.placeholder),label:this.getText(d.label),helperText:this.renderHelp(d.help,d.helpLink,d.noTranslation),onChange:function(J){var le=J.target.value;F.setState({value:le},function(){return F.onChange(K,le)})}}),u.default.createElement(Y.Button,{color:"grey",className:this.props.classes.button,size:"small",variant:"outlined",onClick:function(){return F.setState({showSelectId:!0})}},"...")),De?u.default.createElement(U.default,{imagePrefix:this.props.imagePrefix===void 0?"../..":this.props.imagePrefix,dateFormat:this.props.dateFormat,isFloatComma:this.props.isFloatComma,dialogName:"admin."+this.props.adapterName,themeType:this.props.themeType,socket:z,statesOnly:d.all===void 0?!0:d.all,selected:oe,onClose:function(){return F.setState({showSelectId:!1})},onOk:function(J){return F.setState({showSelectId:!1,value:J},function(){return F.onChange(K,J)})}}):null)}}]),k}(A.default);T.propTypes={socket:w.default.object.isRequired,themeType:w.default.string,themeName:w.default.string,style:w.default.object,className:w.default.string,data:w.default.object.isRequired,schema:w.default.object,onError:w.default.func,onChange:w.default.func,dateFormat:w.default.string,isFloatComma:w.default.bool,imagePrefix:w.default.string};var D=(0,j.withStyles)(y)(T);r.default=D},86442:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(23060)),j=t(e(61711)),f=t(e(32592)),v=t(e(17263)),Y=t(e(27376)),U=t(e(2475)),A=t(e(62664)),_=t(e(92636)),q=t(e(88327)),y=t(e(16226)),T=t(e(35815)),D=t(e(36587)),g=t(e(94249)),L=t(e(22638)),k=t(e(82600)),C=t(e(73689)),E=t(e(95648)),b=t(e(19329)),P=t(e(1154)),F=t(e(19900)),p=t(e(56045)),B=t(e(19435)),d=t(e(31894)),z=t(e(58442)),K=t(e(59186)),Q=t(e(35390)),oe=t(e(81313)),De=t(e(25803)),Te=t(e(37350)),J=t(e(56617)),le=t(e(38430)),Re=t(e(93529)),ae=t(e(51016)),be=t(e(36840)),Ce=t(e(90374)),ke=t(e(8273)),qe=t(e(25747)),Ke=t(e(1121)),st=t(e(31297)),H=t(e(50971)),te=t(e(31590)),Z=t(e(91008)),he=t(e(90957)),se=t(e(59007)),ce=t(e(63365)),Ie=t(e(66678)),We=t(e(58176));function _e(ua){var St=ct();return function(){var ca=(0,x.default)(ua),Bt;if(St){var wt=(0,x.default)(this).constructor;Bt=Reflect.construct(ca,arguments,wt)}else Bt=ca.apply(this,arguments);return(0,M.default)(this,Bt)}}function ct(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(ua){return!1}}var dt={alive:q.default,autocomplete:y.default,autocompleteSendTo:T.default,certificate:g.default,checkbox:L.default,chip:k.default,chips:k.default,color:C.default,coordinates:E.default,cron:D.default,custom:b.default,datePicker:P.default,divider:Ke.default,file:F.default,fileSelector:p.default,func:B.default,header:st.default,image:z.default,instance:K.default,ip:d.default,jsonEditor:Q.default,language:oe.default,number:De.default,objectId:Te.default,password:J.default,pattern:le.default,room:Re.default,select:ae.default,selectSendTo:be.default,sendTo:Ce.default,setState:ke.default,slider:qe.default,staticImage:H.default,staticLink:te.default,staticText:te.default,table:Z.default,text:he.default,textSendTo:se.default,timePicker:ce.default,topic:Ie.default,user:We.default},nt=function(St){return{fullWidth:{width:"100%"},paper:{margin:10,height:"calc(100vh - 235px) !important",width:"auto !important",overflowY:"auto",paddingBottom:St.spacing(1)},padding:{padding:10},heading:{},primary:{backgroundColor:St.palette.primary.main,color:St.palette.mode==="dark"?"inherit":"#FFF"},secondary:{backgroundColor:St.palette.secondary.main}}},mt=function(ua){(0,O.default)(_t,ua);var St=_e(_t);function _t(){return(0,a.default)(this,_t),St.apply(this,arguments)}return(0,s.default)(_t,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(_t.prototype),"componentDidMount",this).call(this),this.props.schema&&this.props.schema.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(this.props.adapterName+"."+this.props.attr)==="true"})}},{key:"renderItems",value:function(Bt,wt){var Qe=this,Xt=this.props.classes||{};return Bt?Object.keys(Bt).map(function(Qt){if(Qe.props.multiEdit&&Bt[Qt].noMultiEdit)return null;var pa=Bt[Qt].type||"panel",kt;return pa==="custom"?Bt[Qt].url?kt=b.default:Qe.props.customs&&Qe.props.customs[Bt[Qt].component]?kt=Qe.props.customs[Bt[Qt].component]:(console.error("Cannot find custom component: "+Bt[Qt].component),kt=_.default):pa==="panel"?kt=It:kt=dt[pa]||_.default,o.default.createElement(kt,{key:Qt+"_"+(Qe.props.index===void 0?"":Qe.props.index),index:Qe.props.index,arrayIndex:Qe.props.arrayIndex,globalData:Qe.props.globalData,onCommandRunning:Qe.props.onCommandRunning,commandRunning:Qe.props.commandRunning,className:Xt.panel,socket:Qe.props.socket,adapterName:Qe.props.adapterName,instance:Qe.props.instance,common:Qe.props.common,customs:Qe.props.customs,alive:Qe.props.alive,themeType:Qe.props.themeType,themeName:Qe.props.themeName,data:Qe.props.data,originalData:Qe.props.originalData,systemConfig:Qe.props.systemConfig,onError:Qe.props.onError,onChange:Qe.props.onChange,multiEdit:Qe.props.multiEdit,dateFormat:Qe.props.dateFormat,isFloatComma:Qe.props.isFloatComma,disabled:wt,imagePrefix:Qe.props.imagePrefix,changeLanguage:Qe.props.changeLanguage,forceUpdate:Qe.props.forceUpdate,registerOnForceUpdate:Qe.props.registerOnForceUpdate,customObj:Qe.props.customObj,instanceObj:Qe.props.instanceObj,custom:Qe.props.custom,schema:Bt[Qt],attr:Qt})}):null}},{key:"render",value:function(){var Bt=this,wt=this.props.schema;if(!wt)return null;var Qe=this.calculate(wt),Xt=Qe.disabled,Qt=Qe.hidden,pa=this.props.schema.items,kt=this.props.classes||{};if(Qt)if(wt.hideOnlyControl){var re=o.default.createElement(j.default,{item:!0,xs:wt.xs||void 0,lg:wt.lg||void 0,md:wt.md||void 0,sm:wt.sm||void 0,style:Object.assign({},{marginBottom:0,textAlign:"left"},wt.style,this.props.themaType==="dark"?wt.darkStyle:{})});return wt.newLine?o.default.createElement(o.default.Fragment,null,o.default.createElement("div",{style:{flexBasis:"100%",height:0}}),re):re}else return null;else{if(this.props.table)return this.renderItems(pa,Xt);if(this.props.custom)return o.default.createElement(j.default,{key:this.props.attr+"_"+this.props.index,container:!0,className:kt.fullWidth,spacing:2},this.renderItems(pa,Xt));var ge;if(wt.collapsable?ge=o.default.createElement(f.default,{key:this.props.attr+"_"+this.props.index,className:kt.fullWidth,expanded:!!this.state.expanded,onChange:function(){(window._localStorage||window.localStorage).setItem(Bt.props.adapterName+"."+Bt.props.attr,Bt.state.expanded?"false":"true"),Bt.setState({expanded:!Bt.state.expanded})}},o.default.createElement(v.default,{expandIcon:o.default.createElement(A.default,null),style:Object.assign({},wt.style,this.props.themeType?wt.darkStyle:{}),className:(0,w.default)(kt.fullWidth,wt.color==="primary"&&kt.primary,wt.color==="secondary"&&kt.secondary)},o.default.createElement(U.default,{className:kt.heading},this.getText(wt.label))),o.default.createElement(Y.default,null,o.default.createElement(j.default,{container:!0,className:kt.fullWidth+" "+kt.padding,spacing:2},this.renderItems(pa,Xt)))):ge=o.default.createElement("div",{key:this.props.attr+"_"+this.props.index,className:(0,w.default)(this.props.className,this.props.isParentTab&&kt.paper,kt.fullWidth)},o.default.createElement(j.default,{container:!0,className:(0,w.default)(kt.fullWidth,this.props.isParentTab&&kt.padding),spacing:2},this.renderItems(pa,Xt))),this.props.isParentTab)return ge;var $e=o.default.createElement(j.default,{item:!0,title:this.getText(wt.tooltip),xs:wt.xs||void 0,lg:wt.lg||void 0,md:wt.md||void 0,sm:wt.sm||void 0,style:Object.assign({},{marginBottom:0,textAlign:"left"},wt.style)},ge);return wt.newLine?o.default.createElement(o.default.Fragment,null,o.default.createElement("div",{style:{flexBasis:"100%",height:0}}),$e):$e}}}]),_t}(_.default);mt.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,originalData:c.default.object,schema:c.default.object,index:c.default.number,customs:c.default.object,alive:c.default.bool,systemConfig:c.default.object,adapterName:c.default.string,instance:c.default.number,commandRunning:c.default.bool,onCommandRunning:c.default.func,dateFormat:c.default.string,isFloatComma:c.default.bool,multiEdit:c.default.bool,isParentTab:c.default.bool,imagePrefix:c.default.string,changeLanguage:c.default.func,arrayIndex:c.default.number,globalData:c.default.object,customObj:c.default.object,instanceObj:c.default.object,custom:c.default.bool,forceUpdate:c.default.func,onError:c.default.func,onChange:c.default.func,registerOnForceUpdate:c.default.func};var It=(0,u.withStyles)(nt)(mt),aa=It;r.default=aa},56617:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(61318)),j=t(e(72952)),f=t(e(23357)),v=t(e(40173)),Y=t(e(16826)),U=t(e(55289)),A=t(e(92636));function _(L){var k=q();return function(){var E=(0,x.default)(L),b;if(k){var P=(0,x.default)(this).constructor;b=Reflect.construct(E,arguments,P)}else b=E.apply(this,arguments);return(0,M.default)(this,b)}}function q(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(L){return!1}}var y=function(k){return{fullWidth:{width:"100%",display:"inline-block"},halfWidth1:{width:"calc(50% - ".concat(k.spacing(.5),")"),display:"inline-block",marginRight:k.spacing(1)},halfWidth2:{width:"calc(50% - ".concat(k.spacing(.5),")"),display:"inline-block"}}},T="____ppp____",D=function(L){(0,O.default)(C,L);var k=_(C);function C(){return(0,a.default)(this,C),k.apply(this,arguments)}return(0,s.default)(C,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(C.prototype),"componentDidMount",this).call(this);var b=A.default.getValue(this.props.data,this.props.attr);this.setState({_repeat:b?T:"",_visible:!1,value:b?T:"",_notEqual:!1})}},{key:"onChangePassword",value:function(b,P){var F=this;b===void 0&&(b=this.state.value),P===void 0&&(P=this.state._repeat);var p=!!this.props.schema.repeat&&P!==b;this.setState({value:b,_repeat:P,_notEqual:p},function(){p?F.onError(F.props.attr,U.default.t("ra_Passwords are not equal!")):(F.onError(F.props.attr),F.onChange(F.props.attr,b))})}},{key:"renderItem",value:function(b,P,F){var p=this;if(this.state._notEqual===void 0)return null;var B=o.default.createElement(w.default,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state.value!==T?"text":"password",value:this.state.value,error:!!b||this.state._notEqual,disabled:!!P,onChange:function(K){return p.onChangePassword(K.target.value)},label:this.getText(this.props.schema.label),inputProps:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},helperText:this.state._notEqual?U.default.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),InputProps:{endAdornment:this.state.value&&this.state.value!==T&&this.props.schema.visible?o.default.createElement(f.default,{position:"end"},o.default.createElement(j.default,{size:"large",tabIndex:-1,onClick:function(K){K.preventDefault(),K.stopPropagation(),p.setState({_visible:!p.state._visible})},edge:"end"},this.state._visible?o.default.createElement(Y.default,null):o.default.createElement(v.default,null))):void 0}});if(this.props.schema.repeat){var d=o.default.createElement(w.default,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state._repeat!==T?"text":"password",value:this.state._repeat,error:!!b||this.state._notEqual,disabled:!!P,onChange:function(K){return p.onChangePassword(void 0,K.target.value)},label:"".concat(this.getText(this.props.schema.label)," (").concat(U.default.t("ra_repeat"),")"),inputProps:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},helperText:this.state._notEqual?U.default.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),InputProps:{endAdornment:this.state._repeat&&this.state._repeat!==T?o.default.createElement(f.default,{position:"end"},o.default.createElement(j.default,{size:"large",tabIndex:-1,onClick:function(K){K.preventDefault(),K.stopPropagation(),p.setState({_visible:!p.state._visible})},edge:"end"},this.state._visible?o.default.createElement(Y.default,null):o.default.createElement(v.default,null))):void 0}});return o.default.createElement("div",{className:this.props.classes.fullWidth},o.default.createElement("div",{className:this.props.classes.halfWidth1},B),o.default.createElement("div",{className:this.props.classes.halfWidth2},d))}else return B}}]),C}(A.default);D.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var g=(0,u.withStyles)(y)(D);r.default=g},38430:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=t(e(61318)),w=t(e(72952)),j=t(e(92636)),f=t(e(23962)),v=t(e(83358));function Y(y){var T=U();return function(){var g=(0,M.default)(y),L;if(T){var k=(0,M.default)(this).constructor;L=Reflect.construct(g,arguments,k)}else L=g.apply(this,arguments);return(0,O.default)(this,L)}}function U(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(y){return!1}}var A=function(T){return{}},_=function(y){(0,m.default)(D,y);var T=Y(D);function D(){return(0,a.default)(this,D),T.apply(this,arguments)}return(0,s.default)(D,[{key:"renderItem",value:function(L,k){var C=this;return x.default.createElement(u.default,{variant:"standard",fullWidth:!0,disabled:!!k,InputProps:{endAdornment:this.props.schema.copyToClipboard?x.default.createElement(w.default,{size:"small",onClick:function(b){(0,f.default)(C.getPattern(C.props.schema.pattern)),window.alert("Copied")}},x.default.createElement(v.default,null)):void 0},value:this.getPattern(this.props.schema.pattern),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),D}(j.default);_.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,schema:o.default.object,onError:o.default.func,onChange:o.default.func};var q=(0,c.withStyles)(A)(_);r.default=q},93529:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(10391)),j=t(e(46881)),f=t(e(93640)),v=t(e(75197)),Y=t(e(96489)),U=t(e(64263)),A=t(e(55289)),_=t(e(92636));function q(L){var k=y();return function(){var E=(0,x.default)(L),b;if(k){var P=(0,x.default)(this).constructor;b=Reflect.construct(E,arguments,P)}else b=E.apply(this,arguments);return(0,M.default)(this,b)}}function y(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(L){return!1}}var T=function(k){return{fullWidth:{width:"100%"}}},D=function(L){(0,O.default)(C,L);var k=q(C);function C(){return(0,a.default)(this,C),k.apply(this,arguments)}return(0,s.default)(C,[{key:"componentDidMount",value:function(){var b=this;(0,m.default)((0,x.default)(C.prototype),"componentDidMount",this).call(this);var P=_.default.getValue(this.props.data,this.props.attr);this.props.socket.getEnums("rooms").then(function(F){var p=Object.keys(F).map(function(B){return{value:b.props.schema.short?B.replace("enum.rooms.",""):B,label:b.getText(F[B].common.name),obj:F[B]}});b.setState({value:P,selectOptions:p})})}},{key:"renderItem",value:function(b,P,F){var p=this;if(!this.state.selectOptions)return null;var B=this.state.selectOptions.find(function(d){return d.value===p.state.value});return o.default.createElement(v.default,{variant:"standard",className:this.props.classes.fullWidth},o.default.createElement(w.default,null,this.getText(this.props.schema.label)),o.default.createElement(Y.default,{variant:"standard",error:!!b,disabled:!!P,value:this.state.value||"_",renderValue:function(z){return B?o.default.createElement(U.default,{value:B.obj,themeType:p.props.themeType,lang:A.default.getLanguage()}):""},onChange:function(z){p.setState({value:z.target.value==="_"?"":z.target.value},function(){return p.onChange(p.props.attr,p.state.value)})}},this.state.selectOptions.map(function(d){return o.default.createElement(j.default,{key:d.value,value:d.value,style:d.value===_.default.DIFFERENT_VALUE?{opacity:.5}:{}},o.default.createElement(U.default,{value:d.obj,themeType:p.props.themeType,lang:A.default.getLanguage()}))})),this.props.schema.help?o.default.createElement(f.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),C}(_.default);D.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var g=(0,u.withStyles)(T)(D);r.default=g},51016:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(319)),s=t(e(34575)),m=t(e(93913)),O=t(e(16525)),M=t(e(2205)),x=t(e(78585)),o=t(e(29754)),c=t(e(4819)),u=t(e(15854)),w=e(58503),j=t(e(10391)),f=t(e(46881)),v=t(e(93640)),Y=t(e(75197)),U=t(e(96489)),A=t(e(55289)),_=t(e(92636));function q(L){var k=y();return function(){var E=(0,o.default)(L),b;if(k){var P=(0,o.default)(this).constructor;b=Reflect.construct(E,arguments,P)}else b=E.apply(this,arguments);return(0,x.default)(this,b)}}function y(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(L){return!1}}var T=function(k){return{fullWidth:{width:"100%"}}},D=function(L){(0,M.default)(C,L);var k=q(C);function C(){return(0,s.default)(this,C),k.apply(this,arguments)}return(0,m.default)(C,[{key:"componentDidMount",value:function(){(0,O.default)((0,o.default)(C.prototype),"componentDidMount",this).call(this);var b=_.default.getValue(this.props.data,this.props.attr),P=JSON.parse(JSON.stringify(this.props.schema.options));Array.isArray(b)?(this.initialValue=(0,a.default)(b),P.unshift({label:A.default.t(_.default.DIFFERENT_LABEL),value:_.default.DIFFERENT_VALUE}),this.setState({value:_.default.DIFFERENT_VALUE,selectOptions:P})):this.setState({value:b,selectOptions:P})}},{key:"renderItem",value:function(b,P,F){var p=this;if(!this.state.selectOptions)return null;var B=(this.state.selectOptions||[]).filter(function(z){return z.hidden?p.props.custom?!p.executeCustom(z.hidden,p.props.data,p.props.customObj,p.props.instanceObj,p.props.arrayIndex,p.props.globalData):!p.execute(z.hidden,p.props.schema.default,p.props.data,p.props.arrayIndex,p.props.globalData):!0}),d=B.find(function(z){return z.value==p.state.value});return c.default.createElement(Y.default,{variant:"standard",className:this.props.classes.fullWidth,id:"jsonSelect_".concat(this.props.schema.attr,"_").concat(this.props.index||this.props.index===0?this.props.index:"")},c.default.createElement(j.default,null,this.getText(this.props.schema.label)),c.default.createElement(U.default,{variant:"standard",error:!!b,disabled:!!P,value:this.state.value||"_",renderValue:function(K){return p.getText(d==null?void 0:d.label,p.props.schema.noTranslation)},onChange:function(K){p.setState({value:K.target.value==="_"?"":K.target.value},function(){p.state.value===_.default.DIFFERENT_VALUE?p.onChange(p.props.attr,p.initialValue):p.onChange(p.props.attr,p.state.value)})}},B.map(function(z){return c.default.createElement(f.default,{key:z.value,value:z.value,style:z.value===_.default.DIFFERENT_VALUE?{opacity:.5}:{}},p.getText(z.label,p.props.schema.noTranslation))})),this.props.schema.help?c.default.createElement(v.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),C}(_.default);D.propTypes={socket:u.default.object.isRequired,themeType:u.default.string,themeName:u.default.string,style:u.default.object,className:u.default.string,data:u.default.object.isRequired,schema:u.default.object,onError:u.default.func,onChange:u.default.func};var g=(0,w.withStyles)(T)(D);r.default=g},36840:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(10391)),j=t(e(46881)),f=t(e(93640)),v=t(e(75197)),Y=t(e(96489)),U=t(e(61318)),A=t(e(62428)),_=t(e(60128)),q=t(e(23082)),y=t(e(27737)),T=t(e(50090)),D=t(e(55289)),g=t(e(92636));function L(P){var F=k();return function(){var B=(0,x.default)(P),d;if(F){var z=(0,x.default)(this).constructor;d=Reflect.construct(B,arguments,z)}else d=B.apply(this,arguments);return(0,M.default)(this,d)}}function k(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(P){return!1}}var C=function(F){return{fullWidth:{width:"100%"},menuPaper:{maxHeight:800}}},E=function(P){(0,O.default)(p,P);var F=L(p);function p(){return(0,a.default)(this,p),F.apply(this,arguments)}return(0,s.default)(p,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(p.prototype),"componentDidMount",this).call(this),this.askInstance()}},{key:"askInstance",value:function(){var d=this;if(this.props.alive){var z=this.props.schema.data;if(z===void 0&&this.props.schema.jsonData){z=this.getPattern(this.props.schema.jsonData,{},this.props.data);try{z=JSON.parse(z)}catch(Q){console.error("Cannot parse json data: "+z)}}z===void 0&&(z=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",z).then(function(Q){return d.setState({list:Q,context:d.getContext()})})}else{var K=g.default.getValue(this.props.data,this.props.attr);this.setState({value:K})}}},{key:"getContext",value:function(){var d=this,z={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(function(K){return z[K]=g.default.getValue(d.props.data,K)}),JSON.stringify(z)}},{key:"_getValue",value:function(){var d=this.state.value===null||this.state.value===void 0?g.default.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof d=="string"?d=[d]:d==null&&(d=[])),d}},{key:"renderItem",value:function(d,z,K){var Q=this;if(this.props.alive){var oe=this.getContext();oe!==this.state.context&&setTimeout(function(){return Q.askInstance()},300)}var De=this._getValue();if(this.props.alive)if(this.state.list){var Te=(this.state.list||[]).filter(function(le){return le.hidden?Q.props.custom?!Q.executeCustom(le.hidden,Q.props.schema.default,Q.props.data,Q.props.instanceObj,Q.props.arrayIndex,Q.props.globalData):!Q.execute(le.hidden,Q.props.schema.default,Q.props.data,Q.props.arrayIndex,Q.props.globalData):!0}),J=Te.find(function(le){return le.value===De});return o.default.createElement(v.default,{variant:"standard",className:this.props.classes.fullWidth},o.default.createElement(w.default,null,this.getText(this.props.schema.label)),o.default.createElement(Y.default,{variant:"standard",error:!!d,multiple:this.props.schema.multiple,disabled:!!z,value:De,MenuProps:this.props.schema.multiple?{classes:{paper:this.props.classes.menuPaper}}:void 0,renderValue:function(Re){return Q.props.schema.multiple?o.default.createElement(T.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},Re.map(function(ae){var be=Te.find(function(ke){return ke.value===ae});if(be||Q.props.schema.showAllValues!==!1){var Ce=(be==null?void 0:be.label)||ae;return o.default.createElement(y.default,{key:ae,label:Ce})}else return null})):(J==null?void 0:J.label)||Re},onChange:function(Re){Q.onChange(Q.props.attr,Re.target.value)}},Te.map(function(le,Re){return o.default.createElement(j.default,{key:Re,value:le.value},Q.props.schema.multiple?o.default.createElement(q.default,{checked:De.includes(le.value),onClick:function(){var be=JSON.parse(JSON.stringify(Q._getValue())),Ce=De.indexOf(le.value);Ce!==-1?be.splice(Ce,1):(be.push(le.value),be.sort()),Q.setState({value:be},function(){return Q.onChange(Q.props.attr,be)})}}):null,o.default.createElement(_.default,{primary:le.label}))})),this.props.schema.help?o.default.createElement(f.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}else return o.default.createElement(A.default,{size:"small"});else return this.props.schema.multiple||this.props.schema.manual===!1?D.default.t("ra_Cannot retrieve options, as instance is offline"):o.default.createElement(U.default,{variant:"standard",fullWidth:!0,value:De,error:!!d,disabled:!!z,onChange:function(Re){var ae=Re.target.value;Q.setState({value:ae},function(){return Q.onChange(Q.props.attr,(ae||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),p}(g.default);E.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,adapterName:c.default.string,alive:c.default.bool,instance:c.default.number,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var b=(0,u.withStyles)(C)(E);r.default=b},90374:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(50008)),s=t(e(34575)),m=t(e(93913)),O=t(e(16525)),M=t(e(2205)),x=t(e(78585)),o=t(e(29754)),c=t(e(4819)),u=t(e(15854)),w=e(58503),j=t(e(73319)),f=t(e(55289)),v=t(e(94475)),Y=t(e(99822)),U=t(e(8146)),A=t(e(41728)),_=t(e(92636)),q=t(e(10186)),y=t(e(40314)),T=t(e(54198));function D(E){var b=g();return function(){var F=(0,o.default)(E),p;if(b){var B=(0,o.default)(this).constructor;p=Reflect.construct(F,arguments,B)}else p=F.apply(this,arguments);return(0,x.default)(this,p)}}function g(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(E){return!1}}var L=function(b){return{fullWidth:{width:"100%"},icon:{width:24,height:24,marginRight:4}}},k=function(E){(0,M.default)(P,E);var b=D(P);function P(){return(0,s.default)(this,P),b.apply(this,arguments)}return(0,m.default)(P,[{key:"componentDidMount",value:function(){(0,O.default)((0,o.default)(P.prototype),"componentDidMount",this).call(this),this.setState({_error:"",_message:""})}},{key:"renderErrorDialog",value:function(){var p=this;return this.state._error?c.default.createElement(Y.default,{text:this.state._error,classes:void 0,onClose:function(){return p.setState({_error:""})}}):null}},{key:"renderMessageDialog",value:function(){var p=this;return this.state._message?c.default.createElement(U.default,{text:this.state._message,classes:void 0,onClose:function(){return p.setState({_error:""})}}):null}},{key:"_onClick",value:function(){var p=this;this.props.onCommandRunning(!0);var B=this.props.schema.data;if(B===void 0&&this.props.schema.jsonData){B=this.getPattern(this.props.schema.jsonData,{},this.props.data);try{B=JSON.parse(B)}catch(d){console.error("Cannot parse json data: "+B)}}B===void 0&&(B=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",B).then(function(d){if(d!=null&&d.error)if(p.props.schema.error&&p.props.schema.error[d.error]){var z=p.getText(p.props.schema.error[d.error]);d.args&&d.args.forEach(function(Q){return z=z.replace("%s",Q)}),p.setState({_error:z})}else p.setState({_error:d.error?f.default.t(d.error):f.default.t("ra_Error")});else if(d!=null&&d.result&&p.props.schema.result&&p.props.schema.result[d.result]){var K=p.getText(p.props.schema.result[d.result]);d.args&&d.args.forEach(function(Q){return K=K.replace("%s",Q)}),window.alert(K)}else d!=null&&d.result?window.alert((0,a.default)(d.result)==="object"?JSON.stringify(d.result):d.result):window.alert(f.default.t("ra_Ok"))}).catch(function(d){p.props.schema.error&&p.props.schema.error[d.toString()]?p.setState({_error:p.getText(p.props.schema.error[d.toString()])}):p.setState({_error:f.default.t(d.toString())||f.default.t("ra_Error")})}).then(function(){return p.props.onCommandRunning(!1)})}},{key:"renderConfirmDialog",value:function(){var p=this;if(!this.state.confirmDialog)return null;var B=this.state.confirmData||this.props.schema.confirm,d=null;return B.type==="warning"?d=c.default.createElement(q.default,null):B.type==="error"?d=c.default.createElement(y.default,null):B.type==="info"&&(d=c.default.createElement(T.default,null)),c.default.createElement(A.default,{title:this.getText(B.title)||f.default.t("ra_Please confirm"),text:this.getText(B.text),ok:this.getText(B.ok)||f.default.t("ra_Ok"),cancel:this.getText(B.cancel)||f.default.t("ra_Cancel"),icon:d,onClose:function(K){return p.setState({confirmDialog:!1},function(){return K&&p._onClick()})}})}},{key:"renderItem",value:function(p,B,d){var z=this;return c.default.createElement("div",{className:this.props.classes.fullWidth},c.default.createElement(j.default,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",className:this.props.classes.fullWidth,disabled:B,onClick:function(){z.props.schema.confirm?z.setState({confirmDialog:!0}):z._onClick()}},this.props.schema.icon?c.default.createElement(v.default,{src:this.props.schema.icon,className:this.props.classes.icon}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation)),this.renderErrorDialog(),this.renderMessageDialog())}}]),P}(_.default);k.propTypes={socket:u.default.object.isRequired,themeType:u.default.string,themeName:u.default.string,style:u.default.object,className:u.default.string,data:u.default.object.isRequired,schema:u.default.object,onError:u.default.func,onChange:u.default.func,adapterName:u.default.string,instance:u.default.number,commandRunning:u.default.bool,onCommandRunning:u.default.func};var C=(0,w.withStyles)(L)(k);r.default=C},8273:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),s=t(e(48926)),m=t(e(34575)),O=t(e(93913)),M=t(e(2205)),x=t(e(78585)),o=t(e(29754)),c=t(e(4819)),u=t(e(15854)),w=e(58503),j=t(e(73319)),f=t(e(55289)),v=t(e(94475)),Y=t(e(41728)),U=t(e(92636)),A=t(e(10186)),_=t(e(40314)),q=t(e(54198));function y(k){var C=T();return function(){var b=(0,o.default)(k),P;if(C){var F=(0,o.default)(this).constructor;P=Reflect.construct(b,arguments,F)}else P=b.apply(this,arguments);return(0,x.default)(this,P)}}function T(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(k){return!1}}var D=function(C){return{fullWidth:{width:"100%"},icon:{width:24,height:24,marginRight:4}}},g=function(k){(0,M.default)(E,k);var C=y(E);function E(){return(0,m.default)(this,E),C.apply(this,arguments)}return(0,O.default)(E,[{key:"_onClick",value:function(){var b=(0,s.default)(a.default.mark(function F(){var p,B,d,z;return a.default.wrap(function(Q){for(;;)switch(Q.prev=Q.next){case 0:if(p=this.props.schema.val,!(typeof p=="string"&&p.includes("${"))){Q.next=7;break}return p=this.getPattern(p),Q.next=5,this.props.socket.getObject(this.props.schema.id);case 5:z=Q.sent,(z==null||(B=z.common)===null||B===void 0?void 0:B.type)==="number"?p=parseFloat(p):(z==null||(d=z.common)===null||d===void 0?void 0:d.type)==="boolean"&&(p=p==="true"||p===!0||p==="1"||p===1);case 7:return Q.prev=7,Q.next=10,this.props.socket.setState(this.props.schema.id,{val:p,ack:!!this.props.schema.ack});case 10:this.props.schema.okText&&window.alert(this.getText(this.props.schema.okText)),Q.next=16;break;case 13:Q.prev=13,Q.t0=Q.catch(7),this.props.schema.error&&this.props.schema.error[Q.t0.toString()]?window.alert(this.getText(this.props.schema.error[Q.t0.toString()])):window.alert(f.default.t(Q.t0.toString())||f.default.t("ra_Error"));case 16:case"end":return Q.stop()}},F,this,[[7,13]])}));function P(){return b.apply(this,arguments)}return P}()},{key:"renderConfirmDialog",value:function(){var P=this;if(!this.state.confirmDialog)return null;var F=this.state.confirmData||this.props.schema.confirm,p=null;return F.type==="warning"?p=c.default.createElement(A.default,null):F.type==="error"?p=c.default.createElement(_.default,null):F.type==="info"&&(p=c.default.createElement(q.default,null)),c.default.createElement(Y.default,{title:this.getText(F.title)||f.default.t("ra_Please confirm"),text:this.getText(F.text),ok:this.getText(F.ok)||f.default.t("ra_Ok"),cancel:this.getText(F.cancel)||f.default.t("ra_Cancel"),icon:p,onClose:function(d){return P.setState({confirmDialog:!1},(0,s.default)(a.default.mark(function z(){return a.default.wrap(function(Q){for(;;)switch(Q.prev=Q.next){case 0:if(Q.t0=d,!Q.t0){Q.next=5;break}return Q.next=4,P._onClick();case 4:Q.t0=Q.sent;case 5:return Q.abrupt("return",Q.t0);case 6:case"end":return Q.stop()}},z)})))}})}},{key:"renderItem",value:function(P,F,p){var B=this;return c.default.createElement(j.default,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",className:this.props.classes.fullWidth,disabled:F,onClick:(0,s.default)(a.default.mark(function d(){return a.default.wrap(function(K){for(;;)switch(K.prev=K.next){case 0:if(!B.props.schema.confirm){K.next=4;break}B.setState({confirmDialog:!0}),K.next=6;break;case 4:return K.next=6,B._onClick();case 6:case"end":return K.stop()}},d)}))},this.props.schema.icon?c.default.createElement(v.default,{src:this.props.schema.icon,className:this.props.classes.icon}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation))}}]),E}(U.default);g.propTypes={socket:u.default.object.isRequired,themeType:u.default.string,themeName:u.default.string,style:u.default.object,className:u.default.string,data:u.default.object.isRequired,schema:u.default.object,onError:u.default.func,onChange:u.default.func,adapterName:u.default.string,instance:u.default.number,commandRunning:u.default.bool,onCommandRunning:u.default.func};var L=(0,w.withStyles)(D)(g);r.default=L},25747:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=e(94427),j=t(e(92636));function f(_){var q=v();return function(){var T=(0,x.default)(_),D;if(q){var g=(0,x.default)(this).constructor;D=Reflect.construct(T,arguments,g)}else D=T.apply(this,arguments);return(0,M.default)(this,D)}}function v(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(_){return!1}}var Y=function(q){return{fullWidth:{width:"100%"},slider:{marginLeft:10,marginRight:10,width:"calc(100% - 20px)"}}},U=function(_){(0,O.default)(y,_);var q=f(y);function y(){return(0,a.default)(this,y),q.apply(this,arguments)}return(0,s.default)(y,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(y.prototype),"componentDidMount",this).call(this);var D=j.default.getValue(this.props.data,this.props.attr);this.setState({_value:D})}},{key:"renderItem",value:function(D,g,L){var k=this,C=this.props.schema.min||0,E=this.props.schema.max||100,b=this.props.schema.unit||"",P=[{value:C,label:C+b},{value:E,label:E+b}];return o.default.createElement(w.Box,{className:this.props.classes.fullWidth},this.props.schema.label?o.default.createElement(w.Typography,{gutterBottom:!0},this.getText(this.props.schema.label)):null,o.default.createElement(w.Slider,{className:this.props.classes.slider,value:this.state._value,getAriaValueText:function(p){return p+b},step:this.props.schema.step||(E-C)/100,valueLabelDisplay:"auto",marks:P,disabled:!!g,error:D||"",onChange:function(p){var B=p.target.value;k.setState({_value:B},function(){return k.onChange(k.props.attr,B)})}}),this.props.schema.help?o.default.createElement(w.Typography,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}],[{key:"getDerivedStateFromProps",value:function(D,g){if(D.schema.min!==void 0&&D.schema.min<0||D.schema.max!==void 0&&D.schema.max<0)return null;var L=j.default.getValue(D.data,D.attr);return L==null||L.toString()!==parseFloat(g._value).toString()?{_value:L}:null}}]),y}(j.default);U.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var A=(0,u.withStyles)(Y)(U);r.default=A},1121:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=t(e(33919)),w=t(e(92636));function j(A){var _=f();return function(){var y=(0,M.default)(A),T;if(_){var D=(0,M.default)(this).constructor;T=Reflect.construct(y,arguments,D)}else T=y.apply(this,arguments);return(0,O.default)(this,T)}}function f(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(A){return!1}}var v=function(_){return{fullWidth:{width:"100%",backgroundColor:_.palette.mode==="dark"?"#FFF":"#000",borderStyle:"hidden"},primary:{backgroundColor:_.palette.primary.main},secondary:{backgroundColor:_.palette.secondary.main}}},Y=function(A){(0,m.default)(q,A);var _=j(q);function q(){return(0,a.default)(this,q),_.apply(this,arguments)}return(0,s.default)(q,[{key:"renderItem",value:function(){return x.default.createElement("hr",{className:u.default.clsx(this.props.classes.fullWidth,this.props.schema.color==="primary"&&this.props.classes.primary,this.props.schema.color==="secondary"&&this.props.classes.secondary),style:{height:this.props.schema.color?this.props.schema.height||2:this.props.schema.height||1,backgroundColor:this.props.schema.color!=="primary"&&this.props.schema.color!=="secondary"&&this.props.schema.color?this.props.schema.color:void 0}})}}]),q}(w.default);Y.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,schema:o.default.object,onError:o.default.func,onChange:o.default.func};var U=(0,c.withStyles)(v)(Y);r.default=U},31297:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=t(e(92636));function w(U){var A=j();return function(){var q=(0,M.default)(U),y;if(A){var T=(0,M.default)(this).constructor;y=Reflect.construct(q,arguments,T)}else y=q.apply(this,arguments);return(0,O.default)(this,y)}}function j(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(U){return!1}}var f=function(A){return{header:{width:"100%",background:A.palette.primary.main,color:A.palette.primary.contrastText,padding:"4px !important",borderRadius:3,marginBlockEnd:0,marginBlockStart:0}}},v=function(U){(0,m.default)(_,U);var A=w(_);function _(){return(0,a.default)(this,_),A.apply(this,arguments)}return(0,s.default)(_,[{key:"renderItem",value:function(){switch((this.props.schema.size||5).toString()){case"1":return x.default.createElement("h1",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"2":return x.default.createElement("h2",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"3":return x.default.createElement("h3",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"4":return x.default.createElement("h4",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"5":default:return x.default.createElement("h5",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation))}}}]),_}(u.default);v.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,schema:o.default.object,onError:o.default.func,onChange:o.default.func};var Y=(0,c.withStyles)(f)(v);r.default=Y},50971:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=t(e(92636));function w(U){var A=j();return function(){var q=(0,M.default)(U),y;if(A){var T=(0,M.default)(this).constructor;y=Reflect.construct(q,arguments,T)}else y=q.apply(this,arguments);return(0,O.default)(this,y)}}function j(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(U){return!1}}var f=function(A){return{fullWidth:{height:"100%",width:"100%"}}},v=function(U){(0,m.default)(_,U);var A=w(_);function _(){return(0,a.default)(this,_),A.apply(this,arguments)}return(0,s.default)(_,[{key:"renderItem",value:function(){var y=this,T=this.props.schema.src;return T&&!T.startsWith(".")&&!T.startsWith("http")&&!T.startsWith("adapter/".concat(this.props.adapterName,"/"))&&!T.startsWith("./adapter/".concat(this.props.adapterName,"/"))&&(T="adapter/".concat(this.props.adapterName,"/").concat(T)),x.default.createElement("img",{className:this.props.classes.fullWidth,src:T,onClick:this.props.schema.href?function(){return y.props.schema.href&&window.open(y.props.schema.href,"_blank")}:null,alt:""})}}]),_}(u.default);v.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,schema:o.default.object,onError:o.default.func,onChange:o.default.func};var Y=(0,c.withStyles)(f)(v);r.default=Y},31590:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=t(e(73319)),w=t(e(94475)),j=t(e(92636));function f(_){var q=v();return function(){var T=(0,M.default)(_),D;if(q){var g=(0,M.default)(this).constructor;D=Reflect.construct(T,arguments,g)}else D=T.apply(this,arguments);return(0,O.default)(this,D)}}function v(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(_){return!1}}var Y=function(q){return{fullWidth:{height:"100%",width:"100%"}}},U=function(_){(0,m.default)(y,_);var q=f(y);function y(){return(0,a.default)(this,y),q.apply(this,arguments)}return(0,s.default)(y,[{key:"renderItem",value:function(D,g){var L=this;return this.props.schema.button?x.default.createElement(u.default,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",className:this.props.classes.fullWidth,disabled:g,onClick:this.props.schema.href?function(){var k=L.props.schema.href?L.getText(L.props.schema.href,!0):null;k&&window.open(k,"_blank")}:null},this.props.schema.icon?x.default.createElement(w.default,{src:this.props.schema.icon,className:this.props.classes.icon}):null,this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation)):x.default.createElement("span",{onClick:this.props.schema.href?function(){var k=L.props.schema.href?L.getText(L.props.schema.href,!0):null;k&&window.open(k,"_blank")}:null},this.getText(this.props.schema.text||this.props.schema.label))}}]),y}(j.default);U.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,schema:o.default.object,onError:o.default.func,onChange:o.default.func};var A=(0,c.withStyles)(Y)(U);r.default=A},91008:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var s=t(e(87757)),m=t(e(319)),O=t(e(48926)),M=t(e(34575)),x=t(e(93913)),o=t(e(81506)),c=t(e(16525)),u=t(e(2205)),w=t(e(78585)),j=t(e(29754)),f=t(e(59713)),v=p(e(4819)),Y=t(e(15854)),U=e(58503),A=t(e(23060)),_=t(e(93640)),q=e(94427),y=t(e(17773)),T=t(e(91495)),D=t(e(62976)),g=t(e(16273)),L=t(e(57803)),k=t(e(40141)),C=t(e(55423)),E=t(e(55289)),b=t(e(92636)),P=t(e(86442));function F(Te){if(typeof WeakMap!="function")return null;var J=new WeakMap,le=new WeakMap;return(F=function(ae){return ae?le:J})(Te)}function p(Te,J){if(!J&&Te&&Te.__esModule)return Te;if(Te===null||a(Te)!=="object"&&typeof Te!="function")return{default:Te};var le=F(J);if(le&&le.has(Te))return le.get(Te);var Re={},ae=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var be in Te)if(be!=="default"&&Object.prototype.hasOwnProperty.call(Te,be)){var Ce=ae?Object.getOwnPropertyDescriptor(Te,be):null;Ce&&(Ce.get||Ce.set)?Object.defineProperty(Re,be,Ce):Re[be]=Te[be]}return Re.default=Te,le&&le.set(Te,Re),Re}function B(Te){var J=d();return function(){var Re=(0,j.default)(Te),ae;if(J){var be=(0,j.default)(this).constructor;ae=Reflect.construct(Re,arguments,be)}else ae=Re.apply(this,arguments);return(0,w.default)(this,ae)}}function d(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(Te){return!1}}var z=function(J){return{fullWidth:{width:"100%"},root:{width:"100%"},paper:{width:"100%",marginBottom:J.spacing(2),backgroundColor:"rgba(255, 255, 255, 0.1)"},headerText:{width:"100%"},table:{minWidth:750},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},addIcon:{display:"flex",justifyContent:"space-between"},highlight:J.palette.mode==="light"?{color:J.palette.secondary.main}:{color:J.palette.text.primary,backgroundColor:J.palette.secondary.dark},title:{flex:"1 1 100%"},rootTool:{paddingLeft:J.spacing(2),paddingRight:J.spacing(1)},silver:{opacity:.2},flex:{display:"flex"},filteredOut:{padding:10,display:"flex",textAlign:"center"},buttonEmpty:{width:30,display:"inline-block"},buttonCell:{whiteSpace:"nowrap"}}};function K(Te,J,le){J=J||"key";var Re=[];return Object.keys(Te).forEach(function(ae){var be={};be[J]=ae,le?(be[le]=Te[ae],Re.push(be)):Re.push(Object.assign(be,Te[ae]))}),Re}function Q(Te,J,le){J=J||"key";var Re={};return Te.forEach(function(ae){var be=ae[J];be==null&&(be=""),delete ae[J],le?Re[be]=ae[le]:Re[be]=ae}),Re}var oe=function(Te){(0,u.default)(le,Te);var J=B(le);function le(Re){var ae;return(0,M.default)(this,le),ae=J.call(this,Re),(0,f.default)((0,o.default)(ae),"handleRequestSort",function(be){var Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,ke=ae.state,qe=ke.order,Ke=ke.orderBy;if(Ke){var st=Ke===be&&qe==="asc",H=Ce?qe:st?"desc":"asc",te=ae.stableSort(H,be);ae.setState({order:H,orderBy:be,iteration:ae.state.iteration+1e4},function(){return ae.applyFilter(!1,te)})}}),(0,f.default)((0,o.default)(ae),"stableSort",function(be,Ce){var ke=ae.state.value,qe=le.getComparator(be,Ce),Ke=ke.map(function(st,H){return[st,H]});return Ke.sort(function(st,H){var te=qe(st[0],H[0]);return te!==0?te:st[1]-H[1]}),Ke.map(function(st){return st[0]})}),(0,f.default)((0,o.default)(ae),"onDelete",function(be){return function(){var Ce=JSON.parse(JSON.stringify(ae.state.value)),ke=JSON.parse(JSON.stringify(ae.state.visibleValue));Ce.splice(be,1);var qe=ke.indexOf(be);qe!==-1&&(ke.splice(qe,1),ke=ke.map(function(Ke){return Ke>be?Ke-1:Ke})),ae.setState({value:Ce,visibleValue:ke,iteration:ae.state.iteration+1e4},function(){return ae.onChangeWrapper(Ce)})}}),(0,f.default)((0,o.default)(ae),"onChangeWrapper",function(be){var Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;ae.typingTimer&&clearTimeout(ae.typingTimer),ae.typingTimer=setTimeout(function(ke,qe){if(ae.typingTimer=null,ae.props.schema.objKeyName){var Ke=Q(JSON.parse(JSON.stringify(ke)),ae.props.schema.objKeyName,ae.props.schema.objValueName);ae.onChange(ae.props.attr,Ke)}else ae.onChange(ae.props.attr,ke);qe&&(ae.applyFilter(!1,ke),ae.handleRequestSort(ae.state.orderBy,!0))},300,be,Ce)}),(0,f.default)((0,o.default)(ae),"onAdd",function(){var be=ae.props.schema,Ce=JSON.parse(JSON.stringify(ae.state.value)),ke=JSON.parse(JSON.stringify(ae.state.visibleValue)),qe=be.items&&be.items.reduce(function(Ke,st){var H;return st.defaultFunc?ae.props.custom?H=st.defaultFunc?ae.executeCustom(st.defaultFunc,ae.props.schema.default,ae.props.data,ae.props.instanceObj,Ce.length,ae.props.data):ae.props.schema.default:H=st.defaultFunc?ae.execute(st.defaultFunc,ae.props.schema.default,ae.props.data,Ce.length,ae.props.data):ae.props.schema.default:H=st.default===void 0?null:st.default,Ke[st.attr]=H,Ke},{});Ce.push(qe),ke.push(Ce.length-1),ae.setState({value:Ce,visibleValue:ke},function(){return ae.onChangeWrapper(Ce)})}),(0,f.default)((0,o.default)(ae),"applyFilter",function(){var be=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Ce=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ae.state.value,ke=Ce.map(function(qe,Ke){return Ke});Object.keys(ae.filterRefs).forEach(function(qe){var Ke,st=(Ke=ae.filterRefs[qe].current)===null||Ke===void 0?void 0:Ke.children[0].children[0].value;!be&&st?(st=st.toLowerCase(),ke=ke.filter(function(H){return Ce[H]&&Ce[H][qe]&&Ce[H][qe].toLowerCase().includes(st)})):ae.filterRefs[qe].current&&(ae.filterRefs[qe].current.children[0].children[0].value="")}),JSON.stringify(ke)!==JSON.stringify(ae.state.visibleValue)&&ae.setState({visibleValue:ke})}),ae.filterRefs={},ae.props.schema.items=ae.props.schema.items||[],ae.props.schema.items.forEach(function(be){be.filter&&(ae.filterRefs[be.attr]=(0,v.createRef)())}),ae}return(0,x.default)(le,[{key:"componentDidMount",value:function(){var Re=(0,O.default)(s.default.mark(function be(){var Ce,ke;return s.default.wrap(function(Ke){for(;;)switch(Ke.prev=Ke.next){case 0:(0,c.default)((0,j.default)(le.prototype),"componentDidMount",this).call(this),Ce=b.default.getValue(this.props.data,this.props.attr)||[],this.props.schema.objKeyName&&(Ce=K(Ce,this.props.schema.objKeyName,this.props.schema.objValueName)),Array.isArray(Ce)||(Ce=[]),ke=Ce.map(function(st,H){return H}),this.setState({value:Ce,visibleValue:ke,orderBy:"",order:"asc",iteration:0,filterOn:[]});case 6:case"end":return Ke.stop()}},be,this)}));function ae(){return Re.apply(this,arguments)}return ae}()},{key:"componentWillUnmount",value:function(){this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=null,(0,c.default)((0,j.default)(le.prototype),"componentWillUnmount",this).call(this)}},{key:"itemTable",value:function(ae,be,Ce){var ke=this,qe=this.state,Ke=qe.value,st=qe.systemConfig,H=this.props.schema,te=H.items&&H.items.find(function(he){return he.attr===ae});if(!te)return null;var Z={items:(0,f.default)({},ae,te)};return v.default.createElement(P.default,{index:Ce+this.state.iteration,arrayIndex:Ce,globalData:this.props.data,socket:this.props.socket,adapterName:this.props.adapterName,instance:this.props.instance,common:this.props.common,alive:this.props.alive,themeType:this.props.themeType,themeName:this.props.themeName,data:be,table:!0,custom:!0,schema:Z,systemConfig:st,customs:this.props.customs,onChange:function(se,ce){var Ie=JSON.parse(JSON.stringify(Ke));Ie[Ce][se]=ce,ke.setState({value:Ie},function(){return ke.onChangeWrapper(Ie,!0)})},onError:function(se,ce){return ke.onError(se,ce)}})}},{key:"enhancedTableHead",value:function(ae){var be=this,Ce=this.props,ke=Ce.schema,qe=Ce.classes,Ke=this.state,st=Ke.order,H=Ke.orderBy;return v.default.createElement(q.TableHead,null,v.default.createElement(q.TableRow,null,ke.items&&ke.items.map(function(te){var Z,he,se,ce;return v.default.createElement(q.TableCell,{style:{width:(typeof te.width=="string"&&te.width.endsWith("%"),te.width)},key:te.attr,align:"left",sortDirection:H===te.attr?st:!1},v.default.createElement("div",{className:qe.flex},te.sort&&v.default.createElement(q.TableSortLabel,{active:!0,className:(0,A.default)(H!==te.attr&&qe.silver),direction:H===te.attr?st:"asc",onClick:function(){return be.handleRequestSort(te.attr)}}),te.filter&&be.state.filterOn.includes(te.attr)?v.default.createElement(q.TextField,{variant:"standard",ref:be.filterRefs[te.attr],onChange:function(){return be.applyFilter()},title:E.default.t("ra_You can filter entries by entering here some text"),InputProps:{endAdornment:((Z=be.filterRefs[te.attr])===null||Z===void 0||(he=Z.current)===null||he===void 0||(se=he.children[0])===null||se===void 0||(ce=se.children[0])===null||ce===void 0?void 0:ce.value)&&v.default.createElement(q.InputAdornment,{position:"end"},v.default.createElement(q.IconButton,{size:"small",onClick:function(){be.filterRefs[te.attr].current.children[0].children[0].value="",be.applyFilter()}},v.default.createElement(D.default,null)))},fullWidth:!0,placeholder:be.getText(te.title)}):v.default.createElement("span",{className:be.props.classes.headerText},be.getText(te.title)),te.filter?v.default.createElement(q.IconButton,{title:E.default.t("ra_Show/hide filter input"),size:"small",onClick:function(){var We=(0,m.default)(be.state.filterOn),_e=be.state.filterOn.indexOf(te.attr);_e===-1?We.push(te.attr):We.splice(_e,1),be.setState({filterOn:We},function(){_e&&be.filterRefs[te.attr].current.children[0].children[0].value&&(be.filterRefs[te.attr].current.children[0].children[0].value="",be.applyFilter())})}},be.state.filterOn.includes(te.attr)?v.default.createElement(C.default,null):v.default.createElement(k.default,null)):null))}),!ke.noDelete&&v.default.createElement(q.TableCell,{style:{paddingLeft:20,paddingRight:20,width:ae,textAlign:"right"},padding:"checkbox"},v.default.createElement(q.IconButton,{disabled:!0,size:"small"},v.default.createElement(T.default,null)))))}},{key:"isAnyFilterSet",value:function(){var ae=this;return Object.keys(this.filterRefs).find(function(be){var Ce;return(Ce=ae.filterRefs[be].current)===null||Ce===void 0?void 0:Ce.children[0].children[0].value})}},{key:"onMoveUp",value:function(ae){var be=this,Ce=JSON.parse(JSON.stringify(this.state.value)),ke=Ce[ae];Ce.splice(ae,1),Ce.splice(ae-1,0,ke),this.setState({value:Ce,iteration:this.state.iteration+1e4},function(){return be.onChangeWrapper(Ce)})}},{key:"onMoveDown",value:function(ae){var be=this,Ce=JSON.parse(JSON.stringify(this.state.value)),ke=Ce[ae];Ce.splice(ae,1),Ce.splice(ae+1,0,ke),this.setState({value:Ce,iteration:this.state.iteration+1e4},function(){return be.onChangeWrapper(Ce)})}},{key:"renderItem",value:function(ae,be,Ce){var ke=this,qe=this.props,Ke=qe.classes,st=qe.schema,H=this.state,te=H.value,Z=H.visibleValue;if(!te)return null;var he=this.isAnyFilterSet();return v.default.createElement(q.Paper,{className:Ke.paper},v.default.createElement("div",{className:Ke.addIcon},st.label?v.default.createElement(q.Toolbar,{variant:"dense",className:Ke.rootTool},v.default.createElement(q.Typography,{className:Ke.title,variant:"h6",id:"tableTitle",component:"div"},this.getText(st.label))):null,st.noDelete?null:v.default.createElement(q.Tooltip,{title:he?E.default.t("ra_Cannot add items with set filter"):E.default.t("ra_Add row")},v.default.createElement("span",null,v.default.createElement(q.IconButton,{disabled:!!he&&!this.props.schema.allowAddByFilter,onClick:this.onAdd},v.default.createElement(y.default,null))))),v.default.createElement(q.TableContainer,null,v.default.createElement(q.Table,{className:Ke.table,size:"small"},this.enhancedTableHead(!he&&!this.state.orderBy?120:64),v.default.createElement(q.TableBody,null,Z.map(function(se,ce){return v.default.createElement(q.TableRow,{hover:!0,key:se},st.items&&st.items.map(function(Ie){return v.default.createElement(q.TableCell,{key:Ie.attr+"_"+se,align:"left"},ke.itemTable(Ie.attr,te[se],se))}),!st.noDelete&&v.default.createElement(q.TableCell,{align:"left",className:Ke.buttonCell},!he&&!ke.state.orderBy?ce?v.default.createElement(q.Tooltip,{title:E.default.t("ra_Move up")},v.default.createElement(q.IconButton,{size:"small",onClick:function(){return ke.onMoveUp(se)}},v.default.createElement(g.default,null))):v.default.createElement("div",{className:Ke.buttonEmpty}):null,!he&&!ke.state.orderBy?ceae[Ce]?1:0}},{key:"getComparator",value:function(ae,be){return ae==="desc"?function(Ce,ke){return le.descendingComparator(Ce,ke,be)}:function(Ce,ke){return-le.descendingComparator(Ce,ke,be)}}}]),le}(b.default);oe.propTypes={socket:Y.default.object.isRequired,themeType:Y.default.string,themeName:Y.default.string,style:Y.default.object,className:Y.default.string,data:Y.default.object.isRequired,schema:Y.default.object,onError:Y.default.func,onChange:Y.default.func};var De=(0,U.withStyles)(z)(oe);r.default=De},95212:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=e(58503),u=t(e(54977)),w=t(e(84141)),j=t(e(92636)),f=t(e(86442));function v(q){var y=Y();return function(){var D=(0,M.default)(q),g;if(y){var L=(0,M.default)(this).constructor;g=Reflect.construct(D,arguments,L)}else g=D.apply(this,arguments);return(0,O.default)(this,g)}}function Y(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(q){return!1}}var U=function(y){return{tabs:{height:"100%",width:"100%"},panel:{height:"calc(100% - 48px)",width:"100%",display:"block"}}},A=function(q){(0,m.default)(T,q);var y=v(T);function T(D){var g;(0,a.default)(this,T),g=y.call(this,D);var L=(window._localStorage||window.localStorage).getItem((g.props.dialogName||"App")+"."+g.props.adapterName)||Object.keys(g.props.schema.items)[0];return Object.keys(g.props.schema.items).includes(L)||(L=Object.keys(g.props.schema.items)[0]),g.state={tab:L},g}return(0,s.default)(T,[{key:"render",value:function(){var g=this,L=this.props.schema.items;return x.default.createElement("div",{className:this.props.classes.tabs},x.default.createElement(u.default,{value:this.state.tab,onChange:function(C,E){(window._localStorage||window.localStorage).setItem((g.props.dialogName||"App")+"."+g.props.adapterName,E),g.setState({tab:E})}},Object.keys(L).map(function(k){var C;if(g.props.custom){var E=g.executeCustom(L[k].hidden,g.props.data,g.props.customObj,g.props.instanceObj);if(E)return null;C=g.executeCustom(L[k].disabled,g.props.data,g.props.customObj,g.props.instanceObj)}else{var b=g.execute(L[k].hidden,!1);if(b)return null;C=g.execute(L[k].disabled,!1)}return x.default.createElement(w.default,{wrapped:!0,disabled:C,key:k,value:k,label:g.getText(L[k].label)})})),x.default.createElement(f.default,{isParentTab:!0,key:this.state.tab,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,onCommandRunning:this.props.onCommandRunning,commandRunning:this.props.commandRunning,className:this.props.classes.panel,socket:this.props.socket,adapterName:this.props.adapterName,instance:this.props.instance,common:this.props.common,customs:this.props.customs,alive:this.props.alive,themeType:this.props.themeType,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,systemConfig:this.props.systemConfig,onError:this.props.onError,onChange:this.props.onChange,multiEdit:this.props.multiEdit,dateFormat:this.props.dateFormat,isFloatComma:this.props.isFloatComma,imagePrefix:this.props.imagePrefix,changeLanguage:this.props.changeLanguage,forceUpdate:this.props.forceUpdate,registerOnForceUpdate:this.props.registerOnForceUpdate,customObj:this.props.customObj,instanceObj:this.props.instanceObj,custom:this.props.custom,schema:L[this.state.tab]}))}}]),T}(j.default);A.propTypes={socket:o.default.object.isRequired,themeType:o.default.string,themeName:o.default.string,style:o.default.object,className:o.default.string,data:o.default.object.isRequired,originalData:o.default.object,schema:o.default.object,onError:o.default.func,onChange:o.default.func,customs:o.default.object,adapterName:o.default.string,instance:o.default.number,commandRunning:o.default.bool,onCommandRunning:o.default.func,dateFormat:o.default.string,isFloatComma:o.default.bool,multiEdit:o.default.bool,imagePrefix:o.default.string,customObj:o.default.object,instanceObj:o.default.object,custom:o.default.bool,registerOnForceUpdate:o.default.func.isRequired,forceUpdate:o.default.func.isRequired,changeLanguage:o.default.func,systemConfig:o.default.object,alive:o.default.bool,common:o.default.object};var _=(0,c.withStyles)(U)(A);r.default=_},90957:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(67154)),s=t(e(319)),m=t(e(34575)),O=t(e(93913)),M=t(e(16525)),x=t(e(2205)),o=t(e(78585)),c=t(e(29754)),u=t(e(4819)),w=t(e(15854)),j=e(58503),f=e(94427),v=t(e(55289)),Y=t(e(92636));function U(T){var D=A();return function(){var L=(0,c.default)(T),k;if(D){var C=(0,c.default)(this).constructor;k=Reflect.construct(L,arguments,C)}else k=L.apply(this,arguments);return(0,o.default)(this,k)}}function A(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(T){return!1}}var _=function(D){return{indeterminate:{opacity:.5}}},q=function(T){(0,x.default)(g,T);var D=U(g);function g(){return(0,m.default)(this,g),D.apply(this,arguments)}return(0,O.default)(g,[{key:"componentDidMount",value:function(){(0,M.default)((0,c.default)(g.prototype),"componentDidMount",this).call(this);var k=Y.default.getValue(this.props.data,this.props.attr);this.setState({value:k})}},{key:"renderItem",value:function(k,C,E){var b=this,P=Array.isArray(this.state.value)||this.state.value===Y.default.DIFFERENT_VALUE;if(P){var F=(0,s.default)(this.state.value).map(function(p){return{label:p.toString(),value:p}});return F.unshift({label:v.default.t(Y.default.DIFFERENT_LABEL),value:Y.default.DIFFERENT_VALUE}),u.default.createElement(f.Autocomplete,{className:this.props.classes.indeterminate,fullWidth:!0,value:F[0],getOptionSelected:function(B,d){return B.label===d.label},onChange:function(B,d){return b.onChange(b.props.attr,d?d.value:"")},options:F,getOptionLabel:function(B){return B.label},renderInput:function(B){return u.default.createElement(f.TextField,(0,a.default)({variant:"standard"},B,{error:!!k,placeholder:b.getText(b.props.schema.placeholder),label:b.getText(b.props.schema.label),helperText:b.renderHelp(b.props.schema.help,b.props.schema.helpLink,b.props.schema.noTranslation),disabled:!!C}))}})}else return u.default.createElement(f.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!k,disabled:!!C,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(B){var d=B.target.value;b.setState({value:d},function(){return b.onChange(b.props.attr,b.props.schema.trim===!1?d:(d||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}],[{key:"getDerivedStateFromProps",value:function(k,C){var E=Y.default.getValue(k.data,k.attr);return E==null||E.toString().trim()!==(C.value||"").toString().trim()?{value:E}:null}}]),g}(Y.default);q.propTypes={socket:w.default.object.isRequired,themeType:w.default.string,themeName:w.default.string,style:w.default.object,className:w.default.string,data:w.default.object.isRequired,schema:w.default.object,onError:w.default.func,onChange:w.default.func};var y=(0,j.withStyles)(_)(q);r.default=y},59007:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(61318)),j=t(e(72952)),f=t(e(23962)),v=t(e(83358)),Y=t(e(92636));function U(T){var D=A();return function(){var L=(0,x.default)(T),k;if(D){var C=(0,x.default)(this).constructor;k=Reflect.construct(L,arguments,C)}else k=L.apply(this,arguments);return(0,M.default)(this,k)}}function A(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(T){return!1}}var _=function(D){return{fullWidth:{width:"100%"}}},q=function(T){(0,O.default)(g,T);var D=U(g);function g(){return(0,a.default)(this,g),D.apply(this,arguments)}return(0,s.default)(g,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(g.prototype),"componentDidMount",this).call(this),this.askInstance()}},{key:"askInstance",value:function(){var k=this;if(this.props.alive){var C=this.props.schema.data;if(C===void 0&&this.props.schema.jsonData){C=this.getPattern(this.props.schema.jsonData);try{C=JSON.parse(C)}catch(E){console.error("Cannot parse json data: "+C)}}C===void 0&&(C=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",C).then(function(E){return k.setState({text:E||"",context:k.getContext()})})}}},{key:"getContext",value:function(){var k=this,C={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(function(E){return C[E]=Y.default.getValue(k.props.data,E)}),JSON.stringify(C)}},{key:"renderItem",value:function(k,C,E){var b=this;if(this.state.text===void 0)return null;if(this.props.alive){var P=this.getContext();P!==this.state.context&&setTimeout(function(){b.askInstance()},300)}return this.props.schema.container==="text"?o.default.createElement(w.default,{variant:"standard",fullWidth:!0,InputProps:{endAdornment:this.props.schema.copyToClipboard?o.default.createElement(j.default,{size:"small",onClick:function(p){(0,f.default)(b.state.text),window.alert("Copied")}},o.default.createElement(v.default,null)):void 0},value:this.state.text,label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):o.default.createElement("div",{className:this.props.classes.fullWidth},this.state.text)}}]),g}(Y.default);q.propTypes={socket:c.default.object.isRequired,data:c.default.object.isRequired,schema:c.default.object,adapterName:c.default.string,instance:c.default.number};var y=(0,u.withStyles)(_)(q);r.default=y},63365:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(92636)),j=e(4186);function f(_){var q=v();return function(){var T=(0,x.default)(_),D;if(q){var g=(0,x.default)(this).constructor;D=Reflect.construct(T,arguments,g)}else D=T.apply(this,arguments);return(0,M.default)(this,D)}}function v(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(_){return!1}}var Y=function(q){return{indeterminate:{opacity:.5}}},U=function(_){(0,O.default)(y,_);var q=f(y);function y(){return(0,a.default)(this,y),q.apply(this,arguments)}return(0,s.default)(y,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(y.prototype),"componentDidMount",this).call(this);var D=w.default.getValue(this.props.data,this.props.attr);this.setState({value:D})}},{key:"renderItem",value:function(D,g,L){var k=this;return o.default.createElement(j.TimePicker,{fullWidth:!0,margin:"normal",format:"HH:mm:ss",error:!!D,disabled:!!g,value:this.state.value===null||this.state.value===void 0?new Date:this.state.value,onChange:function(E){k.setState({value:E},function(){return k.onChange(k.props.attr,E)})},InputLabelProps:{shrink:!0},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),y}(w.default);U.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var A=(0,u.withStyles)(Y)(U);r.default=A},66678:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(92636)),j=e(94427);function f(q){var y=v();return function(){var D=(0,x.default)(q),g;if(y){var L=(0,x.default)(this).constructor;g=Reflect.construct(D,arguments,L)}else g=D.apply(this,arguments);return(0,M.default)(this,g)}}function v(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(q){return!1}}var Y=function(y){return{fullWidth:{width:"100%"},icon:{width:16,height:16,marginRight:8}}};function U(q,y,T){var D;return T&&q.substring(0,T.length)===T?D=q.substring(T.length+1):D=q,D=D.replace(/\./g,"/").replace(/_/g," "),D}var A=function(q){(0,O.default)(T,q);var y=f(T);function T(){return(0,a.default)(this,T),y.apply(this,arguments)}return(0,s.default)(T,[{key:"componentDidMount",value:function(){(0,m.default)((0,x.default)(T.prototype),"componentDidMount",this).call(this);var g=w.default.getValue(this.props.data,this.props.attr);if(!g&&this.props.customObj&&this.props.customObj._id){var L=U(this.props.customObj._id,null,this.props.adapterName+"."+this.props.instance);this.setState({value:L})}else this.setState({value:g||""})}},{key:"renderItem",value:function(g,L,k){var C=this;return o.default.createElement(j.TextField,{variant:"standard",fullWidth:!0,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},value:this.state.value,error:!!g,disabled:L,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),onChange:function(b){var P=b.target.value;C.setState({value:P},function(){return C.onChange(C.props.attr,P)})}})}}]),T}(w.default);A.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func,adapterName:c.default.string,instance:c.default.number,customObj:c.default.object};var _=(0,u.withStyles)(Y)(A);r.default=_},58176:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(16525)),O=t(e(2205)),M=t(e(78585)),x=t(e(29754)),o=t(e(4819)),c=t(e(15854)),u=e(58503),w=t(e(10391)),j=t(e(46881)),f=t(e(93640)),v=t(e(75197)),Y=t(e(96489)),U=t(e(94475)),A=t(e(55289)),_=t(e(33919)),q=t(e(92636));function y(k){var C=T();return function(){var b=(0,x.default)(k),P;if(C){var F=(0,x.default)(this).constructor;P=Reflect.construct(b,arguments,F)}else P=b.apply(this,arguments);return(0,M.default)(this,P)}}function T(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(k){return!1}}var D=function(C){return{fullWidth:{width:"100%"},icon:{width:16,height:16,marginRight:8}}},g=function(k){(0,O.default)(E,k);var C=y(E);function E(){return(0,a.default)(this,E),C.apply(this,arguments)}return(0,s.default)(E,[{key:"componentDidMount",value:function(){var P=this;(0,m.default)((0,x.default)(E.prototype),"componentDidMount",this).call(this),this.props.socket.getUsers().then(function(F){var p={},B=A.default.getLanguage();P.props.schema.short?F.forEach(function(d){var z,K;return p[d._id]={color:(z=d.common)===null||z===void 0?void 0:z.color,icon:(K=d.common)===null||K===void 0?void 0:K.icon,name:_.default.getObjectNameFromObj(d,B)}}):F.forEach(function(d){var z,K;return p[d._id.replace(/^system\.user\./,"")]={color:(z=d.common)===null||z===void 0?void 0:z.color,icon:(K=d.common)===null||K===void 0?void 0:K.icon,name:_.default.getObjectNameFromObj(d,B)}}),P.setState({users:p})})}},{key:"renderItem",value:function(P,F,p){var B=this,d,z,K=q.default.getValue(this.props.data,this.props.attr);return o.default.createElement(v.default,{variant:"standard",className:this.props.classes.fullWidth},o.default.createElement(w.default,null,this.getText(this.props.schema.label)),o.default.createElement(Y.default,{variant:"standard",error:!!P,disabled:!!F,value:K,renderValue:function(oe){var De,Te,J;return o.default.createElement("span",null,B.state.users&&(De=B.state.users[oe])!==null&&De!==void 0&&De.icon?o.default.createElement(U.default,{src:B.state.users&&((Te=B.state.users[oe])===null||Te===void 0?void 0:Te.icon),className:B.props.classes.icon}):null,B.state.users&&((J=B.state.users[oe])===null||J===void 0?void 0:J.name)||oe||"")},style:{color:this.state.users&&((d=this.state.users[K])===null||d===void 0?void 0:d.color)||void 0,backgroundColor:_.default.getInvertedColor(this.state.users&&((z=this.state.users[K])===null||z===void 0?void 0:z.color),this.props.themeType)},onChange:function(oe){return B.onChange(B.props.attr,oe.target.value)}},this.state.users&&Object.keys(this.state.users).map(function(Q){return o.default.createElement(j.default,{style:{color:B.state.users[Q].color||void 0,backgroundColor:_.default.getInvertedColor(B.state.users[Q].color,B.props.themeType)},key:Q,value:Q},B.state.users[Q].icon?o.default.createElement(U.default,{src:B.state.users[Q].icon,className:B.props.classes.icon}):null,B.state.users[Q].name)})),this.props.schema.help?o.default.createElement(f.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),E}(q.default);g.propTypes={socket:c.default.object.isRequired,themeType:c.default.string,themeName:c.default.string,style:c.default.object,className:c.default.string,data:c.default.object.isRequired,schema:c.default.object,onError:c.default.func,onChange:c.default.func};var L=(0,u.withStyles)(D)(g);r.default=L},70095:function(l,r,e){"use strict";var t,a=e(95318),s=e(50008);t={value:!0},r.Z=void 0;var m=a(e(50008)),O=a(e(34575)),M=a(e(93913)),x=a(e(81506)),o=a(e(2205)),c=a(e(78585)),u=a(e(29754)),w=a(e(59713)),j=y(e(4819)),f=a(e(15854)),v=e(58503),Y=a(e(23180)),U=a(e(55289)),A=a(e(95212)),_=a(e(86442));function q(b){if(typeof WeakMap!="function")return null;var P=new WeakMap,F=new WeakMap;return(q=function(B){return B?F:P})(b)}function y(b,P){if(!P&&b&&b.__esModule)return b;if(b===null||s(b)!=="object"&&typeof b!="function")return{default:b};var F=q(P);if(F&&F.has(b))return F.get(b);var p={},B=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var d in b)if(d!=="default"&&Object.prototype.hasOwnProperty.call(b,d)){var z=B?Object.getOwnPropertyDescriptor(b,d):null;z&&(z.get||z.set)?Object.defineProperty(p,d,z):p[d]=b[d]}return p.default=b,F&&F.set(b,p),p}function T(b,P){var F=Object.keys(b);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(b);P&&(p=p.filter(function(B){return Object.getOwnPropertyDescriptor(b,B).enumerable})),F.push.apply(F,p)}return F}function D(b){for(var P=1;Pse?1:0}function ke(H,te,Z){return H==="desc"?function(he,se){return Ce(he,se,te,Z)}:function(he,se){return-Ce(he,se,te,Z)}}function qe(H,te){var Z=H.map(function(he,se){return[he,se]});return Z.sort(function(he,se){var ce=te(he[0],se[0]);return ce||he[1]-se[1]}),Z.map(function(he){return he[0]})}var Ke=function(H){(0,x.default)(Z,H);var te=J(Z);function Z(he){var se;(0,O.default)(this,Z),se=te.call(this,he);var ce=(window._localStorage||window.localStorage).getItem(se.props.name||"iob-table")||"[]";try{ce=JSON.parse(ce)||[]}catch(Ie){ce=[]}return Array.isArray(ce)||(ce=[]),se.state={opened:ce,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:se.props.columns[0].field,useTable:!1,showSelectColor:!1,glowOnChange:he.glowOnChange},se}return(0,M.default)(Z,[{key:"renderCellEdit",value:function(se,ce){var Ie=Re(se,ce.field);return Array.isArray(Ie)&&(Ie=Ie[0]),ce.lookup?this.renderCellEditSelect(se,ce,Ie):ce.editComponent?this.renderCellEditCustom(se,ce,Ie):ce.type==="boolean"||!ce.type&&typeof Ie=="boolean"?this.renderCellEditBoolean(se,ce,Ie):ce.type==="color"?this.renderCellEditColor(se,ce,Ie):ce.type==="oid"?this.renderCellEditObjectID(se,ce,Ie):this.renderCellEditString(se,ce,Ie)}},{key:"renderCellEditSelect",value:function(se,ce,Ie){var We=this;return u.default.createElement(D.default,{variant:"standard",onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.value===Ie?delete dt[ce.field]:dt[ce.field]=ct.target.value,We.setState({editData:dt})},value:this.state.editData&&this.state.editData[ce.field]||Ie},Object.keys(ce.lookup).map(function(_e){return u.default.createElement(g.default,{value:_e},ce.lookup[_e])}))}},{key:"renderCellEditString",value:function(se,ce,Ie){var We=this;return u.default.createElement(L.default,{variant:"standard",className:this.props.classes.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[ce.field]!==void 0?this.state.editData[ce.field]:Ie,onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.value===Ie?delete dt[ce.field]:dt[ce.field]=ct.target.value,We.setState({editData:dt})}})}},{key:"renderCellEditCustom",value:function(se,ce,Ie){var We=this,_e=ce.editComponent;return this.state.editData&&this.state.editData[ce.field]!==void 0&&(Ie=this.state.editData[ce.field],se=JSON.parse(JSON.stringify(se)),se[ce.field]=Ie),u.default.createElement(_e,{value:Ie,rowData:se,onChange:function(dt){var nt=We.state.editData?Te({},We.state.editData):{};dt===Ie?delete nt[ce.field]:nt[ce.field]=dt,We.setState({editData:nt})}})}},{key:"renderCellEditBoolean",value:function(se,ce,Ie){var We=this;return u.default.createElement(k.default,{checked:this.state.editData&&this.state.editData[ce.field]!==void 0?!!this.state.editData[ce.field]:!!Ie,onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.checked===!!Ie?delete dt[ce.field]:dt[ce.field]=ct.target.checked,We.setState({editData:dt})},inputProps:{"aria-label":"checkbox"}})}},{key:"renderSelectColorDialog",value:function(){var se=this;return u.default.createElement(C.default,{classes:{root:this.props.classes.colorDialog,paper:this.props.classes.colorDialog},onClose:function(){se.selectCallback=null,se.setState({showSelectColor:!1})},open:this.state.showSelectColor},u.default.createElement(f.HexColorPicker,{color:this.state.selectIdValue,onChange:function(Ie){se.setState({selectIdValue:Ie},function(){return se.selectCallback&&se.selectCallback(Ie)})}}))}},{key:"renderCellEditColor",value:function(se,ce,Ie){var We=this,_e=this.state.editData&&this.state.editData[ce.field]!==void 0?this.state.editData[ce.field]:Ie;return u.default.createElement("div",{className:this.props.classes.fieldEdit},u.default.createElement(L.default,{variant:"standard",fullWidth:!0,className:this.props.classes.fieldEditWithButton,value:_e,inputProps:{style:{backgroundColor:_e,color:oe.default.isUseBright(_e,null)?"#FFF":"#000"}},onChange:function(dt){var nt=We.state.editData?Te({},We.state.editData):{};dt.target.value===Ie?delete nt[ce.field]:nt[ce.field]=dt.target.value,We.setState({editData:nt})}}),u.default.createElement(T.default,{className:this.props.classes.fieldButton,contained:!0,onClick:function(){We.selectCallback=function(dt){var nt=We.state.editData?Te({},We.state.editData):{};dt===Ie?delete nt[ce.field]:nt[ce.field]=dt,We.setState({editData:nt})},We.setState({showSelectColor:!0,selectIdValue:Ie})},size:"large"},u.default.createElement(K.default,null)))}},{key:"renderSelectIdDialog",value:function(){var se=this;return this.state.showSelectId?u.default.createElement(Q.default,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,socket:this.props.socket,statesOnly:!0,selected:this.state.selectIdValue,onClose:function(){return se.setState({showSelectId:!1})},onOk:function(Ie,We){se.setState({showSelectId:!1,selectIdValue:null}),se.selectCallback&&se.selectCallback(Ie),se.selectCallback=null}}):null}},{key:"renderCellEditObjectID",value:function(se,ce,Ie){var We=this;return u.default.createElement("div",{className:this.props.classes.fieldEdit},u.default.createElement(L.default,{variant:"standard",fullWidth:!0,className:this.props.classes.fieldEditWithButton,value:this.state.editData&&this.state.editData[ce.field]!==void 0?this.state.editData[ce.field]:Ie,onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.value===Ie?delete dt[ce.field]:dt[ce.field]=ct.target.value,We.setState({editData:dt})}}),u.default.createElement(T.default,{className:this.props.classes.fieldButton,contained:!0,onClick:function(){We.selectCallback=function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct===Ie?delete dt[ce.field]:dt[ce.field]=ct,We.setState({editData:dt})},We.setState({showSelectId:!0,selectIdValue:Ie})},size:"large"},u.default.createElement(z.default,null)))}},{key:"renderCellNonEdit",value:function(se,ce){var Ie=Re(se,ce.field,ce.lookup);return Array.isArray(Ie)&&(Ie=Ie[0]),ce.type==="boolean"?u.default.createElement(k.default,{checked:!!Ie,disabled:!0,inputProps:{"aria-label":"checkbox"}}):Ie}},{key:"renderCell",value:function(se,ce,Ie,We){return this.state.editMode===We&&ce.editable!=="never"&&ce.editable!==!1?u.default.createElement(A.default,{key:ce.field,className:oe.default.clsx(this.props.classes.cell,Ie&&this.props.classes.cellSecondary),style:ce.cellStyle,component:"th"},this.renderCellEdit(se,ce)):u.default.createElement(A.default,{key:ce.field,className:oe.default.clsx(this.props.classes.cell,Ie&&this.props.classes.cellSecondary),style:ce.cellStyle,component:"th"},this.renderCellNonEdit(se,ce))}},{key:"renderCellWithSubField",value:function(se,ce){var Ie=Re(se,ce.field,ce.lookup),We=Re(se,ce.subField,ce.subLookup);return u.default.createElement("div",null,u.default.createElement("div",{className:this.props.classes.mainText},Ie),u.default.createElement("div",{className:this.props.classes.subText,style:ce.subStyle||{}},We))}},{key:"renderLine",value:function(se,ce){var Ie=this,We=this.props.levelShift===void 0?24:this.props.levelShift;ce=ce||0;var _e=this.props.data.indexOf(se);if(!se||!ce&&se.parentId)return null;if(ce&&!se.parentId)return null;var ct=this.state.opened.includes(se.id),dt=this.props.data.filter(function(nt){return nt.parentId===se.id});return[u.default.createElement(q.default,{key:se.id,className:oe.default.clsx("table-row-"+(se.id||"").toString().replace(/[.$]/g,"_"),this.state.update&&this.state.update.includes(se.id)&&this.props.classes.glow,this.props.classes.row,ce&&this.props.classes.rowSecondary,!ce&&dt.length&&this.props.classes.rowMainWithChildren,!ce&&!dt.length&&this.props.classes.rowMainWithoutChildren,this.state.editMode!==!1&&this.state.editMode!==_e&&this.props.classes.rowNoEdit,this.state.deleteMode!==!1&&this.state.deleteMode!==_e&&this.props.classes.rowNoEdit)},u.default.createElement(A.default,{className:oe.default.clsx(this.props.classes.cell,this.props.classes.cellExpand,ce&&this.props.classes.cellSecondary)},dt.length?u.default.createElement(T.default,{onClick:function(){var mt=(0,s.default)(Ie.state.opened),It=mt.indexOf(se.id);It===-1?(mt.push(se.id),mt.sort()):mt.splice(It,1),(window._localStorage||window.localStorage).setItem(Ie.props.name||"iob-table",JSON.stringify(mt)),Ie.setState({opened:mt})},size:"small"},ct?u.default.createElement(F.default,null):u.default.createElement(P.default,null)):null),u.default.createElement(A.default,{scope:"row",className:oe.default.clsx(this.props.classes.cell,ce&&this.props.classes.cellSecondary),style:Object.assign({},this.props.columns[0].cellStyle,{paddingLeft:We*ce})},this.props.columns[0].subField?this.renderCellWithSubField(se,this.props.columns[0]):Re(se,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map(function(nt,mt){return!mt&&!nt.hidden?null:Ie.renderCell(se,nt,ce,_e)}),this.props.onUpdate?u.default.createElement(A.default,{className:oe.default.clsx(this.props.classes.cell,this.props.classes.cellButton)},this.state.editMode===_e||this.state.deleteMode===_e?u.default.createElement(T.default,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:function(){if(Ie.state.editMode!==!1){var mt=JSON.parse(JSON.stringify(se));Object.keys(Ie.state.editData).forEach(function(It){return ae(mt,It,Ie.state.editData[It])}),Ie.setState({editMode:!1},function(){return Ie.props.onUpdate(mt,se)})}else Ie.setState({deleteMode:!1},function(){return Ie.props.onDelete(se)})},size:"large"},u.default.createElement(p.default,null)):u.default.createElement(T.default,{disabled:this.state.editMode!==!1,onClick:function(){return Ie.setState({editMode:_e,editData:null})},size:"large"},u.default.createElement(E.default,null))):null,this.props.onUpdate||this.props.onDelete?u.default.createElement(A.default,{className:oe.default.clsx(this.props.classes.cell,this.props.classes.cellButton)},this.state.editMode===_e||this.state.deleteMode===_e?u.default.createElement(T.default,{onClick:function(){return Ie.setState({editMode:!1,deleteMode:!1})},size:"large"},u.default.createElement(B.default,null)):this.props.onDelete?u.default.createElement(T.default,{disabled:this.state.deleteMode!==!1,onClick:function(){return Ie.setState({deleteMode:_e})},size:"large"},u.default.createElement(b.default,null)):null):null),!ce&&ct?dt.map(function(nt){return Ie.renderLine(nt,ce+1)}):null]}},{key:"handleRequestSort",value:function(se){var ce=this.state.orderBy===se&&this.state.order==="asc";this.setState({order:ce?"desc":"asc",orderBy:se})}},{key:"renderHead",value:function(){var se=this;return u.default.createElement(_.default,null,u.default.createElement(q.default,{key:"headerRow"},u.default.createElement(A.default,{component:"th",className:oe.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellExpand)}),u.default.createElement(A.default,{component:"th",className:oe.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes["width_"+this.props.columns[0].field.replace(/\./g,"_")]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:u.default.createElement(y.default,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:function(){return se.handleRequestSort(se.props.columns[0].field)}},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?u.default.createElement("span",{className:this.props.classes.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map(function(ce,Ie){return!Ie&&!ce.hidden?null:u.default.createElement(A.default,{key:ce.field,className:oe.default.clsx(se.props.classes.cell,se.props.classes.cellHeader,se.props.classes["width_"+ce.field.replace(/\./g,"_")]),style:ce.headerStyle||ce.cellStyle,component:"th"},se.props.noSort?null:u.default.createElement(y.default,{active:se.state.orderBy===ce.field,direction:se.state.orderBy===ce.field?se.state.order:"asc",onClick:function(){return se.handleRequestSort(ce.field)}},ce.title||ce.field,se.state.orderBy===ce.field?u.default.createElement("span",{className:se.props.classes.visuallyHidden},se.state.order==="desc"?"sorted descending":"sorted ascending"):null))}),this.props.onUpdate?u.default.createElement(A.default,{component:"th",className:oe.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)},this.props.noAdd?null:u.default.createElement(v.default,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:function(){return se.props.onUpdate(!0)}},u.default.createElement(d.default,null))):null,this.props.onDelete||this.props.onUpdate?u.default.createElement(A.default,{component:"th",className:oe.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)}):null))}},{key:"render",value:function(){var se=this,ce=this.props.columns.find(function(We){return We.field===se.state.orderBy}).lookup,Ie=qe(this.props.data,ke(this.state.order,this.state.orderBy,ce));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(function(){se.updateTimeout=null,se.setState({update:null})},500)),u.default.createElement("div",{className:oe.default.clsx(this.props.classes.tableContainer,this.props.className)},u.default.createElement(Y.default,{className:this.props.classes.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),u.default.createElement(U.default,null,Ie.map(function(We){return se.renderLine(We)}))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}}],[{key:"getDerivedStateFromProps",value:function(se,ce){if(se.glowOnChange){var Ie=[],We=0;return se.data&&ce.data&&se.data.forEach(function(_e){We++;var ct=ce.data.find(function(dt){return dt.id===_e.id});ct?JSON.stringify(ct)!==JSON.stringify(_e)&&Ie.push(_e.id):Ie.push(_e.id)}),Ie.length&&Ie.length!==We?{data:se.data,update:Ie}:{data:se.data}}else return{data:se.data}}}]),Z}(u.default.Component);Ke.propTypes={data:w.default.array.isRequired,className:w.default.string,loading:w.default.bool,name:w.default.string,columns:w.default.arrayOf(w.default.shape({cellStyle:w.default.object,editComponent:w.default.func,field:w.default.string,headerStyle:w.default.object,hidden:w.default.bool,lookup:w.default.object,editable:w.default.bool,title:w.default.string,type:w.default.oneOf(["string","boolean","numeric","icon","oid","color"])})).isRequired,noSort:w.default.bool,onUpdate:w.default.func,onDelete:w.default.func,noAdd:w.default.bool,themeType:w.default.string,glowOnChange:w.default.bool,socket:w.default.object,levelShift:w.default.number};var st=(0,j.default)(be)(Ke);r.Z=st},8367:function(l,r,e){"use strict";var t=e(4819),a=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var s=a(e(67154)),m=a(e(34575)),O=a(e(93913)),M=a(e(2205)),x=a(e(78585)),o=a(e(29754)),c=e(4819),u=a(e(23060)),w=a(e(15854)),j=a(e(23167)),f=e(86856),v=e(58503),Y=e(94427),U=a(e(72952)),A=a(e(62976)),_=a(e(16055)),q=e(42158);function y(C){var E=T();return function(){var P=(0,o.default)(C),F;if(E){var p=(0,o.default)(this).constructor;F=Reflect.construct(P,arguments,p)}else F=P.apply(this,arguments);return(0,x.default)(this,F)}}function T(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(C){return!1}}var D=` -/*! - * Cropper.js v1.5.12 - * https://fengyuanchen.github.io/cropperjs - * - * Copyright 2015-present Chen Fengyuan - * Released under the MIT license - * - * Date: 2021-06-12T08:00:11.623Z - */ - -.cropper-container { - direction: ltr; - font-size: 0; - line-height: 0; - position: relative; - -ms-touch-action: none; - touch-action: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.cropper-container img { - display: block; - height: 100%; - image-orientation: 0deg; - max-height: none !important; - max-width: none !important; - min-height: 0 !important; - min-width: 0 !important; - width: 100%; -} - -.cropper-wrap-box, -.cropper-canvas, -.cropper-drag-box, -.cropper-crop-box, -.cropper-modal { - bottom: 0; - left: 0; - position: absolute; - right: 0; - top: 0; -} - -.cropper-wrap-box, -.cropper-canvas { - overflow: hidden; -} - -.cropper-drag-box { - background-color: #fff; - opacity: 0; -} - -.cropper-modal { - background-color: #000; - opacity: 0.5; -} - -.cropper-view-box { - display: block; - height: 100%; - outline: 1px solid #39f; - outline-color: rgba(51, 153, 255, 0.75); - overflow: hidden; - width: 100%; -} - -.cropper-dashed { - border: 0 dashed #eee; - display: block; - opacity: 0.5; - position: absolute; -} - -.cropper-dashed.dashed-h { - border-bottom-width: 1px; - border-top-width: 1px; - height: calc(100% / 3); - left: 0; - top: calc(100% / 3); - width: 100%; -} - -.cropper-dashed.dashed-v { - border-left-width: 1px; - border-right-width: 1px; - height: 100%; - left: calc(100% / 3); - top: 0; - width: calc(100% / 3); -} - -.cropper-center { - display: block; - height: 0; - left: 50%; - opacity: 0.75; - position: absolute; - top: 50%; - width: 0; -} - -.cropper-center::before, -.cropper-center::after { - background-color: #eee; - content: ' '; - display: block; - position: absolute; -} - -.cropper-center::before { - height: 1px; - left: -3px; - top: 0; - width: 7px; -} - -.cropper-center::after { - height: 7px; - left: 0; - top: -3px; - width: 1px; -} - -.cropper-face, -.cropper-line, -.cropper-point { - display: block; - height: 100%; - opacity: 0.1; - position: absolute; - width: 100%; -} - -.cropper-face { - background-color: #fff; - left: 0; - top: 0; -} - -.cropper-line { - background-color: #39f; -} - -.cropper-line.line-e { - cursor: ew-resize; - right: -3px; - top: 0; - width: 5px; -} - -.cropper-line.line-n { - cursor: ns-resize; - height: 5px; - left: 0; - top: -3px; -} - -.cropper-line.line-w { - cursor: ew-resize; - left: -3px; - top: 0; - width: 5px; -} - -.cropper-line.line-s { - bottom: -3px; - cursor: ns-resize; - height: 5px; - left: 0; -} - -.cropper-point { - background-color: #39f; - height: 5px; - opacity: 0.75; - width: 5px; -} - -.cropper-point.point-e { - cursor: ew-resize; - margin-top: -3px; - right: -3px; - top: 50%; -} - -.cropper-point.point-n { - cursor: ns-resize; - left: 50%; - margin-left: -3px; - top: -3px; -} - -.cropper-point.point-w { - cursor: ew-resize; - left: -3px; - margin-top: -3px; - top: 50%; -} - -.cropper-point.point-s { - bottom: -3px; - cursor: s-resize; - left: 50%; - margin-left: -3px; -} - -.cropper-point.point-ne { - cursor: nesw-resize; - right: -3px; - top: -3px; -} - -.cropper-point.point-nw { - cursor: nwse-resize; - left: -3px; - top: -3px; -} - -.cropper-point.point-sw { - bottom: -3px; - cursor: nesw-resize; - left: -3px; -} - -.cropper-point.point-se { - bottom: -3px; - cursor: nwse-resize; - height: 20px; - opacity: 1; - right: -3px; - width: 20px; -} - -@media (min-width: 768px) { - .cropper-point.point-se { - height: 15px; - width: 15px; - } -} - -@media (min-width: 992px) { - .cropper-point.point-se { - height: 10px; - width: 10px; - } -} - -@media (min-width: 1200px) { - .cropper-point.point-se { - height: 5px; - opacity: 0.75; - width: 5px; - } -} - -.cropper-point.point-se::before { - background-color: #39f; - bottom: -50%; - content: ' '; - display: block; - height: 200%; - opacity: 0; - position: absolute; - right: -50%; - width: 200%; -} - -.cropper-invisible { - opacity: 0; -} - -.cropper-bg { - background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC'); -} - -.cropper-hide { - display: block; - height: 0; - position: absolute; - width: 0; -} - -.cropper-hidden { - display: none !important; -} - -.cropper-move { - cursor: move; -} - -.cropper-crop { - cursor: crosshair; -} - -.cropper-disabled .cropper-drag-box, -.cropper-disabled .cropper-face, -.cropper-disabled .cropper-line, -.cropper-disabled .cropper-point { - cursor: not-allowed; -} -`,g=function(E){return{dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red"}}},L=function(C){(0,M.default)(b,C);var E=y(b);function b(P){var F;if((0,m.default)(this,b),F=E.call(this,P),F.state={uploadFile:!1,anchorEl:null,cropHandler:!1},F.cropperRef=(0,c.createRef)(),!window.document.getElementById("cropper-style-json-component")){var p=window.document.createElement("style");p.setAttribute("id","cropper-style-json-component"),p.innerHTML=D,window.document.head.appendChild(p)}return F}return(0,O.default)(b,[{key:"onDrop",value:function(F){var p=this.props,B=p.maxSize,d=p.t,z=p.onChange,K=F[0],Q=new FileReader;Q.onabort=function(){return console.log("file reading was aborted")},Q.onerror=function(){return console.log("file reading has failed")},Q.onload=function(){var oe="image/"+K.name.split(".").pop().toLowerCase();if(oe==="image/jpg"?oe="image/jpeg":oe.includes("svg")&&(oe="image/svg+xml"),K.size>B)return window.alert(d("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(B/1024)));var De="data:".concat(oe,";base64,").concat(btoa(new Uint8Array(Q.result).reduce(function(Te,J){return Te+String.fromCharCode(J)},"")));z(De)},Q.readAsArrayBuffer(K)}},{key:"render",value:function(){var F=this,p=this.props,B=p.disabled,d=p.maxSize,z=p.classes,K=p.icon,Q=p.t,oe=p.removeIconFunc,De=p.accept,Te=p.error,J=p.crop,le=p.onChange,Re=this.state,ae=Re.uploadFile,be=Re.anchorEl,Ce=Re.cropHandler;return t.createElement(j.default,{disabled:B||Ce,key:"dropzone",multiple:!1,accept:De,maxSize:d,onDragEnter:function(){return F.setState({uploadFile:"dragging"})},onDragLeave:function(){return F.setState({uploadFile:!0})},onDrop:function(qe,Ke){if(F.setState({uploadFile:!1}),!qe.length)window.alert(Ke&&Ke[0]&&Ke[0].errors&&Ke[0].errors[0]&&Ke[0].errors[0].message||Q("ra_Cannot upload"));else return F.onDrop(qe)}},function(ke){var qe=ke.getRootProps,Ke=ke.getInputProps;return t.createElement("div",(0,s.default)({className:(0,u.default)(z.uploadDiv,ae==="dragging"&&z.uploadDivDragging,z.dropZone,B&&z.disabledOpacity,!K&&z.dropZoneEmpty)},qe()),t.createElement("input",Ke()),t.createElement("div",{className:(0,u.default)(z.uploadCenterDiv,Te&&z.error)},K?oe&&!Ce&&t.createElement("div",{className:z.buttonRemoveWrapper},t.createElement(Y.Tooltip,{title:Q("ra_Clear")},t.createElement(U.default,{size:"large",onClick:function(H){oe&&oe(),H.stopPropagation()}},t.createElement(A.default,null)))):t.createElement("div",{className:z.uploadCenterTextAndIcon},t.createElement(q.FaFileUpload,{className:z.uploadCenterIcon}),t.createElement("div",{className:z.uploadCenterText},Q(ae==="dragging"?"ra_Drop file here":"ra_Place your files here or click here to open the browse dialog"))),K&&J&&t.createElement("div",{className:z.buttonCropWrapper},t.createElement(Y.Tooltip,{title:Q("ra_Crop")},t.createElement(U.default,{size:"large",onClick:function(H){Ce?F.setState({anchorEl:H.currentTarget}):F.setState({cropHandler:!0}),H.stopPropagation()}},t.createElement(_.default,{color:Ce?"primary":"inherit"}))),t.createElement(Y.Menu,{anchorEl:be,keepMounted:!0,open:Boolean(be),onClose:function(){return F.setState({anchorEl:null})}},t.createElement(Y.MenuItem,{onClick:function(){return F.setState({anchorEl:null,cropHandler:!1},function(){var H,te,Z=(H=F.cropperRef)===null||H===void 0||(te=H.current)===null||te===void 0?void 0:te.cropper;le(Z.getCroppedCanvas().toDataURL())})}},Q("ra_Save")),t.createElement(Y.MenuItem,{onClick:function(){return F.setState({anchorEl:null,cropHandler:!1})}},Q("ra_Close")))),K&&!Ce?t.createElement("img",{src:K,className:z.image,alt:"icon"}):null,K&&J&&Ce?t.createElement(f.Cropper,{ref:F.cropperRef,className:z.image,src:K,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null))})}}]),b}(c.Component);L.defaultProps={disabled:!1,maxSize:10*1024,icon:null,removeIconFunc:null,accept:{"image/*":[]},error:!1,onChange:function(E){return console.log(E)},t:function(E){return E},crop:!1},L.propTypes={classes:w.default.object,maxSize:w.default.number,disabled:w.default.bool,crop:w.default.bool,error:w.default.bool,onChange:w.default.func,accept:w.default.object,t:w.default.func};var k=(0,v.withStyles)(g)(L);r.default=k},15044:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var s=a(e(34575)),m=a(e(93913)),O=a(e(2205)),M=a(e(78585)),x=a(e(29754)),o=a(e(4819)),c=a(e(15854)),u=a(e(42390)),w=a(e(73319)),j=a(e(89676)),f=a(e(67730)),v=a(e(41818)),Y=a(e(28020)),U=a(e(26021)),A=a(e(72977)),_=a(e(91495)),q=a(e(73868)),y=a(e(55289));function T(C){var E=D();return function(){var P=(0,x.default)(C),F;if(E){var p=(0,x.default)(this).constructor;F=Reflect.construct(P,arguments,p)}else F=P.apply(this,arguments);return(0,M.default)(this,F)}}function D(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(C){return!1}}var g=function(E){return{headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}}},L=function(C){(0,O.default)(b,C);var E=T(b);function b(P){var F;(0,s.default)(this,b),F=E.call(this,P);var p;return F.props.cron&&typeof F.props.cron=="string"&&F.props.cron.replace(/^["']/,"")[0]!=="{"?p=F.props.cron.replace(/['"]/g,"").trim():(p=F.props.cron||"{}",typeof p=="string"&&(p=p.replace(/^["']/,"").replace(/["']\n?$/,""))),F.state={cron:p},F}return(0,m.default)(b,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.state.cron),this.props.onClose()}},{key:"handleClear",value:function(){this.props.onOk(!1),this.props.onClose()}},{key:"render",value:function(){var F=this;return o.default.createElement(Y.default,{onClose:function(){},maxWidth:"md",fullWidth:!0,classes:{paper:this.props.classes.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},o.default.createElement(j.default,{id:"cron-dialog-title"},this.props.title||y.default.t("ra_Define schedule...")),o.default.createElement(f.default,{style:{height:"100%",overflow:"hidden"}},o.default.createElement(q.default,{cronExpression:this.state.cron,onChange:function(B){return F.setState({cron:B})},language:y.default.getLanguage()})),o.default.createElement(v.default,null,!!this.props.clearButton&&o.default.createElement(w.default,{color:"grey",variant:"contained",onClick:function(){return F.handleClear()},startIcon:o.default.createElement(_.default,null)},this.props.clear||y.default.t("ra_Clear")),o.default.createElement(w.default,{variant:"contained",onClick:function(){return F.handleOk()},color:"primary",startIcon:o.default.createElement(U.default,null)},this.props.ok||y.default.t("ra_Ok")),o.default.createElement(w.default,{color:"grey",variant:"contained",onClick:function(){return F.handleCancel()},startIcon:o.default.createElement(A.default,null)},this.props.cancel||y.default.t("ra_Cancel"))))}}]),b}(o.default.Component);L.propTypes={classes:c.default.object,onClose:c.default.func.isRequired,onOk:c.default.func.isRequired,title:c.default.string,cron:c.default.string,cancel:c.default.string,ok:c.default.string,simple:c.default.bool,language:c.default.string,clearButton:c.default.bool};var k=(0,u.default)(g)(L);r.Z=k},35956:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=t(e(42390)),u=t(e(73319)),w=t(e(89676)),j=t(e(67730)),f=t(e(41818)),v=t(e(28020)),Y=t(e(72977)),U=t(e(26021)),A=t(e(55289)),_=t(e(33919)),q=t(e(90010));function y(C){var E=T();return function(){var P=(0,M.default)(C),F;if(E){var p=(0,M.default)(this).constructor;F=Reflect.construct(P,arguments,p)}else F=P.apply(this,arguments);return(0,O.default)(this,F)}}function T(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(C){return!1}}var D=function(E){return{headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:4,width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}}},g=function(C){(0,m.default)(b,C);var E=y(b);function b(P){var F;(0,a.default)(this,b),F=E.call(this,P),F.dialogName=F.props.dialogName||"default",F.dialogName="FileSelect."+F.dialogName,F.filters=(window._localStorage||window.localStorage).getItem(F.dialogName)||"{}";try{F.filters=JSON.parse(F.filters)}catch(p){F.filters={}}return F.state={selected:F.props.selected||"",isFolder:!1,name:"",isMobile:window.innerWidth<800},F}return(0,s.default)(b,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.state.selected||""),this.props.onClose()}},{key:"render",value:function(){var F=this,p;return this.state.name||this.state.selected.length?p=[x.default.createElement("span",{key:"selected"},A.default.t("ra_Selected")," "),x.default.createElement("span",{key:"id",className:this.props.classes.headerID},this.state.selected)]:p=this.props.title||A.default.t("ra_Please select file..."),x.default.createElement(v.default,{onClose:function(){},maxWidth:!1,classes:{paper:_.default.clsx(this.props.classes.dialog,this.props.classes.dialogMobile)},fullWidth:!0,open:!0,"aria-labelledby":"file-dialog-title"},x.default.createElement(w.default,{id:"file-dialog-title",classes:{root:this.props.classes.titleRoot}},p),x.default.createElement(j.default,{className:_.default.clsx(this.props.classes.content,this.props.classes.contentMobile)},x.default.createElement(q.default,{ready:!0,imagePrefix:this.props.imagePrefix,allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,showViewTypeButton:this.props.allowView!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,onSelect:function(d,z,K){F.setState({selected:d,isFolder:K},function(){return z&&(F.props.selectOnlyFolders&&K||!F.props.selectOnlyFolders&&!K)&&F.handleOk()})},t:A.default.t,lang:A.default.getLanguage(),socket:this.props.socket})),x.default.createElement(f.default,null,x.default.createElement(u.default,{variant:"contained",onClick:function(){return F.handleOk()},startIcon:x.default.createElement(U.default,null),disabled:!this.state.selected||this.props.selectOnlyFolders&&!this.state.isFolder||!this.props.selectOnlyFolders&&this.state.isFolder,color:"primary"},this.props.ok||A.default.t("ra_Ok")),x.default.createElement(u.default,{color:"grey",variant:"contained",onClick:function(){return F.handleCancel()},startIcon:x.default.createElement(Y.default,null)},this.props.cancel||A.default.t("ra_Cancel"))))}}]),b}(x.default.Component);g.propTypes={imagePrefix:o.default.string,dialogName:o.default.string,selected:o.default.string,onClose:o.default.func.isRequired,onOk:o.default.func.isRequired,ok:o.default.string,cancel:o.default.string,socket:o.default.object.isRequired,allowUpload:o.default.bool,allowDownload:o.default.bool,allowCreateFolder:o.default.bool,allowDelete:o.default.bool,allowView:o.default.bool,showToolbar:o.default.bool,objectID:o.default.string,filterFiles:o.default.arrayOf(o.default.string),filterByType:o.default.string,limitPath:o.default.string,selectOnlyFolders:o.default.bool};var L=(0,c.default)(D)(g),k=L;r.default=k},17027:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var s=a(e(34575)),m=a(e(93913)),O=a(e(2205)),M=a(e(78585)),x=a(e(29754)),o=a(e(4819)),c=a(e(15854)),u=a(e(42390)),w=a(e(73319)),j=a(e(89676)),f=a(e(67730)),v=a(e(41818)),Y=a(e(28020)),U=a(e(26021)),A=a(e(72977)),_=a(e(329)),q=a(e(55289));function y(k){var C=T();return function(){var b=(0,x.default)(k),P;if(C){var F=(0,x.default)(this).constructor;P=Reflect.construct(b,arguments,F)}else P=b.apply(this,arguments);return(0,M.default)(this,P)}}function T(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(k){return!1}}var D=function(C){return{headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}}},g=function(k){(0,O.default)(E,k);var C=y(E);function E(b){var P;(0,s.default)(this,E),P=C.call(this,b);var F;return P.props.cron&&typeof P.props.cron=="string"&&P.props.cron.replace(/^["']/,"")[0]!=="{"?F=P.props.cron.replace(/['"]/g,"").trim():(F=P.props.cron||"{}",typeof F=="string"&&(F=F.replace(/^["']/,"").replace(/["']\n?$/,""))),P.state={cron:F},P}return(0,m.default)(E,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.state.cron),this.props.onClose()}},{key:"render",value:function(){var P=this;return o.default.createElement(Y.default,{onClose:function(){},maxWidth:"md",fullWidth:!0,classes:{paper:this.props.classes.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},o.default.createElement(j.default,{id:"cron-dialog-title"},this.props.title||q.default.t("ra_Define CRON...")),o.default.createElement(f.default,{style:{height:"100%",overflow:"hidden"}},o.default.createElement(_.default,{cronExpression:this.state.cron,onChange:function(p){return P.setState({cron:p})},language:q.default.getLanguage()})),o.default.createElement(v.default,null,o.default.createElement(w.default,{variant:"contained",onClick:function(){return P.handleOk()},color:"primary",startIcon:o.default.createElement(U.default,null)},this.props.ok||q.default.t("ra_Ok")),o.default.createElement(w.default,{variant:"contained",onClick:function(){return P.handleCancel()},color:"grey",startIcon:o.default.createElement(A.default,null)},this.props.cancel||q.default.t("ra_Cancel"))))}}]),E}(o.default.Component);g.propTypes={classes:c.default.object,onClose:c.default.func.isRequired,onOk:c.default.func.isRequired,title:c.default.string,cron:c.default.string,cancel:c.default.string,ok:c.default.string,simple:c.default.bool,language:c.default.string};var L=(0,u.default)(D)(g);r.Z=L},93451:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),s=t(e(93913)),m=t(e(2205)),O=t(e(78585)),M=t(e(29754)),x=t(e(4819)),o=t(e(15854)),c=t(e(73319)),u=t(e(61318)),w=t(e(28020)),j=t(e(41818)),f=t(e(67730)),v=t(e(81602)),Y=t(e(89676)),U=t(e(55289)),A=t(e(62976)),_=t(e(26021)),q=t(e(70703));function y(k){var C=T();return function(){var b=(0,M.default)(k),P;if(C){var F=(0,M.default)(this).constructor;P=Reflect.construct(b,arguments,F)}else P=b.apply(this,arguments);return(0,O.default)(this,P)}}function T(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(k){return!1}}var D=function(k){(0,m.default)(E,k);var C=y(E);function E(b){var P;return(0,a.default)(this,E),P=C.call(this,b),P.state={text:P.props.input||P.props.value||"",error:""},P}return(0,s.default)(E,[{key:"render",value:function(){var P=this;return x.default.createElement(w.default,{open:!0,onClose:function(){return P.props.onClose(null)},"aria-labelledby":"form-dialog-title"},x.default.createElement(Y.default,{id:"form-dialog-title"},this.props.titleText),x.default.createElement(f.default,null,x.default.createElement(v.default,null,this.props.promptText),x.default.createElement(u.default,{variant:"standard",autoFocus:!0,margin:"dense",error:!!this.state.error,title:this.state.error,value:this.state.text,label:this.props.labelText||"",type:this.props.type||"text",onKeyPress:function(p){return p.charCode===13&&P.state.text&&P.props.onClose(P.state.text)},onChange:function(p){var B="";P.props.verify&&(B=!P.props.verify(p.target.value)),P.props.rule?P.setState({text:P.props.rule(p.target.value),error:B}):P.setState({text:p.target.value,error:B})},fullWidth:!0})),x.default.createElement(j.default,null,x.default.createElement(c.default,{variant:"contained",disabled:!this.state.text||this.state.error,onClick:function(){return P.props.onClose(P.state.text)},color:"primary",startIcon:x.default.createElement(_.default,null)},this.props.applyText||U.default.t("ra_Ok")),x.default.createElement(c.default,{color:"grey",variant:"contained",onClick:function(){return P.props.onClose(null)},startIcon:x.default.createElement(A.default,null)},this.props.cancelText||U.default.t("ra_Cancel"))))}}]),E}(x.default.Component);D.propTypes={onClose:o.default.func.isRequired,titleText:o.default.string.isRequired,promptText:o.default.string,labelText:o.default.string,cancelText:o.default.string,applyText:o.default.string,verify:o.default.func,replace:o.default.func,type:o.default.string,value:o.default.string};var g=(0,q.default)()(D),L=g;r.default=L},24722:function(){},27853:function(){},78569:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var s=a(e(4819)),m=a(e(15854)),O=function(o){return s.default.createElement("svg",{onClick:function(u){return o.onClick&&o.onClick(u)},style:o.style||{},viewBox:"0 0 95 95",width:o.width||20,height:o.height||o.width||20,xmlns:"http://www.w3.org/2000/svg",className:o.className},s.default.createElement("path",{fill:"currentColor",d:"M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 c-0.344,0.922-0.443,1.413-0.907,1.363c-0.786-0.078-3.845-3.346-4.845-8.145l-2.482-11.6c1.961-3.177,3.977-5.629,5.988-7.292 c1.08-0.882,2.314-1.349,3.808-1.43c3.815-0.26,5.203-0.74,6.14-1.399c1.547-1.115,2.397-2.728,2.397-4.542 c0-1.596-0.604-3.019-1.75-4.115c-1.106-1.059-2.581-1.618-4.26-1.618c-2.468,0-5.239,1.142-8.474,3.49 c-1.91,1.388-3.935,3.406-6.121,6.111c-0.711-2.653-1.319-3.889-1.771-4.628c-1.396-2.303-3.664-2.303-4.41-2.303l-0.813,0.013 l-23.045,0.544l1.297-5.506c0.828-3.593,1.915-6.436,3.226-8.45c0.638-0.98,1.614-2.148,2.638-2.148 c0.387,0,1.152,0.063,2.582,0.36c3.978,0.86,5.465,0.959,6.239,0.959c1.708,0,3.21-0.571,4.347-1.651 c1.176-1.119,1.797-2.583,1.797-4.233c0-1.29-0.424-3.156-2.445-4.722c-1.396-1.081-3.311-1.629-5.691-1.629 c-3.568,0-7.349,1.141-11.241,3.39c-3.862,2.232-7.038,5.317-9.438,9.171c-2.105,3.379-3.929,8.124-5.555,14.459H21.877 l-2.238,8.831h10.186l-7.74,31.116c-1.603,6.443-2.777,8.028-3.098,8.361c-0.875,0.904-2.68,1.094-4.04,1.094 c-1.683,0-3.477-0.121-5.349-0.361c-1.286-0.157-2.265-0.234-2.991-0.234c-1.878,0-3.423,0.488-4.59,1.448 C0.716,81.858,0,83.403,0,85.14c0,1.357,0.44,3.309,2.539,4.895c1.434,1.08,3.389,1.628,5.813,1.628 c6.069,0,11.725-2.411,16.813-7.165c4.947-4.624,8.571-11.413,10.773-20.195l6.119-24.935l20.87,0.354l2.244,9.64l-4.573,6.748 c-0.824,1.209-2.051,2.701-3.658,4.441c-0.84,0.92-1.398,1.426-1.721,1.689c-1.316-1.608-2.809-2.424-4.432-2.424 c-1.525,0-2.91,0.625-4.002,1.804c-1.036,1.116-1.583,2.514-1.583,4.038c0,1.83,0.783,3.459,2.264,4.709 c1.357,1.146,3.034,1.728,4.981,1.728c2.414,0,4.884-0.921,7.344-2.737c2.053-1.519,4.697-4.526,8.074-9.189 c2.17,6.24,5.248,10.252,6.714,11.927c2.313,2.644,6.049,4.22,9.993,4.22c3.348,0,5.244-1.402,6.916-2.641l0.148-0.109 c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z"}))};O.propTypes={onClick:m.default.func,width:m.default.oneOfType([m.default.number,m.default.string]),height:m.default.oneOfType([m.default.number,m.default.string]),className:m.default.string};var M=O;r.Z=M},1272:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var s=a(e(4819)),m=a(e(15854)),O=function(o){return s.default.createElement("svg",{onClick:function(u){return o.onClick&&o.onClick(u)},viewBox:"0 0 512 512",width:o.width||20,height:o.height||o.width||20,xmlns:"http://www.w3.org/2000/svg",className:o.className},s.default.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),s.default.createElement("path",{fill:"currentColor",d:"M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 l-74.091-22.229h174.635v106.667c0,11.776,9.536,21.333,21.333,21.333s21.333-9.557,21.333-21.333v-128 C384.013,9.557,374.477,0,362.68,0H21.347c-0.768,0-1.451,0.32-2.197,0.405c-1.003,0.107-1.92,0.277-2.88,0.512 c-2.24,0.576-4.267,1.451-6.165,2.645c-0.469,0.299-1.045,0.32-1.493,0.661C8.44,4.352,8.376,4.587,8.205,4.715 C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992 c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907 l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491 v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z"}))};O.propTypes={onClick:m.default.func,width:m.default.oneOfType([m.default.number,m.default.string]),height:m.default.oneOfType([m.default.number,m.default.string]),className:m.default.string};var M=O;r.Z=M},32717:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(4819)),s=t(e(15854)),m=function(x){return a.default.createElement("svg",{onClick:function(c){return x.onClick&&x.onClick(c)},viewBox:"0 0 512 512",width:x.width||20,height:x.height||x.width||20,xmlns:"http://www.w3.org/2000/svg",className:x.className},a.default.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))};m.propTypes={onClick:s.default.func,width:s.default.oneOfType([s.default.number,s.default.string]),height:s.default.oneOfType([s.default.number,s.default.string]),className:s.default.string};var O=m;r.default=O},37228:function(l,r,e){"use strict";e.r(r),e.d(r,{ColorPicker:function(){return O.default},ComplexCron:function(){return M.default},ComplexCronDialog:function(){return H.Z},ConfigGeneric:function(){return _e.default},Confirm:function(){return te.default},Connection:function(){return a.default},Cron:function(){return Z.default},CustomModal:function(){return c.default},ERRORS:function(){return a.ERRORS},EXTENSIONS:function(){return w.EXTENSIONS},Error:function(){return he.default},FileBrowser:function(){return u.default},FileViewer:function(){return w.default},Icon:function(){return j.default},IconAdapter:function(){return oe.default},IconAlias:function(){return De.default},IconChannel:function(){return Te.default},IconClosed:function(){return J.default},IconCopy:function(){return le.default},IconDevice:function(){return Re.default},IconDocument:function(){return ae.default},IconExpert:function(){return be.default},IconFx:function(){return Ce.Z},IconInstance:function(){return ke.default},IconLogout:function(){return qe.Z},IconOpen:function(){return Ke.default},IconPicker:function(){return f.Z},IconSelector:function(){return v.default},IconState:function(){return st.default},Image:function(){return Y.Z},JsonConfigComponent:function(){return Q.Z},Loader:function(){return U.default},LoaderPT:function(){return K.Z},LoaderVendor:function(){return z.Z},Logo:function(){return A.Z},MDUtils:function(){return _.Z},Message:function(){return se.default},ObjectBrowser:function(){return q.default},PROGRESS:function(){return a.PROGRESS},Prompt:function(){return m.default},Router:function(){return y.default},SaveCloseButtons:function(){return T.default},Schedule:function(){return D.default},SelectID:function(){return ce.default},SelectWithIcon:function(){return g.Z},SimpleCron:function(){return d.default},SimpleCronDialog:function(){return Ie.Z},TabContainer:function(){return L.default},TabContent:function(){return k.default},TabHeader:function(){return C.default},TextInput:function(){return We.default},TextWithIcon:function(){return E.default},Theme:function(){return t.default},ToggleThemeMenu:function(){return b.Z},TreeTable:function(){return P.Z},UploadImage:function(){return F.default},Utils:function(){return p.default},__esModule:function(){return t.__esModule},copy:function(){return o.a},getSelectIdIcon:function(){return j.getSelectIdIcon},getSystemIcon:function(){return j.getSystemIcon},i18n:function(){return s.default},withWidth:function(){return B.default}});var t=e(82890),a=e(38120),s=e(55289),m=e(86608),O=e(49021),M=e(73868),x=e(23962),o=e.n(x),c=e(42550),u=e(90010),w=e(70043),j=e(94475),f=e(75481),v=e(81392),Y=e(30846),U=e(40666),A=e(54466),_=e(8471),q=e(82195),y=e(43924),T=e(84302),D=e(70577),g=e(49905),L=e(6782),k=e(78259),C=e(92977),E=e(64263),b=e(58058),P=e(75082),F=e(8367),p=e(33919),B=e(70703),d=e(329),z=e(90032),K=e(1434),Q=e(70095),oe=e(86732),De=e(4372),Te=e(71672),J=e(37943),le=e(83358),Re=e(24963),ae=e(86544),be=e(94201),Ce=e(78569),ke=e(95837),qe=e(1272),Ke=e(78444),st=e(87280),H=e(15044),te=e(41728),Z=e(30472),he=e(99822),se=e(8146),ce=e(98735),Ie=e(17027),We=e(93451),_e=e(92636)},28364:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}),"ArrowBack");r.default=m},57803:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");r.default=m},16273:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"}),"ArrowUpward");r.default=m},12660:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"}),"Article");r.default=m},29450:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"}),"Bookmark");r.default=m},55374:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15-5-2.18L7 18V5h10v13z"}),"BookmarkBorder");r.default=m},74062:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"}),"Brightness4");r.default=m},37985:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"}),"Brightness5");r.default=m},77717:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"}),"Brightness6");r.default=m},44209:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"}),"Brightness7");r.default=m},78276:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear");r.default=m},36990:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"m20.71 5.63-2.34-2.34a.9959.9959 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19 5 17.08l8.06-8.06 1.92 1.92L6.92 19z"}),"Colorize");r.default=m},84335:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"}),"CreateNewFolder");r.default=m},16055:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z"}),"Crop");r.default=m},62664:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");r.default=m},40141:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z"}),"FilterAlt");r.default=m},55423:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M19.79 5.61C20.3 4.95 19.83 4 19 4H6.83l7.97 7.97 4.99-6.36zM2.81 2.81 1.39 4.22 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.17l5.78 5.78 1.41-1.41L2.81 2.81z"}),"FilterAltOff");r.default=m},19110:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"}),"FolderOpen");r.default=m},94719:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"}),"GpsFixed");r.default=m},11548:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");r.default=m},59954:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"}),"InsertDriveFile");r.default=m},79802:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"}),"Language");r.default=m},94884:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"}),"List");r.default=m},43760:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"}),"MusicNote");r.default=m},84476:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext");r.default=m},37538:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M8 5v14l11-7z"}),"PlayArrow");r.default=m},7264:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"SaveAlt");r.default=m},72489:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFile");r.default=m},41147:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z"}),"VerticalAlignBottom");r.default=m},28393:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z"}),"VerticalAlignTop");r.default=m},32002:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"}),"Videocam");r.default=m},72104:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z"}),"ViewHeadline");r.default=m},21936:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M14.67 5v6.5H9.33V5h5.34zm1 6.5H21V5h-5.33v6.5zm-1 7.5v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zm-7.34 0H3V19h5.33v-6.5zm0-1V5H3v6.5h5.33z"}),"ViewModule");r.default=m},40173:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"Visibility");r.default=m},16826:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");r.default=m},10186:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),s=e(67557),m=(0,a.default)((0,s.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");r.default=m},50090:function(l,r,e){"use strict";e.r(r),e.d(r,{default:function(){return t.Z}});var t=e(12551)},79523:function(l,r,e){"use strict";e.r(r),e.d(r,{default:function(){return t.Z}});var t=e(93318)},4186:function(l,r,e){"use strict";e.r(r),e.d(r,{CalendarPicker:function(){return qa},CalendarPickerSkeleton:function(){return Jo},ClockPicker:function(){return Rr},DEFAULT_LOCALE:function(){return L},DatePicker:function(){return Ks},DateTimePicker:function(){return li},DesktopDatePicker:function(){return xn},DesktopDateTimePicker:function(){return jo},DesktopTimePicker:function(){return Wo},LocalizationProvider:function(){return b},MobileDatePicker:function(){return Oo},MobileDateTimePicker:function(){return zo},MobileTimePicker:function(){return Ho},MonthPicker:function(){return Te},MuiPickersAdapterContext:function(){return C},PickerStaticWrapper:function(){return cr},PickersDay:function(){return Qt},StaticDatePicker:function(){return Si},StaticDateTimePicker:function(){return Ti},StaticTimePicker:function(){return Pi},TimePicker:function(){return Uo},YearPicker:function(){return $t},calendarPickerClasses:function(){return $a},calendarPickerSkeletonClasses:function(){return tr},clockPickerClasses:function(){return cs},deDE:function(){return Oi},enUS:function(){return k},frFR:function(){return Mi},getCalendarPickerSkeletonUtilityClass:function(){return On},getCalendarPickerUtilityClass:function(){return Ga},getClockPickerUtilityClass:function(){return mo},getMonthPickerUtilityClass:function(){return z},getPickersDayUtilityClass:function(){return mt},getYearPickerUtilityClass:function(){return da},monthPickerClasses:function(){return K},nlNL:function(){return wi},pickersDayClasses:function(){return It},ptBR:function(){return Ri},svSE:function(){return ki},trTR:function(){return Go},yearPickerClasses:function(){return ja}});function t(){return t=Object.assign?Object.assign.bind():function(h){for(var I=1;I=0)&&(ee[ue]=h[ue]);return ee}var s=e(4819),m=e.n(s),O=e(15854),M=e.n(O),x=e(23060),o=e(82500),c=e(89857),u=e(94427),w=e(99296),j=e(72945);function f(h,I){return Array.isArray(I)?I.every(ee=>h.indexOf(ee)!==-1):h.indexOf(I)!==-1}const v=(h,I)=>ee=>{(ee.key==="Enter"||ee.key===" ")&&(h(),ee.preventDefault(),ee.stopPropagation()),I&&I(ee)},Y=h=>{setTimeout(h,0)},U=()=>{};var A=e(67557);const _=["disabled","onSelect","selected","value"],q=(0,u.generateUtilityClasses)("PrivatePickersMonth",["root","selected"]),y=(0,o.ZP)(w.Z)(({theme:h})=>t({flex:"1 0 33.33%",display:"flex",alignItems:"center",justifyContent:"center",color:"unset",backgroundColor:"transparent",border:0,outline:0},h.typography.subtitle1,{margin:"8px 0",height:36,borderRadius:18,cursor:"pointer","&:focus, &:hover":{backgroundColor:(0,j.Fq)(h.palette.action.active,h.palette.action.hoverOpacity)},"&:disabled":{pointerEvents:"none",color:h.palette.text.secondary},[`&.${q.selected}`]:{color:h.palette.primary.contrastText,backgroundColor:h.palette.primary.main,"&:focus, &:hover":{backgroundColor:h.palette.primary.dark}}})),T=h=>{const{disabled:I,onSelect:ee,selected:G,value:ue}=h,ve=a(h,_),pe=()=>{ee(ue)};return(0,A.jsx)(y,t({component:"button",type:"button",className:(0,x.default)(q.root,G&&q.selected),tabIndex:I?-1:0,onClick:pe,onKeyDown:v(pe),color:G?"primary":void 0,variant:G?"h5":"subtitle1",disabled:I},ve))},D=h=>({components:{MuiLocalizationProvider:{defaultProps:{localeText:t({},h)}}}}),g={previousMonth:"Previous month",nextMonth:"Next month",openPreviousView:"open previous view",openNextView:"open next view",calendarViewSwitchingButtonAriaLabel:h=>h==="year"?"year view is open, switch to calendar view":"calendar view is open, switch to year view",start:"Start",end:"End",cancelButtonLabel:"Cancel",clearButtonLabel:"Clear",okButtonLabel:"OK",todayButtonLabel:"Today",clockLabelText:(h,I,ee)=>`Select ${h}. ${I===null?"No time selected":`Selected time is ${ee.format(I,"fullTime")}`}`,hoursClockNumberText:h=>`${h} hours`,minutesClockNumberText:h=>`${h} minutes`,secondsClockNumberText:h=>`${h} seconds`,openDatePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`Choose date, selected date is ${I.format(I.date(h),"fullDate")}`:"Choose date",openTimePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`Choose time, selected time is ${I.format(I.date(h),"fullTime")}`:"Choose time",timeTableLabel:"pick time",dateTableLabel:"pick date"},L=g,k=D(g),C=s.createContext(null);let E=!1;function b(h){const I=(0,c.Z)({props:h,name:"MuiLocalizationProvider"}),{children:ee,dateAdapter:G,dateFormats:ue,dateLibInstance:ve,locale:pe,adapterLocale:xe,localeText:me}=I,Se=s.useMemo(()=>new G({locale:xe!=null?xe:pe,formats:ue,instance:ve}),[G,pe,xe,ue,ve]),Le=s.useMemo(()=>({minDate:Se.date("1900-01-01T00:00:00.000"),maxDate:Se.date("2099-12-31T00:00:00.000")}),[Se]),Fe=s.useMemo(()=>({utils:Se,defaultDates:Le,localeText:t({},L,me!=null?me:{})}),[Le,Se,me]);return(0,A.jsx)(C.Provider,{value:Fe,children:ee})}const P=()=>{const h=s.useContext(C);if(h===null)throw new Error("MUI: Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.");return h},F=()=>P().utils,p=()=>P().defaultDates,B=()=>P().localeText,d=()=>{const h=F();return s.useRef(h.date()).current};function z(h){return(0,u.generateUtilityClass)("MuiMonthPicker",h)}const K=(0,u.generateUtilityClasses)("MuiMonthPicker",["root"]),Q=["className","date","disabled","disableFuture","disablePast","maxDate","minDate","onChange","shouldDisableMonth","readOnly"],oe=h=>{const{classes:I}=h,ee={root:["root"]};return(0,u.unstable_composeClasses)(ee,z,I)},De=(0,o.ZP)("div",{name:"MuiMonthPicker",slot:"Root",overridesResolver:(h,I)=>I.root})({width:310,display:"flex",flexWrap:"wrap",alignContent:"stretch",margin:"0 4px"}),Te=s.forwardRef(function(I,ee){const G=F(),ue=d(),ve=p(),pe=(0,c.Z)({props:I,name:"MuiMonthPicker"}),{className:xe,date:me,disabled:Se,disableFuture:Le,disablePast:Fe,maxDate:Be=ve.maxDate,minDate:Je=ve.minDate,onChange:Xe,shouldDisableMonth:tt,readOnly:pt}=pe,Ct=a(pe,Q),xt=pe,At=oe(xt),bt=me!=null?me:ue,Dt=G.getMonth(bt),lt=Et=>{const Ht=G.startOfMonth(Fe&&G.isAfter(ue,Je)?ue:Je),qt=G.startOfMonth(Le&&G.isBefore(ue,Be)?ue:Be);return G.isBefore(Et,Ht)||G.isAfter(Et,qt)?!0:tt?tt(Et):!1},Mt=Et=>{if(pt)return;const Ht=G.setMonth(bt,Et);Xe(Ht,"finish")};return(0,A.jsx)(De,t({ref:ee,className:(0,x.default)(At.root,xe),ownerState:xt},Ct,{children:G.getMonthArray(bt).map(Et=>{const Ht=G.getMonth(Et),qt=G.format(Et,"monthShort");return(0,A.jsx)(T,{value:Ht,selected:Ht===Dt,onSelect:Mt,disabled:Se||lt(Et),children:qt},qt)})}))});function J(h,I,ee){const{value:G,onError:ue}=h,ve=P(),pe=s.useRef(null),xe=I({adapter:ve,value:G,props:h});return s.useEffect(()=>{ue&&!ee(xe,pe.current)&&ue(xe,G),pe.current=xe},[ee,ue,pe,xe,G]),xe}const le=({props:h,value:I,adapter:ee})=>{const G=ee.utils.date(),ue=ee.utils.date(I),{shouldDisableDate:ve,minDate:pe=ee.defaultDates.minDate,maxDate:xe=ee.defaultDates.maxDate,disableFuture:me,disablePast:Se}=h;if(ue===null)return null;switch(!0){case!ee.utils.isValid(I):return"invalidDate";case Boolean(ve&&ve(ue)):return"shouldDisableDate";case Boolean(me&&ee.utils.isAfterDay(ue,G)):return"disableFuture";case Boolean(Se&&ee.utils.isBeforeDay(ue,G)):return"disablePast";case Boolean(pe&&ee.utils.isBeforeDay(ue,pe)):return"minDate";case Boolean(xe&&ee.utils.isAfterDay(ue,xe)):return"maxDate";default:return null}},Re=({shouldDisableDate:h,minDate:I,maxDate:ee,disableFuture:G,disablePast:ue})=>{const ve=P();return s.useCallback(pe=>le({adapter:ve,value:pe,props:{shouldDisableDate:h,minDate:I,maxDate:ee,disableFuture:G,disablePast:ue}})!==null,[ve,h,I,ee,G,ue])},ae=(h,I)=>h===I,be=h=>J(h,le,ae),Ce=(h,I,ee)=>(G,ue)=>{switch(ue.type){case"changeMonth":return t({},G,{slideDirection:ue.direction,currentMonth:ue.newMonth,isMonthSwitchingAnimating:!h});case"finishMonthSwitchingAnimation":return t({},G,{isMonthSwitchingAnimating:!1});case"changeFocusedDay":{if(G.focusedDay!=null&&ue.focusedDay!=null&&ee.isSameDay(ue.focusedDay,G.focusedDay))return G;const ve=ue.focusedDay!=null&&!I&&!ee.isSameMonth(G.currentMonth,ue.focusedDay);return t({},G,{focusedDay:ue.focusedDay,isMonthSwitchingAnimating:ve&&!h,currentMonth:ve?ee.startOfMonth(ue.focusedDay):G.currentMonth,slideDirection:ue.focusedDay!=null&&ee.isAfterDay(ue.focusedDay,G.currentMonth)?"left":"right"})}default:throw new Error("missing support")}},ke=({date:h,defaultCalendarMonth:I,disableFuture:ee,disablePast:G,disableSwitchToMonthOnDayFocus:ue=!1,maxDate:ve,minDate:pe,onMonthChange:xe,reduceAnimations:me,shouldDisableDate:Se})=>{var Le;const Fe=d(),Be=F(),Je=s.useRef(Ce(Boolean(me),ue,Be)).current,[Xe,tt]=s.useReducer(Je,{isMonthSwitchingAnimating:!1,focusedDay:h||Fe,currentMonth:Be.startOfMonth((Le=h!=null?h:I)!=null?Le:Fe),slideDirection:"left"}),pt=s.useCallback(Dt=>{tt(t({type:"changeMonth"},Dt)),xe&&xe(Dt.newMonth)},[xe]),Ct=s.useCallback(Dt=>{const lt=Dt!=null?Dt:Fe;Be.isSameMonth(lt,Xe.currentMonth)||pt({newMonth:Be.startOfMonth(lt),direction:Be.isAfterDay(lt,Xe.currentMonth)?"left":"right"})},[Xe.currentMonth,pt,Fe,Be]),xt=Re({shouldDisableDate:Se,minDate:pe,maxDate:ve,disableFuture:ee,disablePast:G}),At=s.useCallback(()=>{tt({type:"finishMonthSwitchingAnimation"})},[]),bt=s.useCallback(Dt=>{xt(Dt)||tt({type:"changeFocusedDay",focusedDay:Dt})},[xt]);return{calendarState:Xe,changeMonth:Ct,changeFocusedDay:bt,isDateDisabled:xt,onMonthSwitchingAnimationEnd:At,handleChangeMonth:pt}};var qe=e(92339),Ke=e(32873);const st=(0,u.generateUtilityClasses)("PrivatePickersFadeTransitionGroup",["root"]),H=500,te=(0,o.ZP)(Ke.Z)({display:"block",position:"relative"}),Z=({children:h,className:I,reduceAnimations:ee,transKey:G})=>ee?h:(0,A.jsx)(te,{className:(0,x.default)(st.root,I),children:(0,A.jsx)(qe.Z,{appear:!1,mountOnEnter:!0,unmountOnExit:!0,timeout:{appear:H,enter:H/2,exit:0},children:h},G)});var he=e(4078),ce=typeof window!="undefined"?s.useLayoutEffect:s.useEffect,Ie=e(18051),We=e(70485);const _e=36,ct=2,dt=320,nt=358;function mt(h){return(0,u.generateUtilityClass)("MuiPickersDay",h)}const It=(0,u.generateUtilityClasses)("MuiPickersDay",["root","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","today","selected","disabled"]),aa=["autoFocus","className","day","disabled","disableHighlightToday","disableMargin","hidden","isAnimating","onClick","onDayFocus","onDaySelect","onFocus","onKeyDown","outsideCurrentMonth","selected","showDaysOutsideCurrentMonth","children","today"],ua=h=>{const{selected:I,disableMargin:ee,disableHighlightToday:G,today:ue,outsideCurrentMonth:ve,showDaysOutsideCurrentMonth:pe,classes:xe}=h,me={root:["root",I&&"selected",!ee&&"dayWithMargin",!G&&ue&&"today",ve&&pe&&"dayOutsideMonth"],hiddenDaySpacingFiller:["hiddenDaySpacingFiller"]};return(0,u.unstable_composeClasses)(me,mt,xe)},St=({theme:h,ownerState:I})=>t({},h.typography.caption,{width:_e,height:_e,borderRadius:"50%",padding:0,backgroundColor:h.palette.background.paper,color:h.palette.text.primary,"&:hover":{backgroundColor:(0,j.Fq)(h.palette.action.active,h.palette.action.hoverOpacity)},"&:focus":{backgroundColor:(0,j.Fq)(h.palette.action.active,h.palette.action.hoverOpacity),[`&.${It.selected}`]:{willChange:"background-color",backgroundColor:h.palette.primary.dark}},[`&.${It.selected}`]:{color:h.palette.primary.contrastText,backgroundColor:h.palette.primary.main,fontWeight:h.typography.fontWeightMedium,transition:h.transitions.create("background-color",{duration:h.transitions.duration.short}),"&:hover":{willChange:"background-color",backgroundColor:h.palette.primary.dark}},[`&.${It.disabled}`]:{color:h.palette.text.disabled}},!I.disableMargin&&{margin:`0 ${ct}px`},I.outsideCurrentMonth&&I.showDaysOutsideCurrentMonth&&{color:h.palette.text.secondary},!I.disableHighlightToday&&I.today&&{[`&:not(.${It.selected})`]:{border:`1px solid ${h.palette.text.secondary}`}}),_t=(h,I)=>{const{ownerState:ee}=h;return[I.root,!ee.disableMargin&&I.dayWithMargin,!ee.disableHighlightToday&&ee.today&&I.today,!ee.outsideCurrentMonth&&ee.showDaysOutsideCurrentMonth&&I.dayOutsideMonth,ee.outsideCurrentMonth&&!ee.showDaysOutsideCurrentMonth&&I.hiddenDaySpacingFiller]},ca=(0,o.ZP)(he.Z,{name:"MuiPickersDay",slot:"Root",overridesResolver:_t})(St),Bt=(0,o.ZP)("div",{name:"MuiPickersDay",slot:"Root",overridesResolver:_t})(({theme:h,ownerState:I})=>t({},St({theme:h,ownerState:I}),{visibility:"hidden"})),wt=()=>{},Qe=s.forwardRef(function(I,ee){const G=(0,c.Z)({props:I,name:"MuiPickersDay"}),{autoFocus:ue=!1,className:ve,day:pe,disabled:xe=!1,disableHighlightToday:me=!1,disableMargin:Se=!1,isAnimating:Le,onClick:Fe,onDayFocus:Be=wt,onDaySelect:Je,onFocus:Xe,onKeyDown:tt,outsideCurrentMonth:pt,selected:Ct=!1,showDaysOutsideCurrentMonth:xt=!1,children:At,today:bt=!1}=G,Dt=a(G,aa),lt=t({},G,{autoFocus:ue,disabled:xe,disableHighlightToday:me,disableMargin:Se,selected:Ct,showDaysOutsideCurrentMonth:xt,today:bt}),Mt=ua(lt),Et=F(),Ht=s.useRef(null),qt=(0,We.Z)(Ht,ee);ce(()=>{ue&&!xe&&!Le&&!pt&&Ht.current.focus()},[ue,xe,Le,pt]);const Yt=ta=>{Be&&Be(pe),Xe&&Xe(ta)},Lt=ta=>{xe||Je(pe,"finish"),Fe&&Fe(ta)},ea=(0,Ie.Z)();function Jt(ta){switch(tt!==void 0&&tt(ta),ta.key){case"ArrowUp":Be(Et.addDays(pe,-7)),ta.preventDefault();break;case"ArrowDown":Be(Et.addDays(pe,7)),ta.preventDefault();break;case"ArrowLeft":Be(Et.addDays(pe,ea.direction==="ltr"?-1:1)),ta.preventDefault();break;case"ArrowRight":Be(Et.addDays(pe,ea.direction==="ltr"?1:-1)),ta.preventDefault();break;case"Home":Be(Et.startOfWeek(pe)),ta.preventDefault();break;case"End":Be(Et.endOfWeek(pe)),ta.preventDefault();break;case"PageUp":Be(Et.getNextMonth(pe)),ta.preventDefault();break;case"PageDown":Be(Et.getPreviousMonth(pe)),ta.preventDefault();break;default:break}}return pt&&!xt?(0,A.jsx)(Bt,{className:(0,x.default)(Mt.root,Mt.hiddenDaySpacingFiller,ve),ownerState:lt}):(0,A.jsx)(ca,t({className:(0,x.default)(Mt.root,ve),ownerState:lt,ref:qt,centerRipple:!0,disabled:xe,"aria-label":At?void 0:Et.format(pe,"fullDate"),tabIndex:Ct?0:-1,onFocus:Yt,onKeyDown:Jt,onClick:Lt},Dt,{children:At||Et.format(pe,"dayOfMonth")}))}),Xt=(h,I)=>h.autoFocus===I.autoFocus&&h.isAnimating===I.isAnimating&&h.today===I.today&&h.disabled===I.disabled&&h.selected===I.selected&&h.disableMargin===I.disableMargin&&h.showDaysOutsideCurrentMonth===I.showDaysOutsideCurrentMonth&&h.disableHighlightToday===I.disableHighlightToday&&h.className===I.className&&h.outsideCurrentMonth===I.outsideCurrentMonth&&h.onDayFocus===I.onDayFocus&&h.onDaySelect===I.onDaySelect,Qt=s.memo(Qe,Xt);var pa=e(87462),kt=e(63366),re=e(51721);function ge(h,I){return h.classList?!!I&&h.classList.contains(I):(" "+(h.className.baseVal||h.className)+" ").indexOf(" "+I+" ")!==-1}function $e(h,I){h.classList?h.classList.add(I):ge(h,I)||(typeof h.className=="string"?h.className=h.className+" "+I:h.setAttribute("class",(h.className&&h.className.baseVal||"")+" "+I))}function Ge(h,I){return h.replace(new RegExp("(^|\\s)"+I+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function V(h,I){h.classList?h.classList.remove(I):typeof h.className=="string"?h.className=Ge(h.className,I):h.setAttribute("class",Ge(h.className&&h.className.baseVal||"",I))}var ne=e(24561),Oe=function(I,ee){return I&&ee&&ee.split(" ").forEach(function(G){return $e(I,G)})},Ae=function(I,ee){return I&&ee&&ee.split(" ").forEach(function(G){return V(I,G)})},He=function(h){(0,re.Z)(I,h);function I(){for(var G,ue=arguments.length,ve=new Array(ue),pe=0;pe{const I=h.transitions.create("transform",{duration:gt,easing:"cubic-bezier(0.35, 0.8, 0.4, 1)"});return{display:"block",position:"relative",overflowX:"hidden","& > *":{position:"absolute",top:0,right:0,left:0},[`& .${ft["slideEnter-left"]}`]:{willChange:"transform",transform:"translate(100%)",zIndex:1},[`& .${ft["slideEnter-right"]}`]:{willChange:"transform",transform:"translate(-100%)",zIndex:1},[`& .${ft.slideEnterActive}`]:{transform:"translate(0%)",transition:I},[`& .${ft.slideExit}`]:{transform:"translate(0%)"},[`& .${ft["slideExitActiveLeft-left"]}`]:{willChange:"transform",transform:"translate(-100%)",transition:I,zIndex:0},[`& .${ft["slideExitActiveLeft-right"]}`]:{willChange:"transform",transform:"translate(100%)",transition:I,zIndex:0}}}),Rt=h=>{let{children:I,className:ee,reduceAnimations:G,slideDirection:ue,transKey:ve}=h,pe=a(h,yt);if(G)return(0,A.jsx)("div",{className:(0,x.default)(ft.root,ee),children:I});const xe={exit:ft.slideExit,enterActive:ft.slideEnterActive,enter:ft[`slideEnter-${ue}`],exitActive:ft[`slideExitActiveLeft-${ue}`]};return(0,A.jsx)(zt,{className:(0,x.default)(ft.root,ee),childFactory:me=>s.cloneElement(me,{classNames:xe}),children:(0,A.jsx)(rt,t({mountOnEnter:!0,unmountOnExit:!0,timeout:gt,classNames:xe},pe,{children:I}),ve)})},jt=(_e+ct*4)*6,Ot=(0,o.ZP)("div")({display:"flex",justifyContent:"center",alignItems:"center"}),ht=(0,o.ZP)(w.Z)(({theme:h})=>({width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:h.palette.text.secondary})),Kt=(0,o.ZP)("div")({display:"flex",justifyContent:"center",alignItems:"center",minHeight:jt}),xa=(0,o.ZP)(Rt)({minHeight:jt}),Na=(0,o.ZP)("div")({overflow:"hidden"}),Ma=(0,o.ZP)("div")({margin:`${ct}px 0`,display:"flex",justifyContent:"center"});function La(h){const I=d(),ee=F(),{autoFocus:G,onFocusedDayChange:ue,className:ve,currentMonth:pe,selectedDays:xe,disabled:me,disableHighlightToday:Se,focusedDay:Le,isMonthSwitchingAnimating:Fe,loading:Be,onSelectedDaysChange:Je,onMonthSwitchingAnimationEnd:Xe,readOnly:tt,reduceAnimations:pt,renderDay:Ct,renderLoading:xt=()=>(0,A.jsx)("span",{children:"..."}),showDaysOutsideCurrentMonth:At,slideDirection:bt,TransitionProps:Dt,disablePast:lt,disableFuture:Mt,minDate:Et,maxDate:Ht,shouldDisableDate:qt}=h,Yt=Re({shouldDisableDate:qt,minDate:Et,maxDate:Ht,disablePast:lt,disableFuture:Mt}),Lt=s.useCallback((vt,Vt="finish")=>{tt||Je(vt,Vt)},[Je,tt]),ea=ee.getMonth(pe),Jt=xe.filter(vt=>!!vt).map(vt=>ee.startOfDay(vt)),ta=ea,Ft=s.useMemo(()=>s.createRef(),[ta]);return(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(Ot,{children:ee.getWeekdays().map((vt,Vt)=>(0,A.jsx)(ht,{"aria-hidden":!0,variant:"caption",children:vt.charAt(0).toUpperCase()},vt+Vt.toString()))}),Be?(0,A.jsx)(Kt,{children:xt()}):(0,A.jsx)(xa,t({transKey:ta,onExited:Xe,reduceAnimations:pt,slideDirection:bt,className:ve},Dt,{nodeRef:Ft,children:(0,A.jsx)(Na,{ref:Ft,role:"grid",children:ee.getWeekArray(pe).map(vt=>(0,A.jsx)(Ma,{role:"row",children:vt.map(Vt=>{const ha={key:Vt==null?void 0:Vt.toString(),day:Vt,isAnimating:Fe,disabled:me||Yt(Vt),autoFocus:G&&Le!==null&&ee.isSameDay(Vt,Le),today:ee.isSameDay(Vt,I),outsideCurrentMonth:ee.getMonth(Vt)!==ea,selected:Jt.some(ka=>ee.isSameDay(ka,Vt)),disableHighlightToday:Se,showDaysOutsideCurrentMonth:At,onDayFocus:ue,onDaySelect:Lt};return Ct?Ct(Vt,Jt,ha):(0,A.jsx)("div",{role:"cell",children:(0,A.jsx)(Qt,t({},ha))},ha.key)})},`week-${vt[0]}`))})}))]})}var cn=e(50770);function Ba({onChange:h,onViewChange:I,openTo:ee,view:G,views:ue}){var ve,pe;const[xe,me]=(0,cn.Z)({name:"Picker",state:"view",controlled:G,default:ee&&f(ue,ee)?ee:ue[0]}),Se=(ve=ue[ue.indexOf(xe)-1])!=null?ve:null,Le=(pe=ue[ue.indexOf(xe)+1])!=null?pe:null,Fe=s.useCallback(Xe=>{me(Xe),I&&I(Xe)},[me,I]),Be=s.useCallback(()=>{Le&&Fe(Le)},[Le,Fe]);return{handleChangeAndOpenNext:s.useCallback((Xe,tt)=>{const pt=tt==="finish",Ct=pt&&Boolean(Le)?"partial":tt;h(Xe,Ct),pt&&Be()},[Le,h,Be]),nextView:Le,previousView:Se,openNext:Be,openView:xe,setOpenView:Fe}}var on=e(72170),Ra=e(85233);const vr=(0,Ra.Z)((0,A.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),Ua=(0,Ra.Z)((0,A.jsx)("path",{d:"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"}),"ArrowLeft"),Ja=(0,Ra.Z)((0,A.jsx)("path",{d:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"}),"ArrowRight"),qn=(0,Ra.Z)((0,A.jsx)("path",{d:"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"}),"Calendar"),Pn=(0,Ra.Z)((0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,A.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Clock"),gr=(0,Ra.Z)((0,A.jsx)("path",{d:"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"}),"DateRange"),yr=(0,Ra.Z)((0,A.jsx)("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),"Pen"),br=(0,Ra.Z)((0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,A.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Time"),Cr=["children","className","components","componentsProps","isLeftDisabled","isLeftHidden","isRightDisabled","isRightHidden","leftArrowButtonText","onLeftClick","onRightClick","rightArrowButtonText"],vn=(0,u.generateUtilityClasses)("MuiPickersArrowSwitcher",["root","spacer","button"]),xr=(0,o.ZP)("div",{name:"MuiPickersArrowSwitcher",slot:"Root",overridesResolver:(h,I)=>I.root})({display:"flex"}),Sr=(0,o.ZP)("div",{name:"MuiPickersArrowSwitcher",slot:"Spacer",overridesResolver:(h,I)=>I.spacer})(({theme:h})=>({width:h.spacing(3)})),_n=(0,o.ZP)(on.Z,{name:"MuiPickersArrowSwitcher",slot:"Button",overridesResolver:(h,I)=>I.button})(({ownerState:h})=>t({},h.hidden&&{visibility:"hidden"})),er=s.forwardRef(function(I,ee){const{children:G,className:ue,components:ve,componentsProps:pe,isLeftDisabled:xe,isLeftHidden:me,isRightDisabled:Se,isRightHidden:Le,leftArrowButtonText:Fe,onLeftClick:Be,onRightClick:Je,rightArrowButtonText:Xe}=I,tt=a(I,Cr),Ct=(0,Ie.Z)().direction==="rtl",xt=(pe==null?void 0:pe.leftArrowButton)||{},At=(ve==null?void 0:ve.LeftArrowIcon)||Ua,bt=(pe==null?void 0:pe.rightArrowButton)||{},Dt=(ve==null?void 0:ve.RightArrowIcon)||Ja,lt=I;return(0,A.jsxs)(xr,t({ref:ee,className:(0,x.default)(vn.root,ue),ownerState:lt},tt,{children:[(0,A.jsx)(_n,t({as:ve==null?void 0:ve.LeftArrowButton,size:"small","aria-label":Fe,title:Fe,disabled:xe,edge:"end",onClick:Be},xt,{className:(0,x.default)(vn.button,xt.className),ownerState:t({},lt,xt,{hidden:me}),children:Ct?(0,A.jsx)(Dt,{}):(0,A.jsx)(At,{})})),G?(0,A.jsx)(w.Z,{variant:"subtitle1",component:"span",children:G}):(0,A.jsx)(Sr,{className:vn.spacer,ownerState:lt}),(0,A.jsx)(_n,t({as:ve==null?void 0:ve.RightArrowButton,size:"small","aria-label":Xe,title:Xe,edge:"start",disabled:Se,onClick:Je},bt,{className:(0,x.default)(vn.button,bt.className),ownerState:t({},lt,bt,{hidden:Le}),children:Ct?(0,A.jsx)(At,{}):(0,A.jsx)(Dt,{})}))]}))}),Er=(h,I)=>h?I.getHours(h)>=12?"pm":"am":null,Fa=(h,I,ee)=>ee&&(h>=12?"pm":"am")!==I?I==="am"?h-12:h+12:h,Tr=(h,I,ee,G)=>{const ue=Fa(G.getHours(h),I,ee);return G.setHours(h,ue)},sn=(h,I)=>I.getHours(h)*3600+I.getMinutes(h)*60+I.getSeconds(h),wn=(h=!1,I)=>(ee,G)=>h?I.isAfter(ee,G):sn(ee,I)>sn(G,I);function fe(h,{disableFuture:I,maxDate:ee}){const G=F();return s.useMemo(()=>{const ue=G.date(),ve=G.startOfMonth(I&&G.isBefore(ue,ee)?ue:ee);return!G.isAfter(ve,h)},[I,ee,h,G])}function W(h,{disablePast:I,minDate:ee}){const G=F();return s.useMemo(()=>{const ue=G.date(),ve=G.startOfMonth(I&&G.isAfter(ue,ee)?ue:ee);return!G.isBefore(ve,h)},[I,ee,h,G])}function X(h,I,ee){const G=F(),ue=Er(h,G),ve=s.useCallback(pe=>{const xe=h==null?null:Tr(h,pe,Boolean(I),G);ee(xe,"partial")},[I,h,ee,G]);return{meridiemMode:ue,handleMeridiemChange:ve}}const $=h=>{let I=!1;return()=>{}},we=(0,o.ZP)("div")({display:"flex",alignItems:"center",marginTop:16,marginBottom:8,paddingLeft:24,paddingRight:12,maxHeight:30,minHeight:30}),ye=(0,o.ZP)("div")(({theme:h})=>t({display:"flex",maxHeight:30,overflow:"hidden",alignItems:"center",cursor:"pointer",marginRight:"auto"},h.typography.body1,{fontWeight:h.typography.fontWeightMedium})),Pe=(0,o.ZP)("div")({marginRight:6}),je=(0,o.ZP)(on.Z)({marginRight:"auto"}),et=(0,o.ZP)(vr)(({theme:h,ownerState:I})=>t({willChange:"transform",transition:h.transitions.create("transform"),transform:"rotate(0deg)"},I.openView==="year"&&{transform:"rotate(180deg)"})),Ze=$("Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.");function Ve(h){const{components:I={},componentsProps:ee={},currentMonth:G,disabled:ue,disableFuture:ve,disablePast:pe,getViewSwitchingButtonText:xe,leftArrowButtonText:me,maxDate:Se,minDate:Le,onMonthChange:Fe,onViewChange:Be,openView:Je,reduceAnimations:Xe,rightArrowButtonText:tt,views:pt}=h;Ze({leftArrowButtonText:me,rightArrowButtonText:tt,getViewSwitchingButtonText:xe});const Ct=B(),xt=me!=null?me:Ct.previousMonth,At=tt!=null?tt:Ct.nextMonth,bt=xe!=null?xe:Ct.calendarViewSwitchingButtonAriaLabel,Dt=F(),lt=ee.switchViewButton||{},Mt=()=>Fe(Dt.getNextMonth(G),"left"),Et=()=>Fe(Dt.getPreviousMonth(G),"right"),Ht=fe(G,{disableFuture:ve,maxDate:Se}),qt=W(G,{disablePast:pe,minDate:Le}),Yt=()=>{if(!(pt.length===1||!Be||ue))if(pt.length===2)Be(pt.find(ea=>ea!==Je)||pt[0]);else{const ea=pt.indexOf(Je)!==0?0:1;Be(pt[ea])}};if(pt.length===1&&pt[0]==="year")return null;const Lt=h;return(0,A.jsxs)(we,{ownerState:Lt,children:[(0,A.jsxs)(ye,{role:"presentation",onClick:Yt,ownerState:Lt,children:[(0,A.jsx)(Z,{reduceAnimations:Xe,transKey:Dt.format(G,"monthAndYear"),children:(0,A.jsx)(Pe,{"aria-live":"polite",ownerState:Lt,children:Dt.format(G,"monthAndYear")})}),pt.length>1&&!ue&&(0,A.jsx)(je,t({size:"small",as:I.SwitchViewButton,"aria-label":bt(Je)},lt,{children:(0,A.jsx)(et,{as:I.SwitchViewIcon,ownerState:Lt})}))]}),(0,A.jsx)(qe.Z,{in:Je==="day",children:(0,A.jsx)(er,{leftArrowButtonText:xt,rightArrowButtonText:At,components:I,componentsProps:ee,onLeftClick:Et,onRightClick:Mt,isLeftDisabled:qt,isRightDisabled:Ht})})]})}var Ue=e(14956);const Ye=s.createContext(null);function Gt(h){return(0,u.generateUtilityClass)("PrivatePickersYear",h)}const Ut=(0,u.generateUtilityClasses)("PrivatePickersYear",["root","modeMobile","modeDesktop","yearButton","disabled","selected"]),na=h=>{const{wrapperVariant:I,disabled:ee,selected:G,classes:ue}=h,ve={root:["root",I&&`mode${(0,Ue.Z)(I)}`],yearButton:["yearButton",ee&&"disabled",G&&"selected"]};return(0,u.unstable_composeClasses)(ve,Gt,ue)},Zt=(0,o.ZP)("div")(({ownerState:h})=>t({flexBasis:"33.3%",display:"flex",alignItems:"center",justifyContent:"center"},(h==null?void 0:h.wrapperVariant)==="desktop"&&{flexBasis:"25%"})),ra=(0,o.ZP)("button")(({theme:h})=>t({color:"unset",backgroundColor:"transparent",border:0,outline:0},h.typography.subtitle1,{margin:"8px 0",height:36,width:72,borderRadius:18,cursor:"pointer","&:focus, &:hover":{backgroundColor:(0,j.Fq)(h.palette.action.active,h.palette.action.hoverOpacity)},[`&.${Ut.disabled}`]:{color:h.palette.text.secondary},[`&.${Ut.selected}`]:{color:h.palette.primary.contrastText,backgroundColor:h.palette.primary.main,"&:focus, &:hover":{backgroundColor:h.palette.primary.dark}}})),fa=s.forwardRef(function(I,ee){const{autoFocus:G,className:ue,children:ve,disabled:pe,onClick:xe,onKeyDown:me,selected:Se,value:Le}=I,Fe=s.useRef(null),Be=(0,We.Z)(Fe,ee),Je=s.useContext(Ye),Xe=t({},I,{wrapperVariant:Je}),tt=na(Xe);return s.useEffect(()=>{G&&Fe.current.focus()},[G]),(0,A.jsx)(Zt,{className:(0,x.default)(tt.root,ue),ownerState:Xe,children:(0,A.jsx)(ra,{ref:Be,disabled:pe,type:"button",tabIndex:Se?0:-1,onClick:pt=>xe(pt,Le),onKeyDown:pt=>me(pt,Le),className:tt.yearButton,ownerState:Xe,children:ve})})});function da(h){return(0,u.generateUtilityClass)("MuiYearPicker",h)}const ja=(0,u.generateUtilityClasses)("MuiYearPicker",["root"]),Sa=h=>{const{classes:I}=h,ee={root:["root"]};return(0,u.unstable_composeClasses)(ee,da,I)},it=(0,o.ZP)("div",{name:"MuiYearPicker",slot:"Root",overridesResolver:(h,I)=>I.root})({display:"flex",flexDirection:"row",flexWrap:"wrap",overflowY:"auto",height:"100%",margin:"0 4px"}),$t=s.forwardRef(function(I,ee){const G=d(),ue=(0,Ie.Z)(),ve=F(),pe=p(),xe=(0,c.Z)({props:I,name:"MuiYearPicker"}),{autoFocus:me,className:Se,date:Le,disabled:Fe,disableFuture:Be,disablePast:Je,maxDate:Xe=pe.maxDate,minDate:tt=pe.minDate,onChange:pt,readOnly:Ct,shouldDisableYear:xt}=xe,At=xe,bt=Sa(At),Dt=Le||G,lt=ve.getYear(Dt),Mt=s.useContext(Ye),Et=s.useRef(null),[Ht,qt]=s.useState(lt),Yt=s.useCallback(Ft=>!!(Je&&ve.isBeforeYear(Ft,G)||Be&&ve.isAfterYear(Ft,G)||tt&&ve.isBeforeYear(Ft,tt)||Xe&&ve.isAfterYear(Ft,Xe)||xt&&xt(Ft)),[Be,Je,Xe,tt,G,xt,ve]),Lt=(Ft,vt,Vt="finish")=>{if(Ct)return;const ha=ve.setYear(Dt,vt);pt(ha,Vt)},ea=s.useCallback(Ft=>{Yt(ve.setYear(Dt,Ft))||qt(Ft)},[Dt,Yt,ve]),Jt=Mt==="desktop"?4:3,ta=(Ft,vt)=>{switch(Ft.key){case"ArrowUp":ea(vt-Jt),Ft.preventDefault();break;case"ArrowDown":ea(vt+Jt),Ft.preventDefault();break;case"ArrowLeft":ea(vt+(ue.direction==="ltr"?-1:1)),Ft.preventDefault();break;case"ArrowRight":ea(vt+(ue.direction==="ltr"?1:-1)),Ft.preventDefault();break;default:break}};return(0,A.jsx)(it,{ref:ee,className:(0,x.default)(bt.root,Se),ownerState:At,children:ve.getYearRange(tt,Xe).map(Ft=>{const vt=ve.getYear(Ft),Vt=vt===lt;return(0,A.jsx)(fa,{selected:Vt,value:vt,onClick:Lt,onKeyDown:ta,autoFocus:me&&vt===Ht,ref:Vt?Et:void 0,disabled:Fe||Yt(Ft),children:ve.format(Ft,"year")},ve.format(Ft,"year"))})})}),oa=({date:h,disableFuture:I,disablePast:ee,maxDate:G,minDate:ue,isDateDisabled:ve,utils:pe})=>{const xe=pe.startOfDay(pe.date());ee&&pe.isBefore(ue,xe)&&(ue=xe),I&&pe.isAfter(G,xe)&&(G=xe);let me=h,Se=h;for(pe.isBefore(h,ue)&&(me=pe.date(ue),Se=null),pe.isAfter(h,G)&&(Se&&(Se=pe.date(G)),me=null);me||Se;){if(me&&pe.isAfter(me,G)&&(me=null),Se&&pe.isBefore(Se,ue)&&(Se=null),me){if(!ve(me))return me;me=pe.addDays(me,1)}if(Se){if(!ve(Se))return Se;Se=pe.addDays(Se,-1)}}return null},ya=(h,I)=>{const ee=h.date(I);return h.isValid(ee)?ee:null},Oa=(0,o.ZP)("div")({overflowX:"hidden",width:dt,maxHeight:nt,display:"flex",flexDirection:"column",margin:"0 auto"}),Xa=typeof navigator!="undefined"&&/(android)/i.test(navigator.userAgent),Ga=h=>(0,u.generateUtilityClass)("MuiCalendarPicker",h),$a=(0,u.generateUtilityClasses)("MuiCalendarPicker",["root","viewTransitionContainer"]),Aa=["autoFocus","onViewChange","date","disableFuture","disablePast","defaultCalendarMonth","loading","onChange","onYearChange","onMonthChange","reduceAnimations","renderLoading","shouldDisableDate","shouldDisableMonth","shouldDisableYear","view","views","openTo","className","disabled","readOnly","minDate","maxDate"],ba=h=>{const{classes:I}=h,ee={root:["root"],viewTransitionContainer:["viewTransitionContainer"]};return(0,u.unstable_composeClasses)(ee,Ga,I)},Qa=(0,o.ZP)(Oa,{name:"MuiCalendarPicker",slot:"Root",overridesResolver:(h,I)=>I.root})({display:"flex",flexDirection:"column"}),za=(0,o.ZP)(Z,{name:"MuiCalendarPicker",slot:"ViewTransitionContainer",overridesResolver:(h,I)=>I.viewTransitionContainer})({overflowY:"auto"}),qa=s.forwardRef(function(I,ee){const G=F(),ue=p(),ve=(0,c.Z)({props:I,name:"MuiCalendarPicker"}),{autoFocus:pe,onViewChange:xe,date:me,disableFuture:Se,disablePast:Le,defaultCalendarMonth:Fe,loading:Be=!1,onChange:Je,onYearChange:Xe,onMonthChange:tt,reduceAnimations:pt=Xa,renderLoading:Ct=()=>(0,A.jsx)("span",{children:"..."}),shouldDisableDate:xt,shouldDisableMonth:At,shouldDisableYear:bt,view:Dt,views:lt=["year","day"],openTo:Mt="day",className:Et,disabled:Ht,readOnly:qt,minDate:Yt=ue.minDate,maxDate:Lt=ue.maxDate}=ve,ea=a(ve,Aa),{openView:Jt,setOpenView:ta,openNext:Ft}=Ba({view:Dt,views:lt,openTo:Mt,onChange:Je,onViewChange:xe}),{calendarState:vt,changeFocusedDay:Vt,changeMonth:ha,handleChangeMonth:ka,isDateDisabled:ma,onMonthSwitchingAnimationEnd:pn}=ke({date:me,defaultCalendarMonth:Fe,reduceAnimations:pt,onMonthChange:tt,minDate:Yt,maxDate:Lt,shouldDisableDate:xt,disablePast:Le,disableFuture:Se}),fr=s.useCallback((ia,Da)=>{const Za=G.startOfMonth(ia),Ya=G.endOfMonth(ia),Wa=ma(ia)?oa({utils:G,date:ia,minDate:G.isBefore(Yt,Za)?Za:Yt,maxDate:G.isAfter(Lt,Ya)?Ya:Lt,disablePast:Le,disableFuture:Se,isDateDisabled:ma}):ia;Wa?(Je(Wa,Da),tt==null||tt(Za)):(Ft(),ha(Za)),Vt(Wa)},[Vt,Se,Le,ma,Lt,Yt,Je,tt,ha,Ft,G]),pr=s.useCallback((ia,Da)=>{const Za=G.startOfYear(ia),Ya=G.endOfYear(ia),Wa=ma(ia)?oa({utils:G,date:ia,minDate:G.isBefore(Yt,Za)?Za:Yt,maxDate:G.isAfter(Lt,Ya)?Ya:Lt,disablePast:Le,disableFuture:Se,isDateDisabled:ma}):ia;Wa?(Je(Wa,Da),Xe==null||Xe(Wa)):(Ft(),ha(Za)),Vt(Wa)},[Vt,Se,Le,ma,Lt,Yt,Je,Xe,Ft,G,ha]),hn=s.useCallback((ia,Da)=>Je(me&&ia?G.mergeDateAndTime(ia,me):ia,Da),[G,me,Je]);s.useEffect(()=>{if(me&&ma(me)){const ia=oa({utils:G,date:me,minDate:Yt,maxDate:Lt,disablePast:Le,disableFuture:Se,isDateDisabled:ma});Je(ia,"partial")}},[]),s.useEffect(()=>{me&&ha(me)},[me]);const En=ve,Wt=ba(En),Ca={disablePast:Le,disableFuture:Se,maxDate:Lt,minDate:Yt},mn=Ht&&me||Yt,_r=Ht&&me||Lt;return(0,A.jsxs)(Qa,{ref:ee,className:(0,x.default)(Wt.root,Et),ownerState:En,children:[(0,A.jsx)(Ve,t({},ea,{views:lt,openView:Jt,currentMonth:vt.currentMonth,onViewChange:ta,onMonthChange:(ia,Da)=>ka({newMonth:ia,direction:Da}),minDate:mn,maxDate:_r,disabled:Ht,disablePast:Le,disableFuture:Se,reduceAnimations:pt})),(0,A.jsx)(za,{reduceAnimations:pt,className:Wt.viewTransitionContainer,transKey:Jt,ownerState:En,children:(0,A.jsxs)("div",{children:[Jt==="year"&&(0,A.jsx)($t,t({},ea,Ca,{autoFocus:pe,date:me,onChange:pr,shouldDisableYear:bt,disabled:Ht,readOnly:qt})),Jt==="month"&&(0,A.jsx)(Te,t({},Ca,{className:Et,date:me,onChange:fr,disabled:Ht,readOnly:qt,shouldDisableMonth:At})),Jt==="day"&&(0,A.jsx)(La,t({},ea,vt,Ca,{autoFocus:pe,onMonthSwitchingAnimationEnd:pn,onFocusedDayChange:Vt,reduceAnimations:pt,selectedDays:[me],onSelectedDaysChange:hn,loading:Be,renderLoading:Ct,disabled:Ht,readOnly:qt,shouldDisableDate:xt}))]})})]})});var Rn=e(83609);const On=h=>(0,u.generateUtilityClass)("MuiCalendarPickerSkeleton",h),tr=(0,u.generateUtilityClasses)("MuiCalendarPickerSkeleton",["root","week","daySkeleton"]),_a=["className"],ln=h=>{const{classes:I}=h,ee={root:["root"],week:["week"],daySkeleton:["daySkeleton"]};return(0,u.unstable_composeClasses)(ee,On,I)},Dr=(0,o.ZP)("div",{name:"MuiCalendarPickerSkeleton",slot:"Root",overridesResolver:(h,I)=>I.root})({alignSelf:"start"}),gn=(0,o.ZP)("div",{name:"MuiCalendarPickerSkeleton",slot:"Week",overridesResolver:(h,I)=>I.week})({margin:`${ct}px 0`,display:"flex",justifyContent:"center"}),no=(0,o.ZP)(Rn.Z,{name:"MuiCalendarPickerSkeleton",slot:"Day",overridesResolver:(h,I)=>I.daySkeleton})(({ownerState:h})=>t({margin:`0 ${ct}px`},h.day===0&&{visibility:"hidden"}));no.propTypes={ownerState:M().shape({day:M().number.isRequired}).isRequired};const Pr=[[0,1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,1,1,0,0,0]];function Jo(h){const I=(0,c.Z)({props:h,name:"MuiCalendarPickerSkeleton"}),{className:ee}=I,G=a(I,_a),ue=ln(h);return(0,A.jsx)(Dr,t({className:(0,x.default)(ue.root,ee)},G,{children:Pr.map((ve,pe)=>(0,A.jsx)(gn,{className:ue.week,children:ve.map((xe,me)=>(0,A.jsx)(no,{variant:"circular",width:_e,height:_e,className:ue.daySkeleton,ownerState:{day:xe}},me))},pe))}))}let ar=0;function Xo(h){const[I,ee]=s.useState(h),G=h||I;return s.useEffect(()=>{I==null&&(ar+=1,ee(`mui-${ar}`))},[I]),G}const ro=s["useId"];function Qo(h){if(ro!==void 0){const I=ro();return h!=null?h:I}return Xo(h)}const dn=220,en=36,yn={x:dn/2,y:dn/2},oo={x:yn.x,y:0},so=oo.x-yn.x,io=oo.y-yn.y,qo=h=>h*(180/Math.PI),lo=(h,I,ee)=>{const G=I-yn.x,ue=ee-yn.y,ve=Math.atan2(so,io)-Math.atan2(G,ue);let pe=qo(ve);pe=Math.round(pe/h)*h,pe%=360;const xe=Math.floor(pe/h)||0,me=el(G,2)+el(ue,2),Se=Math.sqrt(me);return{value:xe,distance:Se}},_o=(h,I,ee=1)=>{const G=ee*6;let{value:ue}=lo(G,h,I);return ue=ue*ee%60,ue},nr=(h,I,ee)=>{const{value:G,distance:ue}=lo(30,h,I);let ve=G||12;return ee?ve%=12:uet({width:2,backgroundColor:h.palette.primary.main,position:"absolute",left:"calc(50% - 1px)",bottom:"50%",transformOrigin:"center bottom 0px"},I.toAnimateTransform&&{transition:h.transitions.create(["transform","height"])})),as=(0,o.ZP)("div")(({theme:h,ownerState:I})=>t({width:4,height:4,backgroundColor:h.palette.primary.contrastText,borderRadius:"50%",position:"absolute",top:-21,left:`calc(50% - ${en/2}px)`,border:`${(en-4)/2}px solid ${h.palette.primary.main}`,boxSizing:"content-box"},I.hasSelected&&{backgroundColor:h.palette.primary.main}));class uo extends s.Component{constructor(...I){super(...I),this.state={toAnimateTransform:!1,previousType:void 0}}render(){const I=this.props,{className:ee,isInner:G,type:ue,value:ve}=I,pe=a(I,es),xe=t({},this.props,this.state),me=()=>{let Le=360/(ue==="hours"?12:60)*ve;return ue==="hours"&&ve>12&&(Le-=360),{height:Math.round((G?.26:.4)*dn),transform:`rotateZ(${Le}deg)`}};return(0,A.jsx)(ts,t({style:me(),className:ee,ownerState:xe},pe,{children:(0,A.jsx)(as,{ownerState:xe})}))}}uo.getDerivedStateFromProps=(h,I)=>h.type!==I.previousType?{toAnimateTransform:!0,previousType:h.type}:{toAnimateTransform:!1,previousType:h.type};const ns=(0,o.ZP)("div")(({theme:h})=>({display:"flex",justifyContent:"center",alignItems:"center",margin:h.spacing(2)})),rs=(0,o.ZP)("div")({backgroundColor:"rgba(0,0,0,.07)",borderRadius:"50%",height:220,width:220,flexShrink:0,position:"relative",pointerEvents:"none"}),co=(0,o.ZP)("div")(({ownerState:h})=>t({width:"100%",height:"100%",position:"absolute",pointerEvents:"auto",outline:0,touchAction:"none",userSelect:"none"},h.disabled?{}:{"@media (pointer: fine)":{cursor:"pointer",borderRadius:"50%"},"&:active":{cursor:"move"}})),os=(0,o.ZP)("div")(({theme:h})=>({width:6,height:6,borderRadius:"50%",backgroundColor:h.palette.primary.main,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"})),ss=(0,o.ZP)(on.Z)(({theme:h,ownerState:I})=>t({zIndex:1,position:"absolute",bottom:I.ampmInClock?64:8,left:8},I.meridiemMode==="am"&&{backgroundColor:h.palette.primary.main,color:h.palette.primary.contrastText,"&:hover":{backgroundColor:h.palette.primary.light}})),is=(0,o.ZP)(on.Z)(({theme:h,ownerState:I})=>t({zIndex:1,position:"absolute",bottom:I.ampmInClock?64:8,right:8},I.meridiemMode==="pm"&&{backgroundColor:h.palette.primary.main,color:h.palette.primary.contrastText,"&:hover":{backgroundColor:h.palette.primary.light}}));function fo(h){const{ampm:I,ampmInClock:ee,autoFocus:G,children:ue,date:ve,getClockLabelText:pe,handleMeridiemChange:xe,isTimeDisabled:me,meridiemMode:Se,minutesStep:Le=1,onChange:Fe,selectedId:Be,type:Je,value:Xe,disabled:tt,readOnly:pt}=h,Ct=h,xt=F(),At=s.useContext(Ye),bt=s.useRef(!1),Dt=me(Xe,Je),lt=!I&&Je==="hours"&&(Xe<1||Xe>12),Mt=(vt,Vt)=>{tt||pt||me(vt,Je)||Fe(vt,Vt)},Et=(vt,Vt)=>{let{offsetX:ha,offsetY:ka}=vt;if(ha===void 0){const pn=vt.target.getBoundingClientRect();ha=vt.changedTouches[0].clientX-pn.left,ka=vt.changedTouches[0].clientY-pn.top}const ma=Je==="seconds"||Je==="minutes"?_o(ha,ka,Le):nr(ha,ka,Boolean(I));Mt(ma,Vt)},Ht=vt=>{bt.current=!0,Et(vt,"shallow")},qt=vt=>{bt.current&&(Et(vt,"finish"),bt.current=!1)},Yt=vt=>{vt.buttons>0&&Et(vt.nativeEvent,"shallow")},Lt=vt=>{bt.current&&(bt.current=!1),Et(vt.nativeEvent,"finish")},ea=s.useMemo(()=>Je==="hours"?!0:Xe%5===0,[Je,Xe]),Jt=Je==="minutes"?Le:1,ta=s.useRef(null);ce(()=>{G&&ta.current.focus()},[G]);const Ft=vt=>{if(!bt.current)switch(vt.key){case"Home":Mt(0,"partial"),vt.preventDefault();break;case"End":Mt(Je==="minutes"?59:23,"partial"),vt.preventDefault();break;case"ArrowUp":Mt(Xe+Jt,"partial"),vt.preventDefault();break;case"ArrowDown":Mt(Xe-Jt,"partial"),vt.preventDefault();break;default:}};return(0,A.jsxs)(ns,{children:[(0,A.jsxs)(rs,{children:[(0,A.jsx)(co,{onTouchMove:Ht,onTouchEnd:qt,onMouseUp:Lt,onMouseMove:Yt,ownerState:{disabled:tt}}),!Dt&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(os,{}),ve&&(0,A.jsx)(uo,{type:Je,value:Xe,isInner:lt,hasSelected:ea})]}),(0,A.jsx)("div",{"aria-activedescendant":Be,"aria-label":pe(Je,ve,xt),ref:ta,role:"listbox",onKeyDown:Ft,tabIndex:0,children:ue})]}),I&&(At==="desktop"||ee)&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(ss,{onClick:pt?void 0:()=>xe("am"),disabled:tt||Se===null,ownerState:Ct,children:(0,A.jsx)(w.Z,{variant:"caption",children:"AM"})}),(0,A.jsx)(is,{disabled:tt||Se===null,onClick:pt?void 0:()=>xe("pm"),ownerState:Ct,children:(0,A.jsx)(w.Z,{variant:"caption",children:"PM"})})]})]})}const ls=["className","disabled","index","inner","label","selected"],Mn=(0,u.generateUtilityClasses)("PrivateClockNumber",["selected","disabled"]),us=(0,o.ZP)("span")(({theme:h,ownerState:I})=>t({height:en,width:en,position:"absolute",left:`calc((100% - ${en}px) / 2)`,display:"inline-flex",justifyContent:"center",alignItems:"center",borderRadius:"50%",color:h.palette.text.primary,fontFamily:h.typography.fontFamily,"&:focused":{backgroundColor:h.palette.background.paper},[`&.${Mn.selected}`]:{color:h.palette.primary.contrastText},[`&.${Mn.disabled}`]:{pointerEvents:"none",color:h.palette.text.disabled}},I.inner&&t({},h.typography.body2,{color:h.palette.text.secondary})));function po(h){const{className:I,disabled:ee,index:G,inner:ue,label:ve,selected:pe}=h,xe=a(h,ls),me=h,Se=G%12/12*Math.PI*2-Math.PI/2,Le=(dn-en-2)/2*(ue?.65:1),Fe=Math.round(Math.cos(Se)*Le),Be=Math.round(Math.sin(Se)*Le);return(0,A.jsx)(us,t({className:(0,x.default)(I,pe&&Mn.selected,ee&&Mn.disabled),"aria-disabled":ee?!0:void 0,"aria-selected":pe?!0:void 0,role:"option",style:{transform:`translate(${Fe}px, ${Be+(dn-en)/2}px`},ownerState:me},xe,{children:ve}))}const wr=({ampm:h,date:I,getClockNumberText:ee,isDisabled:G,selectedId:ue,utils:ve})=>{const pe=I?ve.getHours(I):null,xe=[],me=h?1:0,Se=h?12:23,Le=Fe=>pe===null?!1:h?Fe===12?pe===12||pe===0:pe===Fe||pe-12===Fe:pe===Fe;for(let Fe=me;Fe<=Se;Fe+=1){let Be=Fe.toString();Fe===0&&(Be="00");const Je=!h&&(Fe===0||Fe>12);Be=ve.formatNumber(Be);const Xe=Le(Fe);xe.push((0,A.jsx)(po,{id:Xe?ue:void 0,index:Fe,inner:Je,selected:Xe,disabled:G(Fe),label:Be,"aria-label":ee(Be)},Fe))}return xe},ho=({utils:h,value:I,isDisabled:ee,getClockNumberText:G,selectedId:ue})=>{const ve=h.formatNumber;return[[5,ve("05")],[10,ve("10")],[15,ve("15")],[20,ve("20")],[25,ve("25")],[30,ve("30")],[35,ve("35")],[40,ve("40")],[45,ve("45")],[50,ve("50")],[55,ve("55")],[0,ve("00")]].map(([pe,xe],me)=>{const Se=pe===I;return(0,A.jsx)(po,{label:xe,id:Se?ue:void 0,index:me+1,inner:!1,disabled:ee(pe),selected:Se,"aria-label":G(xe)},pe)})};function mo(h){return(0,u.generateUtilityClass)("MuiClockPicker",h)}const cs=(0,u.generateUtilityClasses)("MuiClockPicker",["root","arrowSwitcher"]),un=h=>{const{classes:I}=h,ee={root:["root"],arrowSwitcher:["arrowSwitcher"]};return(0,u.unstable_composeClasses)(ee,mo,I)},ds=(0,o.ZP)(Oa,{name:"MuiClockPicker",slot:"Root",overridesResolver:(h,I)=>I.root})({display:"flex",flexDirection:"column"}),fs=(0,o.ZP)(er,{name:"MuiClockPicker",slot:"ArrowSwitcher",overridesResolver:(h,I)=>I.arrowSwitcher})({position:"absolute",right:12,top:15}),vo=$("Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information."),Rr=s.forwardRef(function(I,ee){const G=(0,c.Z)({props:I,name:"MuiClockPicker"}),{ampm:ue=!1,ampmInClock:ve=!1,autoFocus:pe,components:xe,componentsProps:me,date:Se,disableIgnoringDatePartForTimeValidation:Le,getClockLabelText:Fe,getHoursClockNumberText:Be,getMinutesClockNumberText:Je,getSecondsClockNumberText:Xe,leftArrowButtonText:tt,maxTime:pt,minTime:Ct,minutesStep:xt=1,rightArrowButtonText:At,shouldDisableTime:bt,showViewSwitcher:Dt,onChange:lt,view:Mt,views:Et=["hours","minutes"],openTo:Ht,onViewChange:qt,className:Yt,disabled:Lt,readOnly:ea}=G;vo({leftArrowButtonText:tt,rightArrowButtonText:At,getClockLabelText:Fe,getHoursClockNumberText:Be,getMinutesClockNumberText:Je,getSecondsClockNumberText:Xe});const Jt=B(),ta=tt!=null?tt:Jt.openPreviousView,Ft=At!=null?At:Jt.openNextView,vt=Fe!=null?Fe:Jt.clockLabelText,Vt=Be!=null?Be:Jt.hoursClockNumberText,ha=Je!=null?Je:Jt.minutesClockNumberText,ka=Xe!=null?Xe:Jt.secondsClockNumberText,{openView:ma,setOpenView:pn,nextView:fr,previousView:pr,handleChangeAndOpenNext:hn}=Ba({view:Mt,views:Et,openTo:Ht,onViewChange:qt,onChange:lt}),En=d(),Wt=F(),Ca=s.useMemo(()=>Se||Wt.setSeconds(Wt.setMinutes(Wt.setHours(En,0),0),0),[Se,En,Wt]),{meridiemMode:mn,handleMeridiemChange:_r}=X(Ca,ue,hn),ia=s.useCallback((Pa,va)=>{const Ia=wn(Le,Wt),nn=({start:wa,end:rn})=>!(Ct&&Ia(Ct,rn)||pt&&Ia(wa,pt)),eo=(wa,rn=1)=>wa%rn!==0?!1:bt?!bt(wa,va):!0;switch(va){case"hours":{const wa=Fa(Pa,mn,ue),rn=Wt.setHours(Ca,wa),hr=Wt.setSeconds(Wt.setMinutes(rn,0),0),$o=Wt.setSeconds(Wt.setMinutes(rn,59),59);return!nn({start:hr,end:$o})||!eo(wa)}case"minutes":{const wa=Wt.setMinutes(Ca,Pa),rn=Wt.setSeconds(wa,0),hr=Wt.setSeconds(wa,59);return!nn({start:rn,end:hr})||!eo(Pa,xt)}case"seconds":{const wa=Wt.setSeconds(Ca,Pa);return!nn({start:wa,end:wa})||!eo(Pa)}default:throw new Error("not supported")}},[ue,Ca,Le,pt,mn,Ct,xt,bt,Wt]),Da=Qo(),Za=s.useMemo(()=>{switch(ma){case"hours":{const Pa=(va,Ia)=>{const nn=Fa(va,mn,ue);hn(Wt.setHours(Ca,nn),Ia)};return{onChange:Pa,value:Wt.getHours(Ca),children:wr({date:Se,utils:Wt,ampm:ue,onChange:Pa,getClockNumberText:Vt,isDisabled:va=>Lt||ia(va,"hours"),selectedId:Da})}}case"minutes":{const Pa=Wt.getMinutes(Ca),va=(Ia,nn)=>{hn(Wt.setMinutes(Ca,Ia),nn)};return{value:Pa,onChange:va,children:ho({utils:Wt,value:Pa,onChange:va,getClockNumberText:ha,isDisabled:Ia=>Lt||ia(Ia,"minutes"),selectedId:Da})}}case"seconds":{const Pa=Wt.getSeconds(Ca),va=(Ia,nn)=>{hn(Wt.setSeconds(Ca,Ia),nn)};return{value:Pa,onChange:va,children:ho({utils:Wt,value:Pa,onChange:va,getClockNumberText:ka,isDisabled:Ia=>Lt||ia(Ia,"seconds"),selectedId:Da})}}default:throw new Error("You must provide the type for ClockView")}},[ma,Wt,Se,ue,Vt,ha,ka,mn,hn,Ca,ia,Da,Lt]),Ya=G,Wa=un(Ya);return(0,A.jsxs)(ds,{ref:ee,className:(0,x.default)(Wa.root,Yt),ownerState:Ya,children:[Dt&&(0,A.jsx)(fs,{className:Wa.arrowSwitcher,leftArrowButtonText:ta,rightArrowButtonText:Ft,components:xe,componentsProps:me,onLeftClick:()=>pn(pr),onRightClick:()=>pn(fr),isLeftDisabled:!pr,isRightDisabled:!fr,ownerState:Ya}),(0,A.jsx)(fo,t({autoFocus:pe,date:Se,ampmInClock:ve,type:ma,ampm:ue,getClockLabelText:vt,minutesStep:xt,isTimeDisabled:ia,meridiemMode:mn,handleMeridiemChange:_r,selectedId:Da,disabled:Lt,readOnly:ea},Za))]})});var Or=e(96675);const go=h=>h.length===1&&h[0]==="year",yo=h=>h.length===2&&h.indexOf("month")!==-1&&h.indexOf("year")!==-1,rr=(h,I)=>go(h)?{inputFormat:I.formats.year}:yo(h)?{disableMaskedInput:!0,inputFormat:I.formats.monthAndYear}:{inputFormat:I.formats.keyboardDate};function Mr(h,I){var ee;const G=F(),ue=p(),ve=(0,c.Z)({props:h,name:I}),pe=(ee=ve.views)!=null?ee:["year","day"];return t({openTo:"day",minDate:ue.minDate,maxDate:ue.maxDate},rr(pe,G),ve,{views:pe})}const Ea={emptyValue:null,getTodayValue:h=>h.date(),parseInput:ya,areValuesEqual:(h,I,ee)=>h.isEqual(I,ee)};var ps=e(75836);const fn=(0,u.generateUtilityClasses)("MuiPickersToolbar",["root","content","penIconButton","penIconButtonLandscape"]),Ar=(0,o.ZP)("div",{name:"MuiPickersToolbar",slot:"Root",overridesResolver:(h,I)=>I.root})(({theme:h,ownerState:I})=>t({display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"space-between",padding:h.spacing(2,3)},I.isLandscape&&{height:"auto",maxWidth:160,padding:16,justifyContent:"flex-start",flexWrap:"wrap"})),hs=(0,o.ZP)(ps.ZP,{name:"MuiPickersToolbar",slot:"Content",overridesResolver:(h,I)=>I.content})({flex:1}),bn=(0,o.ZP)(on.Z,{name:"MuiPickersToolbar",slot:"PenIconButton",overridesResolver:(h,I)=>I.penIconButton})({}),ms=h=>h==="clock"?(0,A.jsx)(Pn,{color:"inherit"}):(0,A.jsx)(qn,{color:"inherit"});function vs(h,I){return h?`text input view is open, go to ${I} view`:`${I} view is open, go to text input view`}const kr=s.forwardRef(function(I,ee){const{children:G,className:ue,getMobileKeyboardInputViewButtonText:ve=vs,isLandscape:pe,isMobileKeyboardViewOpen:xe,landscapeDirection:me="column",toggleMobileKeyboardView:Se,toolbarTitle:Le,viewType:Fe="calendar"}=I,Be=I;return(0,A.jsxs)(Ar,{ref:ee,className:(0,x.default)(fn.root,ue),ownerState:Be,children:[(0,A.jsx)(w.Z,{color:"text.secondary",variant:"overline",children:Le}),(0,A.jsxs)(hs,{container:!0,justifyContent:"space-between",className:fn.content,ownerState:Be,direction:pe?me:"row",alignItems:pe?"flex-start":"flex-end",children:[G,(0,A.jsx)(bn,{onClick:Se,className:(0,x.default)(fn.penIconButton,pe&&fn.penIconButtonLandscape),ownerState:Be,color:"inherit","aria-label":ve(xe,Fe),children:xe?ms(Fe):(0,A.jsx)(yr,{color:"inherit"})})]})]})}),gs=["parsedValue","isLandscape","isMobileKeyboardViewOpen","onChange","toggleMobileKeyboardView","toolbarFormat","toolbarPlaceholder","toolbarTitle","views"],Ir=(0,u.generateUtilityClasses)("MuiDatePickerToolbar",["root","title"]),bo=(0,o.ZP)(kr,{name:"MuiDatePickerToolbar",slot:"Root",overridesResolver:(h,I)=>I.root})({[`& .${fn.penIconButton}`]:{position:"relative",top:4}}),ys=(0,o.ZP)(w.Z,{name:"MuiDatePickerToolbar",slot:"Title",overridesResolver:(h,I)=>I.title})(({ownerState:h})=>t({},h.isLandscape&&{margin:"auto 16px auto auto"})),or=s.forwardRef(function(I,ee){const{parsedValue:G,isLandscape:ue,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:pe,toolbarFormat:xe,toolbarPlaceholder:me="\u2013\u2013",toolbarTitle:Se="Select date",views:Le}=I,Fe=a(I,gs),Be=F(),Je=s.useMemo(()=>G?xe?Be.formatByString(G,xe):go(Le)?Be.format(G,"year"):yo(Le)?Be.format(G,"month"):/en/.test(Be.getCurrentLocaleCode())?Be.format(G,"normalDateWithWeekday"):Be.format(G,"normalDate"):me,[G,xe,me,Be,Le]),Xe=I;return(0,A.jsx)(bo,t({ref:ee,toolbarTitle:Se,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:pe,isLandscape:ue,ownerState:Xe,className:Ir.root},Fe,{children:(0,A.jsx)(ys,{variant:"h4",align:ue?"left":"center",ownerState:Xe,className:Ir.title,children:Je})}))});var bs=e(70354),Cs=e(30464),sr=e(81669),xs=e(86903),Ss=e(66934),Nr=e(72022),Cn=e(55480),Es=e(19974);const Lr=h=>{const{onAccept:I,onClear:ee,onCancel:G,onSetToday:ue,actions:ve}=h,pe=s.useContext(Ye),xe=B(),me=typeof ve=="function"?ve(pe):ve;if(me==null||me.length===0)return null;const Se=me==null?void 0:me.map(Le=>{switch(Le){case"clear":return(0,A.jsx)(Cn.Z,{onClick:ee,children:xe.clearButtonLabel},Le);case"cancel":return(0,A.jsx)(Cn.Z,{onClick:G,children:xe.cancelButtonLabel},Le);case"accept":return(0,A.jsx)(Cn.Z,{onClick:I,children:xe.okButtonLabel},Le);case"today":return(0,A.jsx)(Cn.Z,{onClick:ue,children:xe.todayButtonLabel},Le);default:return null}});return(0,A.jsx)(Es.Z,{children:Se})},Ts=["onClick","onTouchStart"],Ds=(0,o.ZP)(sr.Z)(({theme:h})=>({zIndex:h.zIndex.modal})),Ps=(0,o.ZP)(Cs.Z)(({ownerState:h})=>t({transformOrigin:"top center",outline:0},h.placement==="top"&&{transformOrigin:"bottom center"}));function ws(h,I){return I.documentElement.clientWidth{if(!h)return;function me(){ve.current=!0}return document.addEventListener("mousedown",me,!0),document.addEventListener("touchstart",me,!0),()=>{document.removeEventListener("mousedown",me,!0),document.removeEventListener("touchstart",me,!0),ve.current=!1}},[h]);const pe=(0,Ss.Z)(me=>{if(!ve.current)return;const Se=G.current;G.current=!1;const Le=(0,Nr.Z)(ue.current);if(!ue.current||"clientX"in me&&ws(me,Le))return;if(ee.current){ee.current=!1;return}let Fe;me.composedPath?Fe=me.composedPath().indexOf(ue.current)>-1:Fe=!Le.documentElement.contains(me.target)||ue.current.contains(me.target),!Fe&&!Se&&I(me)}),xe=()=>{G.current=!0};return s.useEffect(()=>{if(h){const me=(0,Nr.Z)(ue.current),Se=()=>{ee.current=!0};return me.addEventListener("touchstart",pe),me.addEventListener("touchmove",Se),()=>{me.removeEventListener("touchstart",pe),me.removeEventListener("touchmove",Se)}}},[h,pe]),s.useEffect(()=>{if(h){const me=(0,Nr.Z)(ue.current);return me.addEventListener("click",pe),()=>{me.removeEventListener("click",pe),G.current=!1}}},[h,pe]),[ue,xe,xe]}const Os=h=>{var I;const{anchorEl:ee,children:G,containerRef:ue=null,onBlur:ve,onClose:pe,onClear:xe,onAccept:me,onCancel:Se,onSetToday:Le,open:Fe,PopperProps:Be,role:Je,TransitionComponent:Xe=bs.Z,TrapFocusProps:tt,PaperProps:pt={},components:Ct,componentsProps:xt}=h;s.useEffect(()=>{function Ft(vt){Fe&&(vt.key==="Escape"||vt.key==="Esc")&&pe()}return document.addEventListener("keydown",Ft),()=>{document.removeEventListener("keydown",Ft)}},[pe,Fe]);const At=s.useRef(null);s.useEffect(()=>{Je!=="tooltip"&&(Fe?At.current=document.activeElement:At.current&&At.current instanceof HTMLElement&&At.current.focus())},[Fe,Je]);const[bt,Dt,lt]=Rs(Fe,ve!=null?ve:pe),Mt=s.useRef(null),Et=(0,We.Z)(Mt,ue),Ht=(0,We.Z)(Et,bt),qt=h,{onClick:Yt,onTouchStart:Lt}=pt,ea=a(pt,Ts),Jt=Ft=>{Ft.key==="Escape"&&(Ft.stopPropagation(),pe())},ta=(I=Ct==null?void 0:Ct.ActionBar)!=null?I:Lr;return(0,A.jsx)(Ds,t({transition:!0,role:Je,open:Fe,anchorEl:ee,ownerState:qt,onKeyDown:Jt},Be,{children:({TransitionProps:Ft,placement:vt})=>(0,A.jsx)(xs.Z,t({open:Fe,disableAutoFocus:!0,disableEnforceFocus:Je==="tooltip",isEnabled:()=>!0},tt,{children:(0,A.jsx)(Xe,t({},Ft,{children:(0,A.jsxs)(Ps,t({tabIndex:-1,elevation:8,ref:Ht,onClick:Vt=>{Dt(Vt),Yt&&Yt(Vt)},onTouchStart:Vt=>{lt(Vt),Lt&&Lt(Vt)},ownerState:t({},qt,{placement:vt})},ea,{children:[G,(0,A.jsx)(ta,t({onAccept:me,onClear:xe,onCancel:Se,onSetToday:Le,actions:[]},xt==null?void 0:xt.actionBar))]}))}))}))}))};function Br(h){const{children:I,DateInputProps:ee,KeyboardDateInputComponent:G,onClear:ue,onDismiss:ve,onCancel:pe,onAccept:xe,onSetToday:me,open:Se,PopperProps:Le,PaperProps:Fe,TransitionComponent:Be,components:Je,componentsProps:Xe}=h,tt=s.useRef(null),pt=(0,We.Z)(ee.inputRef,tt);return(0,A.jsxs)(Ye.Provider,{value:"desktop",children:[(0,A.jsx)(G,t({},ee,{inputRef:pt})),(0,A.jsx)(Os,{role:"dialog",open:Se,anchorEl:tt.current,TransitionComponent:Be,PopperProps:Le,PaperProps:Fe,onClose:ve,onCancel:pe,onClear:ue,onAccept:xe,onSetToday:me,components:Je,componentsProps:Xe,children:I})]})}var Ms=e(27254);const Co=h=>{const[,I]=(0,s.useReducer)(me=>me+1,0),ee=(0,s.useRef)(null),{replace:G,append:ue}=h,ve=G?G(h.format(h.value)):h.format(h.value),pe=(0,s.useRef)(!1),xe=me=>{const Se=me.target.value;ee.current=[Se,me.target,Se.length>ve.length,pe.current,ve===h.format(Se)],I()};return(0,s.useLayoutEffect)(()=>{if(ee.current==null)return;let[me,Se,Le,Fe,Be]=ee.current;ee.current=null;const Je=Fe&&Be,tt=me.slice(Se.selectionStart).search(h.accept||/\d/g),pt=tt!==-1?tt:0,Ct=lt=>(lt.match(h.accept||/\d/g)||[]).join(""),xt=Ct(me.substr(0,Se.selectionStart)),At=lt=>{let Mt=0,Et=0;for(let Ht=0;Ht!==xt.length;++Ht){let qt=lt.indexOf(xt[Ht],Mt)+1,Yt=Ct(lt).indexOf(xt[Ht],Et)+1;Yt-Et>1&&(qt=Mt,Yt=Et),Et=Math.max(Yt,Et),Mt=Math.max(Mt,qt)}return Mt};if(h.mask===!0&&Le&&!Be){let lt=At(me);const Mt=Ct(me.substr(lt))[0];lt=me.indexOf(Mt,lt),me=`${me.substr(0,lt)}${me.substr(lt+1)}`}let bt=h.format(me);ue!=null&&Se.selectionStart===me.length&&!Be&&(Le?bt=ue(bt):Ct(bt.slice(-1))===""&&(bt=bt.slice(0,-1)));const Dt=G?G(bt):bt;return ve===Dt?I():h.onChange(Dt),()=>{let lt=At(bt);if(h.mask!=null&&(Le||Fe&&!Je))for(;bt[lt]&&Ct(bt[lt])==="";)lt+=1;Se.selectionStart=Se.selectionEnd=lt+(Je?1+pt:0)}}),(0,s.useEffect)(()=>{const me=Le=>{Le.code==="Delete"&&(pe.current=!0)},Se=Le=>{Le.code==="Delete"&&(pe.current=!1)};return document.addEventListener("keydown",me),document.addEventListener("keyup",Se),()=>{document.removeEventListener("keydown",me),document.removeEventListener("keyup",Se)}},[]),{value:ee.current!=null?ee.current[0]:ve,onChange:xe}},tl=h=>{const I=Co(h);return h.children(I)},Fr=(h,I,ee)=>{const G=h.date(I);return I===null?"":h.isValid(G)?h.formatByString(G,ee):""},ir="_",xo="2019-11-21T22:30:00.000",So="2019-01-01T09:00:00.000";function As(h,I,ee,G){if(h)return h;const ve=G.formatByString(G.date(So),I).replace(ee,ir),pe=G.formatByString(G.date(xo),I).replace(ee,"_");return ve===pe?ve:""}function ks(h,I,ee,G){if(!h)return!1;const ve=G.formatByString(G.date(So),I).replace(ee,ir),pe=G.formatByString(G.date(xo),I).replace(ee,"_"),xe=pe===ve&&h===pe;return!xe&&G.lib,xe}const Is=(h,I)=>ee=>{let G=0;return ee.split("").map((ue,ve)=>{if(I.lastIndex=0,G>h.length-1)return"";const pe=h[G],xe=h[G+1],me=I.test(ue)?ue:"",Se=pe===ir?me:pe+me;return G+=Se.length,ve===ee.length-1&&xe&&xe!==ir?Se?Se+xe:"":Se}).join("")},Ns=({acceptRegex:h=/[\d]/gi,disabled:I,disableMaskedInput:ee,ignoreInvalidInputs:G,inputFormat:ue,inputProps:ve,label:pe,mask:xe,onChange:me,rawValue:Se,readOnly:Le,rifmFormatter:Fe,TextFieldProps:Be,validationError:Je})=>{const Xe=F(),tt=Xe.getFormatHelperText(ue),{shouldUseMaskedInput:pt,maskToUse:Ct}=s.useMemo(()=>{if(ee)return{shouldUseMaskedInput:!1,maskToUse:""};const Lt=As(xe,ue,h,Xe);return{shouldUseMaskedInput:ks(Lt,ue,h,Xe),maskToUse:Lt}},[h,ee,ue,xe,Xe]),xt=s.useMemo(()=>pt&&Ct?Is(Ct,h):Lt=>Lt,[h,Ct,pt]),At=Se===null?null:Xe.date(Se),[bt,Dt]=s.useState(At),[lt,Mt]=s.useState(Fr(Xe,Se,ue));if((Se===null||Xe.isValid(At))&&!Xe.isEqual(bt,At)){const Lt=Fr(Xe,Se,ue);Dt(At),Mt(Lt)}const Ht=Lt=>{const ea=Lt===""||Lt===xe?"":Lt;Mt(ea);const Jt=ea===null?null:Xe.parse(ea,ue);G&&!Xe.isValid(Jt)||(Dt(Jt),me(Jt,ea||void 0))},qt=Co({value:lt,onChange:Ht,format:Fe||xt});return t({label:pe,disabled:I,error:Je,inputProps:t({},pt?qt:{value:lt,onChange:Lt=>{Ht(Lt.currentTarget.value)}},{disabled:I,placeholder:tt,readOnly:Le,type:pt?"tel":"text"},ve)},Be)},Ls=["components","disableOpenPicker","getOpenDialogAriaText","InputAdornmentProps","InputProps","inputRef","openPicker","OpenPickerButtonProps","renderInput"],lr=s.forwardRef(function(I,ee){const{components:G={},disableOpenPicker:ue,getOpenDialogAriaText:ve,InputAdornmentProps:pe,InputProps:xe,inputRef:me,openPicker:Se,OpenPickerButtonProps:Le,renderInput:Fe}=I,Be=a(I,Ls),Je=B(),Xe=ve!=null?ve:Je.openDatePickerDialogue,tt=F(),pt=Ns(Be),Ct=(pe==null?void 0:pe.position)||"end",xt=G.OpenPickerIcon||qn;return Fe(t({ref:ee,inputRef:me},pt,{InputProps:t({},xe,{[`${Ct}Adornment`]:ue?void 0:(0,A.jsx)(Ms.Z,t({position:Ct},pe,{children:(0,A.jsx)(on.Z,t({edge:Ct,disabled:Be.disabled||Be.readOnly,"aria-label":Xe(Be.rawValue,tt)},Le,{onClick:Se,children:(0,A.jsx)(xt,{})}))}))})}))});function Eo(){return typeof window=="undefined"?"portrait":window.screen&&window.screen.orientation&&window.screen.orientation.angle?Math.abs(window.screen.orientation.angle)===90?"landscape":"portrait":window.orientation&&Math.abs(Number(window.orientation))===90?"landscape":"portrait"}const Bs=(h,I)=>{const[ee,G]=s.useState(Eo);return ce(()=>{const ve=()=>{G(Eo())};return window.addEventListener("orientationchange",ve),()=>{window.removeEventListener("orientationchange",ve)}},[]),f(h,["hours","minutes","seconds"])?!1:(I||ee)==="landscape"},Fs=["autoFocus","className","parsedValue","DateInputProps","isMobileKeyboardViewOpen","onDateChange","onViewChange","openTo","orientation","showToolbar","toggleMobileKeyboardView","ToolbarComponent","toolbarFormat","toolbarPlaceholder","toolbarTitle","views"],js=(0,o.ZP)("div")({padding:"16px 24px"}),zs=(0,o.ZP)("div")(({ownerState:h})=>t({display:"flex",flexDirection:"column"},h.isLandscape&&{flexDirection:"row"})),Ws={fullWidth:!0},sa=h=>h==="year"||h==="month"||h==="day",To=h=>h==="hours"||h==="minutes"||h==="seconds";function tn(h){const{autoFocus:I,parsedValue:ee,DateInputProps:G,isMobileKeyboardViewOpen:ue,onDateChange:ve,onViewChange:pe,openTo:xe,orientation:me,showToolbar:Se,toggleMobileKeyboardView:Le,ToolbarComponent:Fe=()=>null,toolbarFormat:Be,toolbarPlaceholder:Je,toolbarTitle:Xe,views:tt}=h,pt=a(h,Fs),Ct=Bs(tt,me),xt=s.useContext(Ye),At=Se!=null?Se:xt!=="desktop",bt=s.useCallback((Ht,qt)=>{ve(Ht,xt,qt)},[ve,xt]),Dt=s.useCallback(Ht=>{ue&&Le(),pe&&pe(Ht)},[ue,pe,Le]),{openView:lt,setOpenView:Mt,handleChangeAndOpenNext:Et}=Ba({view:void 0,views:tt,openTo:xe,onChange:bt,onViewChange:Dt});return(0,A.jsxs)(zs,{ownerState:{isLandscape:Ct},children:[At&&(0,A.jsx)(Fe,t({},pt,{views:tt,isLandscape:Ct,parsedValue:ee,onChange:bt,setOpenView:Mt,openView:lt,toolbarTitle:Xe,toolbarFormat:Be,toolbarPlaceholder:Je,isMobileKeyboardViewOpen:ue,toggleMobileKeyboardView:Le})),(0,A.jsx)(Oa,{children:ue?(0,A.jsx)(js,{children:(0,A.jsx)(lr,t({},G,{ignoreInvalidInputs:!0,disableOpenPicker:!0,TextFieldProps:Ws}))}):(0,A.jsxs)(s.Fragment,{children:[sa(lt)&&(0,A.jsx)(qa,t({autoFocus:I,date:ee,onViewChange:Mt,onChange:Et,view:lt,views:tt.filter(sa)},pt)),To(lt)&&(0,A.jsx)(Rr,t({},pt,{autoFocus:I,date:ee,view:lt,views:tt.filter(To),onChange:Et,onViewChange:Mt,showViewSwitcher:xt==="desktop"}))]})})]})}const Hs=({open:h,onOpen:I,onClose:ee})=>{const G=s.useRef(typeof h=="boolean").current,[ue,ve]=s.useState(!1);s.useEffect(()=>{if(G){if(typeof h!="boolean")throw new Error("You must not mix controlling and uncontrolled mode for `open` prop");ve(h)}},[G,h]);const pe=s.useCallback(xe=>{G||ve(xe),xe&&I&&I(),!xe&&ee&&ee()},[G,I,ee]);return{isOpen:ue,setIsOpen:pe}},an=(h,I)=>{const{onAccept:ee,onChange:G,value:ue,closeOnSelect:ve}=h,pe=F(),{isOpen:xe,setIsOpen:me}=Hs(h),Se=s.useMemo(()=>I.parseInput(pe,ue),[I,pe,ue]),[Le,Fe]=s.useState(Se),[Be,Je]=s.useState(()=>({committed:Se,draft:Se,resetFallback:Se})),Xe=s.useCallback(lt=>{Je(Mt=>{switch(lt.action){case"setAll":case"acceptAndClose":return{draft:lt.value,committed:lt.value,resetFallback:lt.value};case"setCommitted":return t({},Mt,{draft:lt.value,committed:lt.value});case"setDraft":return t({},Mt,{draft:lt.value});default:return Mt}}),!lt.skipOnChangeCall&&!I.areValuesEqual(pe,Be.committed,lt.value)&&G(lt.value),lt.action==="acceptAndClose"&&(me(!1),ee&&!I.areValuesEqual(pe,Be.resetFallback,lt.value)&&ee(lt.value))},[ee,G,me,Be,pe,I]);s.useEffect(()=>{pe.isValid(Se)&&Fe(Se)},[pe,Se]),s.useEffect(()=>{xe&&Xe({action:"setAll",value:Se,skipOnChangeCall:!0})},[xe]),I.areValuesEqual(pe,Be.committed,Se)||Xe({action:"setCommitted",value:Se,skipOnChangeCall:!0});const tt=s.useMemo(()=>({open:xe,onClear:()=>{Xe({value:I.emptyValue,action:"acceptAndClose"})},onAccept:()=>{Xe({value:Be.draft,action:"acceptAndClose"})},onDismiss:()=>{Xe({value:Be.committed,action:"acceptAndClose"})},onCancel:()=>{Xe({value:Be.resetFallback,action:"acceptAndClose"})},onSetToday:()=>{Xe({value:I.getTodayValue(pe),action:"acceptAndClose"})}}),[Xe,xe,pe,Be,I]),[pt,Ct]=s.useState(!1),xt=s.useMemo(()=>({parsedValue:Be.draft,isMobileKeyboardViewOpen:pt,toggleMobileKeyboardView:()=>Ct(!pt),onDateChange:(lt,Mt,Et="partial")=>{switch(Et){case"shallow":return Xe({action:"setDraft",value:lt,skipOnChangeCall:!0});case"partial":return Xe({action:"setDraft",value:lt});case"finish":return(ve!=null?ve:Mt==="desktop")?Xe({value:lt,action:"acceptAndClose"}):Xe({value:lt,action:"setCommitted"});default:throw new Error("MUI: Invalid selectionState passed to `onDateChange`")}}}),[Xe,pt,Be.draft,ve]),At=s.useCallback((lt,Mt)=>{const Et=I.valueReducer?I.valueReducer(pe,Le,lt):lt;G(Et,Mt)},[G,I,Le,pe]),bt=s.useMemo(()=>({onChange:At,open:xe,rawValue:ue,openPicker:()=>me(!0)}),[At,xe,ue,me]),Dt={pickerProps:xt,inputProps:bt,wrapperProps:tt};return s.useDebugValue(Dt,()=>({MuiPickerState:{dateState:Be,other:Dt}})),Dt},Do=["onChange","PopperProps","PaperProps","ToolbarComponent","TransitionComponent","value","components","componentsProps"],xn=s.forwardRef(function(I,ee){const G=Mr(I,"MuiDesktopDatePicker"),ue=be(G)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:xe}=an(G,Ea),{PopperProps:me,PaperProps:Se,ToolbarComponent:Le=or,TransitionComponent:Fe,components:Be,componentsProps:Je}=G,Xe=a(G,Do),tt=t({},pe,Xe,{components:Be,componentsProps:Je,ref:ee,validationError:ue});return(0,A.jsx)(Br,t({},xe,{DateInputProps:tt,KeyboardDateInputComponent:lr,PopperProps:me,PaperProps:Se,TransitionComponent:Fe,components:Be,componentsProps:Je,children:(0,A.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:Le,DateInputProps:tt,components:Be,componentsProps:Je},Xe))}))});var Vs=e(6774),jr=e(66447),Po=e(72639);const wo=(0,o.ZP)(jr.Z)({[`& .${Po.Z.container}`]:{outline:0},[`& .${Po.Z.paper}`]:{outline:0,minWidth:dt}}),Ro=(0,o.ZP)(Vs.Z)({"&:first-of-type":{padding:0}}),Us=h=>{var I;const{children:ee,DialogProps:G={},onAccept:ue,onClear:ve,onDismiss:pe,onCancel:xe,onSetToday:me,open:Se,components:Le,componentsProps:Fe}=h,Be=(I=Le==null?void 0:Le.ActionBar)!=null?I:Lr;return(0,A.jsxs)(wo,t({open:Se,onClose:pe},G,{children:[(0,A.jsx)(Ro,{children:ee}),(0,A.jsx)(Be,t({onAccept:ue,onClear:ve,onCancel:xe,onSetToday:me,actions:["cancel","accept"]},Fe==null?void 0:Fe.actionBar))]}))},zr=["children","DateInputProps","DialogProps","onAccept","onClear","onDismiss","onCancel","onSetToday","open","PureDateInputComponent","components","componentsProps"];function Wr(h){const{children:I,DateInputProps:ee,DialogProps:G,onAccept:ue,onClear:ve,onDismiss:pe,onCancel:xe,onSetToday:me,open:Se,PureDateInputComponent:Le,components:Fe,componentsProps:Be}=h,Je=a(h,zr);return(0,A.jsxs)(Ye.Provider,{value:"mobile",children:[(0,A.jsx)(Le,t({components:Fe},Je,ee)),(0,A.jsx)(Us,{DialogProps:G,onAccept:ue,onClear:ve,onDismiss:pe,onCancel:xe,onSetToday:me,open:Se,components:Fe,componentsProps:Be,children:I})]})}const Sn=s.forwardRef(function(I,ee){const{disabled:G,getOpenDialogAriaText:ue,inputFormat:ve,InputProps:pe,inputRef:xe,label:me,openPicker:Se,rawValue:Le,renderInput:Fe,TextFieldProps:Be={},validationError:Je}=I,Xe=B(),tt=ue!=null?ue:Xe.openDatePickerDialogue,pt=F(),Ct=s.useMemo(()=>t({},pe,{readOnly:!0}),[pe]),xt=Fr(pt,Le,ve);return Fe(t({label:me,disabled:G,ref:ee,inputRef:xe,error:Je,InputProps:Ct,inputProps:t({disabled:G,readOnly:!0,"aria-readonly":!0,"aria-label":tt(Le,pt),value:xt},!I.readOnly&&{onClick:Se},{onKeyDown:v(Se)})},Be))});Sn.propTypes={getOpenDialogAriaText:M().func,renderInput:M().func.isRequired};const Gs=["ToolbarComponent","value","onChange","components","componentsProps"],Oo=s.forwardRef(function(I,ee){const G=Mr(I,"MuiMobileDatePicker"),ue=be(G)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:xe}=an(G,Ea),{ToolbarComponent:me=or,components:Se,componentsProps:Le}=G,Fe=a(G,Gs),Be=t({},pe,Fe,{components:Se,componentsProps:Le,ref:ee,validationError:ue});return(0,A.jsx)(Wr,t({},Fe,xe,{DateInputProps:Be,PureDateInputComponent:Sn,components:Se,componentsProps:Le,children:(0,A.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:me,DateInputProps:Be,components:Se,componentsProps:Le},Fe))}))}),$s=["desktopModeMediaQuery","DialogProps","PopperProps","TransitionComponent"],Ks=s.forwardRef(function(I,ee){const G=(0,c.Z)({props:I,name:"MuiDatePicker"}),{desktopModeMediaQuery:ue="@media (pointer: fine)",DialogProps:ve,PopperProps:pe,TransitionComponent:xe}=G,me=a(G,$s);return(0,Or.Z)(ue)?(0,A.jsx)(xn,t({ref:ee,PopperProps:pe,TransitionComponent:xe},me)):(0,A.jsx)(Oo,t({ref:ee,DialogProps:ve},me))});function Hr(h,I){var ee,G,ue,ve,pe,xe,me;const Se=(0,c.Z)({props:h,name:I}),Le=F(),Fe=p(),Be=(ee=Se.ampm)!=null?ee:Le.is12HourCycleInCurrentLocale();if(Se.orientation!=null&&Se.orientation!=="portrait")throw new Error("We are not supporting custom orientation for DateTimePicker yet :(");return t({ampm:Be,orientation:"portrait",openTo:"day",views:["year","day","hours","minutes"],ampmInClock:!0,acceptRegex:Be?/[\dap]/gi:/\d/gi,disableMaskedInput:!1,inputFormat:Be?Le.formats.keyboardDateTime12h:Le.formats.keyboardDateTime24h,disableIgnoringDatePartForTimeValidation:Boolean(Se.minDateTime||Se.maxDateTime)},Se,{minDate:(G=(ue=Se.minDateTime)!=null?ue:Se.minDate)!=null?G:Fe.minDate,maxDate:(ve=(pe=Se.maxDateTime)!=null?pe:Se.maxDate)!=null?ve:Fe.maxDate,minTime:(xe=Se.minDateTime)!=null?xe:Se.minTime,maxTime:(me=Se.maxDateTime)!=null?me:Se.maxTime})}const Vr={emptyValue:null,getTodayValue:h=>h.date(),parseInput:ya,areValuesEqual:(h,I,ee)=>h.isEqual(I,ee)},Zs=["className","selected","value"],Mo=(0,u.generateUtilityClasses)("PrivatePickersToolbarText",["selected"]),Ys=(0,o.ZP)(w.Z)(({theme:h})=>({transition:h.transitions.create("color"),color:h.palette.text.secondary,[`&.${Mo.selected}`]:{color:h.palette.text.primary}})),Ur=s.forwardRef(function(I,ee){const{className:G,selected:ue,value:ve}=I,pe=a(I,Zs);return(0,A.jsx)(Ys,t({ref:ee,className:(0,x.default)(G,ue&&Mo.selected),component:"span"},pe,{children:ve}))}),Js=["align","className","selected","typographyClassName","value","variant"],Gr=(0,o.ZP)(Cn.Z)({padding:0,minWidth:16,textTransform:"none"}),Ka=s.forwardRef(function(I,ee){const{align:G,className:ue,selected:ve,typographyClassName:pe,value:xe,variant:me}=I,Se=a(I,Js);return(0,A.jsx)(Gr,t({variant:"text",ref:ee,className:ue},Se,{children:(0,A.jsx)(Ur,{align:G,className:pe,variant:me,value:xe,selected:ve})}))});var Ao=e(49630),Xs=e(29922),ko=e(56585);const Qs=h=>["day","month","year"].includes(h)?"date":"time",qs=h=>h==="date"?"day":"hours",_s=(0,o.ZP)(Xs.Z)(({ownerState:h,theme:I})=>t({boxShadow:`0 -1px 0 0 inset ${I.palette.divider}`},h.wrapperVariant==="desktop"&&{order:1,boxShadow:`0 1px 0 0 inset ${I.palette.divider}`,[`& .${ko.Z.indicator}`]:{bottom:"auto",top:0}})),ei=h=>{const{dateRangeIcon:I=(0,A.jsx)(gr,{}),onChange:ee,timeIcon:G=(0,A.jsx)(br,{}),view:ue}=h,ve=B(),pe=s.useContext(Ye),xe=t({},h,{wrapperVariant:pe}),me=(Se,Le)=>{ee(qs(Le))};return(0,A.jsxs)(_s,{ownerState:xe,variant:"fullWidth",value:Qs(ue),onChange:me,children:[(0,A.jsx)(Ao.Z,{value:"date","aria-label":ve.dateTableLabel,icon:(0,A.jsx)(s.Fragment,{children:I})}),(0,A.jsx)(Ao.Z,{value:"time","aria-label":ve.timeTableLabel,icon:(0,A.jsx)(s.Fragment,{children:G})})]})},ti=["ampm","parsedValue","dateRangeIcon","hideTabs","isMobileKeyboardViewOpen","onChange","openView","setOpenView","timeIcon","toggleMobileKeyboardView","toolbarFormat","toolbarPlaceholder","toolbarTitle","views"],An=(0,u.generateUtilityClasses)("MuiDateTimePickerToolbar",["root","dateContainer","timeContainer","separator"]),ai=(0,o.ZP)(kr,{name:"MuiDateTimePickerToolbar",slot:"Root",overridesResolver:(h,I)=>I.root})({paddingLeft:16,paddingRight:16,justifyContent:"space-around",[`& .${fn.penIconButton}`]:{position:"absolute",top:8,right:8}}),Io=(0,o.ZP)("div",{name:"MuiDateTimePickerToolbar",slot:"DateContainer",overridesResolver:(h,I)=>I.dateContainer})({display:"flex",flexDirection:"column",alignItems:"flex-start"}),ni=(0,o.ZP)("div",{name:"MuiDateTimePickerToolbar",slot:"TimeContainer",overridesResolver:(h,I)=>I.timeContainer})({display:"flex"}),No=(0,o.ZP)(Ur,{name:"MuiDateTimePickerToolbar",slot:"Separator",overridesResolver:(h,I)=>I.separator})({margin:"0 4px 0 2px",cursor:"default"}),$r=h=>{const{ampm:I,parsedValue:ee,dateRangeIcon:G,hideTabs:ue,isMobileKeyboardViewOpen:ve,openView:pe,setOpenView:xe,timeIcon:me,toggleMobileKeyboardView:Se,toolbarFormat:Le,toolbarPlaceholder:Fe="\u2013\u2013",toolbarTitle:Be="Select date & time",views:Je}=h,Xe=a(h,ti),tt=F(),pt=s.useContext(Ye),Ct=pt==="desktop"?!0:!ue&&typeof window!="undefined"&&window.innerHeight>667,xt=Dt=>I?tt.format(Dt,"hours12h"):tt.format(Dt,"hours24h"),At=s.useMemo(()=>ee?Le?tt.formatByString(ee,Le):tt.format(ee,"shortDate"):Fe,[ee,Le,Fe,tt]),bt=h;return(0,A.jsxs)(s.Fragment,{children:[pt!=="desktop"&&(0,A.jsxs)(ai,t({toolbarTitle:Be,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:Se,className:An.root},Xe,{isLandscape:!1,ownerState:bt,children:[(0,A.jsxs)(Io,{className:An.dateContainer,ownerState:bt,children:[Je.includes("year")&&(0,A.jsx)(Ka,{tabIndex:-1,variant:"subtitle1",onClick:()=>xe("year"),selected:pe==="year",value:ee?tt.format(ee,"year"):"\u2013"}),Je.includes("day")&&(0,A.jsx)(Ka,{tabIndex:-1,variant:"h4",onClick:()=>xe("day"),selected:pe==="day",value:At})]}),(0,A.jsxs)(ni,{className:An.timeContainer,ownerState:bt,children:[Je.includes("hours")&&(0,A.jsx)(Ka,{variant:"h3",onClick:()=>xe("hours"),selected:pe==="hours",value:ee?xt(ee):"--"}),Je.includes("minutes")&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(No,{variant:"h3",value:":",className:An.separator,ownerState:bt}),(0,A.jsx)(Ka,{variant:"h3",onClick:()=>xe("minutes"),selected:pe==="minutes",value:ee?tt.format(ee,"minutes"):"--"})]}),Je.includes("seconds")&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(No,{variant:"h3",value:":",className:An.separator,ownerState:bt}),(0,A.jsx)(Ka,{variant:"h3",onClick:()=>xe("seconds"),selected:pe==="seconds",value:ee?tt.format(ee,"seconds"):"--"})]})]})]})),Ct&&(0,A.jsx)(ei,{dateRangeIcon:G,timeIcon:me,view:pe,onChange:xe})]})},Lo=({adapter:h,value:I,props:ee})=>{const{minTime:G,maxTime:ue,minutesStep:ve,shouldDisableTime:pe,disableIgnoringDatePartForTimeValidation:xe}=ee,me=h.utils.date(I),Se=wn(xe,h.utils);if(I===null)return null;switch(!0){case!h.utils.isValid(I):return"invalidDate";case Boolean(G&&Se(G,me)):return"minTime";case Boolean(ue&&Se(me,ue)):return"maxTime";case Boolean(pe&&pe(h.utils.getHours(me),"hours")):return"shouldDisableTime-hours";case Boolean(pe&&pe(h.utils.getMinutes(me),"minutes")):return"shouldDisableTime-minutes";case Boolean(pe&&pe(h.utils.getSeconds(me),"seconds")):return"shouldDisableTime-seconds";case Boolean(ve&&h.utils.getMinutes(me)%ve!==0):return"minutesStep";default:return null}},Bo=(h,I)=>h===I,Kr=h=>J(h,Lo,Bo),ri=["minDate","maxDate","disableFuture","shouldDisableDate","disablePast"],ur=({props:h,value:I,adapter:ee})=>{const{minDate:G,maxDate:ue,disableFuture:ve,shouldDisableDate:pe,disablePast:xe}=h,me=a(h,ri),Se=le({adapter:ee,value:I,props:{minDate:G,maxDate:ue,disableFuture:ve,shouldDisableDate:pe,disablePast:xe}});return Se!==null?Se:Lo({adapter:ee,value:I,props:me})},oi=(h,I)=>h===I;function Zr(h){return J(h,ur,oi)}const Fo=["onChange","PaperProps","PopperProps","ToolbarComponent","TransitionComponent","value","components","componentsProps"],jo=s.forwardRef(function(I,ee){const G=Hr(I,"MuiDesktopDateTimePicker"),ue=Zr(G)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:xe}=an(G,Vr),{PaperProps:me,PopperProps:Se,ToolbarComponent:Le=$r,TransitionComponent:Fe,components:Be,componentsProps:Je}=G,Xe=a(G,Fo),tt=t({},pe,Xe,{components:Be,componentsProps:Je,ref:ee,validationError:ue});return(0,A.jsx)(Br,t({},xe,{DateInputProps:tt,KeyboardDateInputComponent:lr,PopperProps:Se,PaperProps:me,TransitionComponent:Fe,components:Be,componentsProps:Je,children:(0,A.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:Le,DateInputProps:tt,components:Be,componentsProps:Je},Xe))}))}),si=["ToolbarComponent","value","onChange","components","componentsProps"],zo=s.forwardRef(function(I,ee){const G=Hr(I,"MuiMobileDateTimePicker"),ue=Zr(G)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:xe}=an(G,Vr),{ToolbarComponent:me=$r,components:Se,componentsProps:Le}=G,Fe=a(G,si),Be=t({},pe,Fe,{components:Se,componentsProps:Le,ref:ee,validationError:ue});return(0,A.jsx)(Wr,t({},Fe,xe,{DateInputProps:Be,PureDateInputComponent:Sn,components:Se,componentsProps:Le,children:(0,A.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:me,DateInputProps:Be,components:Se,componentsProps:Le},Fe))}))}),ii=["desktopModeMediaQuery","DialogProps","PopperProps","TransitionComponent"],li=s.forwardRef(function(I,ee){const G=(0,c.Z)({props:I,name:"MuiDateTimePicker"}),{desktopModeMediaQuery:ue="@media (pointer: fine)",DialogProps:ve,PopperProps:pe,TransitionComponent:xe}=G,me=a(G,ii);return(0,Or.Z)(ue)?(0,A.jsx)(jo,t({ref:ee,PopperProps:pe,TransitionComponent:xe},me)):(0,A.jsx)(zo,t({ref:ee,DialogProps:ve},me))});function Yr(h,I){var ee;const G=(0,c.Z)({props:h,name:I}),ue=F(),ve=(ee=G.ampm)!=null?ee:ue.is12HourCycleInCurrentLocale(),xe=B().openTimePickerDialogue;return t({ampm:ve,openTo:"hours",views:["hours","minutes"],acceptRegex:ve?/[\dapAP]/gi:/\d/gi,disableMaskedInput:!1,getOpenDialogAriaText:xe,inputFormat:ve?ue.formats.fullTime12h:ue.formats.fullTime24h},G,{components:t({OpenPickerIcon:Pn},G.components)})}const Jr={emptyValue:null,parseInput:ya,getTodayValue:h=>h.date(),areValuesEqual:(h,I,ee)=>h.isEqual(I,ee),valueReducer:(h,I,ee)=>!I||!h.isValid(ee)?ee:h.mergeDateAndTime(I,ee)};function ui(h){return(0,u.generateUtilityClass)("MuiTimePickerToolbar",h)}const ci=(0,u.generateUtilityClasses)("MuiTimePickerToolbar",["root","separator","hourMinuteLabel","hourMinuteLabelLandscape","hourMinuteLabelReverse","ampmSelection","ampmLandscape","ampmLabel"]),di=["ampm","ampmInClock","parsedValue","isLandscape","isMobileKeyboardViewOpen","onChange","openView","setOpenView","toggleMobileKeyboardView","toolbarTitle","views","disabled","readOnly"],fi=h=>{const{theme:I,isLandscape:ee,classes:G}=h,ue={root:["root"],separator:["separator"],hourMinuteLabel:["hourMinuteLabel",ee&&"hourMinuteLabelLandscape",I.direction==="rtl"&&"hourMinuteLabelReverse"],ampmSelection:["ampmSelection",ee&&"ampmLandscape"],ampmLabel:["ampmLabel"]};return(0,u.unstable_composeClasses)(ue,ui,G)},pi=(0,o.ZP)(kr,{name:"MuiTimePickerToolbar",slot:"Root",overridesResolver:(h,I)=>I.root})({[`& .${fn.penIconButtonLandscape}`]:{marginTop:"auto"}}),hi=(0,o.ZP)(Ur,{name:"MuiTimePickerToolbar",slot:"Separator",overridesResolver:(h,I)=>I.separator})({outline:0,margin:"0 4px 0 2px",cursor:"default"}),mi=(0,o.ZP)("div",{name:"MuiTimePickerToolbar",slot:"HourMinuteLabel",overridesResolver:(h,I)=>I.hourMinuteLabel})(({theme:h,ownerState:I})=>t({display:"flex",justifyContent:"flex-end",alignItems:"flex-end"},I.isLandscape&&{marginTop:"auto"},h.direction==="rtl"&&{flexDirection:"row-reverse"})),vi=(0,o.ZP)("div",{name:"MuiTimePickerToolbar",slot:"AmPmSelection",overridesResolver:(h,I)=>I.ampmSelection})(({ownerState:h})=>t({display:"flex",flexDirection:"column",marginRight:"auto",marginLeft:12},h.isLandscape&&{margin:"4px 0 auto",flexDirection:"row",justifyContent:"space-around",flexBasis:"100%"},{[`& .${ci.ampmLabel}`]:{fontSize:17}})),Xr=h=>{const{ampm:I,ampmInClock:ee,parsedValue:G,isLandscape:ue,isMobileKeyboardViewOpen:ve,onChange:pe,openView:xe,setOpenView:me,toggleMobileKeyboardView:Se,toolbarTitle:Le="Select time",views:Fe,disabled:Be,readOnly:Je}=h,Xe=a(h,di),tt=F(),pt=(0,Ie.Z)(),Ct=Boolean(I&&!ee),{meridiemMode:xt,handleMeridiemChange:At}=X(G,I,pe),bt=Et=>I?tt.format(Et,"hours12h"):tt.format(Et,"hours24h"),Dt=h,lt=fi(t({},Dt,{theme:pt})),Mt=(0,A.jsx)(hi,{tabIndex:-1,value:":",variant:"h3",selected:!1,className:lt.separator});return(0,A.jsxs)(pi,t({viewType:"clock",landscapeDirection:"row",toolbarTitle:Le,isLandscape:ue,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:Se,ownerState:Dt,className:lt.root},Xe,{children:[(0,A.jsxs)(mi,{className:lt.hourMinuteLabel,ownerState:Dt,children:[f(Fe,"hours")&&(0,A.jsx)(Ka,{tabIndex:-1,variant:"h3",onClick:()=>me("hours"),selected:xe==="hours",value:G?bt(G):"--"}),f(Fe,["hours","minutes"])&&Mt,f(Fe,"minutes")&&(0,A.jsx)(Ka,{tabIndex:-1,variant:"h3",onClick:()=>me("minutes"),selected:xe==="minutes",value:G?tt.format(G,"minutes"):"--"}),f(Fe,["minutes","seconds"])&&Mt,f(Fe,"seconds")&&(0,A.jsx)(Ka,{variant:"h3",onClick:()=>me("seconds"),selected:xe==="seconds",value:G?tt.format(G,"seconds"):"--"})]}),Ct&&(0,A.jsxs)(vi,{className:lt.ampmSelection,ownerState:Dt,children:[(0,A.jsx)(Ka,{disableRipple:!0,variant:"subtitle2",selected:xt==="am",typographyClassName:lt.ampmLabel,value:tt.getMeridiemText("am"),onClick:Je?void 0:()=>At("am"),disabled:Be}),(0,A.jsx)(Ka,{disableRipple:!0,variant:"subtitle2",selected:xt==="pm",typographyClassName:lt.ampmLabel,value:tt.getMeridiemText("pm"),onClick:Je?void 0:()=>At("pm"),disabled:Be})]})]}))},gi=["onChange","PaperProps","PopperProps","ToolbarComponent","TransitionComponent","value","components","componentsProps"],Wo=s.forwardRef(function(I,ee){const G=Yr(I,"MuiDesktopTimePicker"),ue=Kr(G)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:xe}=an(G,Jr),{PaperProps:me,PopperProps:Se,ToolbarComponent:Le=Xr,TransitionComponent:Fe,components:Be,componentsProps:Je}=G,Xe=a(G,gi),tt=t({},pe,Xe,{components:Be,componentsProps:Je,ref:ee,validationError:ue});return(0,A.jsx)(Br,t({},xe,{DateInputProps:tt,KeyboardDateInputComponent:lr,PopperProps:Se,PaperProps:me,TransitionComponent:Fe,components:Be,componentsProps:Je,children:(0,A.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:Le,DateInputProps:tt,components:Be,componentsProps:Je},Xe))}))}),yi=["ToolbarComponent","value","onChange","components","componentsProps"],Ho=s.forwardRef(function(I,ee){const G=Yr(I,"MuiMobileTimePicker"),ue=Kr(G)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:xe}=an(G,Jr),{ToolbarComponent:me=Xr,components:Se,componentsProps:Le}=G,Fe=a(G,yi),Be=t({},pe,Fe,{components:Se,componentsProps:Le,ref:ee,validationError:ue});return(0,A.jsx)(Wr,t({},Fe,xe,{DateInputProps:Be,PureDateInputComponent:Sn,components:Se,componentsProps:Le,children:(0,A.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:me,DateInputProps:Be,components:Se,componentsProps:Le},Fe))}))});function Ta(h){return(0,u.generateUtilityClass)("MuiPickerStaticWrapper",h)}const Vo=(0,u.generateUtilityClasses)("MuiPickerStaticWrapper",["root","content"]),Qr=["displayStaticWrapperAs","onAccept","onClear","onCancel","onDismiss","onSetToday","open","children","components","componentsProps"],bi=h=>{const{classes:I}=h,ee={root:["root"],content:["content"]};return(0,u.unstable_composeClasses)(ee,Ta,I)},qr=(0,o.ZP)("div",{name:"MuiPickerStaticWrapper",slot:"Root",overridesResolver:(h,I)=>I.root})({display:"flex",flexDirection:"column"}),Ci=(0,o.ZP)("div",{name:"MuiPickerStaticWrapper",slot:"Content",overridesResolver:(h,I)=>I.content})(({theme:h})=>({overflow:"hidden",minWidth:dt,display:"flex",flexDirection:"column",backgroundColor:h.palette.background.paper}));function cr(h){var I;const ee=(0,c.Z)({props:h,name:"MuiPickerStaticWrapper"}),{displayStaticWrapperAs:G,onAccept:ue,onClear:ve,onCancel:pe,onSetToday:xe,children:me,components:Se,componentsProps:Le}=ee,Fe=a(ee,Qr),Be=bi(ee),Je=(I=Se==null?void 0:Se.ActionBar)!=null?I:Lr;return(0,A.jsx)(Ye.Provider,{value:G,children:(0,A.jsxs)(qr,t({className:Be.root},Fe,{children:[(0,A.jsx)(Ci,{className:Be.content,children:me}),(0,A.jsx)(Je,t({onAccept:ue,onClear:ve,onCancel:pe,onSetToday:xe,actions:G==="desktop"?[]:["cancel","accept"]},Le==null?void 0:Le.actionBar))]}))})}const xi=["ToolbarComponent","value","onChange","displayStaticWrapperAs","components","componentsProps"],Si=s.forwardRef(function(I,ee){const G=Mr(I,"MuiStaticDatePicker"),{ToolbarComponent:ue=or,displayStaticWrapperAs:ve="mobile",components:pe,componentsProps:xe}=G,me=a(G,xi),{pickerProps:Se,inputProps:Le,wrapperProps:Fe}=an(G,Ea),Be=be(G)!==null,Je=t({},Le,me,{ref:ee,validationError:Be,components:pe});return(0,A.jsx)(cr,t({displayStaticWrapperAs:ve,components:pe,componentsProps:xe},Fe,{children:(0,A.jsx)(tn,t({},Se,{toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:ue,DateInputProps:Je,components:pe,componentsProps:xe},me))}))}),Ei=["displayStaticWrapperAs","onChange","ToolbarComponent","value","components","componentsProps"],Ti=s.forwardRef(function(I,ee){const G=Hr(I,"MuiStaticDateTimePicker"),{displayStaticWrapperAs:ue="mobile",ToolbarComponent:ve=$r,components:pe,componentsProps:xe}=G,me=a(G,Ei),{pickerProps:Se,inputProps:Le,wrapperProps:Fe}=an(G,Vr),Be=Zr(G)!==null,Je=t({},Le,me,{ref:ee,validationError:Be,components:pe,componentsProps:xe});return(0,A.jsx)(cr,t({displayStaticWrapperAs:ue,components:pe,componentsProps:xe},Fe,{children:(0,A.jsx)(tn,t({},Se,{toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:ve,DateInputProps:Je,components:pe,componentsProps:xe},me))}))}),Di=["displayStaticWrapperAs","onChange","ToolbarComponent","value","components","componentsProps"],Pi=s.forwardRef(function(I,ee){const G=Yr(I,"MuiStaticTimePicker"),{displayStaticWrapperAs:ue="mobile",ToolbarComponent:ve=Xr,components:pe,componentsProps:xe}=G,me=a(G,Di),Se=Kr(G)!==null,{pickerProps:Le,inputProps:Fe,wrapperProps:Be}=an(G,Jr),Je=t({},Fe,me,{ref:ee,validationError:Se,components:pe,componentsProps:xe});return(0,A.jsx)(cr,t({displayStaticWrapperAs:ue,components:pe,componentsProps:xe},Be,{children:(0,A.jsx)(tn,t({},Le,{toolbarTitle:G.label||G.toolbarTitle,ToolbarComponent:ve,DateInputProps:Je,components:pe,componentsProps:xe},me))}))}),dr=["desktopModeMediaQuery","DialogProps","PopperProps","TransitionComponent"],Uo=s.forwardRef(function(I,ee){const G=(0,c.Z)({props:I,name:"MuiTimePicker"}),{desktopModeMediaQuery:ue="@media (pointer: fine)",DialogProps:ve,PopperProps:pe,TransitionComponent:xe}=G,me=a(G,dr);return(0,Or.Z)(ue)?(0,A.jsx)(Wo,t({ref:ee,PopperProps:pe,TransitionComponent:xe},me)):(0,A.jsx)(Ho,t({ref:ee,DialogProps:ve},me))}),wi=D({previousMonth:"Vorige maand",nextMonth:"Volgende maand",openPreviousView:"open vorige view",openNextView:"open volgende view",calendarViewSwitchingButtonAriaLabel:h=>h==="year"?"jaarweergave is geopend, schakel over naar kalenderweergave":"kalenderweergave is geopend, switch naar jaarweergave",start:"Start",end:"Einde",cancelButtonLabel:"Annuleren",clearButtonLabel:"Resetten",okButtonLabel:"OK",todayButtonLabel:"Vandaag",clockLabelText:(h,I,ee)=>`Selecteer ${h}. ${I===null?"Geen tijd geselecteerd":`Geselecteerde tijd is ${ee.format(I,"fullTime")}`}`,hoursClockNumberText:h=>`${h} uren`,minutesClockNumberText:h=>`${h} minuten`,secondsClockNumberText:h=>`${h} seconden`,openDatePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`Kies datum, geselecteerde datum is ${I.format(I.date(h),"fullDate")}`:"Kies datum",openTimePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`Kies tijd, geselecteerde tijd is ${I.format(I.date(h),"fullTime")}`:"Kies tijd",timeTableLabel:"kies tijd",dateTableLabel:"kies datum"}),Ri=D({previousMonth:"M\xEAs anterior",nextMonth:"Pr\xF3ximo m\xEAs",openPreviousView:"Abrir pr\xF3xima sele\xE7\xE3o",openNextView:"Abrir sele\xE7\xE3o anterior",calendarViewSwitchingButtonAriaLabel:h=>h==="year"?"Sele\xE7\xE3o de ano est\xE1 aberta, alternando para sele\xE7\xE3o de calend\xE1rio":"Sele\xE7\xE3o de calend\xE1rios est\xE1 aberta, alternando para sele\xE7\xE3o de ano",start:"In\xEDcio",end:"Fim",cancelButtonLabel:"Cancelar",clearButtonLabel:"Limpar",okButtonLabel:"OK",todayButtonLabel:"Hoje",clockLabelText:(h,I,ee)=>`Selecione ${h}. ${I===null?"Hora n\xE3o selecionada":`Selecionado a hora ${ee.format(I,"fullTime")}`}`,hoursClockNumberText:h=>`${h} horas`,minutesClockNumberText:h=>`${h} minutos`,secondsClockNumberText:h=>`${h} segundos`,openDatePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`Escolha uma data, data selecionada ${I.format(I.date(h),"fullDate")}`:"Escolha uma data",openTimePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`Escolha uma hora, hora selecionada ${I.format(I.date(h),"fullTime")}`:"Escolha uma hora",timeTableLabel:"escolha uma hora",dateTableLabel:"escolha uma data"}),Go=D({previousMonth:"\xD6nceki ay",nextMonth:"Sonraki ay",openPreviousView:"sonraki g\xF6r\xFCn\xFCm",openNextView:"\xF6nceki g\xF6r\xFCn\xFCm",start:"Ba\u015Flang\u0131\xE7",end:"Biti\u015F",cancelButtonLabel:"iptal",clearButtonLabel:"Temizle",okButtonLabel:"Tamam",todayButtonLabel:"Bug\xFCn"}),Oi=D({previousMonth:"Letzter Monat",nextMonth:"N\xE4chster Monat",openPreviousView:"Letzte Ansicht \xF6ffnen",openNextView:"N\xE4chste Ansicht \xF6ffnen",start:"Beginn",end:"Ende",cancelButtonLabel:"Abbrechen",clearButtonLabel:"L\xF6schen",okButtonLabel:"OK",todayButtonLabel:"Heute"}),Mi=D({previousMonth:"Mois pr\xE9c\xE9dent",nextMonth:"Mois suivant",openPreviousView:"Ouvrir la vue pr\xE9c\xE9dente",openNextView:"Ouvrir la vue suivante",start:"D\xE9but",end:"Fin",cancelButtonLabel:"Annuler",clearButtonLabel:"Vider",okButtonLabel:"OK",todayButtonLabel:"Aujourd'hui"}),ki=D({previousMonth:"F\xF6reg\xE5ende m\xE5nad",nextMonth:"N\xE4sta m\xE5nad",openPreviousView:"\xF6ppna f\xF6reg\xE5ende vy",openNextView:"\xF6ppna n\xE4sta vy",calendarViewSwitchingButtonAriaLabel:h=>h==="year"?"\xE5rsvyn \xE4r \xF6ppen, byt till kalendervy":"kalendervyn \xE4r \xF6ppen, byt till \xE5rsvy",start:"Start",end:"Slut",cancelButtonLabel:"Avbryt",clearButtonLabel:"Rensa",okButtonLabel:"OK",todayButtonLabel:"Idag",clockLabelText:(h,I,ee)=>`Select ${h}. ${I===null?"Ingen tid vald":`Vald tid \xE4r ${ee.format(I,"fullTime")}`}`,hoursClockNumberText:h=>`${h} timmar`,minutesClockNumberText:h=>`${h} minuter`,secondsClockNumberText:h=>`${h} sekunder`,openDatePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`V\xE4lj datum, valt datum \xE4r ${I.format(I.date(h),"fullDate")}`:"V\xE4lj datum",openTimePickerDialogue:(h,I)=>h&&I.isValid(I.date(h))?`V\xE4lj tid, vald tid \xE4r ${I.format(I.date(h),"fullTime")}`:"V\xE4lj tid",timeTableLabel:"v\xE4lj tid",dateTableLabel:"v\xE4lj datum"});/** @license MUI v5.0.0-alpha.7 - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */},24317:function(l,r,e){l=e.nmd(l),ace.define("ace/snippets",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/range_list","ace/keyboard/hash_handler","ace/tokenizer","ace/clipboard","ace/editor"],function(t,a,s){"use strict";var m=t("./lib/dom"),O=t("./lib/oop"),M=t("./lib/event_emitter").EventEmitter,x=t("./lib/lang"),o=t("./range").Range,c=t("./range_list").RangeList,u=t("./keyboard/hash_handler").HashHandler,w=t("./tokenizer").Tokenizer,j=t("./clipboard"),f={CURRENT_WORD:function(y){return y.session.getTextRange(y.session.getWordRange())},SELECTION:function(y,T,D){var g=y.session.getTextRange();return D?g.replace(/\n\r?([ \t]*\S)/g,` -`+D+"$1"):g},CURRENT_LINE:function(y){return y.session.getLine(y.getCursorPosition().row)},PREV_LINE:function(y){return y.session.getLine(y.getCursorPosition().row-1)},LINE_INDEX:function(y){return y.getCursorPosition().row},LINE_NUMBER:function(y){return y.getCursorPosition().row+1},SOFT_TABS:function(y){return y.session.getUseSoftTabs()?"YES":"NO"},TAB_SIZE:function(y){return y.session.getTabSize()},CLIPBOARD:function(y){return j.getText&&j.getText()},FILENAME:function(y){return/[^/\\]*$/.exec(this.FILEPATH(y))[0]},FILENAME_BASE:function(y){return/[^/\\]*$/.exec(this.FILEPATH(y))[0].replace(/\.[^.]*$/,"")},DIRECTORY:function(y){return this.FILEPATH(y).replace(/[^/\\]*$/,"")},FILEPATH:function(y){return"/not implemented.txt"},WORKSPACE_NAME:function(){return"Unknown"},FULLNAME:function(){return"Unknown"},BLOCK_COMMENT_START:function(y){var T=y.session.$mode||{};return T.blockComment&&T.blockComment.start||""},BLOCK_COMMENT_END:function(y){var T=y.session.$mode||{};return T.blockComment&&T.blockComment.end||""},LINE_COMMENT:function(y){var T=y.session.$mode||{};return T.lineCommentStart||""},CURRENT_YEAR:v.bind(null,{year:"numeric"}),CURRENT_YEAR_SHORT:v.bind(null,{year:"2-digit"}),CURRENT_MONTH:v.bind(null,{month:"numeric"}),CURRENT_MONTH_NAME:v.bind(null,{month:"long"}),CURRENT_MONTH_NAME_SHORT:v.bind(null,{month:"short"}),CURRENT_DATE:v.bind(null,{day:"2-digit"}),CURRENT_DAY_NAME:v.bind(null,{weekday:"long"}),CURRENT_DAY_NAME_SHORT:v.bind(null,{weekday:"short"}),CURRENT_HOUR:v.bind(null,{hour:"2-digit",hour12:!1}),CURRENT_MINUTE:v.bind(null,{minute:"2-digit"}),CURRENT_SECOND:v.bind(null,{second:"2-digit"})};f.SELECTED_TEXT=f.SELECTION;function v(y){var T=new Date().toLocaleString("en-us",y);return T.length==1?"0"+T:T}var Y=function(){this.snippetMap={},this.snippetNameMap={}};(function(){O.implement(this,M),this.getTokenizer=function(){return Y.$tokenizer||this.createTokenizer()},this.createTokenizer=function(){function y(g){return g=g.substr(1),/^\d+$/.test(g)?[{tabstopId:parseInt(g,10)}]:[{text:g}]}function T(g){return"(?:[^\\\\"+g+"]|\\\\.)"}var D={regex:"/("+T("/")+"+)/",onMatch:function(g,L,k){var C=k[0];return C.fmtString=!0,C.guard=g.slice(1,-1),C.flag="",""},next:"formatString"};return Y.$tokenizer=new w({start:[{regex:/\\./,onMatch:function(g,L,k){var C=g[1];return(C=="}"&&k.length||"`$\\".indexOf(C)!=-1)&&(g=C),[g]}},{regex:/}/,onMatch:function(g,L,k){return[k.length?k.shift():g]}},{regex:/\$(?:\d+|\w+)/,onMatch:y},{regex:/\$\{[\dA-Z_a-z]+/,onMatch:function(g,L,k){var C=y(g.substr(1));return k.unshift(C[0]),C},next:"snippetVar"},{regex:/\n/,token:"newline",merge:!1}],snippetVar:[{regex:"\\|"+T("\\|")+"*\\|",onMatch:function(g,L,k){var C=g.slice(1,-1).replace(/\\[,|\\]|,/g,function(E){return E.length==2?E[1]:"\0"}).split("\0").map(function(E){return{value:E}});return k[0].choices=C,[C[0]]},next:"start"},D,{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"start"}],formatString:[{regex:/:/,onMatch:function(g,L,k){return k.length&&k[0].expectElse?(k[0].expectElse=!1,k[0].ifEnd={elseEnd:k[0]},[k[0].ifEnd]):":"}},{regex:/\\./,onMatch:function(g,L,k){var C=g[1];return C=="}"&&k.length||"`$\\".indexOf(C)!=-1?g=C:C=="n"?g=` -`:C=="t"?g=" ":"ulULE".indexOf(C)!=-1&&(g={changeCase:C,local:C>"a"}),[g]}},{regex:"/\\w*}",onMatch:function(g,L,k){var C=k.shift();return C&&(C.flag=g.slice(1,-1)),this.next=C&&C.tabstopId?"start":"",[C||g]},next:"start"},{regex:/\$(?:\d+|\w+)/,onMatch:function(g,L,k){return[{text:g.slice(1)}]}},{regex:/\${\w+/,onMatch:function(g,L,k){var C={text:g.slice(2)};return k.unshift(C),[C]},next:"formatStringVar"},{regex:/\n/,token:"newline",merge:!1},{regex:/}/,onMatch:function(g,L,k){var C=k.shift();return this.next=C&&C.tabstopId?"start":"",[C||g]},next:"start"}],formatStringVar:[{regex:/:\/\w+}/,onMatch:function(g,L,k){var C=k[0];return C.formatFunction=g.slice(2,-1),[k.shift()]},next:"formatString"},D,{regex:/:[\?\-+]?/,onMatch:function(g,L,k){g[1]=="+"&&(k[0].ifEnd=k[0]),g[1]=="?"&&(k[0].expectElse=!0)},next:"formatString"},{regex:"([^:}\\\\]|\\\\.)*:?",token:"",next:"formatString"}]}),Y.$tokenizer},this.tokenizeTmSnippet=function(y,T){return this.getTokenizer().getLineTokens(y,T).tokens.map(function(D){return D.value||D})},this.getVariableValue=function(y,T,D){if(/^\d+$/.test(T))return(this.variables.__||{})[T]||"";if(/^[A-Z]\d+$/.test(T))return(this.variables[T[0]+"__"]||{})[T.substr(1)]||"";if(T=T.replace(/^TM_/,""),!this.variables.hasOwnProperty(T))return"";var g=this.variables[T];return typeof g=="function"&&(g=this.variables[T](y,T,D)),g==null?"":g},this.variables=f,this.tmStrFormat=function(y,T,D){if(!T.fmt)return y;var g=T.flag||"",L=T.guard;L=new RegExp(L,g.replace(/[^gim]/g,""));var k=typeof T.fmt=="string"?this.tokenizeTmSnippet(T.fmt,"formatString"):T.fmt,C=this,E=y.replace(L,function(){var b=C.variables.__;C.variables.__=[].slice.call(arguments);for(var P=C.resolveVariables(k,D),F="E",p=0;p1?(oe=be[be.length-1].length,Q+=be.length-1):oe+=ae.length,De+=ae}else ae&&(ae.start?ae.end={row:Q,column:oe}:ae.start={row:Q,column:oe})});var Te=y.getSelectionRange(),J=y.session.replace(Te,De),le=new U(y),Re=y.inVirtualSelectionMode&&y.selection.index;le.addTabstops(E,Te.start,J,Re)},this.insertSnippet=function(y,T){var D=this;if(y.inVirtualSelectionMode)return D.insertSnippetForSelection(y,T);y.forEachSelection(function(){D.insertSnippetForSelection(y,T)},null,{keepOrder:!0}),y.tabstopManager&&y.tabstopManager.tabNext()},this.$getScope=function(y){var T=y.session.$mode.$id||"";if(T=T.split("/").pop(),T==="html"||T==="php"){T==="php"&&!y.session.$mode.inlinePhp&&(T="html");var D=y.getCursorPosition(),g=y.session.getState(D.row);typeof g=="object"&&(g=g[0]),g.substring&&(g.substring(0,3)=="js-"?T="javascript":g.substring(0,4)=="css-"?T="css":g.substring(0,4)=="php-"&&(T="php"))}return T},this.getActiveScopes=function(y){var T=this.$getScope(y),D=[T],g=this.snippetMap;return g[T]&&g[T].includeScopes&&D.push.apply(D,g[T].includeScopes),D.push("_"),D},this.expandWithTab=function(y,T){var D=this,g=y.forEachSelection(function(){return D.expandSnippetForSelection(y,T)},null,{keepOrder:!0});return g&&y.tabstopManager&&y.tabstopManager.tabNext(),g},this.expandSnippetForSelection=function(y,T){var D=y.getCursorPosition(),g=y.session.getLine(D.row),L=g.substring(0,D.column),k=g.substr(D.column),C=this.snippetMap,E;return this.getActiveScopes(y).some(function(b){var P=C[b];return P&&(E=this.findMatchingSnippet(P,L,k)),!!E},this),E?(T&&T.dryRun||(y.session.doc.removeInLine(D.row,D.column-E.replaceBefore.length,D.column+E.replaceAfter.length),this.variables.M__=E.matchBefore,this.variables.T__=E.matchAfter,this.insertSnippetForSelection(y,E.content),this.variables.M__=this.variables.T__=null),!0):!1},this.findMatchingSnippet=function(y,T,D){for(var g=y.length;g--;){var L=y[g];if(!(L.startRe&&!L.startRe.test(T))&&!(L.endRe&&!L.endRe.test(D))&&!(!L.startRe&&!L.endRe))return L.matchBefore=L.startRe?L.startRe.exec(T):[""],L.matchAfter=L.endRe?L.endRe.exec(D):[""],L.replaceBefore=L.triggerRe?L.triggerRe.exec(T)[0]:"",L.replaceAfter=L.endTriggerRe?L.endTriggerRe.exec(D)[0]:"",L}},this.snippetMap={},this.snippetNameMap={},this.register=function(y,T){var D=this.snippetMap,g=this.snippetNameMap,L=this;y||(y=[]);function k(b){return b&&!/^\^?\(.*\)\$?$|^\\b$/.test(b)&&(b="(?:"+b+")"),b||""}function C(b,P,F){return b=k(b),P=k(P),F?(b=P+b,b&&b[b.length-1]!="$"&&(b=b+"$")):(b=b+P,b&&b[0]!="^"&&(b="^"+b)),new RegExp(b)}function E(b){b.scope||(b.scope=T||"_"),T=b.scope,D[T]||(D[T]=[],g[T]={});var P=g[T];if(b.name){var F=P[b.name];F&&L.unregister(F),P[b.name]=b}D[T].push(b),b.prefix&&(b.tabTrigger=b.prefix),!b.content&&b.body&&(b.content=Array.isArray(b.body)?b.body.join(` -`):b.body),b.tabTrigger&&!b.trigger&&(!b.guard&&/^\w/.test(b.tabTrigger)&&(b.guard="\\b"),b.trigger=x.escapeRegExp(b.tabTrigger)),!(!b.trigger&&!b.guard&&!b.endTrigger&&!b.endGuard)&&(b.startRe=C(b.trigger,b.guard,!0),b.triggerRe=new RegExp(b.trigger),b.endRe=C(b.endTrigger,b.endGuard,!0),b.endTriggerRe=new RegExp(b.endTrigger))}Array.isArray(y)?y.forEach(E):Object.keys(y).forEach(function(b){E(y[b])}),this._signal("registerSnippets",{scope:T})},this.unregister=function(y,T){var D=this.snippetMap,g=this.snippetNameMap;function L(k){var C=g[k.scope||T];if(C&&C[k.name]){delete C[k.name];var E=D[k.scope||T],b=E&&E.indexOf(k);b>=0&&E.splice(b,1)}}y.content?L(y):Array.isArray(y)&&y.forEach(L)},this.parseSnippetFile=function(y){y=y.replace(/\r/g,"");for(var T=[],D={},g=/^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm,L;L=g.exec(y);){if(L[1])try{D=JSON.parse(L[1]),T.push(D)}catch(b){}if(L[4])D.content=L[4].replace(/^\t/gm,""),T.push(D),D={};else{var k=L[2],C=L[3];if(k=="regex"){var E=/\/((?:[^\/\\]|\\.)*)|$/g;D.guard=E.exec(C)[1],D.trigger=E.exec(C)[1],D.endTrigger=E.exec(C)[1],D.endGuard=E.exec(C)[1]}else k=="snippet"?(D.tabTrigger=C.match(/^\S*/)[0],D.name||(D.name=C)):k&&(D[k]=C)}}return T},this.getSnippetByName=function(y,T){var D=this.snippetNameMap,g;return this.getActiveScopes(T).some(function(L){var k=D[L];return k&&(g=k[y]),!!g},this),g}}).call(Y.prototype);var U=function(y){if(y.tabstopManager)return y.tabstopManager;y.tabstopManager=this,this.$onChange=this.onChange.bind(this),this.$onChangeSelection=x.delayedCall(this.onChangeSelection.bind(this)).schedule,this.$onChangeSession=this.onChangeSession.bind(this),this.$onAfterExec=this.onAfterExec.bind(this),this.attach(y)};(function(){this.attach=function(y){this.index=0,this.ranges=[],this.tabstops=[],this.$openTabstops=null,this.selectedTabstop=null,this.editor=y,this.editor.on("change",this.$onChange),this.editor.on("changeSelection",this.$onChangeSelection),this.editor.on("changeSession",this.$onChangeSession),this.editor.commands.on("afterExec",this.$onAfterExec),this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler)},this.detach=function(){this.tabstops.forEach(this.removeTabstopMarkers,this),this.ranges=null,this.tabstops=null,this.selectedTabstop=null,this.editor.removeListener("change",this.$onChange),this.editor.removeListener("changeSelection",this.$onChangeSelection),this.editor.removeListener("changeSession",this.$onChangeSession),this.editor.commands.removeListener("afterExec",this.$onAfterExec),this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler),this.editor.tabstopManager=null,this.editor=null},this.onChange=function(y){for(var T=y.action[0]=="r",D=this.selectedTabstop||{},g=D.parents||{},L=(this.tabstops||[]).slice(),k=0;k2&&(this.tabstops.length&&C.push(C.splice(2,1)[0]),this.tabstops.splice.apply(this.tabstops,C))},this.addTabstopMarkers=function(y){var T=this.editor.session;y.forEach(function(D){D.markerId||(D.markerId=T.addMarker(D,"ace_snippet-marker","text"))})},this.removeTabstopMarkers=function(y){var T=this.editor.session;y.forEach(function(D){T.removeMarker(D.markerId),D.markerId=null})},this.removeRange=function(y){var T=y.tabstop.indexOf(y);T!=-1&&y.tabstop.splice(T,1),T=this.ranges.indexOf(y),T!=-1&&this.ranges.splice(T,1),T=y.tabstop.rangeList.ranges.indexOf(y),T!=-1&&y.tabstop.splice(T,1),this.editor.session.removeMarker(y.markerId),y.tabstop.length||(T=this.tabstops.indexOf(y.tabstop),T!=-1&&this.tabstops.splice(T,1),this.tabstops.length||this.detach())},this.keyboardHandler=new u,this.keyboardHandler.bindKeys({Tab:function(y){a.snippetManager&&a.snippetManager.expandWithTab(y)||(y.tabstopManager.tabNext(1),y.renderer.scrollCursorIntoView())},"Shift-Tab":function(y){y.tabstopManager.tabNext(-1),y.renderer.scrollCursorIntoView()},Esc:function(y){y.tabstopManager.detach()}})}).call(U.prototype);var A=function(y,T){y.row==0&&(y.column+=T.column),y.row+=T.row},_=function(y,T){y.row==T.row&&(y.column-=T.column),y.row-=T.row};m.importCssString(".ace_snippet-marker { -moz-box-sizing: border-box; box-sizing: border-box; background: rgba(194, 193, 208, 0.09); border: 1px dotted rgba(211, 208, 235, 0.62); position: absolute;}","snippets.css",!1),a.snippetManager=new Y;var q=t("./editor").Editor;(function(){this.insertSnippet=function(y,T){return a.snippetManager.insertSnippet(this,y,T)},this.expandSnippet=function(y){return a.snippetManager.expandWithTab(this,y)}}).call(q.prototype)}),ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"],function(t,a,s){"use strict";var m=t("../virtual_renderer").VirtualRenderer,O=t("../editor").Editor,M=t("../range").Range,x=t("../lib/event"),o=t("../lib/lang"),c=t("../lib/dom"),u=function(j){var f=new m(j);f.$maxLines=4;var v=new O(f);return v.setHighlightActiveLine(!1),v.setShowPrintMargin(!1),v.renderer.setShowGutter(!1),v.renderer.setHighlightGutterLine(!1),v.$mouseHandler.$focusTimeout=0,v.$highlightTagPending=!0,v},w=function(j){var f=c.createElement("div"),v=new u(f);j&&j.appendChild(f),f.style.display="none",v.renderer.content.style.cursor="default",v.renderer.setStyle("ace_autocomplete"),v.setOption("displayIndentGuides",!1),v.setOption("dragDelay",150);var Y=function(){};v.focus=Y,v.$isFocused=!0,v.renderer.$cursorLayer.restartTimer=Y,v.renderer.$cursorLayer.element.style.opacity=0,v.renderer.$maxLines=8,v.renderer.$keepTextAreaAtCursor=!1,v.setHighlightActiveLine(!1),v.session.highlight(""),v.session.$searchHighlight.clazz="ace_highlight-marker",v.on("mousedown",function(D){var g=D.getDocumentPosition();v.selection.moveToPosition(g),_.start.row=_.end.row=g.row,D.stop()});var U,A=new M(-1,0,-1,1/0),_=new M(-1,0,-1,1/0);_.id=v.session.addMarker(_,"ace_active-line","fullLine"),v.setSelectOnHover=function(D){D?A.id&&(v.session.removeMarker(A.id),A.id=null):A.id=v.session.addMarker(A,"ace_line-hover","fullLine")},v.setSelectOnHover(!1),v.on("mousemove",function(D){if(!U){U=D;return}if(!(U.x==D.x&&U.y==D.y)){U=D,U.scrollTop=v.renderer.scrollTop;var g=U.getDocumentPosition().row;A.start.row!=g&&(A.id||v.setRow(g),y(g))}}),v.renderer.on("beforeRender",function(){if(U&&A.start.row!=-1){U.$pos=null;var D=U.getDocumentPosition().row;A.id||v.setRow(D),y(D,!0)}}),v.renderer.on("afterRender",function(){var D=v.getRow(),g=v.renderer.$textLayer,L=g.element.childNodes[D-g.config.firstRow];L!==g.selectedNode&&g.selectedNode&&c.removeCssClass(g.selectedNode,"ace_selected"),g.selectedNode=L,L&&c.addCssClass(L,"ace_selected")});var q=function(){y(-1)},y=function(D,g){D!==A.start.row&&(A.start.row=A.end.row=D,g||v.session._emit("changeBackMarker"),v._emit("changeHoverMarker"))};v.getHoveredRow=function(){return A.start.row},x.addListener(v.container,"mouseout",q),v.on("hide",q),v.on("changeSelection",q),v.session.doc.getLength=function(){return v.data.length},v.session.doc.getLine=function(D){var g=v.data[D];return typeof g=="string"?g:g&&g.value||""};var T=v.session.bgTokenizer;return T.$tokenizeRow=function(D){var g=v.data[D],L=[];if(!g)return L;typeof g=="string"&&(g={value:g});var k=g.caption||g.value||g.name;function C(z,K){z&&L.push({type:(g.className||"")+(K||""),value:z})}for(var E=k.toLowerCase(),b=(v.filterText||"").toLowerCase(),P=0,F=0,p=0;p<=b.length;p++)if(p!=F&&(g.matchMask&1<C/2&&!L;p&&F+g+P>C?(b.$maxPixelHeight=F-2*this.$borderSize,k.style.top="",k.style.bottom=C-F+"px",v.isTopdown=!1):(F+=g,b.$maxPixelHeight=C-F-.2*g,k.style.top=F+"px",k.style.bottom="",v.isTopdown=!0),k.style.display="";var B=D.left;B+k.offsetWidth>E&&(B=E-k.offsetWidth),k.style.left=B+"px",this._signal("show"),U=null,v.isOpen=!0},v.goTo=function(D){var g=this.getRow(),L=this.session.getLength()-1;switch(D){case"up":g=g<=0?L:g-1;break;case"down":g=g>=L?-1:g+1;break;case"start":g=0;break;case"end":g=L;break}this.setRow(g)},v.getTextLeftOffset=function(){return this.$borderSize+this.renderer.$padding+this.$imageSize},v.$imageSize=0,v.$borderSize=1,v};c.importCssString(".ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1;}.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line { background-color: #3a674e;}.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid #abbffe; margin-top: -1px; background: rgba(233,233,253,0.4); position: absolute; z-index: 2;}.ace_dark.ace_editor.ace_autocomplete .ace_line-hover { border: 1px solid rgba(109, 150, 13, 0.8); background: rgba(58, 103, 78, 0.62);}.ace_completion-meta { opacity: 0.5; margin: 0.9em;}.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #2d69c7;}.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{ color: #93ca12;}.ace_autocomplete.ace-tm .ace_marker-layer .ace_active-line { background-color: #CAD6FA; z-index: 1;}.ace_autocomplete.ace-tm .ace_line-hover { border: 1px solid #abbffe; margin-top: -1px; background: rgba(233,233,253,0.4);}.ace_autocomplete .ace_line-hover { position: absolute; z-index: 2;}.ace_autocomplete .ace_scroller { background: none; border: none; box-shadow: none;}.ace_rightAlignedText { color: gray; display: inline-block; position: absolute; right: 4px; text-align: right; z-index: -1;}.ace_completion-message { color: blue;}.ace_autocomplete .ace_completion-highlight{ text-shadow: 0 0 0.01em;}.ace_autocomplete { width: 280px; z-index: 200000; background: #fbfbfb; color: #444; border: 1px lightgray solid; position: fixed; box-shadow: 2px 3px 5px rgba(0,0,0,.2); line-height: 1.4; background: #fefefe; color: #111;}.ace_dark.ace_editor.ace_autocomplete { border: 1px #484747 solid; box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51); line-height: 1.4; background: #25282c; color: #c1c1c1;}","autocompletion.css",!1),a.AcePopup=w,a.$singleLineEditor=u}),ace.define("ace/autocomplete/util",["require","exports","module"],function(t,a,s){"use strict";a.parForEach=function(O,M,x){var o=0,c=O.length;c===0&&x();for(var u=0;u=0&&x.test(O[c]);c--)o.push(O[c]);return o.reverse().join("")},a.retrieveFollowingIdentifier=function(O,M,x){x=x||m;for(var o=[],c=M;cthis.filterText&&f.lastIndexOf(this.filterText,0)===0)var v=this.filtered;else var v=this.all;this.filterText=f,v=this.filterCompletions(v,this.filterText),v=v.sort(function(U,A){return A.exactMatch-U.exactMatch||A.$score-U.$score||(U.caption||U.value).localeCompare(A.caption||A.value)});var Y=null;v=v.filter(function(U){var A=U.snippet||U.caption||U.value;return A===Y?!1:(Y=A,!0)}),this.filtered=v},this.filterCompletions=function(f,v){var Y=[],U=v.toUpperCase(),A=v.toLowerCase();e:for(var _=0,q;q=f[_];_++){var y=q.caption||q.value||q.snippet;if(!!y){var T=-1,D=0,g=0,L,k;if(this.exactMatch){if(v!==y.substr(0,v.length))continue e}else{var C=y.toLowerCase().indexOf(A);if(C>-1)g=C;else for(var E=0;E=0&&(P<0||b0&&(T===-1&&(g+=10),g+=k,D=D|1<",x.escapeHTML(y.caption),"","
",x.escapeHTML(w(y.snippet))].join(""))}},f=[j,c,u];a.setCompleters=function(y){f.length=0,y&&f.push.apply(f,y)},a.addCompleter=function(y){f.push(y)},a.textCompleter=c,a.keyWordCompleter=u,a.snippetCompleter=j;var v={name:"expandSnippet",exec:function(y){return m.expandWithTab(y)},bindKey:"Tab"},Y=function(y,T){U(T.session.$mode)},U=function(y){typeof y=="string"&&(y=M.$modes[y]),y&&(m.files||(m.files={}),A(y.$id,y.snippetFileId),y.modes&&y.modes.forEach(U))},A=function(y,T){!T||!y||m.files[y]||(m.files[y]={},M.loadModule(T,function(D){!D||(m.files[y]=D,!D.snippets&&D.snippetText&&(D.snippets=m.parseSnippetFile(D.snippetText)),m.register(D.snippets||[],D.scope),D.includeScopes&&(m.snippetMap[D.scope].includeScopes=D.includeScopes,D.includeScopes.forEach(function(g){U("ace/mode/"+g)})))}))},_=function(y){var T=y.editor,D=T.completer&&T.completer.activated;if(y.command.name==="backspace")D&&!o.getCompletionPrefix(T)&&T.completer.detach();else if(y.command.name==="insertstring"){var g=o.getCompletionPrefix(T);if(g&&!D){var L=O.for(T);L.autoInsert=!1,L.showPopup(T)}}},q=t("../editor").Editor;t("../config").defineOptions(q.prototype,"editor",{enableBasicAutocompletion:{set:function(y){y?(this.completers||(this.completers=Array.isArray(y)?y:f),this.commands.addCommand(O.startCommand)):this.commands.removeCommand(O.startCommand)},value:!1},enableLiveAutocompletion:{set:function(y){y?(this.completers||(this.completers=Array.isArray(y)?y:f),this.commands.on("afterExec",_)):this.commands.removeListener("afterExec",_)},value:!1},enableSnippets:{set:function(y){y?(this.commands.addCommand(v),this.on("changeMode",Y),Y(null,this)):(this.commands.removeCommand(v),this.off("changeMode",Y))},value:!1}})}),function(){ace.require(["ace/ext/language_tools"],function(t){l&&(l.exports=t)})}()},14091:function(l,r,e){l=e.nmd(l),ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(t,a,s){"use strict";var m=t("../lib/oop"),O=t("./text_highlight_rules").TextHighlightRules,M=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"punctuation.operator",regex:/[,]/},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};m.inherits(M,O),a.JsonHighlightRules=M}),ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(t,a,s){"use strict";var m=t("../range").Range,O=function(){};(function(){this.checkOutdent=function(M,x){return/^\s+$/.test(M)?/^\s*\}/.test(x):!1},this.autoOutdent=function(M,x){var o=M.getLine(x),c=o.match(/^(\s*\})/);if(!c)return 0;var u=c[1].length,w=M.findMatchingBracket({row:x,column:u});if(!w||w.row==x)return 0;var j=this.$getIndent(M.getLine(w.row));M.replace(new m(x,0,x,u-1),j)},this.$getIndent=function(M){return M.match(/^\s*/)[0]}}).call(O.prototype),a.MatchingBraceOutdent=O}),ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(t,a,s){"use strict";var m=t("../../lib/oop"),O=t("../../range").Range,M=t("./fold_mode").FoldMode,x=a.FoldMode=function(o){o&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+o.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+o.end)))};m.inherits(x,M),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(o,c,u){var w=o.getLine(u);if(this.singleLineBlockCommentRe.test(w)&&!this.startRegionRe.test(w)&&!this.tripleStarBlockCommentRe.test(w))return"";var j=this._getFoldWidgetBase(o,c,u);return!j&&this.startRegionRe.test(w)?"start":j},this.getFoldWidgetRange=function(o,c,u,w){var j=o.getLine(u);if(this.startRegionRe.test(j))return this.getCommentRegionBlock(o,j,u);var Y=j.match(this.foldingStartMarker);if(Y){var f=Y.index;if(Y[1])return this.openingBracketBlock(o,Y[1],u,f);var v=o.getCommentFoldRange(u,f+Y[0].length,1);return v&&!v.isMultiLine()&&(w?v=this.getSectionRange(o,u):c!="all"&&(v=null)),v}if(c!=="markbegin"){var Y=j.match(this.foldingStopMarker);if(Y){var f=Y.index+Y[0].length;return Y[1]?this.closingBracketBlock(o,Y[1],u,f):o.getCommentFoldRange(u,f,-1)}}},this.getSectionRange=function(o,c){var u=o.getLine(c),w=u.search(/\S/),j=c,f=u.length;c=c+1;for(var v=c,Y=o.getLength();++cU)break;var A=this.getFoldWidgetRange(o,"all",c);if(A){if(A.start.row<=j)break;if(A.isMultiLine())c=A.end.row;else if(w==U)break}v=c}}return new O(j,f,v,o.getLine(v).length)},this.getCommentRegionBlock=function(o,c,u){for(var w=c.search(/\s*$/),j=o.getLength(),f=u,v=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,Y=1;++uf)return new O(f,w,A,c.length)}}.call(x.prototype)}),ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(t,a,s){"use strict";var m=t("../lib/oop"),O=t("./text").Mode,M=t("./json_highlight_rules").JsonHighlightRules,x=t("./matching_brace_outdent").MatchingBraceOutdent,o=t("./behaviour/cstyle").CstyleBehaviour,c=t("./folding/cstyle").FoldMode,u=t("../worker/worker_client").WorkerClient,w=function(){this.HighlightRules=M,this.$outdent=new x,this.$behaviour=new o,this.foldingRules=new c};m.inherits(w,O),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.getNextLineIndent=function(j,f,v){var Y=this.$getIndent(f);if(j=="start"){var U=f.match(/^.*[\{\(\[]\s*$/);U&&(Y+=v)}return Y},this.checkOutdent=function(j,f,v){return this.$outdent.checkOutdent(f,v)},this.autoOutdent=function(j,f,v){this.$outdent.autoOutdent(f,v)},this.createWorker=function(j){var f=new u(["ace"],"ace/mode/json_worker","JsonWorker");return f.attachToDocument(j.getDocument()),f.on("annotate",function(v){j.setAnnotations(v.data)}),f.on("terminate",function(){j.clearAnnotations()}),f},this.$id="ace/mode/json"}.call(w.prototype),a.Mode=w}),function(){ace.require(["ace/mode/json"],function(t){l&&(l.exports=t)})}()},68716:function(l,r,e){l=e.nmd(l),ace.define("ace/theme/chrome",["require","exports","module","ace/lib/dom"],function(t,a,s){a.isDark=!1,a.cssClass="ace-chrome",a.cssText='.ace-chrome .ace_gutter {background: #ebebeb;color: #333;overflow : hidden;}.ace-chrome .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-chrome {background-color: #FFFFFF;color: black;}.ace-chrome .ace_cursor {color: black;}.ace-chrome .ace_invisible {color: rgb(191, 191, 191);}.ace-chrome .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-chrome .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-chrome .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-chrome .ace_invalid {background-color: rgb(153, 0, 0);color: white;}.ace-chrome .ace_fold {}.ace-chrome .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-chrome .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-chrome .ace_support.ace_type,.ace-chrome .ace_support.ace_class.ace-chrome .ace_support.ace_other {color: rgb(109, 121, 222);}.ace-chrome .ace_variable.ace_parameter {font-style:italic;color:#FD971F;}.ace-chrome .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-chrome .ace_comment {color: #236e24;}.ace-chrome .ace_comment.ace_doc {color: #236e24;}.ace-chrome .ace_comment.ace_doc.ace_tag {color: #236e24;}.ace-chrome .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-chrome .ace_variable {color: rgb(49, 132, 149);}.ace-chrome .ace_xml-pe {color: rgb(104, 104, 91);}.ace-chrome .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-chrome .ace_heading {color: rgb(12, 7, 255);}.ace-chrome .ace_list {color:rgb(185, 6, 144);}.ace-chrome .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-chrome .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-chrome .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-chrome .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-chrome .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-chrome .ace_gutter-active-line {background-color : #dcdcdc;}.ace-chrome .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-chrome .ace_storage,.ace-chrome .ace_keyword,.ace-chrome .ace_meta.ace_tag {color: rgb(147, 15, 128);}.ace-chrome .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-chrome .ace_string {color: #1A1AA6;}.ace-chrome .ace_entity.ace_other.ace_attribute-name {color: #994409;}.ace-chrome .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var m=t("../lib/dom");m.importCssString(a.cssText,a.cssClass,!1)}),function(){ace.require(["ace/theme/chrome"],function(t){l&&(l.exports=t)})}()},15120:function(l,r,e){l=e.nmd(l),ace.define("ace/theme/clouds_midnight",["require","exports","module","ace/lib/dom"],function(t,a,s){a.isDark=!0,a.cssClass="ace-clouds-midnight",a.cssText=".ace-clouds-midnight .ace_gutter {background: #232323;color: #929292}.ace-clouds-midnight .ace_print-margin {width: 1px;background: #232323}.ace-clouds-midnight {background-color: #191919;color: #929292}.ace-clouds-midnight .ace_cursor {color: #7DA5DC}.ace-clouds-midnight .ace_marker-layer .ace_selection {background: #000000}.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px #191919;}.ace-clouds-midnight .ace_marker-layer .ace_step {background: rgb(102, 82, 0)}.ace-clouds-midnight .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid #BFBFBF}.ace-clouds-midnight .ace_marker-layer .ace_active-line {background: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_gutter-active-line {background-color: rgba(215, 215, 215, 0.031)}.ace-clouds-midnight .ace_marker-layer .ace_selected-word {border: 1px solid #000000}.ace-clouds-midnight .ace_invisible {color: #666}.ace-clouds-midnight .ace_keyword,.ace-clouds-midnight .ace_meta,.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {color: #927C5D}.ace-clouds-midnight .ace_keyword.ace_operator {color: #4B4B4B}.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {color: #366F1A}.ace-clouds-midnight .ace_constant.ace_language {color: #39946A}.ace-clouds-midnight .ace_constant.ace_numeric {color: #46A609}.ace-clouds-midnight .ace_constant.ace_character.ace_entity {color: #A165AC}.ace-clouds-midnight .ace_invalid {color: #FFFFFF;background-color: #E92E2E}.ace-clouds-midnight .ace_fold {background-color: #927C5D;border-color: #929292}.ace-clouds-midnight .ace_storage,.ace-clouds-midnight .ace_support.ace_class,.ace-clouds-midnight .ace_support.ace_function,.ace-clouds-midnight .ace_support.ace_other,.ace-clouds-midnight .ace_support.ace_type {color: #E92E2E}.ace-clouds-midnight .ace_string {color: #5D90CD}.ace-clouds-midnight .ace_comment {color: #3C403B}.ace-clouds-midnight .ace_entity.ace_name.ace_tag,.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {color: #606060}.ace-clouds-midnight .ace_indent-guide {background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y}";var m=t("../lib/dom");m.importCssString(a.cssText,a.cssClass,!1)}),function(){ace.require(["ace/theme/clouds_midnight"],function(t){l&&(l.exports=t)})}()},83873:function(l){/*! - * Cropper.js v1.5.12 - * https://fengyuanchen.github.io/cropperjs - * - * Copyright 2015-present Chen Fengyuan - * Released under the MIT license - * - * Date: 2021-06-12T08:00:17.411Z - */(function(r,e){l.exports=e()})(this,function(){"use strict";function r(fe,W){var X=Object.keys(fe);if(Object.getOwnPropertySymbols){var $=Object.getOwnPropertySymbols(fe);W&&($=$.filter(function(we){return Object.getOwnPropertyDescriptor(fe,we).enumerable})),X.push.apply(X,$)}return X}function e(fe){for(var W=1;Wfe.length)&&(W=fe.length);for(var X=0,$=new Array(W);X
',ua=Number.isNaN||f.isNaN;function St(fe){return typeof fe=="number"&&!ua(fe)}var _t=function(W){return W>0&&W<1/0};function ca(fe){return typeof fe=="undefined"}function Bt(fe){return t(fe)==="object"&&fe!==null}var wt=Object.prototype.hasOwnProperty;function Qe(fe){if(!Bt(fe))return!1;try{var W=fe.constructor,X=W.prototype;return W&&X&&wt.call(X,"isPrototypeOf")}catch($){return!1}}function Xt(fe){return typeof fe=="function"}var Qt=Array.prototype.slice;function pa(fe){return Array.from?Array.from(fe):Qt.call(fe)}function kt(fe,W){return fe&&Xt(W)&&(Array.isArray(fe)||St(fe.length)?pa(fe).forEach(function(X,$){W.call(fe,X,$,fe)}):Bt(fe)&&Object.keys(fe).forEach(function(X){W.call(fe,fe[X],X,fe)})),fe}var re=Object.assign||function(W){for(var X=arguments.length,$=new Array(X>1?X-1:0),we=1;we0&&$.forEach(function(ye){Bt(ye)&&Object.keys(ye).forEach(function(Pe){W[Pe]=ye[Pe]})}),W},ge=/\.\d*(?:0|9){12}\d*$/;function $e(fe){var W=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return ge.test(fe)?Math.round(fe*W)/W:fe}var Ge=/^width|height|left|top|marginLeft|marginTop$/;function V(fe,W){var X=fe.style;kt(W,function($,we){Ge.test(we)&&St($)&&($="".concat($,"px")),X[we]=$})}function ne(fe,W){return fe.classList?fe.classList.contains(W):fe.className.indexOf(W)>-1}function Oe(fe,W){if(!!W){if(St(fe.length)){kt(fe,function($){Oe($,W)});return}if(fe.classList){fe.classList.add(W);return}var X=fe.className.trim();X?X.indexOf(W)<0&&(fe.className="".concat(X," ").concat(W)):fe.className=W}}function Ae(fe,W){if(!!W){if(St(fe.length)){kt(fe,function(X){Ae(X,W)});return}if(fe.classList){fe.classList.remove(W);return}fe.className.indexOf(W)>=0&&(fe.className=fe.className.replace(W,""))}}function He(fe,W,X){if(!!W){if(St(fe.length)){kt(fe,function($){He($,W,X)});return}X?Oe(fe,W):Ae(fe,W)}}var rt=/([a-z\d])([A-Z])/g;function yt(fe){return fe.replace(rt,"$1-$2").toLowerCase()}function ft(fe,W){return Bt(fe[W])?fe[W]:fe.dataset?fe.dataset[W]:fe.getAttribute("data-".concat(yt(W)))}function gt(fe,W,X){Bt(X)?fe[W]=X:fe.dataset?fe.dataset[W]=X:fe.setAttribute("data-".concat(yt(W)),X)}function zt(fe,W){if(Bt(fe[W]))try{delete fe[W]}catch(X){fe[W]=void 0}else if(fe.dataset)try{delete fe.dataset[W]}catch(X){fe.dataset[W]=void 0}else fe.removeAttribute("data-".concat(yt(W)))}var Rt=/\s\s*/,jt=function(){var fe=!1;if(j){var W=!1,X=function(){},$=Object.defineProperty({},"once",{get:function(){return fe=!0,W},set:function(ye){W=ye}});f.addEventListener("test",X,$),f.removeEventListener("test",X,$)}return fe}();function Ot(fe,W,X){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},we=X;W.trim().split(Rt).forEach(function(ye){if(!jt){var Pe=fe.listeners;Pe&&Pe[ye]&&Pe[ye][X]&&(we=Pe[ye][X],delete Pe[ye][X],Object.keys(Pe[ye]).length===0&&delete Pe[ye],Object.keys(Pe).length===0&&delete fe.listeners)}fe.removeEventListener(ye,we,$)})}function ht(fe,W,X){var $=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},we=X;W.trim().split(Rt).forEach(function(ye){if($.once&&!jt){var Pe=fe.listeners,je=Pe===void 0?{}:Pe;we=function(){delete je[ye][X],fe.removeEventListener(ye,we,$);for(var Ze=arguments.length,Ve=new Array(Ze),Ue=0;UeMath.abs(X)&&(X=Ye)})}),X}function Ra(fe,W){var X=fe.pageX,$=fe.pageY,we={endX:X,endY:$};return W?we:e({startX:X,startY:$},we)}function vr(fe){var W=0,X=0,$=0;return kt(fe,function(we){var ye=we.startX,Pe=we.startY;W+=ye,X+=Pe,$+=1}),W/=$,X/=$,{pageX:W,pageY:X}}function Ua(fe){var W=fe.aspectRatio,X=fe.height,$=fe.width,we=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",ye=_t($),Pe=_t(X);if(ye&&Pe){var je=X*W;we==="contain"&&je>$||we==="cover"&&je<$?X=$/W:$=X*W}else ye?X=$/W:Pe&&($=X*W);return{width:$,height:X}}function Ja(fe){var W=fe.width,X=fe.height,$=fe.degree;if($=Math.abs($)%180,$===90)return{width:X,height:W};var we=$%90*Math.PI/180,ye=Math.sin(we),Pe=Math.cos(we),je=W*Pe+X*ye,et=W*ye+X*Pe;return $>90?{width:et,height:je}:{width:je,height:et}}function qn(fe,W,X,$){var we=W.aspectRatio,ye=W.naturalWidth,Pe=W.naturalHeight,je=W.rotate,et=je===void 0?0:je,Ze=W.scaleX,Ve=Ze===void 0?1:Ze,Ue=W.scaleY,Ye=Ue===void 0?1:Ue,Gt=X.aspectRatio,Ut=X.naturalWidth,na=X.naturalHeight,Zt=$.fillColor,ra=Zt===void 0?"transparent":Zt,fa=$.imageSmoothingEnabled,da=fa===void 0?!0:fa,ja=$.imageSmoothingQuality,Sa=ja===void 0?"low":ja,it=$.maxWidth,$t=it===void 0?1/0:it,oa=$.maxHeight,ya=oa===void 0?1/0:oa,Oa=$.minWidth,Xa=Oa===void 0?0:Oa,Ga=$.minHeight,$a=Ga===void 0?0:Ga,Aa=document.createElement("canvas"),ba=Aa.getContext("2d"),Qa=Ua({aspectRatio:Gt,width:$t,height:ya}),za=Ua({aspectRatio:Gt,width:Xa,height:$a},"cover"),qa=Math.min(Qa.width,Math.max(za.width,Ut)),Rn=Math.min(Qa.height,Math.max(za.height,na)),On=Ua({aspectRatio:we,width:$t,height:ya}),tr=Ua({aspectRatio:we,width:Xa,height:$a},"cover"),_a=Math.min(On.width,Math.max(tr.width,ye)),ln=Math.min(On.height,Math.max(tr.height,Pe)),Dr=[-_a/2,-ln/2,_a,ln];return Aa.width=$e(qa),Aa.height=$e(Rn),ba.fillStyle=ra,ba.fillRect(0,0,qa,Rn),ba.save(),ba.translate(qa/2,Rn/2),ba.rotate(et*Math.PI/180),ba.scale(Ve,Ye),ba.imageSmoothingEnabled=da,ba.imageSmoothingQuality=Sa,ba.drawImage.apply(ba,[fe].concat(M(Dr.map(function(gn){return Math.floor($e(gn))})))),ba.restore(),Aa}var Pn=String.fromCharCode;function gr(fe,W,X){var $="";X+=W;for(var we=W;we0;)X.push(Pn.apply(null,pa(we.subarray(0,$)))),we=we.subarray($);return"data:".concat(W,";base64,").concat(btoa(X.join("")))}function vn(fe){var W=new DataView(fe),X;try{var $,we,ye;if(W.getUint8(0)===255&&W.getUint8(1)===216)for(var Pe=W.byteLength,je=2;je+1=8&&(ye=Ze+Ue)}}}if(ye){var Ye=W.getUint16(ye,$),Gt,Ut;for(Ut=0;Ut=0?ye:nt),height:Math.max($.offsetHeight,Pe>=0?Pe:mt)};this.containerData=je,V(we,{width:je.width,height:je.height}),Oe(W,p),Ae(we,p)},initCanvas:function(){var W=this.containerData,X=this.imageData,$=this.options.viewMode,we=Math.abs(X.rotate)%180===90,ye=we?X.naturalHeight:X.naturalWidth,Pe=we?X.naturalWidth:X.naturalHeight,je=ye/Pe,et=W.width,Ze=W.height;W.height*je>W.width?$===3?et=W.height*je:Ze=W.width/je:$===3?Ze=W.width/je:et=W.height*je;var Ve={aspectRatio:je,naturalWidth:ye,naturalHeight:Pe,width:et,height:Ze};this.canvasData=Ve,this.limited=$===1||$===2,this.limitCanvas(!0,!0),Ve.width=Math.min(Math.max(Ve.width,Ve.minWidth),Ve.maxWidth),Ve.height=Math.min(Math.max(Ve.height,Ve.minHeight),Ve.maxHeight),Ve.left=(W.width-Ve.width)/2,Ve.top=(W.height-Ve.height)/2,Ve.oldLeft=Ve.left,Ve.oldTop=Ve.top,this.initialCanvasData=re({},Ve)},limitCanvas:function(W,X){var $=this.options,we=this.containerData,ye=this.canvasData,Pe=this.cropBoxData,je=$.viewMode,et=ye.aspectRatio,Ze=this.cropped&&Pe;if(W){var Ve=Number($.minCanvasWidth)||0,Ue=Number($.minCanvasHeight)||0;je>1?(Ve=Math.max(Ve,we.width),Ue=Math.max(Ue,we.height),je===3&&(Ue*et>Ve?Ve=Ue*et:Ue=Ve/et)):je>0&&(Ve?Ve=Math.max(Ve,Ze?Pe.width:0):Ue?Ue=Math.max(Ue,Ze?Pe.height:0):Ze&&(Ve=Pe.width,Ue=Pe.height,Ue*et>Ve?Ve=Ue*et:Ue=Ve/et));var Ye=Ua({aspectRatio:et,width:Ve,height:Ue});Ve=Ye.width,Ue=Ye.height,ye.minWidth=Ve,ye.minHeight=Ue,ye.maxWidth=1/0,ye.maxHeight=1/0}if(X)if(je>(Ze?0:1)){var Gt=we.width-ye.width,Ut=we.height-ye.height;ye.minLeft=Math.min(0,Gt),ye.minTop=Math.min(0,Ut),ye.maxLeft=Math.max(0,Gt),ye.maxTop=Math.max(0,Ut),Ze&&this.limited&&(ye.minLeft=Math.min(Pe.left,Pe.left+(Pe.width-ye.width)),ye.minTop=Math.min(Pe.top,Pe.top+(Pe.height-ye.height)),ye.maxLeft=Pe.left,ye.maxTop=Pe.top,je===2&&(ye.width>=we.width&&(ye.minLeft=Math.min(0,Gt),ye.maxLeft=Math.max(0,Gt)),ye.height>=we.height&&(ye.minTop=Math.min(0,Ut),ye.maxTop=Math.max(0,Ut))))}else ye.minLeft=-ye.width,ye.minTop=-ye.height,ye.maxLeft=we.width,ye.maxTop=we.height},renderCanvas:function(W,X){var $=this.canvasData,we=this.imageData;if(X){var ye=Ja({width:we.naturalWidth*Math.abs(we.scaleX||1),height:we.naturalHeight*Math.abs(we.scaleY||1),degree:we.rotate||0}),Pe=ye.width,je=ye.height,et=$.width*(Pe/$.naturalWidth),Ze=$.height*(je/$.naturalHeight);$.left-=(et-$.width)/2,$.top-=(Ze-$.height)/2,$.width=et,$.height=Ze,$.aspectRatio=Pe/je,$.naturalWidth=Pe,$.naturalHeight=je,this.limitCanvas(!0,!1)}($.width>$.maxWidth||$.width<$.minWidth)&&($.left=$.oldLeft),($.height>$.maxHeight||$.height<$.minHeight)&&($.top=$.oldTop),$.width=Math.min(Math.max($.width,$.minWidth),$.maxWidth),$.height=Math.min(Math.max($.height,$.minHeight),$.maxHeight),this.limitCanvas(!1,!0),$.left=Math.min(Math.max($.left,$.minLeft),$.maxLeft),$.top=Math.min(Math.max($.top,$.minTop),$.maxTop),$.oldLeft=$.left,$.oldTop=$.top,V(this.canvas,re({width:$.width,height:$.height},Ba({translateX:$.left,translateY:$.top}))),this.renderImage(W),this.cropped&&this.limited&&this.limitCropBox(!0,!0)},renderImage:function(W){var X=this.canvasData,$=this.imageData,we=$.naturalWidth*(X.width/X.naturalWidth),ye=$.naturalHeight*(X.height/X.naturalHeight);re($,{width:we,height:ye,left:(X.width-we)/2,top:(X.height-ye)/2}),V(this.image,re({width:$.width,height:$.height},Ba(re({translateX:$.left,translateY:$.top},$)))),W&&this.output()},initCropBox:function(){var W=this.options,X=this.canvasData,$=W.aspectRatio||W.initialAspectRatio,we=Number(W.autoCropArea)||.8,ye={width:X.width,height:X.height};$&&(X.height*$>X.width?ye.height=ye.width/$:ye.width=ye.height*$),this.cropBoxData=ye,this.limitCropBox(!0,!0),ye.width=Math.min(Math.max(ye.width,ye.minWidth),ye.maxWidth),ye.height=Math.min(Math.max(ye.height,ye.minHeight),ye.maxHeight),ye.width=Math.max(ye.minWidth,ye.width*we),ye.height=Math.max(ye.minHeight,ye.height*we),ye.left=X.left+(X.width-ye.width)/2,ye.top=X.top+(X.height-ye.height)/2,ye.oldLeft=ye.left,ye.oldTop=ye.top,this.initialCropBoxData=re({},ye)},limitCropBox:function(W,X){var $=this.options,we=this.containerData,ye=this.canvasData,Pe=this.cropBoxData,je=this.limited,et=$.aspectRatio;if(W){var Ze=Number($.minCropBoxWidth)||0,Ve=Number($.minCropBoxHeight)||0,Ue=je?Math.min(we.width,ye.width,ye.width+ye.left,we.width-ye.left):we.width,Ye=je?Math.min(we.height,ye.height,ye.height+ye.top,we.height-ye.top):we.height;Ze=Math.min(Ze,we.width),Ve=Math.min(Ve,we.height),et&&(Ze&&Ve?Ve*et>Ze?Ve=Ze/et:Ze=Ve*et:Ze?Ve=Ze/et:Ve&&(Ze=Ve*et),Ye*et>Ue?Ye=Ue/et:Ue=Ye*et),Pe.minWidth=Math.min(Ze,Ue),Pe.minHeight=Math.min(Ve,Ye),Pe.maxWidth=Ue,Pe.maxHeight=Ye}X&&(je?(Pe.minLeft=Math.max(0,ye.left),Pe.minTop=Math.max(0,ye.top),Pe.maxLeft=Math.min(we.width,ye.left+ye.width)-Pe.width,Pe.maxTop=Math.min(we.height,ye.top+ye.height)-Pe.height):(Pe.minLeft=0,Pe.minTop=0,Pe.maxLeft=we.width-Pe.width,Pe.maxTop=we.height-Pe.height))},renderCropBox:function(){var W=this.options,X=this.containerData,$=this.cropBoxData;($.width>$.maxWidth||$.width<$.minWidth)&&($.left=$.oldLeft),($.height>$.maxHeight||$.height<$.minHeight)&&($.top=$.oldTop),$.width=Math.min(Math.max($.width,$.minWidth),$.maxWidth),$.height=Math.min(Math.max($.height,$.minHeight),$.maxHeight),this.limitCropBox(!1,!0),$.left=Math.min(Math.max($.left,$.minLeft),$.maxLeft),$.top=Math.min(Math.max($.top,$.minTop),$.maxTop),$.oldLeft=$.left,$.oldTop=$.top,W.movable&&W.cropBoxMovable&>(this.face,Q,$.width>=X.width&&$.height>=X.height?q:A),V(this.cropBox,re({width:$.width,height:$.height},Ba({translateX:$.left,translateY:$.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Kt(this.element,le,this.getData())}},_n={initPreview:function(){var W=this.element,X=this.crossOrigin,$=this.options.preview,we=X?this.crossOriginUrl:this.url,ye=W.alt||"The image to preview",Pe=document.createElement("img");if(X&&(Pe.crossOrigin=X),Pe.src=we,Pe.alt=ye,this.viewBox.appendChild(Pe),this.viewBoxImage=Pe,!!$){var je=$;typeof $=="string"?je=W.ownerDocument.querySelectorAll($):$.querySelector&&(je=[$]),this.previews=je,kt(je,function(et){var Ze=document.createElement("img");gt(et,oe,{width:et.offsetWidth,height:et.offsetHeight,html:et.innerHTML}),X&&(Ze.crossOrigin=X),Ze.src=we,Ze.alt=ye,Ze.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',et.innerHTML="",et.appendChild(Ze)})}},resetPreview:function(){kt(this.previews,function(W){var X=ft(W,oe);V(W,{width:X.width,height:X.height}),W.innerHTML=X.html,zt(W,oe)})},preview:function(){var W=this.imageData,X=this.canvasData,$=this.cropBoxData,we=$.width,ye=$.height,Pe=W.width,je=W.height,et=$.left-X.left-W.left,Ze=$.top-X.top-W.top;!this.cropped||this.disabled||(V(this.viewBoxImage,re({width:Pe,height:je},Ba(re({translateX:-et,translateY:-Ze},W)))),kt(this.previews,function(Ve){var Ue=ft(Ve,oe),Ye=Ue.width,Gt=Ue.height,Ut=Ye,na=Gt,Zt=1;we&&(Zt=Ye/we,na=ye*Zt),ye&&na>Gt&&(Zt=Gt/ye,Ut=we*Zt,na=Gt),V(Ve,{width:Ut,height:na}),V(Ve.getElementsByTagName("img")[0],re({width:Pe*Zt,height:je*Zt},Ba(re({translateX:-et*Zt,translateY:-Ze*Zt},W))))}))}},er={bind:function(){var W=this.element,X=this.options,$=this.cropper;Xt(X.cropstart)&&ht(W,be,X.cropstart),Xt(X.cropmove)&&ht(W,ae,X.cropmove),Xt(X.cropend)&&ht(W,Re,X.cropend),Xt(X.crop)&&ht(W,le,X.crop),Xt(X.zoom)&&ht(W,ce,X.zoom),ht($,st,this.onCropStart=this.cropStart.bind(this)),X.zoomable&&X.zoomOnWheel&&ht($,se,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),X.toggleDragModeOnDblclick&&ht($,Ce,this.onDblclick=this.dblclick.bind(this)),ht(W.ownerDocument,H,this.onCropMove=this.cropMove.bind(this)),ht(W.ownerDocument,te,this.onCropEnd=this.cropEnd.bind(this)),X.responsive&&ht(window,he,this.onResize=this.resize.bind(this))},unbind:function(){var W=this.element,X=this.options,$=this.cropper;Xt(X.cropstart)&&Ot(W,be,X.cropstart),Xt(X.cropmove)&&Ot(W,ae,X.cropmove),Xt(X.cropend)&&Ot(W,Re,X.cropend),Xt(X.crop)&&Ot(W,le,X.crop),Xt(X.zoom)&&Ot(W,ce,X.zoom),Ot($,st,this.onCropStart),X.zoomable&&X.zoomOnWheel&&Ot($,se,this.onWheel,{passive:!1,capture:!0}),X.toggleDragModeOnDblclick&&Ot($,Ce,this.onDblclick),Ot(W.ownerDocument,H,this.onCropMove),Ot(W.ownerDocument,te,this.onCropEnd),X.responsive&&Ot(window,he,this.onResize)}},Er={resize:function(){if(!this.disabled){var W=this.options,X=this.container,$=this.containerData,we=X.offsetWidth/$.width,ye=X.offsetHeight/$.height,Pe=Math.abs(we-1)>Math.abs(ye-1)?we:ye;if(Pe!==1){var je,et;W.restore&&(je=this.getCanvasData(),et=this.getCropBoxData()),this.render(),W.restore&&(this.setCanvasData(kt(je,function(Ze,Ve){je[Ve]=Ze*Pe})),this.setCropBoxData(kt(et,function(Ze,Ve){et[Ve]=Ze*Pe})))}}},dblclick:function(){this.disabled||this.options.dragMode===J||this.setDragMode(ne(this.dragBox,P)?Te:De)},wheel:function(W){var X=this,$=Number(this.options.wheelZoomRatio)||.1,we=1;this.disabled||(W.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){X.wheeling=!1},50),W.deltaY?we=W.deltaY>0?1:-1:W.wheelDelta?we=-W.wheelDelta/120:W.detail&&(we=W.detail>0?1:-1),this.zoom(-we*$,W)))},cropStart:function(W){var X=W.buttons,$=W.button;if(!(this.disabled||(W.type==="mousedown"||W.type==="pointerdown"&&W.pointerType==="mouse")&&(St(X)&&X!==1||St($)&&$!==0||W.ctrlKey))){var we=this.options,ye=this.pointers,Pe;W.changedTouches?kt(W.changedTouches,function(je){ye[je.identifier]=Ra(je)}):ye[W.pointerId||0]=Ra(W),Object.keys(ye).length>1&&we.zoomable&&we.zoomOnTouch?Pe=y:Pe=ft(W.target,Q),!!We.test(Pe)&&Kt(this.element,be,{originalEvent:W,action:Pe})!==!1&&(W.preventDefault(),this.action=Pe,this.cropping=!1,Pe===_&&(this.cropping=!0,Oe(this.dragBox,z)))}},cropMove:function(W){var X=this.action;if(!(this.disabled||!X)){var $=this.pointers;W.preventDefault(),Kt(this.element,ae,{originalEvent:W,action:X})!==!1&&(W.changedTouches?kt(W.changedTouches,function(we){re($[we.identifier]||{},Ra(we,!0))}):re($[W.pointerId||0]||{},Ra(W,!0)),this.change(W))}},cropEnd:function(W){if(!this.disabled){var X=this.action,$=this.pointers;W.changedTouches?kt(W.changedTouches,function(we){delete $[we.identifier]}):delete $[W.pointerId||0],X&&(W.preventDefault(),Object.keys($).length||(this.action=""),this.cropping&&(this.cropping=!1,He(this.dragBox,z,this.cropped&&this.options.modal)),Kt(this.element,Re,{originalEvent:W,action:X}))}}},Fa={change:function(W){var X=this.options,$=this.canvasData,we=this.containerData,ye=this.cropBoxData,Pe=this.pointers,je=this.action,et=X.aspectRatio,Ze=ye.left,Ve=ye.top,Ue=ye.width,Ye=ye.height,Gt=Ze+Ue,Ut=Ve+Ye,na=0,Zt=0,ra=we.width,fa=we.height,da=!0,ja;!et&&W.shiftKey&&(et=Ue&&Ye?Ue/Ye:1),this.limited&&(na=ye.minLeft,Zt=ye.minTop,ra=na+Math.min(we.width,$.width,$.left+$.width),fa=Zt+Math.min(we.height,$.height,$.top+$.height));var Sa=Pe[Object.keys(Pe)[0]],it={x:Sa.endX-Sa.startX,y:Sa.endY-Sa.startY},$t=function(ya){switch(ya){case T:Gt+it.x>ra&&(it.x=ra-Gt);break;case D:Ze+it.xfa&&(it.y=fa-Ut);break}};switch(je){case A:Ze+=it.x,Ve+=it.y;break;case T:if(it.x>=0&&(Gt>=ra||et&&(Ve<=Zt||Ut>=fa))){da=!1;break}$t(T),Ue+=it.x,Ue<0&&(je=D,Ue=-Ue,Ze-=Ue),et&&(Ye=Ue/et,Ve+=(ye.height-Ye)/2);break;case L:if(it.y<=0&&(Ve<=Zt||et&&(Ze<=na||Gt>=ra))){da=!1;break}$t(L),Ye-=it.y,Ve+=it.y,Ye<0&&(je=g,Ye=-Ye,Ve-=Ye),et&&(Ue=Ye*et,Ze+=(ye.width-Ue)/2);break;case D:if(it.x<=0&&(Ze<=na||et&&(Ve<=Zt||Ut>=fa))){da=!1;break}$t(D),Ue-=it.x,Ze+=it.x,Ue<0&&(je=T,Ue=-Ue,Ze-=Ue),et&&(Ye=Ue/et,Ve+=(ye.height-Ye)/2);break;case g:if(it.y>=0&&(Ut>=fa||et&&(Ze<=na||Gt>=ra))){da=!1;break}$t(g),Ye+=it.y,Ye<0&&(je=L,Ye=-Ye,Ve-=Ye),et&&(Ue=Ye*et,Ze+=(ye.width-Ue)/2);break;case k:if(et){if(it.y<=0&&(Ve<=Zt||Gt>=ra)){da=!1;break}$t(L),Ye-=it.y,Ve+=it.y,Ue=Ye*et}else $t(L),$t(T),it.x>=0?GtZt&&(Ye-=it.y,Ve+=it.y):(Ye-=it.y,Ve+=it.y);Ue<0&&Ye<0?(je=b,Ye=-Ye,Ue=-Ue,Ve-=Ye,Ze-=Ue):Ue<0?(je=C,Ue=-Ue,Ze-=Ue):Ye<0&&(je=E,Ye=-Ye,Ve-=Ye);break;case C:if(et){if(it.y<=0&&(Ve<=Zt||Ze<=na)){da=!1;break}$t(L),Ye-=it.y,Ve+=it.y,Ue=Ye*et,Ze+=ye.width-Ue}else $t(L),$t(D),it.x<=0?Ze>na?(Ue-=it.x,Ze+=it.x):it.y<=0&&Ve<=Zt&&(da=!1):(Ue-=it.x,Ze+=it.x),it.y<=0?Ve>Zt&&(Ye-=it.y,Ve+=it.y):(Ye-=it.y,Ve+=it.y);Ue<0&&Ye<0?(je=E,Ye=-Ye,Ue=-Ue,Ve-=Ye,Ze-=Ue):Ue<0?(je=k,Ue=-Ue,Ze-=Ue):Ye<0&&(je=b,Ye=-Ye,Ve-=Ye);break;case b:if(et){if(it.x<=0&&(Ze<=na||Ut>=fa)){da=!1;break}$t(D),Ue-=it.x,Ze+=it.x,Ye=Ue/et}else $t(g),$t(D),it.x<=0?Ze>na?(Ue-=it.x,Ze+=it.x):it.y>=0&&Ut>=fa&&(da=!1):(Ue-=it.x,Ze+=it.x),it.y>=0?Ut=0&&(Gt>=ra||Ut>=fa)){da=!1;break}$t(T),Ue+=it.x,Ye=Ue/et}else $t(g),$t(T),it.x>=0?Gt=0&&Ut>=fa&&(da=!1):Ue+=it.x,it.y>=0?Ut0?je=it.y>0?E:k:it.x<0&&(Ze-=Ue,je=it.y>0?b:C),it.y<0&&(Ve-=Ye),this.cropped||(Ae(this.cropBox,p),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}da&&(ye.width=Ue,ye.height=Ye,ye.left=Ze,ye.top=Ve,this.action=je,this.renderCropBox()),kt(Pe,function(oa){oa.startX=oa.endX,oa.startY=oa.endY})}},Tr={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Oe(this.dragBox,z),Ae(this.cropBox,p),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=re({},this.initialImageData),this.canvasData=re({},this.initialCanvasData),this.cropBoxData=re({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(re(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Ae(this.dragBox,z),Oe(this.cropBox,p)),this},replace:function(W){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&W&&(this.isImg&&(this.element.src=W),X?(this.url=W,this.image.src=W,this.ready&&(this.viewBoxImage.src=W,kt(this.previews,function($){$.getElementsByTagName("img")[0].src=W}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(W))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Ae(this.cropper,F)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Oe(this.cropper,F)),this},destroy:function(){var W=this.element;return W[U]?(W[U]=void 0,this.isImg&&this.replaced&&(W.src=this.originalUrl),this.uncreate(),this):this},move:function(W){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:W,$=this.canvasData,we=$.left,ye=$.top;return this.moveTo(ca(W)?W:we+Number(W),ca(X)?X:ye+Number(X))},moveTo:function(W){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:W,$=this.canvasData,we=!1;return W=Number(W),X=Number(X),this.ready&&!this.disabled&&this.options.movable&&(St(W)&&($.left=W,we=!0),St(X)&&($.top=X,we=!0),we&&this.renderCanvas(!0)),this},zoom:function(W,X){var $=this.canvasData;return W=Number(W),W<0?W=1/(1-W):W=1+W,this.zoomTo($.width*W/$.naturalWidth,null,X)},zoomTo:function(W,X,$){var we=this.options,ye=this.canvasData,Pe=ye.width,je=ye.height,et=ye.naturalWidth,Ze=ye.naturalHeight;if(W=Number(W),W>=0&&this.ready&&!this.disabled&&we.zoomable){var Ve=et*W,Ue=Ze*W;if(Kt(this.element,ce,{ratio:W,oldRatio:Pe/et,originalEvent:$})===!1)return this;if($){var Ye=this.pointers,Gt=xa(this.cropper),Ut=Ye&&Object.keys(Ye).length?vr(Ye):{pageX:$.pageX,pageY:$.pageY};ye.left-=(Ve-Pe)*((Ut.pageX-Gt.left-ye.left)/Pe),ye.top-=(Ue-je)*((Ut.pageY-Gt.top-ye.top)/je)}else Qe(X)&&St(X.x)&&St(X.y)?(ye.left-=(Ve-Pe)*((X.x-ye.left)/Pe),ye.top-=(Ue-je)*((X.y-ye.top)/je)):(ye.left-=(Ve-Pe)/2,ye.top-=(Ue-je)/2);ye.width=Ve,ye.height=Ue,this.renderCanvas(!0)}return this},rotate:function(W){return this.rotateTo((this.imageData.rotate||0)+Number(W))},rotateTo:function(W){return W=Number(W),St(W)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=W%360,this.renderCanvas(!0,!0)),this},scaleX:function(W){var X=this.imageData.scaleY;return this.scale(W,St(X)?X:1)},scaleY:function(W){var X=this.imageData.scaleX;return this.scale(St(X)?X:1,W)},scale:function(W){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:W,$=this.imageData,we=!1;return W=Number(W),X=Number(X),this.ready&&!this.disabled&&this.options.scalable&&(St(W)&&($.scaleX=W,we=!0),St(X)&&($.scaleY=X,we=!0),we&&this.renderCanvas(!0,!0)),this},getData:function(){var W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,X=this.options,$=this.imageData,we=this.canvasData,ye=this.cropBoxData,Pe;if(this.ready&&this.cropped){Pe={x:ye.left-we.left,y:ye.top-we.top,width:ye.width,height:ye.height};var je=$.width/$.naturalWidth;if(kt(Pe,function(Ve,Ue){Pe[Ue]=Ve/je}),W){var et=Math.round(Pe.y+Pe.height),Ze=Math.round(Pe.x+Pe.width);Pe.x=Math.round(Pe.x),Pe.y=Math.round(Pe.y),Pe.width=Ze-Pe.x,Pe.height=et-Pe.y}}else Pe={x:0,y:0,width:0,height:0};return X.rotatable&&(Pe.rotate=$.rotate||0),X.scalable&&(Pe.scaleX=$.scaleX||1,Pe.scaleY=$.scaleY||1),Pe},setData:function(W){var X=this.options,$=this.imageData,we=this.canvasData,ye={};if(this.ready&&!this.disabled&&Qe(W)){var Pe=!1;X.rotatable&&St(W.rotate)&&W.rotate!==$.rotate&&($.rotate=W.rotate,Pe=!0),X.scalable&&(St(W.scaleX)&&W.scaleX!==$.scaleX&&($.scaleX=W.scaleX,Pe=!0),St(W.scaleY)&&W.scaleY!==$.scaleY&&($.scaleY=W.scaleY,Pe=!0)),Pe&&this.renderCanvas(!0,!0);var je=$.width/$.naturalWidth;St(W.x)&&(ye.left=W.x*je+we.left),St(W.y)&&(ye.top=W.y*je+we.top),St(W.width)&&(ye.width=W.width*je),St(W.height)&&(ye.height=W.height*je),this.setCropBoxData(ye)}return this},getContainerData:function(){return this.ready?re({},this.containerData):{}},getImageData:function(){return this.sized?re({},this.imageData):{}},getCanvasData:function(){var W=this.canvasData,X={};return this.ready&&kt(["left","top","width","height","naturalWidth","naturalHeight"],function($){X[$]=W[$]}),X},setCanvasData:function(W){var X=this.canvasData,$=X.aspectRatio;return this.ready&&!this.disabled&&Qe(W)&&(St(W.left)&&(X.left=W.left),St(W.top)&&(X.top=W.top),St(W.width)?(X.width=W.width,X.height=W.width/$):St(W.height)&&(X.height=W.height,X.width=W.height*$),this.renderCanvas(!0)),this},getCropBoxData:function(){var W=this.cropBoxData,X;return this.ready&&this.cropped&&(X={left:W.left,top:W.top,width:W.width,height:W.height}),X||{}},setCropBoxData:function(W){var X=this.cropBoxData,$=this.options.aspectRatio,we,ye;return this.ready&&this.cropped&&!this.disabled&&Qe(W)&&(St(W.left)&&(X.left=W.left),St(W.top)&&(X.top=W.top),St(W.width)&&W.width!==X.width&&(we=!0,X.width=W.width),St(W.height)&&W.height!==X.height&&(ye=!0,X.height=W.height),$&&(we?X.height=X.width/$:ye&&(X.width=X.height*$)),this.renderCropBox()),this},getCroppedCanvas:function(){var W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var X=this.canvasData,$=qn(this.image,this.imageData,X,W);if(!this.cropped)return $;var we=this.getData(),ye=we.x,Pe=we.y,je=we.width,et=we.height,Ze=$.width/Math.floor(X.naturalWidth);Ze!==1&&(ye*=Ze,Pe*=Ze,je*=Ze,et*=Ze);var Ve=je/et,Ue=Ua({aspectRatio:Ve,width:W.maxWidth||1/0,height:W.maxHeight||1/0}),Ye=Ua({aspectRatio:Ve,width:W.minWidth||0,height:W.minHeight||0},"cover"),Gt=Ua({aspectRatio:Ve,width:W.width||(Ze!==1?$.width:je),height:W.height||(Ze!==1?$.height:et)}),Ut=Gt.width,na=Gt.height;Ut=Math.min(Ue.width,Math.max(Ye.width,Ut)),na=Math.min(Ue.height,Math.max(Ye.height,na));var Zt=document.createElement("canvas"),ra=Zt.getContext("2d");Zt.width=$e(Ut),Zt.height=$e(na),ra.fillStyle=W.fillColor||"transparent",ra.fillRect(0,0,Ut,na);var fa=W.imageSmoothingEnabled,da=fa===void 0?!0:fa,ja=W.imageSmoothingQuality;ra.imageSmoothingEnabled=da,ja&&(ra.imageSmoothingQuality=ja);var Sa=$.width,it=$.height,$t=ye,oa=Pe,ya,Oa,Xa,Ga,$a,Aa;$t<=-je||$t>Sa?($t=0,ya=0,Xa=0,$a=0):$t<=0?(Xa=-$t,$t=0,ya=Math.min(Sa,je+$t),$a=ya):$t<=Sa&&(Xa=0,ya=Math.min(je,Sa-$t),$a=ya),ya<=0||oa<=-et||oa>it?(oa=0,Oa=0,Ga=0,Aa=0):oa<=0?(Ga=-oa,oa=0,Oa=Math.min(it,et+oa),Aa=Oa):oa<=it&&(Ga=0,Oa=Math.min(et,it-oa),Aa=Oa);var ba=[$t,oa,ya,Oa];if($a>0&&Aa>0){var Qa=Ut/je;ba.push(Xa*Qa,Ga*Qa,$a*Qa,Aa*Qa)}return ra.drawImage.apply(ra,[$].concat(M(ba.map(function(za){return Math.floor($e(za))})))),Zt},setAspectRatio:function(W){var X=this.options;return!this.disabled&&!ca(W)&&(X.aspectRatio=Math.max(0,W)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(W){var X=this.options,$=this.dragBox,we=this.face;if(this.ready&&!this.disabled){var ye=W===De,Pe=X.movable&&W===Te;W=ye||Pe?W:J,X.dragMode=W,gt($,Q,W),He($,P,ye),He($,K,Pe),X.cropBoxMovable||(gt(we,Q,W),He(we,P,ye),He(we,K,Pe))}return this}},sn=f.Cropper,wn=function(){function fe(W){var X=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(a(this,fe),!W||!dt.test(W.tagName))throw new Error("The first argument is required and must be an or element.");this.element=W,this.options=re({},It,Qe(X)&&X),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return m(fe,[{key:"init",value:function(){var X=this.element,$=X.tagName.toLowerCase(),we;if(!X[U]){if(X[U]=this,$==="img"){if(this.isImg=!0,we=X.getAttribute("src")||"",this.originalUrl=we,!we)return;we=X.src}else $==="canvas"&&window.HTMLCanvasElement&&(we=X.toDataURL());this.load(we)}}},{key:"load",value:function(X){var $=this;if(!!X){this.url=X,this.imageData={};var we=this.element,ye=this.options;if(!ye.rotatable&&!ye.scalable&&(ye.checkOrientation=!1),!ye.checkOrientation||!window.ArrayBuffer){this.clone();return}if(_e.test(X)){ct.test(X)?this.read(br(X)):this.clone();return}var Pe=new XMLHttpRequest,je=this.clone.bind(this);this.reloading=!0,this.xhr=Pe,Pe.onabort=je,Pe.onerror=je,Pe.ontimeout=je,Pe.onprogress=function(){Pe.getResponseHeader("content-type")!==Ie&&Pe.abort()},Pe.onload=function(){$.read(Pe.response)},Pe.onloadend=function(){$.reloading=!1,$.xhr=null},ye.checkCrossOrigin&&La(X)&&we.crossOrigin&&(X=cn(X)),Pe.open("GET",X,!0),Pe.responseType="arraybuffer",Pe.withCredentials=we.crossOrigin==="use-credentials",Pe.send()}}},{key:"read",value:function(X){var $=this.options,we=this.imageData,ye=vn(X),Pe=0,je=1,et=1;if(ye>1){this.url=Cr(X,Ie);var Ze=xr(ye);Pe=Ze.rotate,je=Ze.scaleX,et=Ze.scaleY}$.rotatable&&(we.rotate=Pe),$.scalable&&(we.scaleX=je,we.scaleY=et),this.clone()}},{key:"clone",value:function(){var X=this.element,$=this.url,we=X.crossOrigin,ye=$;this.options.checkCrossOrigin&&La($)&&(we||(we="anonymous"),ye=cn($)),this.crossOrigin=we,this.crossOriginUrl=ye;var Pe=document.createElement("img");we&&(Pe.crossOrigin=we),Pe.src=ye||$,Pe.alt=X.alt||"The image to crop",this.image=Pe,Pe.onload=this.start.bind(this),Pe.onerror=this.stop.bind(this),Oe(Pe,B),X.parentNode.insertBefore(Pe,X.nextSibling)}},{key:"start",value:function(){var X=this,$=this.image;$.onload=null,$.onerror=null,this.sizing=!0;var we=f.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(f.navigator.userAgent),ye=function(Ze,Ve){re(X.imageData,{naturalWidth:Ze,naturalHeight:Ve,aspectRatio:Ze/Ve}),X.initialImageData=re({},X.imageData),X.sizing=!1,X.sized=!0,X.build()};if($.naturalWidth&&!we){ye($.naturalWidth,$.naturalHeight);return}var Pe=document.createElement("img"),je=document.body||document.documentElement;this.sizingImage=Pe,Pe.onload=function(){ye(Pe.width,Pe.height),we||je.removeChild(Pe)},Pe.src=$.src,we||(Pe.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",je.appendChild(Pe))}},{key:"stop",value:function(){var X=this.image;X.onload=null,X.onerror=null,X.parentNode.removeChild(X),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var X=this.element,$=this.options,we=this.image,ye=X.parentNode,Pe=document.createElement("div");Pe.innerHTML=aa;var je=Pe.querySelector(".".concat(U,"-container")),et=je.querySelector(".".concat(U,"-canvas")),Ze=je.querySelector(".".concat(U,"-drag-box")),Ve=je.querySelector(".".concat(U,"-crop-box")),Ue=Ve.querySelector(".".concat(U,"-face"));this.container=ye,this.cropper=je,this.canvas=et,this.dragBox=Ze,this.cropBox=Ve,this.viewBox=je.querySelector(".".concat(U,"-view-box")),this.face=Ue,et.appendChild(we),Oe(X,p),ye.insertBefore(je,X.nextSibling),this.isImg||Ae(we,B),this.initPreview(),this.bind(),$.initialAspectRatio=Math.max(0,$.initialAspectRatio)||NaN,$.aspectRatio=Math.max(0,$.aspectRatio)||NaN,$.viewMode=Math.max(0,Math.min(3,Math.round($.viewMode)))||0,Oe(Ve,p),$.guides||Oe(Ve.getElementsByClassName("".concat(U,"-dashed")),p),$.center||Oe(Ve.getElementsByClassName("".concat(U,"-center")),p),$.background&&Oe(je,"".concat(U,"-bg")),$.highlight||Oe(Ue,d),$.cropBoxMovable&&(Oe(Ue,K),gt(Ue,Q,A)),$.cropBoxResizable||(Oe(Ve.getElementsByClassName("".concat(U,"-line")),p),Oe(Ve.getElementsByClassName("".concat(U,"-point")),p)),this.render(),this.ready=!0,this.setDragMode($.dragMode),$.autoCrop&&this.crop(),this.setData($.data),Xt($.ready)&&ht(X,Z,$.ready,{once:!0}),Kt(X,Z)}}},{key:"unbuild",value:function(){!this.ready||(this.ready=!1,this.unbind(),this.resetPreview(),this.cropper.parentNode.removeChild(this.cropper),Ae(this.element,p))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=sn,fe}},{key:"setDefaults",value:function(X){re(It,Qe(X)&&X)}}]),fe}();return re(wn.prototype,Sr,_n,er,Er,Fa,Tr),wn})},24081:function(l,r,e){var t=e(21059),a=e(158),s=t(a,"DataView");l.exports=s},15999:function(l,r,e){var t=e(13387),a=e(69252),s=e(31125),m=e(9021),O=e(68131);function M(x){var o=-1,c=x==null?0:x.length;for(this.clear();++ov))return!1;var U=j.get(x),A=j.get(o);if(U&&A)return U==o&&A==x;var _=-1,q=!0,y=c&O?new t:void 0;for(j.set(x,o),j.set(o,x);++_-1&&a%1==0&&a-1}l.exports=a},30603:function(l,r,e){var t=e(33993);function a(s,m){var O=this.__data__,M=t(O,s);return M<0?(++this.size,O.push([s,m])):O[M][1]=m,this}l.exports=a},73633:function(l,r,e){var t=e(15999),a=e(26811),s=e(60945);function m(){this.size=0,this.__data__={hash:new t,map:new(s||a),string:new t}}l.exports=m},39382:function(l,r,e){var t=e(5662);function a(s){var m=t(this,s).delete(s);return this.size-=m?1:0,m}l.exports=a},28850:function(l,r,e){var t=e(5662);function a(s){return t(this,s).get(s)}l.exports=a},70756:function(l,r,e){var t=e(5662);function a(s){return t(this,s).has(s)}l.exports=a},2769:function(l,r,e){var t=e(5662);function a(s,m){var O=t(this,s),M=O.size;return O.set(s,m),this.size+=O.size==M?0:1,this}l.exports=a},11382:function(l){function r(e){var t=-1,a=Array(e.size);return e.forEach(function(s,m){a[++t]=[m,s]}),a}l.exports=r},95498:function(l){function r(e,t){return function(a){return a==null?!1:a[e]===t&&(t!==void 0||e in Object(a))}}l.exports=r},32202:function(l,r,e){var t=e(54883),a=500;function s(m){var O=t(m,function(x){return M.size===a&&M.clear(),x}),M=O.cache;return O}l.exports=s},45155:function(l,r,e){var t=e(21059),a=t(Object,"create");l.exports=a},32501:function(l,r,e){var t=e(78579),a=t(Object.keys,Object);l.exports=a},90807:function(l){function r(e){var t=[];if(e!=null)for(var a in Object(e))t.push(a);return t}l.exports=r},41771:function(l,r,e){l=e.nmd(l);var t=e(14528),a=r&&!r.nodeType&&r,s=a&&!0&&l&&!l.nodeType&&l,m=s&&s.exports===a,O=m&&t.process,M=function(){try{var x=s&&s.require&&s.require("util").types;return x||O&&O.binding&&O.binding("util")}catch(o){}}();l.exports=M},92445:function(l){var r=Object.prototype,e=r.toString;function t(a){return e.call(a)}l.exports=t},78579:function(l){function r(e,t){return function(a){return e(t(a))}}l.exports=r},158:function(l,r,e){var t=e(14528),a=typeof self=="object"&&self&&self.Object===Object&&self,s=t||a||Function("return this")();l.exports=s},57554:function(l){var r="__lodash_hash_undefined__";function e(t){return this.__data__.set(t,r),this}l.exports=e},18800:function(l){function r(e){return this.__data__.has(e)}l.exports=r},76680:function(l){function r(e){var t=-1,a=Array(e.size);return e.forEach(function(s){a[++t]=s}),a}l.exports=r},73832:function(l,r,e){var t=e(26811);function a(){this.__data__=new t,this.size=0}l.exports=a},31676:function(l){function r(e){var t=this.__data__,a=t.delete(e);return this.size=t.size,a}l.exports=r},33577:function(l){function r(e){return this.__data__.get(e)}l.exports=r},43343:function(l){function r(e){return this.__data__.has(e)}l.exports=r},20488:function(l,r,e){var t=e(26811),a=e(60945),s=e(25835),m=200;function O(M,x){var o=this.__data__;if(o instanceof t){var c=o.__data__;if(!a||c.length-1&&t%1==0&&t<=r}l.exports=e},55948:function(l,r,e){var t=e(2471),a=e(2723),s=e(41771),m=s&&s.isMap,O=m?a(m):t;l.exports=O},23619:function(l){function r(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}l.exports=r},81653:function(l){function r(e){return e!=null&&typeof e=="object"}l.exports=r},82678:function(l,r,e){var t=e(20194),a=e(97959),s=e(81653),m="[object Object]",O=Function.prototype,M=Object.prototype,x=O.toString,o=M.hasOwnProperty,c=x.call(Object);function u(w){if(!s(w)||t(w)!=m)return!1;var j=a(w);if(j===null)return!0;var f=o.call(j,"constructor")&&j.constructor;return typeof f=="function"&&f instanceof f&&x.call(f)==c}l.exports=u},78255:function(l,r,e){var t=e(42388),a=e(2723),s=e(41771),m=s&&s.isSet,O=m?a(m):t;l.exports=O},72139:function(l,r,e){var t=e(20194),a=e(93706),s=e(81653),m="[object String]";function O(M){return typeof M=="string"||!a(M)&&s(M)&&t(M)==m}l.exports=O},81878:function(l,r,e){var t=e(20194),a=e(81653),s="[object Symbol]";function m(O){return typeof O=="symbol"||a(O)&&t(O)==s}l.exports=m},70094:function(l,r,e){var t=e(88595),a=e(2723),s=e(41771),m=s&&s.isTypedArray,O=m?a(m):t;l.exports=O},23150:function(l,r,e){var t=e(92554),a=e(76324),s=e(51528);function m(O){return s(O)?t(O):a(O)}l.exports=m},61530:function(l,r,e){var t=e(92554),a=e(21506),s=e(51528);function m(O){return s(O)?t(O,!0):a(O)}l.exports=m},34118:function(l,r,e){var t=e(57041),a=e(27159),s=e(20472),m=e(93706);function O(M,x){var o=m(M)?t:s;return o(M,a(x,3))}l.exports=O},54883:function(l,r,e){var t=e(25835),a="Expected a function";function s(m,O){if(typeof m!="function"||O!=null&&typeof O!="function")throw new TypeError(a);var M=function(){var x=arguments,o=O?O.apply(this,x):x[0],c=M.cache;if(c.has(o))return c.get(o);var u=m.apply(this,x);return M.cache=c.set(o,u)||c,u};return M.cache=new(s.Cache||t),M}s.Cache=t,l.exports=s},72659:function(l,r,e){var t=e(39238),a=e(40612),s=e(63140),m=e(46384);function O(M){return s(M)?t(m(M)):a(M)}l.exports=O},59174:function(l){function r(){return[]}l.exports=r},30647:function(l){function r(){return!1}l.exports=r},33270:function(l,r,e){var t=e(80430);function a(s){return s==null?"":t(s)}l.exports=a},49246:function(l,r,e){"use strict";e.r(r),e.d(r,{AlphaPicker:function(){return rn},BlockPicker:function(){return Yc},ChromePicker:function(){return Il},CirclePicker:function(){return nd},CompactPicker:function(){return yd},CustomPicker:function(){return Wt},GithubPicker:function(){return xd},GooglePicker:function(){return ff},HuePicker:function(){return Dd},MaterialPicker:function(){return wd},PhotoshopPicker:function(){return Hd},SketchPicker:function(){return Zd},SliderPicker:function(){return _d},SwatchesPicker:function(){return of},TwitterPicker:function(){return sf},default:function(){return Il}});var t=e(4819),a=e.n(t),s=e(29790),m=function(n,S,R,N,ie){var de=ie.clientWidth,Ee=ie.clientHeight,Me=typeof n.pageX=="number"?n.pageX:n.touches[0].pageX,Ne=typeof n.pageY=="number"?n.pageY:n.touches[0].pageY,ze=Me-(ie.getBoundingClientRect().left+window.pageXOffset),ot=Ne-(ie.getBoundingClientRect().top+window.pageYOffset);if(R==="vertical"){var at=void 0;if(ot<0?at=0:ot>Ee?at=1:at=Math.round(ot*100/Ee)/100,S.a!==at)return{h:S.h,s:S.s,l:S.l,a:at,source:"rgb"}}else{var ut=void 0;if(ze<0?ut=0:ze>de?ut=1:ut=Math.round(ze*100/de)/100,N!==ut)return{h:S.h,s:S.s,l:S.l,a:ut,source:"rgb"}}return null},O={},M=function(n,S,R,N){if(typeof document=="undefined"&&!N)return null;var ie=N?new N:document.createElement("canvas");ie.width=R*2,ie.height=R*2;var de=ie.getContext("2d");return de?(de.fillStyle=n,de.fillRect(0,0,ie.width,ie.height),de.fillStyle=S,de.fillRect(0,0,R,R),de.translate(R,R),de.fillRect(0,0,R,R),ie.toDataURL()):null},x=function(n,S,R,N){var ie=n+"-"+S+"-"+R+(N?"-server":"");if(O[ie])return O[ie];var de=M(n,S,R,N);return O[ie]=de,de},o=Object.assign||function(i){for(var n=1;n-1},b=function(n){return Number(String(n).replace(/%/g,""))},P=1,F=function(i){D(n,i);function n(S){y(this,n);var R=T(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return R.handleBlur=function(){R.state.blurValue&&R.setState({value:R.state.blurValue,blurValue:null})},R.handleChange=function(N){R.setUpdatedValue(N.target.value,N)},R.handleKeyDown=function(N){var ie=b(N.target.value);if(!isNaN(ie)&&E(N.keyCode)){var de=R.getArrowOffset(),Ee=N.keyCode===L?ie+de:ie-de;R.setUpdatedValue(Ee,N)}},R.handleDrag=function(N){if(R.props.dragLabel){var ie=Math.round(R.props.value+N.movementX);ie>=0&&ie<=R.props.dragMax&&R.props.onChange&&R.props.onChange(R.getValueObjectWithLabel(ie),N)}},R.handleMouseDown=function(N){R.props.dragLabel&&(N.preventDefault(),R.handleDrag(N),window.addEventListener("mousemove",R.handleDrag),window.addEventListener("mouseup",R.handleMouseUp))},R.handleMouseUp=function(){R.unbindEventListeners()},R.unbindEventListeners=function(){window.removeEventListener("mousemove",R.handleDrag),window.removeEventListener("mouseup",R.handleMouseUp)},R.state={value:String(S.value).toUpperCase(),blurValue:String(S.value).toUpperCase()},R.inputId="rc-editable-input-"+P++,R}return _(n,[{key:"componentDidUpdate",value:function(R,N){this.props.value!==this.state.value&&(R.value!==this.props.value||N.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(R){return q({},this.props.label,R)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||g}},{key:"setUpdatedValue",value:function(R,N){var ie=this.props.label?this.getValueObjectWithLabel(R):R;this.props.onChange&&this.props.onChange(ie,N),this.setState({value:R})}},{key:"render",value:function(){var R=this,N=(0,s.ZP)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return a().createElement("div",{style:N.wrap},a().createElement("input",{id:this.inputId,style:N.input,ref:function(de){return R.input=de},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?a().createElement("label",{htmlFor:this.inputId,style:N.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),n}(t.PureComponent||t.Component),p=F,B=function(n,S,R,N){var ie=N.clientWidth,de=N.clientHeight,Ee=typeof n.pageX=="number"?n.pageX:n.touches[0].pageX,Me=typeof n.pageY=="number"?n.pageY:n.touches[0].pageY,Ne=Ee-(N.getBoundingClientRect().left+window.pageXOffset),ze=Me-(N.getBoundingClientRect().top+window.pageYOffset);if(S==="vertical"){var ot=void 0;if(ze<0)ot=359;else if(ze>de)ot=0;else{var at=-(ze*100/de)+100;ot=360*at/100}if(R.h!==ot)return{h:ot,s:R.s,l:R.l,a:R.a,source:"hsl"}}else{var ut=void 0;if(Ne<0)ut=0;else if(Ne>ie)ut=359;else{var Tt=Ne*100/ie;ut=360*Tt/100}if(R.h!==ut)return{h:ut,s:R.s,l:R.l,a:R.a,source:"hsl"}}return null},d=function(){function i(n,S){for(var R=0;R-1}var se=he;function ce(i,n){var S=this.__data__,R=ke(S,i);return R<0?(++this.size,S.push([i,n])):S[R][1]=n,this}var Ie=ce;function We(i){var n=-1,S=i==null?0:i.length;for(this.clear();++n-1&&i%1==0&&i<=ps}var Ar=fn;function hs(i){return i!=null&&Ar(i.length)&&!Na(i)}var bn=hs;function ms(i){return un(i)&&bn(i)}var vs=ms;function kr(){return!1}var gs=kr,Ir=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bo=Ir&&typeof module=="object"&&module&&!module.nodeType&&module,ys=bo&&bo.exports===Ir,or=ys?Qe.Buffer:void 0,bs=or?or.isBuffer:void 0,Cs=bs||gs,sr=Cs,xs="[object Object]",Ss=Function.prototype,Nr=Object.prototype,Cn=Ss.toString,Es=Nr.hasOwnProperty,Lr=Cn.call(Object);function Ts(i){if(!un(i)||gt(i)!=xs)return!1;var n=Mn(i);if(n===null)return!0;var S=Es.call(n,"constructor")&&n.constructor;return typeof S=="function"&&S instanceof S&&Cn.call(S)==Lr}var Ds=Ts,Ps="[object Arguments]",ws="[object Array]",Rs="[object Boolean]",Os="[object Date]",Br="[object Error]",Ms="[object Function]",Co="[object Map]",tl="[object Number]",Fr="[object Object]",ir="[object RegExp]",xo="[object Set]",So="[object String]",As="[object WeakMap]",ks="[object ArrayBuffer]",Is="[object DataView]",Ns="[object Float32Array]",Ls="[object Float64Array]",lr="[object Int8Array]",Eo="[object Int16Array]",Bs="[object Int32Array]",Fs="[object Uint8Array]",js="[object Uint8ClampedArray]",zs="[object Uint16Array]",Ws="[object Uint32Array]",sa={};sa[Ns]=sa[Ls]=sa[lr]=sa[Eo]=sa[Bs]=sa[Fs]=sa[js]=sa[zs]=sa[Ws]=!0,sa[Ps]=sa[ws]=sa[ks]=sa[Rs]=sa[Is]=sa[Os]=sa[Br]=sa[Ms]=sa[Co]=sa[tl]=sa[Fr]=sa[ir]=sa[xo]=sa[So]=sa[As]=!1;function To(i){return un(i)&&Ar(i.length)&&!!sa[gt(i)]}var tn=To;function Hs(i){return function(n){return i(n)}}var an=Hs,Do=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xn=Do&&typeof module=="object"&&module&&!module.nodeType&&module,Vs=xn&&xn.exports===Do,jr=Vs&&ca.process,Po=function(){try{var i=xn&&xn.require&&xn.require("util").types;return i||jr&&jr.binding&&jr.binding("util")}catch(n){}}(),wo=Po,Ro=wo&&wo.isTypedArray,Us=Ro?an(Ro):tn,zr=Us;function Wr(i,n){if(!(n==="constructor"&&typeof i[n]=="function")&&n!="__proto__")return i[n]}var Sn=Wr,Gs=Object.prototype,Oo=Gs.hasOwnProperty;function $s(i,n,S){var R=i[n];(!(Oo.call(i,n)&&be(R,S))||S===void 0&&!(n in i))&&Pr(i,n,S)}var Ks=$s;function Hr(i,n,S,R){var N=!S;S||(S={});for(var ie=-1,de=n.length;++ie-1&&i%1==0&&i0){if(++n>=Jr)return arguments[0]}else n=0;return i.apply(void 0,arguments)}}var fi=di,pi=fi(Yr),hi=pi;function mi(i,n){return hi(si(i,n,ur),i+"")}var vi=mi;function Xr(i,n,S){if(!Rt(S))return!1;var R=typeof n;return(R=="number"?bn(S)&&Gr(n,S.length):R=="string"&&n in S)?be(S[n],i):!1}var gi=Xr;function Wo(i){return vi(function(n,S){var R=-1,N=S.length,ie=N>1?S[N-1]:void 0,de=N>2?S[2]:void 0;for(ie=i.length>3&&typeof ie=="function"?(N--,ie):void 0,de&&gi(S[0],S[1],de)&&(ie=N<3?void 0:ie,N=1),n=Object(n);++R=n||Dn<0||ot&&ao>=ie}function la(){var ga=qr();if(Nt(ga))return Ha(ga);Ee=setTimeout(la,Pt(ga))}function Ha(ga){return Ee=void 0,at&&R?ut(ga):(R=N=void 0,de)}function Qn(){Ee!==void 0&&clearTimeout(Ee),Ne=0,R=Me=N=Ee=void 0}function Va(){return Ee===void 0?de:Ha(qr())}function Tn(){var ga=qr(),Dn=Nt(ga);if(R=arguments,N=this,Me=ga,Dn){if(Ee===void 0)return Tt(Me);if(ot)return clearTimeout(Ee),Ee=setTimeout(la,n),ut(Me)}return Ee===void 0&&(Ee=setTimeout(la,n)),de}return Tn.cancel=Qn,Tn.flush=Va,Tn}var Ai=Mi,ki="Expected a function";function h(i,n,S){var R=!0,N=!0;if(typeof i!="function")throw new TypeError(ki);return Rt(S)&&(R="leading"in S?!!S.leading:R,N="trailing"in S?!!S.trailing:N),Ai(i,n,{leading:R,maxWait:n,trailing:N})}var I=h,ee=function(n,S,R){var N=R.getBoundingClientRect(),ie=N.width,de=N.height,Ee=typeof n.pageX=="number"?n.pageX:n.touches[0].pageX,Me=typeof n.pageY=="number"?n.pageY:n.touches[0].pageY,Ne=Ee-(R.getBoundingClientRect().left+window.pageXOffset),ze=Me-(R.getBoundingClientRect().top+window.pageYOffset);Ne<0?Ne=0:Ne>ie&&(Ne=ie),ze<0?ze=0:ze>de&&(ze=de);var ot=Ne/ie,at=1-ze/de;return{h:S.h,s:ot,v:at,a:S.a,source:"hsv"}},G=function(){function i(n,S){for(var R=0;R=128?"#000":"#fff"},ha={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}},ka=function(n,S){var R=n.replace("\xB0","");return Jt()(S+" ("+R+")")._ok},ma=Object.assign||function(i){for(var n=1;n1&&arguments[1]!==void 0?arguments[1]:"span";return function(R){Da(N,R);function N(){var ie,de,Ee,Me;_r(this,N);for(var Ne=arguments.length,ze=Array(Ne),ot=0;otEe))return!1;var Ne=ie.get(i),ze=ie.get(n);if(Ne&&ze)return Ne==n&&ze==i;var ot=-1,at=!0,ut=S&Yl?new Vl:void 0;for(ie.set(i,n),ie.set(n,i);++ot1&&(N.a=1),R.props.onChange({h:R.props.hsl.h,s:R.props.hsl.s,l:R.props.hsl.l,a:Math.round(N.a*100)/100,source:"rgb"},ie)):(N.h||N.s||N.l)&&(typeof N.s=="string"&&N.s.includes("%")&&(N.s=N.s.replace("%","")),typeof N.l=="string"&&N.l.includes("%")&&(N.l=N.l.replace("%","")),N.s==1?N.s=.01:N.l==1&&(N.l=.01),R.props.onChange({h:N.h||R.props.hsl.h,s:Number(Ml(N.s)?R.props.hsl.s:N.s),l:Number(Ml(N.l)?R.props.hsl.l:N.l),source:"hsl"},ie))},R.showHighlight=function(N){N.currentTarget.style.background="#eee"},R.hideHighlight=function(N){N.currentTarget.style.background="transparent"},S.hsl.a!==1&&S.view==="hex"?R.state={view:"rgb"}:R.state={view:S.view},R}return sd(n,[{key:"render",value:function(){var R=this,N=(0,s.ZP)({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),ie=void 0;return this.state.view==="hex"?ie=a().createElement("div",{style:N.fields,className:"flexbox-fix"},a().createElement("div",{style:N.field},a().createElement(p,{style:{input:N.input,label:N.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):this.state.view==="rgb"?ie=a().createElement("div",{style:N.fields,className:"flexbox-fix"},a().createElement("div",{style:N.field},a().createElement(p,{style:{input:N.input,label:N.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),a().createElement("div",{style:N.field},a().createElement(p,{style:{input:N.input,label:N.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),a().createElement("div",{style:N.field},a().createElement(p,{style:{input:N.input,label:N.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),a().createElement("div",{style:N.alpha},a().createElement(p,{style:{input:N.input,label:N.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):this.state.view==="hsl"&&(ie=a().createElement("div",{style:N.fields,className:"flexbox-fix"},a().createElement("div",{style:N.field},a().createElement(p,{style:{input:N.input,label:N.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),a().createElement("div",{style:N.field},a().createElement(p,{style:{input:N.input,label:N.label},label:"s",value:Math.round(this.props.hsl.s*100)+"%",onChange:this.handleChange})),a().createElement("div",{style:N.field},a().createElement(p,{style:{input:N.input,label:N.label},label:"l",value:Math.round(this.props.hsl.l*100)+"%",onChange:this.handleChange})),a().createElement("div",{style:N.alpha},a().createElement(p,{style:{input:N.input,label:N.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),a().createElement("div",{style:N.wrap,className:"flexbox-fix"},ie,a().createElement("div",{style:N.toggle},a().createElement("div",{style:N.icon,onClick:this.toggleViews,ref:function(Ee){return R.icon=Ee}},a().createElement(od.Z,{style:N.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(R,N){return R.hsl.a!==1&&N.view==="hex"?{view:"rgb"}:null}}]),n}(a().Component);Al.defaultProps={view:"hex"};var cd=Al,dd=function(){var n=(0,s.ZP)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return a().createElement("div",{style:n.picker})},kl=dd,fd=function(){var n=(0,s.ZP)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return a().createElement("div",{style:n.picker})},pd=fd,Vi=function(n){var S=n.width,R=n.onChange,N=n.disableAlpha,ie=n.rgb,de=n.hsl,Ee=n.hsv,Me=n.hex,Ne=n.renderers,ze=n.styles,ot=ze===void 0?{}:ze,at=n.className,ut=at===void 0?"":at,Tt=n.defaultView,Pt=(0,s.ZP)(Ta({default:{picker:{width:S,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+ie.r+", "+ie.g+", "+ie.b+", "+ie.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},ot),{disableAlpha:N});return a().createElement("div",{style:Pt.picker,className:"chrome-picker "+ut},a().createElement("div",{style:Pt.saturation},a().createElement(me,{style:Pt.Saturation,hsl:de,hsv:Ee,pointer:pd,onChange:R})),a().createElement("div",{style:Pt.body},a().createElement("div",{style:Pt.controls,className:"flexbox-fix"},a().createElement("div",{style:Pt.color},a().createElement("div",{style:Pt.swatch},a().createElement("div",{style:Pt.active}),a().createElement(u,{renderers:Ne}))),a().createElement("div",{style:Pt.toggles},a().createElement("div",{style:Pt.hue},a().createElement(De,{style:Pt.Hue,hsl:de,pointer:kl,onChange:R})),a().createElement("div",{style:Pt.alpha},a().createElement(A,{style:Pt.Alpha,rgb:ie,hsl:de,pointer:kl,renderers:Ne,onChange:R})))),a().createElement(cd,{rgb:ie,hsl:de,hex:Me,view:Tt,onChange:R,disableAlpha:N})))};Vi.propTypes={width:J().oneOfType([J().string,J().number]),disableAlpha:J().bool,styles:J().object,defaultView:J().oneOf(["hex","rgb","hsl"])},Vi.defaultProps={width:225,disableAlpha:!1,styles:{}};var Il=Wt(Vi),hd=function(n){var S=n.color,R=n.onClick,N=R===void 0?function(){}:R,ie=n.onSwatchHover,de=n.active,Ee=(0,s.ZP)({default:{color:{background:S,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:Vt(S),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:de,"color-#FFFFFF":S==="#FFFFFF",transparent:S==="transparent"});return a().createElement(va,{style:Ee.color,color:S,onClick:N,onHover:ie,focusStyle:{boxShadow:"0 0 4px "+S}},a().createElement("div",{style:Ee.dot}))},md=hd,vd=function(n){var S=n.hex,R=n.rgb,N=n.onChange,ie=(0,s.ZP)({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:S},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),de=function(Me,Ne){Me.r||Me.g||Me.b?N({r:Me.r||R.r,g:Me.g||R.g,b:Me.b||R.b,source:"rgb"},Ne):N({hex:Me.hex,source:"hex"},Ne)};return a().createElement("div",{style:ie.fields,className:"flexbox-fix"},a().createElement("div",{style:ie.active}),a().createElement(p,{style:{wrap:ie.HEXwrap,input:ie.HEXinput,label:ie.HEXlabel},label:"hex",value:S,onChange:de}),a().createElement(p,{style:{wrap:ie.RGBwrap,input:ie.RGBinput,label:ie.RGBlabel},label:"r",value:R.r,onChange:de}),a().createElement(p,{style:{wrap:ie.RGBwrap,input:ie.RGBinput,label:ie.RGBlabel},label:"g",value:R.g,onChange:de}),a().createElement(p,{style:{wrap:ie.RGBwrap,input:ie.RGBinput,label:ie.RGBlabel},label:"b",value:R.b,onChange:de}))},gd=vd,Ui=function(n){var S=n.onChange,R=n.onSwatchHover,N=n.colors,ie=n.hex,de=n.rgb,Ee=n.styles,Me=Ee===void 0?{}:Ee,Ne=n.className,ze=Ne===void 0?"":Ne,ot=(0,s.ZP)(Ta({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},Me)),at=function(Tt,Pt){Tt.hex?vt(Tt.hex)&&S({hex:Tt.hex,source:"hex"},Pt):S(Tt,Pt)};return a().createElement(Qr,{style:ot.Compact,styles:Me},a().createElement("div",{style:ot.compact,className:"compact-picker "+ze},a().createElement("div",null,In(N,function(ut){return a().createElement(md,{key:ut,color:ut,active:ut.toLowerCase()===ie,onClick:at,onSwatchHover:R})}),a().createElement("div",{style:ot.clear})),a().createElement(gd,{hex:ie,rgb:de,onChange:at})))};Ui.propTypes={colors:J().arrayOf(J().string),styles:J().object},Ui.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}};var yd=Wt(Ui),bd=function(n){var S=n.hover,R=n.color,N=n.onClick,ie=n.onSwatchHover,de={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},Ee=(0,s.ZP)({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:de}},{hover:S});return a().createElement("div",{style:Ee.swatch},a().createElement(va,{color:R,onClick:N,onHover:ie,focusStyle:de}))},Cd=(0,s.tz)(bd),Gi=function(n){var S=n.width,R=n.colors,N=n.onChange,ie=n.onSwatchHover,de=n.triangle,Ee=n.styles,Me=Ee===void 0?{}:Ee,Ne=n.className,ze=Ne===void 0?"":Ne,ot=(0,s.ZP)(Ta({default:{card:{width:S,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},Me),{"hide-triangle":de==="hide","top-left-triangle":de==="top-left","top-right-triangle":de==="top-right","bottom-left-triangle":de==="bottom-left","bottom-right-triangle":de==="bottom-right"}),at=function(Tt,Pt){return N({hex:Tt,source:"hex"},Pt)};return a().createElement("div",{style:ot.card,className:"github-picker "+ze},a().createElement("div",{style:ot.triangleShadow}),a().createElement("div",{style:ot.triangle}),In(R,function(ut){return a().createElement(Cd,{color:ut,key:ut,onClick:at,onSwatchHover:ie})}))};Gi.propTypes={width:J().oneOfType([J().string,J().number]),colors:J().arrayOf(J().string),triangle:J().oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:J().object},Gi.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}};var xd=Wt(Gi),Sd=function(n){var S=n.direction,R=(0,s.ZP)({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:S==="vertical"});return a().createElement("div",{style:R.picker})},Ed=Sd,Td=Object.assign||function(i){for(var n=1;n.5});return a().createElement("div",{style:R.picker})},Ad=Md,kd=function(){var n=(0,s.ZP)({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return a().createElement("div",{style:n.pointer},a().createElement("div",{style:n.left},a().createElement("div",{style:n.leftInside})),a().createElement("div",{style:n.right},a().createElement("div",{style:n.rightInside})))},Id=kd,Nd=function(n){var S=n.onClick,R=n.label,N=n.children,ie=n.active,de=(0,s.ZP)({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:ie});return a().createElement("div",{style:de.button,onClick:S},R||N)},Nl=Nd,Ld=function(n){var S=n.rgb,R=n.currentColor,N=(0,s.ZP)({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+S.r+","+S.g+", "+S.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:R,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return a().createElement("div",null,a().createElement("div",{style:N.label},"new"),a().createElement("div",{style:N.swatches},a().createElement("div",{style:N.new}),a().createElement("div",{style:N.current})),a().createElement("div",{style:N.label},"current"))},Bd=Ld,Fd=function(){function i(n,S){for(var R=0;R100&&(ze.a=100),ze.a/=100,S({h:N.h,s:N.s,l:N.l,a:ze.a,source:"rgb"},ot))};return a().createElement("div",{style:Ee.fields,className:"flexbox-fix"},a().createElement("div",{style:Ee.double},a().createElement(p,{style:{input:Ee.input,label:Ee.label},label:"hex",value:ie.replace("#",""),onChange:Me})),a().createElement("div",{style:Ee.single},a().createElement(p,{style:{input:Ee.input,label:Ee.label},label:"r",value:R.r,onChange:Me,dragLabel:"true",dragMax:"255"})),a().createElement("div",{style:Ee.single},a().createElement(p,{style:{input:Ee.input,label:Ee.label},label:"g",value:R.g,onChange:Me,dragLabel:"true",dragMax:"255"})),a().createElement("div",{style:Ee.single},a().createElement(p,{style:{input:Ee.input,label:Ee.label},label:"b",value:R.b,onChange:Me,dragLabel:"true",dragMax:"255"})),a().createElement("div",{style:Ee.alpha},a().createElement(p,{style:{input:Ee.input,label:Ee.label},label:"a",value:Math.round(R.a*100),onChange:Me,dragLabel:"true",dragMax:"100"})))},Ud=Vd,Gd=Object.assign||function(i){for(var n=1;n=0||(V[$e]=re[$e]);return V}function O(re){var ge=(0,t.useRef)(re),$e=(0,t.useRef)(function(Ge){ge.current&&ge.current(Ge)});return ge.current=re,$e.current}var M=function(re,ge,$e){return ge===void 0&&(ge=0),$e===void 0&&($e=1),re>$e?$e:re0:Ot.buttons>0)&&V.current?ne(c(V.current,Ot,Ae.current)):jt(!1)},Rt=function(){return jt(!1)};function jt(Ot){var ht=He.current,Kt=o(V.current),xa=Ot?Kt.addEventListener:Kt.removeEventListener;xa(ht?"touchmove":"mousemove",zt),xa(ht?"touchend":"mouseup",Rt)}return[function(Ot){var ht=Ot.nativeEvent,Kt=V.current;if(Kt&&(u(ht),!function(Na,Ma){return Ma&&!x(Na)}(ht,He.current)&&Kt)){if(x(ht)){He.current=!0;var xa=ht.changedTouches||[];xa.length&&(Ae.current=xa[0].identifier)}Kt.focus(),ne(c(Kt,ht,Ae.current)),jt(!0)}},function(Ot){var ht=Ot.which||Ot.keyCode;ht<37||ht>40||(Ot.preventDefault(),Oe({left:ht===39?.05:ht===37?-.05:0,top:ht===40?.05:ht===38?-.05:0}))},jt]},[Oe,ne]),yt=rt[0],ft=rt[1],gt=rt[2];return(0,t.useEffect)(function(){return gt},[gt]),a().createElement("div",s({},Ge,{onTouchStart:yt,onMouseDown:yt,className:"react-colorful__interactive",ref:V,onKeyDown:ft,tabIndex:0,role:"slider"}))}),j=function(re){return re.filter(Boolean).join(" ")},f=function(re){var ge=re.color,$e=re.left,Ge=re.top,V=Ge===void 0?.5:Ge,ne=j(["react-colorful__pointer",re.className]);return a().createElement("div",{className:ne,style:{top:100*V+"%",left:100*$e+"%"}},a().createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:ge}}))},v=function(re,ge,$e){return ge===void 0&&(ge=0),$e===void 0&&($e=Math.pow(10,ge)),Math.round($e*re)/$e},Y={grad:.9,turn:360,rad:360/(2*Math.PI)},U=function(re){return re[0]==="#"&&(re=re.substr(1)),re.length<6?{r:parseInt(re[0]+re[0],16),g:parseInt(re[1]+re[1],16),b:parseInt(re[2]+re[2],16),a:1}:{r:parseInt(re.substr(0,2),16),g:parseInt(re.substr(2,2),16),b:parseInt(re.substr(4,2),16),a:1}},A=function(re,ge){return ge===void 0&&(ge="deg"),Number(re)*(Y[ge]||1)},_=function(re){var ge=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(re);return ge?y({h:A(ge[1],ge[2]),s:Number(ge[3]),l:Number(ge[4]),a:ge[5]===void 0?1:Number(ge[5])/(ge[6]?100:1)}):{h:0,s:0,v:0,a:1}},q=_,y=function(re){var ge=re.s,$e=re.l;return{h:re.h,s:(ge*=($e<50?$e:100-$e)/100)>0?2*ge/($e+ge)*100:0,v:$e+ge,a:re.a}},T=function(re){var ge=re.s,$e=re.v,Ge=re.a,V=(200-ge)*$e/100;return{h:v(re.h),s:v(V>0&&V<200?ge*$e/100/(V<=100?V:200-V)*100:0),l:v(V/2),a:v(Ge,2)}},D=function(re){var ge=T(re);return"hsl("+ge.h+", "+ge.s+"%, "+ge.l+"%)"},g=function(re){var ge=T(re);return"hsla("+ge.h+", "+ge.s+"%, "+ge.l+"%, "+ge.a+")"},L=function(re){var ge=re.h,$e=re.s,Ge=re.v,V=re.a;ge=ge/360*6,$e/=100,Ge/=100;var ne=Math.floor(ge),Oe=Ge*(1-$e),Ae=Ge*(1-(ge-ne)*$e),He=Ge*(1-(1-ge+ne)*$e),rt=ne%6;return{r:v(255*[Ge,Ae,Oe,Oe,He,Ge][rt]),g:v(255*[He,Ge,Ge,Ae,Oe,Oe][rt]),b:v(255*[Oe,Oe,He,Ge,Ge,Ae][rt]),a:v(V,2)}},k=function(re){var ge=/hsva?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(re);return ge?p({h:A(ge[1],ge[2]),s:Number(ge[3]),v:Number(ge[4]),a:ge[5]===void 0?1:Number(ge[5])/(ge[6]?100:1)}):{h:0,s:0,v:0,a:1}},C=k,E=function(re){var ge=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(re);return ge?F({r:Number(ge[1])/(ge[2]?100/255:1),g:Number(ge[3])/(ge[4]?100/255:1),b:Number(ge[5])/(ge[6]?100/255:1),a:ge[7]===void 0?1:Number(ge[7])/(ge[8]?100:1)}):{h:0,s:0,v:0,a:1}},b=E,P=function(re){var ge=re.toString(16);return ge.length<2?"0"+ge:ge},F=function(re){var ge=re.r,$e=re.g,Ge=re.b,V=re.a,ne=Math.max(ge,$e,Ge),Oe=ne-Math.min(ge,$e,Ge),Ae=Oe?ne===ge?($e-Ge)/Oe:ne===$e?2+(Ge-ge)/Oe:4+(ge-$e)/Oe:0;return{h:v(60*(Ae<0?Ae+6:Ae)),s:v(ne?Oe/ne*100:0),v:v(ne/255*100),a:V}},p=function(re){return{h:v(re.h),s:v(re.s),v:v(re.v),a:v(re.a,2)}},B=a().memo(function(re){var ge=re.hue,$e=re.onChange,Ge=j(["react-colorful__hue",re.className]);return a().createElement("div",{className:Ge},a().createElement(w,{onMove:function(V){$e({h:360*V.left})},onKey:function(V){$e({h:M(ge+360*V.left,0,360)})},"aria-label":"Hue","aria-valuetext":v(ge)},a().createElement(f,{className:"react-colorful__hue-pointer",left:ge/360,color:D({h:ge,s:100,v:100,a:1})})))}),d=a().memo(function(re){var ge=re.hsva,$e=re.onChange,Ge={backgroundColor:D({h:ge.h,s:100,v:100,a:1})};return a().createElement("div",{className:"react-colorful__saturation",style:Ge},a().createElement(w,{onMove:function(V){$e({s:100*V.left,v:100-100*V.top})},onKey:function(V){$e({s:M(ge.s+100*V.left,0,100),v:M(ge.v-100*V.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+v(ge.s)+"%, Brightness "+v(ge.v)+"%"},a().createElement(f,{className:"react-colorful__saturation-pointer",top:1-ge.v/100,left:ge.s/100,color:D(ge)})))}),z=function(re,ge){if(re===ge)return!0;for(var $e in re)if(re[$e]!==ge[$e])return!1;return!0},K=function(re,ge){return re.replace(/\s/g,"")===ge.replace(/\s/g,"")};function Q(re,ge,$e){var Ge=O($e),V=(0,t.useState)(function(){return re.toHsva(ge)}),ne=V[0],Oe=V[1],Ae=(0,t.useRef)({color:ge,hsva:ne});(0,t.useEffect)(function(){if(!re.equal(ge,Ae.current.color)){var rt=re.toHsva(ge);Ae.current={hsva:rt,color:ge},Oe(rt)}},[ge,re]),(0,t.useEffect)(function(){var rt;z(ne,Ae.current.hsva)||re.equal(rt=re.fromHsva(ne),Ae.current.color)||(Ae.current={hsva:ne,color:rt},Ge(rt))},[ne,re,Ge]);var He=(0,t.useCallback)(function(rt){Oe(function(yt){return Object.assign({},yt,rt)})},[]);return[ne,He]}var oe,De=typeof window!="undefined"?t.useLayoutEffect:t.useEffect,Te=function(){return oe||e.nc},J=function(re){oe=re},le=new Map,Re=function(re){De(function(){var ge=re.current?re.current.ownerDocument:document;if(ge!==void 0&&!le.has(ge)){var $e=ge.createElement("style");$e.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,le.set(ge,$e);var Ge=Te();Ge&&$e.setAttribute("nonce",Ge),ge.head.appendChild($e)}},[])},ae=function(re){var ge=re.className,$e=re.colorModel,Ge=re.color,V=Ge===void 0?$e.defaultColor:Ge,ne=re.onChange,Oe=m(re,["className","colorModel","color","onChange"]),Ae=(0,t.useRef)(null);Re(Ae);var He=Q($e,V,ne),rt=He[0],yt=He[1],ft=j(["react-colorful",ge]);return a().createElement("div",s({},Oe,{ref:Ae,className:ft}),a().createElement(d,{hsva:rt,onChange:yt}),a().createElement(B,{hue:rt.h,onChange:yt,className:"react-colorful__last-control"}))},be={defaultColor:"000",toHsva:function(re){return F(U(re))},fromHsva:function(re){return $e=(ge=L(re)).g,Ge=ge.b,"#"+P(ge.r)+P($e)+P(Ge);var ge,$e,Ge},equal:function(re,ge){return re.toLowerCase()===ge.toLowerCase()||z(U(re),U(ge))}},Ce=function(re){return a().createElement(ae,s({},re,{colorModel:be}))},ke=function(re){var ge=re.className,$e=re.hsva,Ge=re.onChange,V={backgroundImage:"linear-gradient(90deg, "+g(Object.assign({},$e,{a:0}))+", "+g(Object.assign({},$e,{a:1}))+")"},ne=j(["react-colorful__alpha",ge]);return a().createElement("div",{className:ne},a().createElement("div",{className:"react-colorful__alpha-gradient",style:V}),a().createElement(w,{onMove:function(Oe){Ge({a:Oe.left})},onKey:function(Oe){Ge({a:M($e.a+Oe.left)})},"aria-label":"Alpha","aria-valuetext":v(100*$e.a)+"%"},a().createElement(f,{className:"react-colorful__alpha-pointer",left:$e.a,color:g($e)})))},qe=function(re){var ge=re.className,$e=re.colorModel,Ge=re.color,V=Ge===void 0?$e.defaultColor:Ge,ne=re.onChange,Oe=m(re,["className","colorModel","color","onChange"]),Ae=(0,t.useRef)(null);Re(Ae);var He=Q($e,V,ne),rt=He[0],yt=He[1],ft=j(["react-colorful",ge]);return a().createElement("div",s({},Oe,{ref:Ae,className:ft}),a().createElement(d,{hsva:rt,onChange:yt}),a().createElement(B,{hue:rt.h,onChange:yt}),a().createElement(ke,{hsva:rt,onChange:yt,className:"react-colorful__last-control"}))},Ke={defaultColor:{h:0,s:0,l:0,a:1},toHsva:y,fromHsva:T,equal:z},st=function(re){return a().createElement(qe,s({},re,{colorModel:Ke}))},H={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:_,fromHsva:g,equal:K},te=function(re){return a().createElement(qe,s({},re,{colorModel:H}))},Z={defaultColor:{h:0,s:0,l:0},toHsva:function(re){return y({h:re.h,s:re.s,l:re.l,a:1})},fromHsva:function(re){return{h:(ge=T(re)).h,s:ge.s,l:ge.l};var ge},equal:z},he=function(re){return a().createElement(ae,s({},re,{colorModel:Z}))},se={defaultColor:"hsl(0, 0%, 0%)",toHsva:q,fromHsva:D,equal:K},ce=function(re){return a().createElement(ae,s({},re,{colorModel:se}))},Ie={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(re){return re},fromHsva:p,equal:z},We=function(re){return a().createElement(qe,s({},re,{colorModel:Ie}))},_e={defaultColor:"hsva(0, 0%, 0%, 1)",toHsva:k,fromHsva:function(re){var ge=p(re);return"hsva("+ge.h+", "+ge.s+"%, "+ge.v+"%, "+ge.a+")"},equal:K},ct=function(re){return a().createElement(qe,s({},re,{colorModel:_e}))},dt={defaultColor:{h:0,s:0,v:0},toHsva:function(re){return{h:re.h,s:re.s,v:re.v,a:1}},fromHsva:function(re){var ge=p(re);return{h:ge.h,s:ge.s,v:ge.v}},equal:z},nt=function(re){return a().createElement(ae,s({},re,{colorModel:dt}))},mt={defaultColor:"hsv(0, 0%, 0%)",toHsva:C,fromHsva:function(re){var ge=p(re);return"hsv("+ge.h+", "+ge.s+"%, "+ge.v+"%)"},equal:K},It=function(re){return a().createElement(ae,s({},re,{colorModel:mt}))},aa={defaultColor:{r:0,g:0,b:0,a:1},toHsva:F,fromHsva:L,equal:z},ua=function(re){return a().createElement(qe,s({},re,{colorModel:aa}))},St={defaultColor:"rgba(0, 0, 0, 1)",toHsva:E,fromHsva:function(re){var ge=L(re);return"rgba("+ge.r+", "+ge.g+", "+ge.b+", "+ge.a+")"},equal:K},_t=function(re){return a().createElement(qe,s({},re,{colorModel:St}))},ca={defaultColor:{r:0,g:0,b:0},toHsva:function(re){return F({r:re.r,g:re.g,b:re.b,a:1})},fromHsva:function(re){return{r:(ge=L(re)).r,g:ge.g,b:ge.b};var ge},equal:z},Bt=function(re){return a().createElement(ae,s({},re,{colorModel:ca}))},wt={defaultColor:"rgb(0, 0, 0)",toHsva:b,fromHsva:function(re){var ge=L(re);return"rgb("+ge.r+", "+ge.g+", "+ge.b+")"},equal:K},Qe=function(re){return a().createElement(ae,s({},re,{colorModel:wt}))},Xt=/^#?([0-9A-F]{3,8})$/i,Qt=function(re){var ge=re.color,$e=ge===void 0?"":ge,Ge=re.onChange,V=re.onBlur,ne=re.escape,Oe=re.validate,Ae=re.format,He=re.process,rt=m(re,["color","onChange","onBlur","escape","validate","format","process"]),yt=(0,t.useState)(function(){return ne($e)}),ft=yt[0],gt=yt[1],zt=O(Ge),Rt=O(V),jt=(0,t.useCallback)(function(ht){var Kt=ne(ht.target.value);gt(Kt),Oe(Kt)&&zt(He?He(Kt):Kt)},[ne,He,Oe,zt]),Ot=(0,t.useCallback)(function(ht){Oe(ht.target.value)||gt(ne($e)),Rt(ht)},[$e,ne,Oe,Rt]);return(0,t.useEffect)(function(){gt(ne($e))},[$e,ne]),a().createElement("input",s({},rt,{value:Ae?Ae(ft):ft,spellCheck:"false",onChange:jt,onBlur:Ot}))},pa=function(re){return"#"+re},kt=function(re){var ge=re.prefixed,$e=re.alpha,Ge=m(re,["prefixed","alpha"]),V=(0,t.useCallback)(function(Oe){return Oe.replace(/([^0-9A-F]+)/gi,"").substr(0,$e?8:6)},[$e]),ne=(0,t.useCallback)(function(Oe){return function(Ae,He){var rt=Xt.exec(Ae),yt=rt?rt[1].length:0;return yt===3||yt===6||!!He&&yt===4||!!He&&yt===8}(Oe,$e)},[$e]);return a().createElement(Qt,s({},Ge,{escape:V,format:ge?pa:void 0,process:pa,validate:ne}))}},86856:function(l,r,e){"use strict";e.r(r),e.d(r,{Cropper:function(){return c}});var t=e(4819),a=e.n(t),s=e(83873),m=e.n(s);/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var O=function(){return O=Object.assign||function(w){for(var j,f=1,v=arguments.length;f0&&u.zoomTo(q)},o=function(){for(var u=[],w=0;w1&&arguments[1]!==void 0?arguments[1]:"span";return function(j){x(f,j);function f(){var v,Y,U,A;O(this,f);for(var _=arguments.length,q=Array(_),y=0;y<_;y++)q[y]=arguments[y];return A=(Y=(U=M(this,(v=f.__proto__||Object.getPrototypeOf(f)).call.apply(v,[this].concat(q))),U),U.state={active:!1},U.handleMouseDown=function(){return U.setState({active:!0})},U.handleMouseUp=function(){return U.setState({active:!1})},U.render=function(){return s.default.createElement(w,{onMouseDown:U.handleMouseDown,onMouseUp:U.handleMouseUp},s.default.createElement(u,t({},U.props,U.state)))},Y),M(U,A)}return f}(s.default.Component)};r.default=o},12958:function(l,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.hover=void 0;var t=Object.assign||function(c){for(var u=1;u1&&arguments[1]!==void 0?arguments[1]:"span";return function(j){x(f,j);function f(){var v,Y,U,A;O(this,f);for(var _=arguments.length,q=Array(_),y=0;y<_;y++)q[y]=arguments[y];return A=(Y=(U=M(this,(v=f.__proto__||Object.getPrototypeOf(f)).call.apply(v,[this].concat(q))),U),U.state={hover:!1},U.handleMouseOver=function(){return U.setState({hover:!0})},U.handleMouseOut=function(){return U.setState({hover:!1})},U.render=function(){return s.default.createElement(w,{onMouseOver:U.handleMouseOver,onMouseOut:U.handleMouseOut},s.default.createElement(u,t({},U.props,U.state)))},Y),M(U,A)}return f}(s.default.Component)};r.default=o},9986:function(l,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.flattenNames=void 0;var t=e(72139),a=c(t),s=e(76955),m=c(s),O=e(82678),M=c(O),x=e(34118),o=c(x);function c(w){return w&&w.__esModule?w:{default:w}}var u=r.flattenNames=function w(){var j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],f=[];return(0,o.default)(j,function(v){Array.isArray(v)?w(v).map(function(Y){return f.push(Y)}):(0,M.default)(v)?(0,m.default)(v,function(Y,U){Y===!0&&f.push(U),f.push(U+"-"+Y)}):(0,a.default)(v)&&f.push(v)}),f};r.default=u},29790:function(l,r,e){"use strict";var t;t={value:!0},t=t=t=r.tz=t=void 0;var a=e(9986),s=v(a),m=e(20512),O=v(m),M=e(61018),x=v(M),o=e(12958),c=v(o),u=e(35025),w=v(u),j=e(74031),f=v(j);function v(U){return U&&U.__esModule?U:{default:U}}t=c.default,r.tz=c.default,t=w.default,t=f.default;var Y=t=function(A){for(var _=arguments.length,q=Array(_>1?_-1:0),y=1;y<_;y++)q[y-1]=arguments[y];var T=(0,s.default)(q),D=(0,O.default)(A,T);return(0,x.default)(D)};r.ZP=Y},74031:function(l,r){"use strict";Object.defineProperty(r,"__esModule",{value:!0});var e=function(a,s){var m={},O=function(x){var o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;m[x]=o};return a===0&&O("first-child"),a===s-1&&O("last-child"),(a===0||a%2===0)&&O("even"),Math.abs(a%2)===1&&O("odd"),O("nth-child",a),m};r.default=e},20512:function(l,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.mergeClasses=void 0;var t=e(76955),a=M(t),s=e(99748),m=M(s),O=Object.assign||function(o){for(var c=1;c1&&arguments[1]!==void 0?arguments[1]:[],w=c.default&&(0,m.default)(c.default)||{};return u.map(function(j){var f=c[j];return f&&(0,a.default)(f,function(v,Y){w[Y]||(w[Y]={}),w[Y]=O({},w[Y],f[Y])}),j}),w};r.default=x},29711:function(l,r,e){var t;(function(a){var s=/^\s+/,m=/\s+$/,O=0,M=a.round,x=a.min,o=a.max,c=a.random;function u(H,te){if(H=H||"",te=te||{},H instanceof u)return H;if(!(this instanceof u))return new u(H,te);var Z=w(H);this._originalInput=H,this._r=Z.r,this._g=Z.g,this._b=Z.b,this._a=Z.a,this._roundA=M(100*this._a)/100,this._format=te.format||Z.format,this._gradientType=te.gradientType,this._r<1&&(this._r=M(this._r)),this._g<1&&(this._g=M(this._g)),this._b<1&&(this._b=M(this._b)),this._ok=Z.ok,this._tc_id=O++}u.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var H=this.toRgb();return(H.r*299+H.g*587+H.b*114)/1e3},getLuminance:function(){var H=this.toRgb(),te,Z,he,se,ce,Ie;return te=H.r/255,Z=H.g/255,he=H.b/255,te<=.03928?se=te/12.92:se=a.pow((te+.055)/1.055,2.4),Z<=.03928?ce=Z/12.92:ce=a.pow((Z+.055)/1.055,2.4),he<=.03928?Ie=he/12.92:Ie=a.pow((he+.055)/1.055,2.4),.2126*se+.7152*ce+.0722*Ie},setAlpha:function(H){return this._a=Q(H),this._roundA=M(100*this._a)/100,this},toHsv:function(){var H=Y(this._r,this._g,this._b);return{h:H.h*360,s:H.s,v:H.v,a:this._a}},toHsvString:function(){var H=Y(this._r,this._g,this._b),te=M(H.h*360),Z=M(H.s*100),he=M(H.v*100);return this._a==1?"hsv("+te+", "+Z+"%, "+he+"%)":"hsva("+te+", "+Z+"%, "+he+"%, "+this._roundA+")"},toHsl:function(){var H=f(this._r,this._g,this._b);return{h:H.h*360,s:H.s,l:H.l,a:this._a}},toHslString:function(){var H=f(this._r,this._g,this._b),te=M(H.h*360),Z=M(H.s*100),he=M(H.l*100);return this._a==1?"hsl("+te+", "+Z+"%, "+he+"%)":"hsla("+te+", "+Z+"%, "+he+"%, "+this._roundA+")"},toHex:function(H){return A(this._r,this._g,this._b,H)},toHexString:function(H){return"#"+this.toHex(H)},toHex8:function(H){return _(this._r,this._g,this._b,this._a,H)},toHex8String:function(H){return"#"+this.toHex8(H)},toRgb:function(){return{r:M(this._r),g:M(this._g),b:M(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+M(this._r)+", "+M(this._g)+", "+M(this._b)+")":"rgba("+M(this._r)+", "+M(this._g)+", "+M(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:M(oe(this._r,255)*100)+"%",g:M(oe(this._g,255)*100)+"%",b:M(oe(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+M(oe(this._r,255)*100)+"%, "+M(oe(this._g,255)*100)+"%, "+M(oe(this._b,255)*100)+"%)":"rgba("+M(oe(this._r,255)*100)+"%, "+M(oe(this._g,255)*100)+"%, "+M(oe(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:z[A(this._r,this._g,this._b,!0)]||!1},toFilter:function(H){var te="#"+q(this._r,this._g,this._b,this._a),Z=te,he=this._gradientType?"GradientType = 1, ":"";if(H){var se=u(H);Z="#"+q(se._r,se._g,se._b,se._a)}return"progid:DXImageTransform.Microsoft.gradient("+he+"startColorstr="+te+",endColorstr="+Z+")"},toString:function(H){var te=!!H;H=H||this._format;var Z=!1,he=this._a<1&&this._a>=0,se=!te&&he&&(H==="hex"||H==="hex6"||H==="hex3"||H==="hex4"||H==="hex8"||H==="name");return se?H==="name"&&this._a===0?this.toName():this.toRgbString():(H==="rgb"&&(Z=this.toRgbString()),H==="prgb"&&(Z=this.toPercentageRgbString()),(H==="hex"||H==="hex6")&&(Z=this.toHexString()),H==="hex3"&&(Z=this.toHexString(!0)),H==="hex4"&&(Z=this.toHex8String(!0)),H==="hex8"&&(Z=this.toHex8String()),H==="name"&&(Z=this.toName()),H==="hsl"&&(Z=this.toHslString()),H==="hsv"&&(Z=this.toHsvString()),Z||this.toHexString())},clone:function(){return u(this.toString())},_applyModification:function(H,te){var Z=H.apply(null,[this].concat([].slice.call(te)));return this._r=Z._r,this._g=Z._g,this._b=Z._b,this.setAlpha(Z._a),this},lighten:function(){return this._applyModification(g,arguments)},brighten:function(){return this._applyModification(L,arguments)},darken:function(){return this._applyModification(k,arguments)},desaturate:function(){return this._applyModification(y,arguments)},saturate:function(){return this._applyModification(T,arguments)},greyscale:function(){return this._applyModification(D,arguments)},spin:function(){return this._applyModification(C,arguments)},_applyCombination:function(H,te){return H.apply(null,[this].concat([].slice.call(te)))},analogous:function(){return this._applyCombination(p,arguments)},complement:function(){return this._applyCombination(E,arguments)},monochromatic:function(){return this._applyCombination(B,arguments)},splitcomplement:function(){return this._applyCombination(F,arguments)},triad:function(){return this._applyCombination(b,arguments)},tetrad:function(){return this._applyCombination(P,arguments)}},u.fromRatio=function(H,te){if(typeof H=="object"){var Z={};for(var he in H)H.hasOwnProperty(he)&&(he==="a"?Z[he]=H[he]:Z[he]=ae(H[he]));H=Z}return u(H,te)};function w(H){var te={r:0,g:0,b:0},Z=1,he=null,se=null,ce=null,Ie=!1,We=!1;return typeof H=="string"&&(H=Ke(H)),typeof H=="object"&&(qe(H.r)&&qe(H.g)&&qe(H.b)?(te=j(H.r,H.g,H.b),Ie=!0,We=String(H.r).substr(-1)==="%"?"prgb":"rgb"):qe(H.h)&&qe(H.s)&&qe(H.v)?(he=ae(H.s),se=ae(H.v),te=U(H.h,he,se),Ie=!0,We="hsv"):qe(H.h)&&qe(H.s)&&qe(H.l)&&(he=ae(H.s),ce=ae(H.l),te=v(H.h,he,ce),Ie=!0,We="hsl"),H.hasOwnProperty("a")&&(Z=H.a)),Z=Q(Z),{ok:Ie,format:H.format||We,r:x(255,o(te.r,0)),g:x(255,o(te.g,0)),b:x(255,o(te.b,0)),a:Z}}function j(H,te,Z){return{r:oe(H,255)*255,g:oe(te,255)*255,b:oe(Z,255)*255}}function f(H,te,Z){H=oe(H,255),te=oe(te,255),Z=oe(Z,255);var he=o(H,te,Z),se=x(H,te,Z),ce,Ie,We=(he+se)/2;if(he==se)ce=Ie=0;else{var _e=he-se;switch(Ie=We>.5?_e/(2-he-se):_e/(he+se),he){case H:ce=(te-Z)/_e+(te1&&(nt-=1),nt<1/6?ct+(dt-ct)*6*nt:nt<1/2?dt:nt<2/3?ct+(dt-ct)*(2/3-nt)*6:ct}if(te===0)he=se=ce=Z;else{var We=Z<.5?Z*(1+te):Z+te-Z*te,_e=2*Z-We;he=Ie(_e,We,H+1/3),se=Ie(_e,We,H),ce=Ie(_e,We,H-1/3)}return{r:he*255,g:se*255,b:ce*255}}function Y(H,te,Z){H=oe(H,255),te=oe(te,255),Z=oe(Z,255);var he=o(H,te,Z),se=x(H,te,Z),ce,Ie,We=he,_e=he-se;if(Ie=he===0?0:_e/he,he==se)ce=0;else{switch(he){case H:ce=(te-Z)/_e+(te>1)+720)%360;--te;)he.h=(he.h+se)%360,ce.push(u(he));return ce}function B(H,te){te=te||6;for(var Z=u(H).toHsv(),he=Z.h,se=Z.s,ce=Z.v,Ie=[],We=1/te;te--;)Ie.push(u({h:he,s:se,v:ce})),ce=(ce+We)%1;return Ie}u.mix=function(H,te,Z){Z=Z===0?0:Z||50;var he=u(H).toRgb(),se=u(te).toRgb(),ce=Z/100,Ie={r:(se.r-he.r)*ce+he.r,g:(se.g-he.g)*ce+he.g,b:(se.b-he.b)*ce+he.b,a:(se.a-he.a)*ce+he.a};return u(Ie)},u.readability=function(H,te){var Z=u(H),he=u(te);return(a.max(Z.getLuminance(),he.getLuminance())+.05)/(a.min(Z.getLuminance(),he.getLuminance())+.05)},u.isReadable=function(H,te,Z){var he=u.readability(H,te),se,ce;switch(ce=!1,se=st(Z),se.level+se.size){case"AAsmall":case"AAAlarge":ce=he>=4.5;break;case"AAlarge":ce=he>=3;break;case"AAAsmall":ce=he>=7;break}return ce},u.mostReadable=function(H,te,Z){var he=null,se=0,ce,Ie,We,_e;Z=Z||{},Ie=Z.includeFallbackColors,We=Z.level,_e=Z.size;for(var ct=0;ctse&&(se=ce,he=u(te[ct]));return u.isReadable(H,he,{level:We,size:_e})||!Ie?he:(Z.includeFallbackColors=!1,u.mostReadable(H,["#fff","#000"],Z))};var d=u.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},z=u.hexNames=K(d);function K(H){var te={};for(var Z in H)H.hasOwnProperty(Z)&&(te[H[Z]]=Z);return te}function Q(H){return H=parseFloat(H),(isNaN(H)||H<0||H>1)&&(H=1),H}function oe(H,te){J(H)&&(H="100%");var Z=le(H);return H=x(te,o(0,parseFloat(H))),Z&&(H=parseInt(H*te,10)/100),a.abs(H-te)<1e-6?1:H%te/parseFloat(te)}function De(H){return x(1,o(0,H))}function Te(H){return parseInt(H,16)}function J(H){return typeof H=="string"&&H.indexOf(".")!=-1&&parseFloat(H)===1}function le(H){return typeof H=="string"&&H.indexOf("%")!=-1}function Re(H){return H.length==1?"0"+H:""+H}function ae(H){return H<=1&&(H=H*100+"%"),H}function be(H){return a.round(parseFloat(H)*255).toString(16)}function Ce(H){return Te(H)/255}var ke=function(){var H="[-\\+]?\\d+%?",te="[-\\+]?\\d*\\.\\d+%?",Z="(?:"+te+")|(?:"+H+")",he="[\\s|\\(]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?",se="[\\s|\\(]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")[,|\\s]+("+Z+")\\s*\\)?";return{CSS_UNIT:new RegExp(Z),rgb:new RegExp("rgb"+he),rgba:new RegExp("rgba"+se),hsl:new RegExp("hsl"+he),hsla:new RegExp("hsla"+se),hsv:new RegExp("hsv"+he),hsva:new RegExp("hsva"+se),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function qe(H){return!!ke.CSS_UNIT.exec(H)}function Ke(H){H=H.replace(s,"").replace(m,"").toLowerCase();var te=!1;if(d[H])H=d[H],te=!0;else if(H=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var Z;return(Z=ke.rgb.exec(H))?{r:Z[1],g:Z[2],b:Z[3]}:(Z=ke.rgba.exec(H))?{r:Z[1],g:Z[2],b:Z[3],a:Z[4]}:(Z=ke.hsl.exec(H))?{h:Z[1],s:Z[2],l:Z[3]}:(Z=ke.hsla.exec(H))?{h:Z[1],s:Z[2],l:Z[3],a:Z[4]}:(Z=ke.hsv.exec(H))?{h:Z[1],s:Z[2],v:Z[3]}:(Z=ke.hsva.exec(H))?{h:Z[1],s:Z[2],v:Z[3],a:Z[4]}:(Z=ke.hex8.exec(H))?{r:Te(Z[1]),g:Te(Z[2]),b:Te(Z[3]),a:Ce(Z[4]),format:te?"name":"hex8"}:(Z=ke.hex6.exec(H))?{r:Te(Z[1]),g:Te(Z[2]),b:Te(Z[3]),format:te?"name":"hex"}:(Z=ke.hex4.exec(H))?{r:Te(Z[1]+""+Z[1]),g:Te(Z[2]+""+Z[2]),b:Te(Z[3]+""+Z[3]),a:Ce(Z[4]+""+Z[4]),format:te?"name":"hex8"}:(Z=ke.hex3.exec(H))?{r:Te(Z[1]+""+Z[1]),g:Te(Z[2]+""+Z[2]),b:Te(Z[3]+""+Z[3]),format:te?"name":"hex"}:!1}function st(H){var te,Z;return H=H||{level:"AA",size:"small"},te=(H.level||"AA").toUpperCase(),Z=(H.size||"small").toLowerCase(),te!=="AA"&&te!=="AAA"&&(te="AA"),Z!=="small"&&Z!=="large"&&(Z="small"),{level:te,size:Z}}l.exports?l.exports=u:(t=function(){return u}.call(r,e,r,l),t!==void 0&&(l.exports=t))})(Math)},51714:function(l,r,e){"use strict";l.exports=e.p+"static/media/Alarm Systems.857ab9a8f90827777b88.svg"},62591:function(l,r,e){"use strict";l.exports=e.p+"static/media/Amplifier.6f5d18048328386033f8.svg"},2028:function(l,r,e){"use strict";l.exports=e.p+"static/media/Awnings.78480df8796f09859b6a.svg"},68376:function(l,r,e){"use strict";l.exports=e.p+"static/media/Battery Status.5951e2078ae1e573510e.svg"},31875:function(l,r,e){"use strict";l.exports=e.p+"static/media/Ceiling Spotlights.485822441b5df3b3384a.svg"},50643:function(l,r,e){"use strict";l.exports=e.p+"static/media/Chandelier.8b9fbdbc73bc2e955ef7.svg"},33154:function(l,r,e){"use strict";l.exports=e.p+"static/media/Climate.b7e9896e7f103360bb5a.svg"},83821:function(l,r,e){"use strict";l.exports=e.p+"static/media/Coffee Makers.9fb4d82f957a06f30dae.svg"},59241:function(l,r,e){"use strict";l.exports=e.p+"static/media/Cold Water.937aad5fa21b0c20a856.svg"},71542:function(l,r,e){"use strict";l.exports=e.p+"static/media/Computer.9558f6ee3941dba4e3c5.svg"},49938:function(l,r,e){"use strict";l.exports=e.p+"static/media/Consumption.fecd7a10a13fe4e5f69b.svg"},96730:function(l,r,e){"use strict";l.exports=e.p+"static/media/Curtains.955e213206d2073eef99.svg"},96668:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dishwashers.3709566b7214596236b7.svg"},19925:function(l,r,e){"use strict";l.exports=e.p+"static/media/Doors.d59bf859f582d3488a04.svg"},15760:function(l,r,e){"use strict";l.exports=e.p+"static/media/Doorstep.10630b759b4867a10776.svg"},27951:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dryer.5ea89bd6dc20a00fb442.svg"},35624:function(l,r,e){"use strict";l.exports=e.p+"static/media/Fan.8a29f85d6ca99c584603.svg"},6724:function(l,r,e){"use strict";l.exports=e.p+"static/media/Floor Lamps.471e0bcf308d94963504.svg"},41692:function(l,r,e){"use strict";l.exports=e.p+"static/media/Garage Doors.0c2a1cfca7ad1ea59625.svg"},12654:function(l,r,e){"use strict";l.exports=e.p+"static/media/Gates.5a8baf2c3d4832ca57e8.svg"},51149:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hairdryer.5960b514dac1f04f3c4d.svg"},9183:function(l,r,e){"use strict";l.exports=e.p+"static/media/Handle.3de1d1320fc3ce2f9712.svg"},38554:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hanging Lamps.0bd452fc843edd645c30.svg"},20780:function(l,r,e){"use strict";l.exports=e.p+"static/media/Heater.b53bccc334bbb9238a36.svg"},78909:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hoods.c177ddfec9fa9a6335db.svg"},78962:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hot Water.5c0a9e01741562e1fbab.svg"},43461:function(l,r,e){"use strict";l.exports=e.p+"static/media/Humidity.6d58f69cf268dd8a8ac1.svg"},18534:function(l,r,e){"use strict";l.exports=e.p+"static/media/Iron.b8a65a48503b6f3e0dc8.svg"},42013:function(l,r,e){"use strict";l.exports=e.p+"static/media/Irrigation.d5fa30e9c2a519167964.svg"},65002:function(l,r,e){"use strict";l.exports=e.p+"static/media/Led Strip.5cf2de461e29ffbaa5f0.svg"},47462:function(l,r,e){"use strict";l.exports=e.p+"static/media/Light.21f1a5dfcc93f8ba1214.svg"},67129:function(l,r,e){"use strict";l.exports=e.p+"static/media/Lightings.658080eb8c0e347cd152.svg"},18221:function(l,r,e){"use strict";l.exports=e.p+"static/media/Lock.2cbfe17ea8923e0f4e9e.svg"},95571:function(l,r,e){"use strict";l.exports=e.p+"static/media/Louvre.75b84cd3d39d68107807.svg"},57447:function(l,r,e){"use strict";l.exports=e.p+"static/media/Mowing Machine.9ead5b039f36cdc800e6.svg"},86218:function(l,r,e){"use strict";l.exports=e.p+"static/media/Music.67bc6063cb601642fd74.svg"},19417:function(l,r,e){"use strict";l.exports=e.p+"static/media/Outdoor Blinds.37b85a9c060a4af48da9.svg"},89251:function(l,r,e){"use strict";l.exports=e.p+"static/media/People.12a7e9127e72f3259186.svg"},48493:function(l,r,e){"use strict";l.exports=e.p+"static/media/Pool.9452c0f84f53c7836f3d.svg"},8376:function(l,r,e){"use strict";l.exports=e.p+"static/media/Power Consumption.4faab614c3c788f2d338.svg"},93291:function(l,r,e){"use strict";l.exports=e.p+"static/media/Printer.146d983be964b95745d2.svg"},27568:function(l,r,e){"use strict";l.exports=e.p+"static/media/Pump.a6035507cddbe7db5f6a.svg"},19796:function(l,r,e){"use strict";l.exports=e.p+"static/media/Receiver.26b5ae166395a6dcb83f.svg"},96585:function(l,r,e){"use strict";l.exports=e.p+"static/media/Sconces.9bf4c2f7a209085207aa.svg"},88250:function(l,r,e){"use strict";l.exports=e.p+"static/media/Security.1ec78971bd34efa950f8.svg"},6672:function(l,r,e){"use strict";l.exports=e.p+"static/media/Shading.0577383dc227cd043b3d.svg"},87329:function(l,r,e){"use strict";l.exports=e.p+"static/media/Shutters.db7d7b0d498f40779210.svg"},9950:function(l,r,e){"use strict";l.exports=e.p+"static/media/SmokeDetector.8222f77cb07030a409ee.svg"},80993:function(l,r,e){"use strict";l.exports=e.p+"static/media/Sockets.8320e1a99be9de004629.svg"},12265:function(l,r,e){"use strict";l.exports=e.p+"static/media/Speaker.db548379676317470c4f.svg"},23523:function(l,r,e){"use strict";l.exports=e.p+"static/media/Stove.d0f68b3e138c5831d252.svg"},79717:function(l,r,e){"use strict";l.exports=e.p+"static/media/Table Lamps.bd92de33bf86b6cbaec9.svg"},3735:function(l,r,e){"use strict";l.exports=e.p+"static/media/Temperature Sensors.75d805988a6b77b231d8.svg"},59392:function(l,r,e){"use strict";l.exports=e.p+"static/media/Tv.4e9745a548e57bfac0c7.svg"},79597:function(l,r,e){"use strict";l.exports=e.p+"static/media/Vacuum Cleaner.9c8d50e436e6cea06dfa.svg"},17948:function(l,r,e){"use strict";l.exports=e.p+"static/media/Ventilation.c31761d86d67e245ac92.svg"},50603:function(l,r,e){"use strict";l.exports=e.p+"static/media/Washing Machines.577f3acdb3cef002b523.svg"},35306:function(l,r,e){"use strict";l.exports=e.p+"static/media/Water Consumption.68891649591cc2434c5b.svg"},21219:function(l,r,e){"use strict";l.exports=e.p+"static/media/Water Heater.7e4bb4d99a5213f24d08.svg"},65028:function(l,r,e){"use strict";l.exports=e.p+"static/media/Water.f50411984c5c24fa574d.svg"},99158:function(l,r,e){"use strict";l.exports=e.p+"static/media/Weather.e91dae647698d48365e3.svg"},81640:function(l,r,e){"use strict";l.exports=e.p+"static/media/Window.421664f57c35e5109aa2.svg"},62354:function(l,r,e){"use strict";l.exports=e.p+"static/media/names.e7efb5283d98000c74ac.txt"},44274:function(l,r,e){"use strict";l.exports=e.p+"static/media/Anteroom.93a742135f2c060ad619.svg"},28953:function(l,r,e){"use strict";l.exports=e.p+"static/media/Attic.bb5d690a160bb1d4edb2.svg"},2735:function(l,r,e){"use strict";l.exports=e.p+"static/media/Balcony.2f76ef0877aaa3bd2ff7.svg"},3152:function(l,r,e){"use strict";l.exports=e.p+"static/media/Barn.5d839e84c80918ce2ef0.svg"},26209:function(l,r,e){"use strict";l.exports=e.p+"static/media/Basement.fe636968eec9556bfd1f.svg"},30476:function(l,r,e){"use strict";l.exports=e.p+"static/media/Bathroom.27a777c66183f9f613db.svg"},62017:function(l,r,e){"use strict";l.exports=e.p+"static/media/Bedroom.2a16d8d98fafe965fd1b.svg"},7784:function(l,r,e){"use strict";l.exports=e.p+"static/media/Boiler Room.548e785e2f92b45f72b3.svg"},96997:function(l,r,e){"use strict";l.exports=e.p+"static/media/Carport.8337662544b9e95f4b27.svg"},97839:function(l,r,e){"use strict";l.exports=e.p+"static/media/Cellar.7ec1b1803a2437c8b78c.svg"},98779:function(l,r,e){"use strict";l.exports=e.p+"static/media/Chamber.71daaa4d14262dae029b.svg"},89116:function(l,r,e){"use strict";l.exports=e.p+"static/media/Corridor.93a742135f2c060ad619.svg"},9409:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dining Area.14dfc38cbb4fe041e9da.svg"},43251:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dining Room.14dfc38cbb4fe041e9da.svg"},62092:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dining.14dfc38cbb4fe041e9da.svg"},93989:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dressing Room.5e6f8f64b0e8f91c473e.svg"},84290:function(l,r,e){"use strict";l.exports=e.p+"static/media/Driveway.fbd31101c5a80a8bb37a.svg"},20344:function(l,r,e){"use strict";l.exports=e.p+"static/media/Entrance.4c1404056847caf959b6.svg"},22186:function(l,r,e){"use strict";l.exports=e.p+"static/media/Equipment Room.db92bdca64f653c844f8.svg"},93029:function(l,r,e){"use strict";l.exports=e.p+"static/media/Front Yard.af9ce2d89aa4d7a9363e.svg"},96767:function(l,r,e){"use strict";l.exports=e.p+"static/media/Gallery.4e7f9433fae8b24fdfca.svg"},70377:function(l,r,e){"use strict";l.exports=e.p+"static/media/Garage.f7fc0a9b326d582afee6.svg"},72346:function(l,r,e){"use strict";l.exports=e.p+"static/media/Garden.51c2e94f62a74e20775d.svg"},22142:function(l,r,e){"use strict";l.exports=e.p+"static/media/Ground Floor.2b7c5c91db7f070935a2.svg"},68541:function(l,r,e){"use strict";l.exports=e.p+"static/media/Guest Bathroom.d07a9f1cf32a82d03267.svg"},56278:function(l,r,e){"use strict";l.exports=e.p+"static/media/Guest Room.41c7cfa38806f5009f82.svg"},27925:function(l,r,e){"use strict";l.exports=e.p+"static/media/Gym.7a0d22127ea3f557228a.svg"},83009:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hall.9c2fa95419cb84ecda68.svg"},54013:function(l,r,e){"use strict";l.exports=e.p+"static/media/Home Theater.1e5f19a0b2a013f153f5.svg"},20157:function(l,r,e){"use strict";l.exports=e.p+"static/media/Kitchen.deb7f976c1f43f9039a2.svg"},24622:function(l,r,e){"use strict";l.exports=e.p+"static/media/Laundry Room.58da550dff0173676e02.svg"},52639:function(l,r,e){"use strict";l.exports=e.p+"static/media/Living Area.1c29b81e75b75e3310db.svg"},2767:function(l,r,e){"use strict";l.exports=e.p+"static/media/Living Room.3c380ab767be35f904e1.svg"},72328:function(l,r,e){"use strict";l.exports=e.p+"static/media/Locker Room.1e381bdf34bfce551d73.svg"},21273:function(l,r,e){"use strict";l.exports=e.p+"static/media/Nursery.9cecc0544bdb5c28500c.svg"},94238:function(l,r,e){"use strict";l.exports=e.p+"static/media/Office.7e6a38218390b655e270.svg"},58660:function(l,r,e){"use strict";l.exports=e.p+"static/media/Outdoors.da42e64a4b6ec2dd1e1c.svg"},9243:function(l,r,e){"use strict";l.exports=e.p+"static/media/Playroom.e64c9de43030c28d2f96.svg"},61737:function(l,r,e){"use strict";l.exports=e.p+"static/media/Pool.9452c0f84f53c7836f3d.svg"},53029:function(l,r,e){"use strict";l.exports=e.p+"static/media/Rear Wall.38843c33f1ea1f575500.svg"},1746:function(l,r,e){"use strict";l.exports=e.p+"static/media/Second Floor.a2d5ed32df336591c06b.svg"},67104:function(l,r,e){"use strict";l.exports=e.p+"static/media/Shed.491a2ad372036118002c.svg"},55323:function(l,r,e){"use strict";l.exports=e.p+"static/media/Sleeping Area.828017602bfcc2dd7dce.svg"},56448:function(l,r,e){"use strict";l.exports=e.p+"static/media/Stairway.9b007e08605296110003.svg"},43902:function(l,r,e){"use strict";l.exports=e.p+"static/media/Stairwell.0914feea948153a8637a.svg"},33998:function(l,r,e){"use strict";l.exports=e.p+"static/media/Storeroom.7de4e6f3364554459b8a.svg"},55262:function(l,r,e){"use strict";l.exports=e.p+"static/media/Summer House.541a9fec69f01105e244.svg"},91822:function(l,r,e){"use strict";l.exports=e.p+"static/media/Swimming Pool.190b378cb0707edb9461.svg"},59644:function(l,r,e){"use strict";l.exports=e.p+"static/media/Terrace.d71d07d9290674f2ca20.svg"},26012:function(l,r,e){"use strict";l.exports=e.p+"static/media/Toilet.83604dd2daafb67067dd.svg"},83405:function(l,r,e){"use strict";l.exports=e.p+"static/media/Upstairs.441813e54e0daca0882d.svg"},20324:function(l,r,e){"use strict";l.exports=e.p+"static/media/Wardrobe.e8019970a2b51412cfdc.svg"},70627:function(l,r,e){"use strict";l.exports=e.p+"static/media/Washroom.bfb54196f381f36de9d6.svg"},58215:function(l,r,e){"use strict";l.exports=e.p+"static/media/Wc.83604dd2daafb67067dd.svg"},7021:function(l,r,e){"use strict";l.exports=e.p+"static/media/Windscreen.6058448bf63f72dd5036.svg"},25842:function(l,r,e){"use strict";l.exports=e.p+"static/media/Workshop.7856e59fe4f164c90609.svg"},91104:function(l,r,e){"use strict";l.exports=e.p+"static/media/Workspace.97d73e419d966bfb6428.svg"},8939:function(l,r,e){"use strict";l.exports=e.p+"static/media/names.3a7dae0bd6b8b03b280f.txt"},95605:function(l){"use strict";l.exports=JSON.parse(`[{"_id":"hood","name":{"en":"Hood","ru":"\u0412\u044B\u0442\u044F\u0436\u043A\u0430","de":"Abzugshaube","fr":"Capot","it":"Cappe","nl":"Hood","pl":"Okapy","pt":"Hood","es":"Campana","zh-cn":"\u62BD\u6CB9\u70DF\u673A"},"icon":"Hoods.svg"},{"_id":"alarm_system","name":{"en":"Alarm System","ru":"\u0421\u0438\u0433\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F","de":"Alarmanlage","fr":"Syst\xE8mes D'Alarme","it":"Sistemi Di Allarme","nl":"Alarm Systems","pl":"Systemy Alarmowe","pt":"Sistemas De Alarme","es":"Sistemas De Alarma","zh-cn":"\u62A5\u8B66\u7CFB\u7EDF"},"icon":"Alarm Systems.svg"},{"_id":"battery_status","name":{"en":"Battery Status","ru":"\u0417\u0430\u0440\u044F\u0434 \u0431\u0430\u0442\u0430\u0440\u0435\u0438","de":"Batteriestatus","fr":"\xC9tat De La Batterie","it":"Stato Della Batteria","nl":"Batterij Status","pl":"Stan Baterii","pt":"Estado Da Bateria","es":"Estado De La Bater\xEDa","zh-cn":"\u7535\u6C60\u72B6\u6001"},"icon":"Battery Status.svg"},{"_id":"lighting","name":{"en":"Lighting","ru":"\u0421\u0432\u0435\u0442\u0438\u043B\u044C\u043D\u0438\u043A","de":"Beleuchtung","fr":"\xC9clairages","it":"Illuminazione","nl":"Verlichting","pl":"Oprawy O\u015Bwietleniowe","pt":"Ilumina\xE7\xF5es","es":"Iluminaciones","zh-cn":"\u7167\u660E"},"icon":"Lightings.svg"},{"_id":"shading","name":{"en":"Shading","ru":"\u0417\u0430\u0442\u0435\u043D\u0435\u043D\u0438\u0435","de":"Beschattungen","fr":"Ombres","it":"Ombreggiatura","nl":"Shading","pl":"Zacienienie","pt":"Shading","es":"Sombreado","zh-cn":"\u5E95\u7EB9"},"icon":"Shading.svg"},{"_id":"irrigation","name":{"en":"Irrigation","ru":"\u041E\u0440\u043E\u0448\u0435\u043D\u0438\u0435","de":"Bew\xE4sserung","fr":"Irrigation","it":"Irrigazione","nl":"Irrigatie","pl":"Nawadnianie","pt":"Irriga\xE7\xE3o","es":"Irrigaci\xF3n","zh-cn":"\u704C\u6E89"},"icon":"Irrigation.svg"},{"_id":"iron","name":{"en":"Iron","ru":"\u0423\u0442\u044E\u0433","de":"B\xFCgeleisen","fr":"Le Fer","it":"Ferro","nl":"Ijzer","pl":"\u017Belazo","pt":"Ferro","es":"Hierro","zh-cn":"\u94C1"},"icon":"Iron.svg"},{"_id":"computer","name":{"en":"Computer","ru":"\u041A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440","de":"Rechner","fr":"L'Ordinateur","it":"Computer","nl":"Computer","pl":"Komputer","pt":"Computador","es":"Ordenador","zh-cn":"\u7535\u8111"},"icon":"Computer.svg"},{"_id":"ceiling_spotlight","name":{"en":"Ceiling Spotlight","ru":"\u041F\u043E\u0442\u043E\u043B\u043E\u0447\u043D\u044B\u0439 \u043F\u0440\u043E\u0436\u0435\u043A\u0442\u043E\u0440","de":"Deckenspot","fr":"Plafond Spotlight","it":"Faretti A Soffitto","nl":"Plafond Spotlight","pl":"Reflektory Sufitowe","pt":"Tecto Foco","es":"Focos De Techo","zh-cn":"\u5929\u82B1\u5C04\u706F"},"icon":"Ceiling Spotlights.svg"},{"_id":"printer","name":{"en":"Printer","de":"Drucker","ru":"\u041F\u0440\u0438\u043D\u0442\u0435\u0440","pt":"Impressora","nl":"Printer","fr":"Imprimante","it":"Stampante","es":"Impresora","pl":"Drukarka","zh-cn":"\u6253\u5370\u673A"},"icon":"Printer.svg"},{"_id":"power_consumption","name":{"en":"Power Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u044F\u0435\u043C\u0430\u044F \u043C\u043E\u0449\u043D\u043E\u0441\u0442\u044C","de":"Stromverbrauch","fr":"Consommation D'\xC9nergie","it":"Consumo Di Energia","nl":"Energieverbruik","pl":"Pob\xF3r Energii","pt":"Consumo De Energia","es":"El Consumo De Energ\xEDa","zh-cn":"\u80FD\u91CF\u6D88\u8017"},"icon":"Power Consumption.svg"},{"_id":"window","name":{"en":"Window","ru":"\u041E\u043A\u043D\u043E","de":"Fenster","fr":"La Fen\xEAtre","it":"Finestra","nl":"Venster","pl":"Okno","pt":"Janela","es":"Ventana","zh-cn":"\u7A97\u6237"},"icon":"Window.svg"},{"_id":"garage_door","name":{"en":"Garage Door","ru":"\u0413\u0430\u0440\u0430\u0436\u043D\u044B\u0435 \u0412\u043E\u0440\u043E\u0442\u0430","de":"Garagentor","fr":"Portes De Garage","it":"Garage Door","nl":"Garage Door","pl":"Bramy Gara\u017Cowe","pt":"Portas De Garagem","es":"Las Puertas De Garaje","zh-cn":"\u8F66\u5E93\u95E8"},"icon":"Garage Doors.svg"},{"_id":"hairdryer","name":{"en":"Hairdryer","ru":"\u0424\u0435\u043D","de":"Haartrockner","fr":"S\xE8che-Cheveux","it":"Asciugacapelli","nl":"Haardroger","pl":"Suszarka Do W\u0142os\xF3w","pt":"Secador De Cabelo","es":"Secador De Pelo","zh-cn":"\u7535\u5439\u98CE"},"icon":"Hairdryer.svg"},{"_id":"hanging_lamp","name":{"en":"Hanging Lamp","ru":"\u041F\u043E\u0434\u0432\u0435\u0441\u043D\u043E\u0439 \u0441\u0432\u0435\u0442\u0438\u043B\u044C\u043D\u0438\u043A","de":"H\xE4ngelampe","fr":"Lampes Suspendues","it":"Lampade A Sospensione","nl":"Opknoping Lampen","pl":"Lampy Wisz\u0105ce","pt":"L\xE2mpadas De Suspens\xE3o","es":"L\xE1mparas Colgantes","zh-cn":"\u6302\u706F"},"icon":"Hanging Lamps.svg"},{"_id":"doorstep","name":{"en":"Enterance","ru":"\u0412\u0445\u043E\u0434\u043D\u0430\u044F \u0434\u0432\u0435\u0440\u044C","de":"Haust\xFCr","fr":"Seuil De Porte","it":"Gradino Della Porta","nl":"Drempel","pl":"Pr\xF3g","pt":"Porta","es":"Pelda\xF1o","zh-cn":"\u95E8\u9636"},"icon":"Doorstep.svg"},{"_id":"hot_water","name":{"en":"Hot Water","ru":"\u0413\u043E\u0440\u044F\u0447\u0430\u044F \u0432\u043E\u0434\u0430","de":"Hei\xDFwasser","fr":"Eau Chaude","it":"Acqua Calda","nl":"Heet Water","pl":"Gor\u0105ca Woda","pt":"\xC1gua Quente","es":"Agua Caliente","zh-cn":"\u70ED\u6C34"},"icon":"Hot Water.svg"},{"_id":"heating","name":{"en":"Heating","ru":"\u041E\u0442\u043E\u043F\u043B\u0435\u043D\u0438\u0435","de":"Heizung","fr":"Chauffe-Eau","it":"Riscaldatore","nl":"Verwarmer","pl":"Podgrzewacz","pt":"Aquecedor","es":"Calentador","zh-cn":"\u52A0\u70ED\u5668"},"icon":"Heater.svg"},{"_id":"stove","name":{"en":"Stove","ru":"\u041F\u0435\u0447\u044C","de":"Herd","fr":"Le Fourneau","it":"Stufa","nl":"Fornuis","pl":"Kuchenka","pt":"Forno","es":"Cocina","zh-cn":"\u706B\u7089"},"icon":"Stove.svg"},{"_id":"louvre","name":{"en":"Louvre","ru":"\u0416\u0430\u043B\u044E\u0437\u0438","de":"Jalousie","fr":"Persienne","it":"Persiana Di Ventilazione","nl":"Louvre","pl":"\u017Baluzja","pt":"Trapeira","es":"Lumbrera","zh-cn":"\u5362\u6D6E\u5BAB"},"icon":"Louvre.svg"},{"_id":"coffee_maker","name":{"en":"Coffee Maker","ru":"\u041A\u043E\u0444\u0435\u0432\u0430\u0440\u043A\u0430","de":"Kaffemaschine","fr":"Cafeti\xE8re","it":"Macchine Da Caff\xE8","nl":"Koffie Maker","pl":"Ekspresy Do Kawy","pt":"Cafeteira","es":"Cafetera","zh-cn":"\u5496\u5561\u58F6"},"icon":"Coffee Makers.svg"},{"_id":"cold_water","name":{"en":"Cold Water","ru":"\u0425\u043E\u043B\u043E\u0434\u043D\u0430\u044F \u0432\u043E\u0434\u0430","de":"Kaltwasser","fr":"Eau Froide","it":"Acqua Fredda","nl":"Koud Water","pl":"Zimna Woda","pt":"\xC1gua Fria","es":"Agua Fr\xEDa","zh-cn":"\u51B7\u6C34"},"icon":"Cold Water.svg"},{"_id":"climate","name":{"en":"Climate","ru":"\u041A\u043B\u0438\u043C\u0430\u0442","de":"Klima","fr":"Climat","it":"Clima","nl":"Klimaat","pl":"Klimat","pt":"Clima","es":"Clima","zh-cn":"\u6C14\u5019"},"icon":"Climate.svg"},{"_id":"speaker","name":{"en":"Speaker","ru":"\u0417\u0432\u0443\u043A\u043E\u0432\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430","de":"Lautsprecher","fr":"Orateur","it":"Altoparlante","nl":"Spreker","pl":"G\u0142o\u015Bnik","pt":"Palestrante","es":"Altavoz","zh-cn":"\u626C\u58F0\u5668"},"icon":"Speaker.svg"},{"_id":"led_strip","name":{"en":"Led Strip","ru":"\u0421\u0432\u0435\u0442\u043E\u0434\u0438\u043E\u0434\u043D\u0430\u044F \u043B\u0435\u043D\u0442\u0430","de":"LED Leiste","fr":"Led Strip","it":"Led Strip","nl":"Loden Strip","pl":"Pasek Ledowy","pt":"Led Faixa","es":"Tira Llevada","zh-cn":"\u706F\u5E26"},"icon":"Led Strip.svg"},{"_id":"light","name":{"en":"Light","ru":"\u0421\u0432\u0435\u0442","de":"Licht","fr":"Lumi\xE8re","it":"Leggero","nl":"Licht","pl":"Lekki","pt":"Luz","es":"Luz","zh-cn":"\u5149"},"icon":"Light.svg"},{"_id":"fan","name":{"en":"Fan","ru":"\u0412\u0435\u043D\u0442\u0438\u043B\u044F\u0442\u043E\u0440","de":"L\xFCfter","fr":"Ventilateur","it":"Fan","nl":"Ventilator","pl":"Wentylator","pt":"Ventilador","es":"Ventilador","zh-cn":"\u6247\u5B50"},"icon":"Fan.svg"},{"_id":"humidity","name":{"en":"Humidity","ru":"\u0412\u043B\u0430\u0436\u043D\u043E\u0441\u0442\u044C","de":"Luftfeuchtigkeit","fr":"Humidit\xE9","it":"Umidit\xE0","nl":"Vochtigheid","pl":"Wilgotno\u015B\u0107","pt":"Umidade","es":"Humedad","zh-cn":"\u6E7F\u5EA6"},"icon":"Humidity.svg"},{"_id":"ventilation","name":{"en":"Ventilation","ru":"\u0412\u0435\u043D\u0442\u0438\u043B\u044F\u0446\u0438\u044F","de":"L\xFCftung","fr":"Ventilation","it":"Ventilazione","nl":"Ventilatie","pl":"Wentylacja","pt":"Ventila\xE7\xE3o","es":"Ventilaci\xF3n","zh-cn":"\u901A\u98CE"},"icon":"Ventilation.svg"},{"_id":"chandelier","name":{"en":"Chandelier","ru":"\u041B\u044E\u0441\u0442\u0440\u0430","de":"Kronleuchter","fr":"Lustre","it":"Lampadario","nl":"Kroonluchter","pl":"\u017Byrandol","pt":"Lustre","es":"Candelabro","zh-cn":"\u679D\u5F62\u540A\u706F"},"icon":"Chandelier.svg"},{"_id":"awning","name":{"en":"Awning","ru":"\u041C\u0430\u0440\u043A\u0438\u0437\u0430","de":"Markise","fr":"Auvents","it":"Tende","nl":"Luifels","pl":"Okrycia","pt":"Toldos","es":"Toldos","zh-cn":"\u906E\u9633\u7BF7"},"icon":"Awnings.svg"},{"_id":"music","name":{"en":"Music","ru":"\u041C\u0443\u0437\u044B\u043A\u0430","de":"Musik","fr":"Musique","it":"Musica","nl":"Muziek","pl":"Muzyka","pt":"M\xFAsica","es":"M\xFAsica","zh-cn":"\u97F3\u4E50"},"icon":"Music.svg"},{"_id":"people","name":{"en":"People","ru":"\u041B\u044E\u0434\u0438","de":"Personen","fr":"Gens","it":"Persone","nl":"Mensen","pl":"Ludzie","pt":"Pessoas","es":"Personas","zh-cn":"\u4EBA\u4EEC"},"icon":"People.svg"},{"_id":"pool","name":{"en":"Pool","ru":"\u0411\u0430\u0441\u0441\u0435\u0439\u043D","de":"Pool","fr":"Piscine","it":"Piscina","nl":"Zwembad","pl":"Basen","pt":"Piscina","es":"Piscina","zh-cn":"\u6C34\u6C60"},"icon":"Pool.svg"},{"_id":"pump","name":{"en":"Pump","ru":"\u041D\u0430\u0441\u043E\u0441","de":"Pumpe","fr":"Pompe","it":"Pompa","nl":"Pomp","pl":"Pompa","pt":"Bombear","es":"Bomba","zh-cn":"\u6CF5"},"icon":"Pump.svg"},{"_id":"outdoor_blinds","name":{"en":"Outdoor Blinds","ru":"\u0412\u043D\u0435\u0449\u0433\u0442\u0435 \u0436\u0430\u043B\u044E\u0437\u0438","de":"Raffstore","fr":"Volets","it":"Tende Da Esterni","nl":"Outdoor Blinds","pl":"Rolety Zewn\u0119trzne","pt":"Estores Exteriores","es":"Persianas Exteriores","zh-cn":"\u5BA4\u5916\u767E\u53F6\u7A97"},"icon":"Outdoor Blinds.svg"},{"_id":"mowing_machine","name":{"en":"Mowing Machine","ru":"\u0413\u0430\u0437\u043E\u043D\u043E\u043A\u043E\u0441\u0438\u043B\u043A\u0430","de":"Rasenm\xE4her","fr":"Machine De Fauchage","it":"Macchina Di Falciatura","nl":"Maaimachine","pl":"Kosiarka","pt":"Ro\xE7ada M\xE1quina","es":"Segadora","zh-cn":"\u5272\u8349\u673A"},"icon":"Mowing Machine.svg"},{"_id":"receiver","name":{"en":"Receiver","ru":"\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430","de":"Receiver","fr":"Destinataire","it":"Ricevitore","nl":"Ontvanger","pl":"Odbiorca","pt":"Recebedor","es":"Receptor","zh-cn":"\u63A5\u6536\u8005"},"icon":"Receiver.svg"},{"_id":"shutters","name":{"en":"Shutters","ru":"\u0421\u0442\u0430\u0432\u043D\u0438","de":"Rollladen","fr":"Volets","it":"Persiane","nl":"Shutters","pl":"\u017Baluzje","pt":"Persianas","es":"Persianas","zh-cn":"\u767E\u53F6\u7A97"},"icon":"Shutters.svg"},{"_id":"smoke_detector","name":{"en":"Smoke detector","de":"Rauchmelder","ru":"\u0414\u0435\u0442\u0435\u043A\u0442\u043E\u0440 \u0434\u044B\u043C\u0430","pt":"Detector de fuma\xE7a","nl":"Rookdetector","fr":"D\xE9tecteur de fum\xE9e","it":"Rilevatore di fumo","es":"Detector de humo","pl":"Wykrywacz dymu","zh-cn":"\u70DF\u96FE\u63A2\u6D4B\u5668"},"icon":"SmokeDetector.svg"},{"_id":"lock","name":{"en":"Lock","ru":"\u0417\u0430\u043C\u043E\u043A","de":"Schlo\xDF","fr":"Fermer \xC0 Cl\xE9","it":"Serratura","nl":"Slot","pl":"Zamek","pt":"Trancar","es":"Cerrar Con Llave","zh-cn":"\u9501"},"icon":"Lock.svg"},{"_id":"security","name":{"en":"Security","ru":"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C","de":"Sicherheit","fr":"S\xE9curit\xE9","it":"Sicurezza","nl":"Veiligheid","pl":"Bezpiecze\u0144stwo","pt":"Seguran\xE7a","es":"Seguridad","zh-cn":"\u5B89\u5168"},"icon":"Security.svg"},{"_id":"dishwasher","name":{"en":"Dishwasher","ru":"\u041F\u043E\u0441\u0443\u0434\u043E\u043C\u043E\u0435\u0447\u043D\u0430\u044F \u043C\u0430\u0448\u0438\u043D\u0430","de":"Sp\xFClmaschine","fr":"Lave-Vaisselles","it":"Lavastoviglie","nl":"Vaatwassers","pl":"Zmywarki","pt":"M\xE1quinas De Lavar Lou\xE7a","es":"Lavaplatos","zh-cn":"\u6D17\u7897\u673A"},"icon":"Dishwashers.svg"},{"_id":"vacuum_cleaner","name":{"en":"Vacuum Cleaner","ru":"\u041F\u044B\u043B\u0435\u0441\u043E\u0441","de":"Staubsauger","fr":"Aspirateur","it":"Aspirapolvere","nl":"Stofzuiger","pl":"Odkurzacz","pt":"Aspirador De P\xF3","es":"Aspiradora","zh-cn":"\u5438\u5C18\u5668"},"icon":"Vacuum Cleaner.svg"},{"_id":"socket","name":{"en":"Socket","ru":"\u0420\u043E\u0437\u0435\u0442\u043A\u0430","de":"Steckdose","fr":"Prise","it":"Socket","nl":"Socket","pl":"Gniazdka","pt":"Tomada","es":"Z\xF3calo","zh-cn":"\u5957\u63A5\u5B57"},"icon":"Sockets.svg"},{"_id":"floor_lamp","name":{"en":"Floor Lamp","ru":"\u0422\u043E\u0440\u0448\u0435\u0440","de":"Stehlampe","fr":"Lampes Pour Plancher","it":"Lampade A Stelo","nl":"Vloerlampen","pl":"Lampy Pod\u0142ogowe","pt":"L\xE2mpadas Ch\xE3o","es":"L\xE1mparas De Pie","zh-cn":"\u843D\u5730\u706F"},"icon":"Floor Lamps.svg"},{"_id":"power_consumption","name":{"en":"Power Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u044F\u0435\u043C\u0430\u044F \u043C\u043E\u0449\u043D\u043E\u0441\u0442\u044C","de":"Stromverbrauch","fr":"Consommation D'\xC9nergie","it":"Consumo Di Energia","nl":"Energieverbruik","pl":"Pob\xF3r Energii","pt":"Consumo De Energia","es":"El Consumo De Energ\xEDa","zh-cn":"\u80FD\u91CF\u6D88\u8017"},"icon":"Power Consumption.svg"},{"_id":"temperature_sensor","name":{"en":"Temperature Sensor","ru":"\u0422\u0435\u043C\u043F\u0435\u0440\u0430\u0442\u0443\u0440\u043D\u044B\u0439 \u0434\u0430\u0442\u0447\u0438\u043A","de":"Temperatur-Sensor","fr":"Capteur De Temp\xE9rature","it":"Sensori Di Temperatura","nl":"Temperatuursensor","pl":"Czujniki Temperatury","pt":"Sensores De Temperatura","es":"Sensores De Temperatura","zh-cn":"\u6E29\u5EA6\u4F20\u611F\u5668"},"icon":"Temperature Sensors.svg"},{"_id":"table_lamp","name":{"en":"Table Lamp","ru":"\u041D\u0430\u0441\u0442\u043E\u043B\u044C\u043D\u0430\u044F \u043B\u0430\u043C\u043F\u0430","de":"Tischlampe","fr":"Lampe De Chevet","it":"Lampade Da Tavolo","nl":"Tafellampen","pl":"Lampy Sto\u0142owe","pt":"L\xE2mpadas De Mesa","es":"L\xE1mparas De Mesa","zh-cn":"\u53F0\u706F"},"icon":"Table Lamps.svg"},{"_id":"gate","name":{"en":"Gate","ru":"\u0412\u043E\u0440\u043E\u0442\u0430","de":"Tor","fr":"Porte","it":"Gate","nl":"Gate","pl":"Bramy","pt":"Port\xF5es","es":"Puertas","zh-cn":"\u76D6\u8328"},"icon":"Gates.svg"},{"_id":"dryer","name":{"en":"Dryer","ru":"\u0421\u0443\u0448\u0438\u043B\u043A\u0430","de":"Trockner","fr":"S\xE9choir","it":"Asciugatrice","nl":"Droger","pl":"Suszarka","pt":"Secador","es":"Secadora","zh-cn":"\u70D8\u5E72\u673A"},"icon":"Dryer.svg"},{"_id":"door","name":{"en":"Door","ru":"\u0414\u0432\u0435\u0440\u044C","de":"T\xFCr","fr":"Des Portes","it":"Porte","nl":"Deuren","pl":"Drzwi","pt":"Portas","es":"Puertas","zh-cn":"\u95E8"},"icon":"Doors.svg"},{"_id":"tv","name":{"en":"Tv","ru":"\u0422\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440","de":"TV","fr":"La T\xE9l\xE9","it":"Tv","nl":"Tv","pl":"Telewizja","pt":"Televis\xE3o","es":"Televisor","zh-cn":"\u7535\u89C6"},"icon":"Tv.svg"},{"_id":"consumption","name":{"en":"Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u0435","de":"Verbrauch","fr":"Consommation","it":"Consumo","nl":"Consumptie","pl":"Konsumpcja","pt":"Consumo","es":"Consumo","zh-cn":"\u6D88\u8D39"},"icon":"Consumption.svg"},{"_id":"amplifier","name":{"en":"Amplifier","ru":"\u0423\u0441\u0438\u043B\u0438\u0442\u0435\u043B\u044C \u0437\u0432\u0443\u043A\u0430","de":"Verst\xE4rker","fr":"Amplificateur","it":"Amplificatore","nl":"Versterker","pl":"Wzmacniacz","pt":"Amplificador","es":"Amplificador","zh-cn":"\u653E\u5927\u5668"},"icon":"Amplifier.svg"},{"_id":"curtains","name":{"en":"Curtains","ru":"\u0428\u0442\u043E\u0440\u044B","de":"Vorh\xE4nge","fr":"Des Rideaux","it":"Le Tende","nl":"Gordijnen","pl":"Zas\u0142ony","pt":"Cortinas","es":"Cortinas","zh-cn":"\u7A97\u5E18"},"icon":"Curtains.svg"},{"_id":"sconce","name":{"en":"Sconce","ru":"\u041D\u0430\u0441\u0442\u0435\u043D\u043D\u044B\u0439 \u0441\u0432\u0435\u0442\u0438\u043B\u044C\u043D\u0438\u043A","de":"Wandlampe","fr":"Sconce","it":"Sconce","nl":"Sconce","pl":"Kinkiety","pt":"Arandelas","es":"Los Apliques","zh-cn":"\u58C1\u706F"},"icon":"Sconces.svg"},{"_id":"washing_machine","name":{"en":"Washing Machine","ru":"\u0421\u0442\u0438\u0440\u0430\u043B\u044C\u043D\u0430\u044F \u043C\u0430\u0448\u0438\u043D\u0430","de":"Waschmaschine","fr":"Machines \xC0 Laver","it":"Lavatrici","nl":"Wasmachines","pl":"Pralki","pt":"M\xE1quinas De Lavar Roupas","es":"Lavadoras","zh-cn":"\u6D17\u8863\u673A"},"icon":"Washing Machines.svg"},{"_id":"water","name":{"en":"Water","ru":"\u0412\u043E\u0434\u0430","de":"Wasser","fr":"L'Eau","it":"Acqua","nl":"Water","pl":"Woda","pt":"\xC1gua","es":"Agua","zh-cn":"\u6C34"},"icon":"Water.svg"},{"_id":"water_heater","name":{"en":"Water Heater","ru":"\u041D\u0430\u0433\u0440\u0435\u0432\u0430\u0442\u0435\u043B\u044C \u0432\u043E\u0434\u044B","de":"Wasserkocher","fr":"Chauffe-Eau","it":"Scaldabagno","nl":"Waterkoker","pl":"Podgrzewacz Wody","pt":"Aquecedor De \xC1gua","es":"Calentador De Agua","zh-cn":"\u70ED\u6C34\u5668"},"icon":"Water Heater.svg"},{"_id":"water_consumption","name":{"en":"Water Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u0435 \u0432\u043E\u0434\u044B","de":"Wasserverbrauch","fr":"Consommation D'Eau","it":"Consumo D'Acqua","nl":"Waterverbruik","pl":"Konsumpcja Wody","pt":"Consumo De \xC1gua","es":"Consumo De Agua","zh-cn":"\u8017\u6C34\u91CF"},"icon":"Water Consumption.svg"},{"_id":"weather","name":{"en":"Weather","ru":"\u041F\u043E\u0433\u043E\u0434\u0430","de":"Wetter","fr":"La M\xE9t\xE9o","it":"Tempo Metereologico","nl":"Weer","pl":"Pogoda","pt":"Clima","es":"Tiempo","zh-cn":"\u5929\u6C14"},"icon":"Weather.svg"}]`)},51916:function(l){"use strict";l.exports=JSON.parse(`[{"_id":"storeroom","name":{"en":"Storeroom","ru":"\u041A\u043B\u0430\u0434\u043E\u0432\u0430\u044F","de":"Abstellraum","fr":"D\xE9barras","it":"Dispensa","nl":"Bergplaats","pl":"Magazyn","pt":"Despensa","es":"Trastero","zh-cn":"\u5E93\u623F"},"icon":"Storeroom.svg"},{"_id":"second_floor","name":{"en":"Second floor","ru":"\u0412\u0442\u043E\u0440\u043E\u0439 \u044D\u0442\u0430\u0436","de":"Erster OG","pt":"Primeiro andar","nl":"Eerste verdieping","fr":"Premier \xE9tage","it":"Primo piano","es":"Primer piso","pl":"Pierwsze pi\u0119tro","zh-cn":"\u7B2C\u4E00\u5C42"},"icon":"Second Floor.svg"},{"_id":"dressing_room","name":{"en":"Dressing Room","ru":"\u0413\u0430\u0440\u0434\u0435\u0440\u043E\u0431\u043D\u0430\u044F","de":"Ankleide","fr":"Vestiaire","it":"Camerino","nl":"Kleedkamer","pl":"Przebieralnia","pt":"Provador","es":"Vestidor","zh-cn":"\u66F4\u8863\u5BA4"},"icon":"Dressing Room.svg"},{"_id":"workspace","name":{"en":"Workspace","ru":"\u0420\u0430\u0431\u043E\u0447\u0430\u044F \u0421\u0440\u0435\u0434\u0430","de":"Arbeitszimmer","fr":"Espace De Travail","it":"Area Di Lavoro","nl":"Workspace","pl":"Workspace","pt":"\xC1rea De Trabalho","es":"Espacio De Trabajo","zh-cn":"\u5DE5\u4F5C\u533A"},"icon":"Workspace.svg"},{"_id":"driveway","name":{"en":"Driveway","ru":"\u0414\u043E\u0440\u043E\u0433\u0430","de":"Auffahrt","fr":"All\xE9e","it":"Viale","nl":"Pad","pl":"Podjazd","pt":"Entrada Da Garagem","es":"Entrada De Coches","zh-cn":"\u8F66\u9053"},"icon":"Driveway.svg"},{"_id":"outdoors","name":{"en":"Outdoors","ru":"\u041D\u0430 \u0423\u043B\u0438\u0446\u0435","de":"Au\xDFenbereich","fr":"En Plein Air","it":"All'Aperto","nl":"Buitenshuis","pl":"Na Dworze","pt":"Ao Ar Livre","es":"Al Aire Libre","zh-cn":"\u6237\u5916"},"icon":"Outdoors.svg"},{"_id":"bathroom","name":{"en":"Bathroom","ru":"\u0412\u0430\u043D\u043D\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"Badezimmer","fr":"Salle De Bains","it":"Bagno","nl":"Badkamer","pl":"\u0141azienka","pt":"Banheiro","es":"Ba\xF1o","zh-cn":"\u6D74\u5BA4"},"icon":"Bathroom.svg"},{"_id":"balcony","name":{"en":"Balcony","ru":"\u0411\u0430\u043B\u043A\u043E\u043D","de":"Balkon","fr":"Balcon","it":"Balcone","nl":"Balkon","pl":"Balkon","pt":"Sacada","es":"Balc\xF3n","zh-cn":"\u9633\u53F0"},"icon":"Balcony.svg"},{"_id":"office","name":{"en":"Office","ru":"\u041E\u0444\u0438\u0441","de":"Office","fr":"Bureau","it":"Ufficio","nl":"Kantoor","pl":"Gabinet","pt":"Escrit\xF3rio","es":"Oficina","zh-cn":"\u529E\u516C\u5BA4"},"icon":"Office.svg"},{"_id":"carport","name":{"en":"Carport","ru":"\u041D\u0430\u0432\u0435\u0441","de":"Carport","fr":"Carport","it":"Posto Auto Coperto","nl":"Carport","pl":"Wiata","pt":"Telheiro","es":"Cochera","zh-cn":"\u8F66\u68DA"},"icon":"Carport.svg"},{"_id":"attic","name":{"en":"Attic","ru":"\u0427\u0435\u0440\u0434\u0430\u043A","de":"Dachgeschoss","fr":"Grenier","it":"Attico","nl":"Zolder","pl":"Poddasze","pt":"S\xF3t\xE3o","es":"\xC1tico","zh-cn":"\u9601\u697C"},"icon":"Attic.svg"},{"_id":"hall","name":{"en":"Hall","ru":"\u0417\u0430\u043B","de":"Diele","fr":"Salle","it":"Sala","nl":"Hal","pl":"Sala","pt":"Corredor","es":"Sala","zh-cn":"\u5927\u5385"},"icon":"Hall.svg"},{"_id":"entrance","name":{"en":"Entrance","ru":"\u0412\u0445\u043E\u0434","de":"Eingang","fr":"Entr\xE9e","it":"Ingresso","nl":"Ingang","pl":"Wej\u015Bcie","pt":"Entrada","es":"Entrada","zh-cn":"\u5165\u53E3"},"icon":"Entrance.svg"},{"_id":"ground_floor","name":{"en":"Ground Floor","ru":"\u041F\u0435\u0440\u0432\u044B\u0439 \u042D\u0442\u0430\u0436","de":"Erdgeschoss","fr":"Rez-De-Chauss\xE9e","it":"Piano Terra","nl":"Begane Grond","pl":"Parter","pt":"T\xE9rreo","es":"Planta Baja","zh-cn":"\u4E00\u697C"},"icon":"Ground Floor.svg"},{"_id":"dining_area","name":{"en":"Dining Area","ru":"\u0421\u0442\u043E\u043B\u043E\u0432\u0430\u044F","de":"Essbereich","fr":"Salle \xC0 Manger","it":"Zona Pranzo","nl":"Eethoek","pl":"Jadalnia","pt":"\xC1rea De Refei\xE7\xF5es","es":"Comedor","zh-cn":"\u7528\u9910\u533A"},"icon":"Dining Area.svg"},{"_id":"dining_room","name":{"en":"Dining Room","ru":"\u0421\u0442\u043E\u043B\u043E\u0432\u0430\u044F","de":"Esszimmer","fr":"Salle \xC0 Manger","it":"Sala Da Pranzo","nl":"Eetkamer","pl":"Jadalnia","pt":"Sala De Jantar","es":"Comedor","zh-cn":"\u996D\u5385"},"icon":"Dining Room.svg"},{"_id":"gym","name":{"en":"Gym","ru":"\u0421\u043F\u043E\u0440\u0442\u0437\u0430\u043B","de":"Fitnessraum","fr":"Gym","it":"Palestra","nl":"Sportschool","pl":"Si\u0142ownia","pt":"Gin\xE1sio","es":"Gimnasio","zh-cn":"\u5065\u8EAB\u623F"},"icon":"Gym.svg"},{"_id":"gallery","name":{"en":"Gallery","ru":"\u0413\u0430\u043B\u0435\u0440\u0435\u044F","de":"Galerie","fr":"Galerie","it":"Galleria","nl":"Galerij","pl":"Galeria","pt":"Galeria","es":"Galer\xEDa","zh-cn":"\u753B\u5ECA"},"icon":"Gallery.svg"},{"_id":"garage","name":{"en":"Garage","ru":"\u0413\u0430\u0440\u0430\u0436","de":"Garage","fr":"Garage","it":"Box Auto","nl":"Garage","pl":"Gara\u017C","pt":"Garagem","es":"Garaje","zh-cn":"\u8F66\u5E93"},"icon":"Garage.svg"},{"_id":"wardrobe","name":{"en":"Wardrobe","ru":"\u0413\u0430\u0440\u0434\u0435\u0440\u043E\u0431","de":"Garderobe","fr":"Penderie","it":"Armadio","nl":"Garderobe","pl":"Szafa","pt":"Guarda Roupa","es":"Armario","zh-cn":"\u8863\u67DC"},"icon":"Wardrobe.svg"},{"_id":"garden","name":{"en":"Garden","ru":"\u0421\u0430\u0434","de":"Garten","fr":"Jardin","it":"Giardino","nl":"Tuin","pl":"Ogr\xF3d","pt":"Jardim","es":"Jard\xEDn","zh-cn":"\u82B1\u56ED"},"icon":"Garden.svg"},{"_id":"summer_house","name":{"en":"Summer House","ru":"\u0414\u0430\u0447\u0430","de":"Gartenhaus","fr":"Maison D'\xC9t\xE9","it":"Casa Estiva","nl":"Zomerhuis","pl":"Domek Letniskowy","pt":"Summer House","es":"Casa De Verano","zh-cn":"\u51C9\u4EAD"},"icon":"Summer House.svg"},{"_id":"guest_bathroom","name":{"en":"Guest Bathroom","ru":"\u0413\u043E\u0441\u0442\u0435\u0432\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"G\xE4ste-WC","fr":"Salle De Bains Invit\xE9","it":"Guest Bathroom","nl":"Gastenbadkamer","pl":"\u0141azienka Go\u015Bcinna","pt":"Banheiro De H\xF3spedes","es":"Ba\xF1o De Visitas","zh-cn":"\u5BA2\u7528\u6D74\u5BA4"},"icon":"Guest Bathroom.svg"},{"_id":"guest_room","name":{"en":"Guest Room","ru":"\u0413\u043E\u0441\u0442\u0435\u0432\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"G\xE4stezimmer","fr":"Chambre D'Amis","it":"Stanza Degli Ospiti","nl":"Guest Room","pl":"Pok\xF3j Go\u015Bcinny","pt":"Quarto De H\xF3spedes","es":"Habitaci\xF3n De Hu\xE9spedes","zh-cn":"\u5BA2\u623F"},"icon":"Guest Room.svg"},{"_id":"laundry_room","name":{"en":"Laundry Room","ru":"\u041F\u0440\u0430\u0447\u0435\u0447\u043D\u0430\u044F","de":"Hauswirtschaftsraum","fr":"Buanderie","it":"Lavanderia","nl":"Wasruimte","pl":"Pralnia","pt":"Lavandaria","es":"Cuarto De Lavado","zh-cn":"\u6D17\u8863\u623F"},"icon":"Laundry Room.svg"},{"_id":"home_theater","name":{"en":"Home Theater","ru":"\u0414\u043E\u043C\u0430\u0448\u043D\u0438\u0439 \u0422\u0435\u0430\u0442\u0440","de":"Heimkino","fr":"Cin\xE9ma Maison","it":"Home Theater","nl":"Thuisbioscoop","pl":"Kino Domowe","pt":"Cinema Em Casa","es":"Cine En Casa","zh-cn":"\u5BB6\u5EAD\u7535\u5F71\u9662"},"icon":"Home Theater.svg"},{"_id":"boiler_room","name":{"en":"Boiler Room","ru":"\u0411\u043E\u0439\u043B\u0435\u0440\u043D\u0430\u044F","de":"Heizungsraum","fr":"Chaufferie","it":"Locale Caldaia","nl":"Boiler Room","pl":"Kot\u0142ownia","pt":"Sala Da Caldeira","es":"Sala De Calderas","zh-cn":"\u9505\u7089\u623F"},"icon":"Boiler Room.svg"},{"_id":"chamber","name":{"en":"Chamber","ru":"\u041A\u0430\u043C\u0435\u0440\u0430","de":"Kammer","fr":"Chambre","it":"Camera","nl":"Kamer","pl":"Izba","pt":"C\xE2mara","es":"C\xE1mara","zh-cn":"\u5546\u4F1A"},"icon":"Chamber.svg"},{"_id":"basement,_cellar","name":{"en":"Basement, Cellar","ru":"\u041F\u043E\u0434\u0432\u0430\u043B, \u041F\u043E\u0433\u0440\u0435\u0431","de":"Keller","fr":"Sous-Sol, Cave","it":"Taverna, Cantina","nl":"Kelder, Kelder","pl":"Piwnica, Piwnica","pt":"Por\xE3o, Adega","es":"S\xF3tano, Bodega","zh-cn":"\u5730\u4E0B\u5BA4\uFF0C\u5730\u7A96"},"icon":"Basement.svg"},{"_id":"nursery","name":{"en":"Nursery","ru":"\u041F\u0438\u0442\u043E\u043C\u043D\u0438\u043A","de":"Kinderzimmer","fr":"Garderie","it":"Asilo","nl":"Kinderkamer","pl":"\u017B\u0142obek","pt":"Ber\xE7\xE1rio","es":"Guarder\xEDa","zh-cn":"\u82D7\u5703"},"icon":"Nursery.svg"},{"_id":"corridor","name":{"en":"Corridor","ru":"\u041A\u043E\u0440\u0438\u0434\u043E\u0440","de":"Korridor","fr":"Couloir","it":"Corridoio","nl":"Gang","pl":"Korytarz","pt":"Corredor","es":"Corredor","zh-cn":"\u8D70\u5ECA"},"icon":"Corridor.svg"},{"_id":"kitchen","name":{"en":"Kitchen","ru":"\u041A\u0443\u0445\u043D\u044F","de":"K\xFCche","fr":"Cuisine","it":"Cucina","nl":"Keuken","pl":"Kuchnia","pt":"Cozinha","es":"Cocina","zh-cn":"\u53A8\u623F"},"icon":"Kitchen.svg"},{"_id":"upstairs","name":{"en":"Upstairs","ru":"\u0412\u0432\u0435\u0440\u0445 \u041F\u043E \u041B\u0435\u0441\u0442\u043D\u0438\u0446\u0435","de":"Obergeschoss","fr":"En Haut","it":"Di Sopra","nl":"Boven","pl":"Na G\xF3r\u0119","pt":"Andar De Cima","es":"Piso Superior","zh-cn":"\u697C\u4E0A"},"icon":"Upstairs.svg"},{"_id":"office","name":{"en":"Office","ru":"\u041E\u0444\u0438\u0441","de":"Office","fr":"Bureau","it":"Ufficio","nl":"Kantoor","pl":"Gabinet","pt":"Escrit\xF3rio","es":"Oficina","zh-cn":"\u529E\u516C\u5BA4"},"icon":"Office.svg"},{"_id":"pool","name":{"en":"Pool","ru":"\u0411\u0430\u0441\u0441\u0435\u0439\u043D","de":"Pool","fr":"Piscine","it":"Piscina","nl":"Zwembad","pl":"Basen","pt":"Piscina","es":"Piscina","zh-cn":"\u6C34\u6C60"},"icon":"Pool.svg"},{"_id":"rear_wall","name":{"en":"Rear Wall","ru":"\u0417\u0430\u0434\u043D\u044F\u044F \u0421\u0442\u0435\u043D\u043A\u0430","de":"R\xFCckwand","fr":"Paroi Arri\xE8re","it":"Parete Posteriore","nl":"Achterwand","pl":"Tylna \u015Aciana","pt":"Parede Traseira","es":"Pared Posterior","zh-cn":"\u540E\u5899"},"icon":"Rear Wall.svg"},{"_id":"barn","name":{"en":"Barn","ru":"\u0410\u043C\u0431\u0430\u0440","de":"Scheune","fr":"Grange","it":"Fienile","nl":"Schuur","pl":"Stodo\u0142a","pt":"Celeiro","es":"Granero","zh-cn":"\u8C37\u4ED3"},"icon":"Barn.svg"},{"_id":"sleeping_area","name":{"en":"Sleeping Area","ru":"\u0421\u043F\u0430\u043B\u044C\u043D\u043E\u0435 \u041C\u0435\u0441\u0442\u043E","de":"Schlafbereich","fr":"Coin Montagne","it":"Area Sleeping","nl":"Sleeping Area","pl":"Powierzchnia Spania","pt":"Sleeping Area","es":"\xC1rea De Dormir","zh-cn":"\u7761\u7720\u533A"},"icon":"Sleeping Area.svg"},{"_id":"bedroom","name":{"en":"Bedroom","ru":"\u0421\u043F\u0430\u043B\u044C\u043D\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"Schlafzimmer","fr":"Chambre","it":"Camera Da Letto","nl":"Slaapkamer","pl":"Sypialnia","pt":"Quarto","es":"Cuarto","zh-cn":"\u5367\u5BA4"},"icon":"Bedroom.svg"},{"_id":"shed","name":{"en":"Shed","ru":"\u0421\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0442\u044C","de":"Schuppen","fr":"Hangar","it":"Capannone","nl":"Schuur","pl":"Budka","pt":"Cabana","es":"Cobertizo","zh-cn":"\u68DA"},"icon":"Shed.svg"},{"_id":"swimming_pool","name":{"en":"Swimming Pool","ru":"\u041F\u043B\u0430\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0411\u0430\u0441\u0441\u0435\u0439\u043D","de":"Schwimmbad","fr":"Piscine","it":"Piscina","nl":"Zwembad","pl":"Basen","pt":"Piscina","es":"Piscina","zh-cn":"\u6E38\u6CF3\u6C60"},"icon":"Swimming Pool.svg"},{"_id":"dining","name":{"en":"Dining","ru":"\u041E\u0431\u0435\u0434\u0435\u043D\u043D\u044B\u0439","de":"Speis","fr":"\xC0 Manger","it":"Cenare","nl":"Dining","pl":"Jadalnia","pt":"Jantar","es":"Comida","zh-cn":"\u7528\u9910"},"icon":"Dining.svg"},{"_id":"playroom","name":{"en":"Playroom","ru":"\u0418\u0433\u0440\u043E\u0432\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"Spielzimmer","fr":"Salle De Jeux","it":"Stanza Dei Giochi","nl":"Speelkamer","pl":"Pok\xF3j Zabaw","pt":"Sala De Jogos","es":"Cuarto De Jugar","zh-cn":"\u6E38\u620F\u5BA4"},"icon":"Playroom.svg"},{"_id":"stairway","name":{"en":"Stairway","ru":"\u041B\u0435\u0441\u0442\u043D\u0438\u0446\u0430","de":"Treppe","fr":"Escalier","it":"Scala","nl":"Trap","pl":"Klatka Schodowa","pt":"Escada","es":"Escalera","zh-cn":"\u697C\u68AF"},"icon":"Stairway.svg"},{"_id":"equipment_room","name":{"en":"Equipment Room","ru":"\u041E\u0431\u043E\u0440\u0443\u0434\u043E\u0432\u0430\u043D\u0438\u0435 \u041D\u043E\u043C\u0435\u0440\u0430","de":"Technikraum","fr":"Salle D'\xC9quipement","it":"Stanza Degli Attrezzi","nl":"Technische Ruimte","pl":"Wyposa\u017Cenie Pokoi","pt":"Sala De Equipamentos","es":"Cuarto De Equipos","zh-cn":"\u673A\u623F"},"icon":"Equipment Room.svg"},{"_id":"terrace","name":{"en":"Terrace","ru":"\u0422\u0435\u0440\u0440\u0430\u0441\u0430","de":"Terrasse","fr":"Terrasse","it":"Terrazza","nl":"Terras","pl":"Taras","pt":"Terra\xE7o","es":"Terraza","zh-cn":"\u9633\u53F0"},"icon":"Terrace.svg"},{"_id":"toilet","name":{"en":"Toilet","ru":"\u0422\u0443\u0430\u043B\u0435\u0442","de":"Toilette","fr":"Toilette","it":"Gabinetto","nl":"Toilet","pl":"Toaleta","pt":"Banheiro","es":"Inodoro","zh-cn":"\u6D17\u624B\u95F4"},"icon":"Toilet.svg"},{"_id":"stairwell","name":{"en":"Stairwell","ru":"\u041B\u0435\u0441\u0442\u043D\u0438\u0447\u043D\u0430\u044F \u043A\u043B\u0435\u0442\u043A\u0430","de":"Treppenhaus","fr":"Cage D'Escalier","it":"Tromba Delle Scale","nl":"Trappenhuis","pl":"Klatka Schodowa","pt":"Caixa De Escada","es":"Hueco De Escalera","zh-cn":"\u697C\u68AF\u95F4"},"icon":"Stairwell.svg"},{"_id":"locker_room","name":{"en":"Locker Room","ru":"\u041A\u0430\u043C\u0435\u0440\u0430 \u0425\u0440\u0430\u043D\u0435\u043D\u0438\u044F","de":"Umkleideraum","fr":"Vestiaire","it":"Spogliatoio","nl":"Kleedkamer","pl":"Szatnia","pt":"Vesti\xE1rio","es":"Vestuario","zh-cn":"\u66F4\u8863\u5BA4"},"icon":"Locker Room.svg"},{"_id":"basement","name":{"en":"Basement","ru":"\u041F\u043E\u0434\u0432\u0430\u043B","de":"Untergeschoss","fr":"Sous-Sol","it":"Seminterrato","nl":"Kelder","pl":"Piwnica","pt":"Por\xE3o","es":"S\xF3tano","zh-cn":"\u5730\u4E0B\u5BA4"},"icon":"Basement.svg"},{"_id":"front_yard","name":{"en":"Front Yard","ru":"\u041F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u0414\u0432\u043E\u0440","de":"Vorgarten","fr":"Front Yard","it":"Cortile","nl":"Voortuin","pl":"Podw\xF3rko","pt":"Jardim Da Frente","es":"Patio Delantero","zh-cn":"\u524D\u9662"},"icon":"Front Yard.svg"},{"_id":"anteroom","name":{"en":"Anteroom","ru":"\u041F\u0435\u0440\u0435\u0434\u043D\u044F\u044F","de":"Vorraum","fr":"Antichambre","it":"Anticamera","nl":"Voorkamer","pl":"Przedpok\xF3j","pt":"Ante-Sala","es":"Antesala","zh-cn":"\u63A5\u5F85\u5BA4"},"icon":"Anteroom.svg"},{"_id":"washroom","name":{"en":"Washroom","ru":"\u0423\u0431\u043E\u0440\u043D\u0430\u044F","de":"Waschraum","fr":"Toilettes","it":"Bagno","nl":"Waskamer","pl":"Umywalnia","pt":"Banheiro","es":"Ba\xF1o","zh-cn":"\u536B\u751F\u95F4"},"icon":"Washroom.svg"},{"_id":"wc","name":{"en":"Wc","ru":"\u0422\u0443\u0430\u043B\u0435\u0442","de":"WC","fr":"Toilettes","it":"Bagno","nl":"Wc","pl":"Toaleta","pt":"Banheiro","es":"Wc","zh-cn":"\u5395\u6240"},"icon":"Wc.svg"},{"_id":"workshop","name":{"en":"Workshop","ru":"\u041C\u0430\u0441\u0442\u0435\u0440\u0441\u043A\u0430\u044F","de":"Werkstatt","fr":"Atelier","it":"Laboratorio","nl":"Werkplaats","pl":"Warsztat","pt":"Oficina","es":"Taller","zh-cn":"\u4F5C\u574A"},"icon":"Workshop.svg"},{"_id":"windscreen","name":{"en":"Windscreen","ru":"\u0412\u0435\u0442\u0440\u043E\u0432\u043E\u0435 \u0421\u0442\u0435\u043A\u043B\u043E","de":"Windfang","fr":"Pare-Brise","it":"Parabrezza","nl":"Voorruit","pl":"Szyba Przednia","pt":"P\xE1ra-Brisas","es":"Parabrisas","zh-cn":"\u98CE\u6863"},"icon":"Windscreen.svg"},{"_id":"living_area","name":{"en":"Living Area","ru":"\u0416\u0438\u043B\u0430\u044F \u041F\u043B\u043E\u0449\u0430\u0434\u044C","de":"Wohnbereich","fr":"Salon","it":"Zona Giorno","nl":"Living Area","pl":"Powierzchnia Mieszkalna","pt":"Sala-De-Estar","es":"Sala De Estar","zh-cn":"\u751F\u6D3B\u533A\u57DF"},"icon":"Living Area.svg"},{"_id":"living_room","name":{"en":"Living Room","ru":"\u0413\u043E\u0441\u0442\u0438\u043D\u043D\u0430\u044F","de":"Wohnzimmer","fr":"Le Salon","it":"Soggiorno","nl":"Woonkamer","pl":"Salon","pt":"Sala De Estar","es":"Sala De Estar","zh-cn":"\u5BA2\u5385"},"icon":"Living Room.svg"},{"_id":"living_room","name":{"en":"Living Room","ru":"\u0413\u043E\u0441\u0442\u0438\u043D\u043D\u0430\u044F","de":"Wohnzimmer","fr":"Le Salon","it":"Soggiorno","nl":"Woonkamer","pl":"Salon","pt":"Sala De Estar","es":"Sala De Estar","zh-cn":"\u5BA2\u5385"},"icon":"Living Room.svg"}]`)}}]); - -//# sourceMappingURL=178.23a28337.chunk.js.map \ No newline at end of file diff --git a/admin/static/js/178.23a28337.chunk.js.map b/admin/static/js/178.23a28337.chunk.js.map deleted file mode 100644 index e8dacb022..000000000 --- a/admin/static/js/178.23a28337.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../node_modules/@babel/runtime/helpers/toArray.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/@iobroker/adapter-react-v5/Components/ColorPicker.js","../node_modules/@iobroker/adapter-react-v5/Components/CustomModal.jsx","../node_modules/@iobroker/adapter-react-v5/Components/FileBrowser.js","../node_modules/@iobroker/adapter-react-v5/Components/FileViewer.js","../node_modules/@iobroker/adapter-react-v5/Components/IconPicker.js","../node_modules/@iobroker/adapter-react-v5/Components/IconSelector.js","../node_modules/@iobroker/adapter-react-v5/Components/Image.js","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ChipInput.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigAlive.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigAutocomplete.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigAutocompleteSendTo.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCRON.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCertificateSelect.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCheckbox.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigChip.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigColor.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCoordinates.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCustom.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigDatePicker.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigFile.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigFileSelector.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigFunc.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigGeneric.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigIP.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigImageUpload.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigInstanceSelect.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigJsonEditor.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigLanguage.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigNumber.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigObjectId.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigPanel.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigPassword.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigPattern.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigRoom.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSelect.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSelectSendTo.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSendto.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSetState.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSlider.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticDivider.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticHeader.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticImage.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticText.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTable.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTabs.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigText.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTextSendTo.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTimePicker.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTopic.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigUser.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/index.jsx","../node_modules/@iobroker/adapter-react-v5/Components/Loaders/Loaders/PT.js","../node_modules/@iobroker/adapter-react-v5/Components/Loaders/Loaders/Vendor.js","../node_modules/@iobroker/adapter-react-v5/Components/Logo.js","../node_modules/@iobroker/adapter-react-v5/Components/MDUtils.js","../node_modules/@iobroker/adapter-react-v5/Components/SelectWithIcon.js","../node_modules/@iobroker/adapter-react-v5/Components/TextWithIcon.js","../node_modules/@iobroker/adapter-react-v5/Components/ToggleThemeMenu.js","../node_modules/@iobroker/adapter-react-v5/Components/TreeTable.js","../node_modules/@iobroker/adapter-react-v5/Components/UploadImage.jsx","../node_modules/@iobroker/adapter-react-v5/Dialogs/ComplexCron.js","../node_modules/@iobroker/adapter-react-v5/Dialogs/FileSelect.js","../node_modules/@iobroker/adapter-react-v5/Dialogs/SimpleCron.js","../node_modules/@iobroker/adapter-react-v5/Dialogs/TextInput.js","../node_modules/@iobroker/adapter-react-v5/icons/IconFx.js","../node_modules/@iobroker/adapter-react-v5/icons/IconLogout.js","../node_modules/@iobroker/adapter-react-v5/icons/IconNoIcon.js","../node_modules/@mui/icons-material/ArrowBack.js","../node_modules/@mui/icons-material/ArrowDownward.js","../node_modules/@mui/icons-material/ArrowUpward.js","../node_modules/@mui/icons-material/Article.js","../node_modules/@mui/icons-material/Bookmark.js","../node_modules/@mui/icons-material/BookmarkBorder.js","../node_modules/@mui/icons-material/Brightness4.js","../node_modules/@mui/icons-material/Brightness5.js","../node_modules/@mui/icons-material/Brightness6.js","../node_modules/@mui/icons-material/Brightness7.js","../node_modules/@mui/icons-material/Clear.js","../node_modules/@mui/icons-material/Colorize.js","../node_modules/@mui/icons-material/CreateNewFolder.js","../node_modules/@mui/icons-material/Crop.js","../node_modules/@mui/icons-material/ExpandMore.js","../node_modules/@mui/icons-material/FilterAlt.js","../node_modules/@mui/icons-material/FilterAltOff.js","../node_modules/@mui/icons-material/FolderOpen.js","../node_modules/@mui/icons-material/GpsFixed.js","../node_modules/@mui/icons-material/Help.js","../node_modules/@mui/icons-material/InsertDriveFile.js","../node_modules/@mui/icons-material/Language.js","../node_modules/@mui/icons-material/List.js","../node_modules/@mui/icons-material/MusicNote.js","../node_modules/@mui/icons-material/NavigateNext.js","../node_modules/@mui/icons-material/PlayArrow.js","../node_modules/@mui/icons-material/SaveAlt.js","../node_modules/@mui/icons-material/UploadFile.js","../node_modules/@mui/icons-material/VerticalAlignBottom.js","../node_modules/@mui/icons-material/VerticalAlignTop.js","../node_modules/@mui/icons-material/Videocam.js","../node_modules/@mui/icons-material/ViewHeadline.js","../node_modules/@mui/icons-material/ViewModule.js","../node_modules/@mui/icons-material/Visibility.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@mui/icons-material/Warning.js","../node_modules/@mui/x-date-pickers/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/x-date-pickers/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/x-date-pickers/internals/utils/utils.js","../node_modules/@mui/x-date-pickers/MonthPicker/PickersMonth.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","../node_modules/@mui/x-date-pickers/MonthPicker/monthPickerClasses.js","../node_modules/@mui/x-date-pickers/MonthPicker/MonthPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useDateValidation.js","../node_modules/@mui/x-date-pickers/CalendarPicker/useCalendarState.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersFadeTransitionGroup.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","../node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","../node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersSlideTransition.js","../node_modules/@mui/x-date-pickers/CalendarPicker/DayPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","../node_modules/@mui/x-date-pickers/internals/components/icons/index.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher.js","../node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","../node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","../node_modules/@mui/x-date-pickers/internals/utils/warning.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersCalendarHeader.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/WrapperVariantContext.js","../node_modules/@mui/x-date-pickers/YearPicker/PickersYear.js","../node_modules/@mui/x-date-pickers/YearPicker/yearPickerClasses.js","../node_modules/@mui/x-date-pickers/YearPicker/YearPicker.js","../node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","../node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","../node_modules/@mui/x-date-pickers/internals/utils/defaultReduceAnimations.js","../node_modules/@mui/x-date-pickers/CalendarPicker/calendarPickerClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/CalendarPicker.js","../node_modules/@mui/x-date-pickers/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js","../node_modules/@mui/x-date-pickers/CalendarPickerSkeleton/CalendarPickerSkeleton.js","../node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/x-date-pickers/ClockPicker/shared.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPointer.js","../node_modules/@mui/x-date-pickers/ClockPicker/Clock.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumber.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumbers.js","../node_modules/@mui/x-date-pickers/ClockPicker/clockPickerClasses.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPicker.js","../node_modules/@mui/x-date-pickers/DatePicker/shared.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePickerToolbar.js","../node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","../node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/DesktopWrapper.js","../node_modules/rifm/dist/rifm.esm.js","../node_modules/@mui/x-date-pickers/internals/utils/text-field-helper.js","../node_modules/@mui/x-date-pickers/internals/hooks/useMaskedInput.js","../node_modules/@mui/x-date-pickers/internals/components/KeyboardDateInput.js","../node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","../node_modules/@mui/x-date-pickers/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePickerState.js","../node_modules/@mui/x-date-pickers/DesktopDatePicker/DesktopDatePicker.js","../node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/MobileWrapper.js","../node_modules/@mui/x-date-pickers/internals/components/PureDateInput.js","../node_modules/@mui/x-date-pickers/MobileDatePicker/MobileDatePicker.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePicker.js","../node_modules/@mui/x-date-pickers/DateTimePicker/shared.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarText.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarButton.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerTabs.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerToolbar.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useTimeValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useDateTimeValidation.js","../node_modules/@mui/x-date-pickers/DesktopDateTimePicker/DesktopDateTimePicker.js","../node_modules/@mui/x-date-pickers/MobileDateTimePicker/MobileDateTimePicker.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePicker.js","../node_modules/@mui/x-date-pickers/TimePicker/shared.js","../node_modules/@mui/x-date-pickers/TimePicker/timePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/TimePicker/TimePickerToolbar.js","../node_modules/@mui/x-date-pickers/DesktopTimePicker/DesktopTimePicker.js","../node_modules/@mui/x-date-pickers/MobileTimePicker/MobileTimePicker.js","../node_modules/@mui/x-date-pickers/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickerStaticWrapper/PickerStaticWrapper.js","../node_modules/@mui/x-date-pickers/StaticDatePicker/StaticDatePicker.js","../node_modules/@mui/x-date-pickers/StaticDateTimePicker/StaticDateTimePicker.js","../node_modules/@mui/x-date-pickers/StaticTimePicker/StaticTimePicker.js","../node_modules/@mui/x-date-pickers/TimePicker/TimePicker.js","../node_modules/@mui/x-date-pickers/locales/nlNL.js","../node_modules/@mui/x-date-pickers/locales/ptBR.js","../node_modules/@mui/x-date-pickers/locales/trTR.js","../node_modules/@mui/x-date-pickers/locales/deDE.js","../node_modules/@mui/x-date-pickers/locales/frFR.js","../node_modules/@mui/x-date-pickers/locales/svSE.js","../node_modules/@mui/x-date-pickers/index.js","../node_modules/ace-builds/src-noconflict/ext-language_tools.js","../node_modules/ace-builds/src-noconflict/mode-json.js","../node_modules/ace-builds/src-noconflict/theme-chrome.js","../node_modules/ace-builds/src-noconflict/theme-clouds_midnight.js","../node_modules/cropperjs/dist/cropper.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/eq.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/map.js","../node_modules/lodash/memoize.js","../node_modules/lodash/property.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toString.js","../node_modules/react-color/es/helpers/alpha.js","../node_modules/react-color/es/helpers/checkboard.js","../node_modules/react-color/es/components/common/Checkboard.js","../node_modules/react-color/es/components/common/Alpha.js","../node_modules/react-color/es/components/common/EditableInput.js","../node_modules/react-color/es/helpers/hue.js","../node_modules/react-color/es/components/common/Hue.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/lodash-es/merge.js","../node_modules/react-color/es/components/common/Raised.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/react-color/es/helpers/saturation.js","../node_modules/react-color/es/components/common/Saturation.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/forEach.js","../node_modules/react-color/es/helpers/color.js","../node_modules/react-color/es/components/common/ColorWrap.js","../node_modules/react-color/es/helpers/interaction.js","../node_modules/react-color/es/components/common/Swatch.js","../node_modules/react-color/es/components/alpha/AlphaPointer.js","../node_modules/react-color/es/components/alpha/Alpha.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/react-color/es/components/block/BlockSwatches.js","../node_modules/react-color/es/components/block/Block.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/react-color/es/components/circle/CircleSwatch.js","../node_modules/react-color/es/components/circle/Circle.js","../node_modules/lodash-es/isUndefined.js","../node_modules/react-color/es/components/chrome/ChromeFields.js","../node_modules/react-color/es/components/chrome/ChromePointer.js","../node_modules/react-color/es/components/chrome/ChromePointerCircle.js","../node_modules/react-color/es/components/chrome/Chrome.js","../node_modules/react-color/es/components/compact/CompactColor.js","../node_modules/react-color/es/components/compact/CompactFields.js","../node_modules/react-color/es/components/compact/Compact.js","../node_modules/react-color/es/components/github/GithubSwatch.js","../node_modules/react-color/es/components/github/Github.js","../node_modules/react-color/es/components/hue/HuePointer.js","../node_modules/react-color/es/components/hue/Hue.js","../node_modules/react-color/es/components/material/Material.js","../node_modules/react-color/es/components/photoshop/PhotoshopFields.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/es/components/photoshop/PhotoshopButton.js","../node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/es/components/photoshop/Photoshop.js","../node_modules/react-color/es/components/sketch/SketchFields.js","../node_modules/react-color/es/components/sketch/SketchPresetColors.js","../node_modules/react-color/es/components/sketch/Sketch.js","../node_modules/react-color/es/components/slider/SliderSwatch.js","../node_modules/react-color/es/components/slider/SliderSwatches.js","../node_modules/react-color/es/components/slider/SliderPointer.js","../node_modules/react-color/es/components/slider/Slider.js","../node_modules/react-color/es/components/swatches/SwatchesColor.js","../node_modules/react-color/es/components/swatches/SwatchesGroup.js","../node_modules/react-color/es/components/swatches/Swatches.js","../node_modules/react-color/es/components/twitter/Twitter.js","../node_modules/react-color/es/components/google/GooglePointerCircle.js","../node_modules/react-color/es/components/google/GooglePointer.js","../node_modules/react-color/es/components/google/GoogleFields.js","../node_modules/react-color/es/components/google/Google.js","../node_modules/react-colorful/src/hooks/useEventCallback.ts","../node_modules/react-colorful/src/utils/clamp.ts","../node_modules/react-colorful/src/components/common/Interactive.tsx","../node_modules/react-colorful/src/utils/format.ts","../node_modules/react-colorful/src/components/common/Pointer.tsx","../node_modules/react-colorful/src/utils/round.ts","../node_modules/react-colorful/src/utils/convert.ts","../node_modules/react-colorful/src/components/common/Hue.tsx","../node_modules/react-colorful/src/components/common/Saturation.tsx","../node_modules/react-colorful/src/utils/compare.ts","../node_modules/react-colorful/src/hooks/useColorManipulation.ts","../node_modules/react-colorful/src/utils/nonce.ts","../node_modules/react-colorful/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-colorful/src/hooks/useStyleSheet.ts","../node_modules/react-colorful/src/components/common/ColorPicker.tsx","../node_modules/react-colorful/src/components/HexColorPicker.tsx","../node_modules/react-colorful/src/components/common/Alpha.tsx","../node_modules/react-colorful/src/components/common/AlphaColorPicker.tsx","../node_modules/react-colorful/src/components/HslaColorPicker.tsx","../node_modules/react-colorful/src/components/HslaStringColorPicker.tsx","../node_modules/react-colorful/src/components/HslColorPicker.tsx","../node_modules/react-colorful/src/components/HslStringColorPicker.tsx","../node_modules/react-colorful/src/components/HsvaColorPicker.tsx","../node_modules/react-colorful/src/components/HsvaStringColorPicker.tsx","../node_modules/react-colorful/src/components/HsvColorPicker.tsx","../node_modules/react-colorful/src/components/HsvStringColorPicker.tsx","../node_modules/react-colorful/src/components/RgbaColorPicker.tsx","../node_modules/react-colorful/src/components/RgbaStringColorPicker.tsx","../node_modules/react-colorful/src/components/RgbColorPicker.tsx","../node_modules/react-colorful/src/components/RgbStringColorPicker.tsx","../node_modules/react-colorful/src/utils/validate.ts","../node_modules/react-colorful/src/components/common/ColorInput.tsx","../node_modules/react-colorful/src/components/HexColorInput.tsx","../node_modules/react-cropper/dist/react-cropper.es.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/reactcss/lib/index.js","../node_modules/reactcss/lib/loop.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/tinycolor2/tinycolor.js"],"names":["styles","theme","color","width","height","borderRadius","delButton","marginTop","swatch","padding","background","boxShadow","display","cursor","verticalAlign","swatchDisabled","opacity","popover","position","zIndex","cover","top","right","bottom","left","textDense","marginBottom","ColorPicker","props","setState","displayColorPicker","state","onChange","getColor","value","style","openAbove","Object","assign","className","disabled","marginRight","name","root","classes","e","handleChange","target","handleClick","handleClose","pColor","sColor","isHex","rgb","r","toString","padStart","g","b","a","rgb2hex","m","match","length","parseInt","React","Component","propTypes","PropTypes","bool","string","func","isRequired","object","_export","withStyles","modalDialog","minWidth","maxWidth","overflowHidden","overflow","titleIcon","content","fontSize","languageButton","spacing","languageButtonActive","palette","primary","main","CustomModal","toggleTranslation","noTranslation","title","fullWidth","help","progress","icon","applyDisabled","applyButton","open","onClose","children","titleButtonApply","titleButtonClose","onApply","textInput","defaultValue","useState","setValue","useEffect","Icon","paper","I18n","getLanguage","Utils","clsx","t","paddingTop","defaultProps","any","ROW_HEIGHT","BUTTON_WIDTH","TILE_HEIGHT","TILE_WIDTH","NOT_FOUND","dialog","mixins","toolbar","minHeight","filesDiv","overflowX","overflowY","filesDivTable","filesDivTile","alignContent","alignItems","flexWrap","flex","itemTile","userSelect","textAlign","transition","margin","secondary","light","invertColor","itemNameFolderTile","fontWeight","itemNameTile","textOverflow","wordBreak","itemFolderIconTile","paddingLeft","itemFolderIconBack","mode","itemSizeTile","itemImageTile","objectFit","itemIconTile","itemSelected","itemTable","lineHeight","itemNameTable","flexGrow","itemNameFolderTable","itemSizeTable","itemAccessTable","paddingRight","justifyContent","itemImageTable","maxHeight","itemIconTable","itemFolderTable","itemFolderTemp","itemFolderIconTable","marginLeft","itemDownloadButtonTable","itemAclButtonTable","itemDeleteButtonTable","uploadDiv","uploadDivDragging","uploadCenterDiv","border","uploadCenterIcon","uploadCenterText","uploadCloseButton","uploadCenterTextAndIcon","menuButtonExpertActive","pathDiv","whiteSpace","pathDivInput","pathDivBreadcrumb","paddingBottom","borderBottom","pathDivBreadcrumbDir","pathDivBreadcrumbSlash","pathDivBreadcrumbFile","backgroundImageLight","backgroundImageDark","backgroundImageColored","direction","specialFolder","USER_DATA","folder","dir","parts","split","pop","join","path","ext","getFileExtension","toLowerCase","TABLE","TILE","FileBrowser","id","fileName","size","key","pos","lastIndexOf","substring","console","log","folders","_tempTimeout","clearTimeout","setTimeout","browseFolder","then","array","backgroundImage","indexOf","window","_localStorage","localStorage","setItem","expanded","getItem","limitPath","limitToObjectID","limitToPath","endsWith","JSON","parse","filter","startsWith","viewType","showViewTypeButton","selected","currentDir","isFile","getParentDir","filterEmpty","expertMode","addFolder","uploadFile","deleteItem","marked","viewer","formatEditFile","errorText","modalEditOfAccess","queueLength","loadAllFolders","allFoldersLoaded","fileErrors","imagePrefix","levelPadding","mounted","suppressDeleteConfirm","browseList","browseListRunning","initialReadFinished","supportSubscribes","browseFolders","Promise","resolve","findItem","pathFocus","scrollToSelected","el","document","getElementById","scrollIntoView","loadFolders","socket","checkFeatureSupported","result","subscribeFiles","onFileChange","unsubscribeFiles","values","forEach","timer","foldersList","_newFolders","_resolve","keys","shift","adapter","relPath","reject","push","processBrowseList","level","processing","readDir","files","item","folderId","_checkEmpty","force","all","map","error","readMetaItems","objs","_folders","userData","obj","_id","findIndex","splice","common","meta","from","ts","acl","sort","unshift","alert","readDirSerial","file","isDir","stats","modified","modifiedAt","sortFolders","stopPropagation","stringify","temp","err","lastSelect","Date","now","onSelect","cb","filterFiles","includes","filterByType","EXTENSIONS","IconOpen","IconClosed","isUserData","isSpecialData","select","changeFolder","toggleFolder","lang","end","undefined","formatAcl","allowDownload","allowDelete","formatBytes","access","permissions","images","getClassBackgroundImage","onerror","getFileIcon","formatSize","getEditFile","res","renderBackFolder","renderFolder","renderFile","renderItems","showExpertButton","menuButton","allowCreateFolder","allowUpload","setStateBackgroundImage","parentFolder","find","findFirstFolder","text","parent","replace","setOpacityTimer","items","getElementsByClassName","i","data","writeFile64","_item","acceptedFiles","count","reader","FileReader","onabort","onload","readAsArrayBuffer","getRootProps","getInputProps","deleteRecursive","deleteFolder","parentId","f","deleteFile","newState","themeName","info","changed","it","p","part","keyCode","changeToPath","renderBreadcrumb","ready","foldersLoading","showToolbar","renderToolbar","renderPath","renderInputDialog","renderUpload","renderDeleteDialog","allowView","renderViewDialog","modalEditOfAccessControl","modalEditOfAccessObjData","renderError","tileView","withWidth","textarea","img","dialogTitle","code","txt","audio","video","buffer","binary","bytes","Uint8Array","len","byteLength","String","fromCharCode","btoa","FileViewer","timeout","readFile","forceUpdate","href","editingValue","Buffer","_","editing","copyPossible","imgError","type","detectMimeType","bufferToBase64","onFileChanged","newValue","readOnly","scrollPaper","getContent","copyToClipboard","IconPicker","IconCustom","useStyles","makeStyles","formContainer","formControl","divContainer","dragField","formIcon","onDrop","useCallback","addEventListener","readAsDataURL","useDropzone","isDragActive","customClasses","label","previewClassName","icons","onlyRooms","onlyDevices","base64","backgroundColor","devices","rooms","IconSelector","opened","names","loading","promises","src","en","getSvg","isAnyName","templates","_i","template","image","require","offset","loadAllIcons","endAdornment","svgContainer","createElement","innerHTML","svg","firstElementChild","remove","removeChild","ret","prop","toUpperCase","Image","created","showError","getSvgFromData","atob","getElementFromSource","inner","svgProps","serializeAttrs","attributes","__html","variantComponent","standard","Input","filled","FilledInput","outlined","OutlinedInput","bottomLineColor","inputRoot","boxSizing","input","appearance","WebkitTapHighlightColor","chipContainer","flexFlow","labeled","labelShrink","helperText","focused","underline","transform","transitions","create","duration","shorter","easing","easeOut","pointerEvents","borderBottomColor","borderBottomStyle","chip","marginDense","keyCodes","BACKSPACE","DELETE","LEFT_ARROW","RIGHT_ARROW","ChipInput","chips","focusedChip","inputValue","isClean","isFocused","chipsUpdated","prevPropsValue","actualInput","focus","event","onBlur","addChipOptions","blurBehavior","clearInputOnFail","delayBeforeAdd","numChipsBefore","inputBlurTimeout","numChipsAfter","handleAddChip","clearInput","onFocus","_keyPressed","_preventChipCreation","onKeyDown","isDefaultPrevented","newChipKeyCodes","newChipKeys","preventDefault","handleDeleteChip","updateInput","onKeyUp","onKeyPress","onUpdateInput","ref","inputRef","labelRef","createRef","variant","labelNode","ReactDOM","findDOMNode","current","blur","options","onBeforeAdd","dataSourceConfig","allowDuplicates","some","c","onAdd","updateChips","trim","onDelete","slice","additionalUpdates","alwaysShowPlaceholder","chipRenderer","defaultChipRenderer","clearInputValueOnChange","dataSource","disableUnderline","FormHelperTextProps","fullWidthInput","InputProps","InputLabelProps","placeholder","required","rootRef","other","actualInputValue","hasInput","shrinkFloatingLabel","shrink","chipComponents","isDisabled","isReadOnly","handleDelete","InputMore","notched","labelWidth","offsetWidth","startAdornment","InputComponent","handleUpdateInput","handleKeyDown","handleKeyPress","handleKeyUp","handleInputFocus","handleInputBlur","setActualInputRef","oneOf","shape","node","arrayOf","number","blue","notAlive","ConfigAlive","instance","getInstance","getState","alive","val","schema","adapterName","getPattern","textAlive","textNotAlive","ConfigGeneric","ConfigAutocomplete","getValue","attr","selectOptions","Array","isArray","DIFFERENT_LABEL","DIFFERENT_VALUE","isIndeterminate","indeterminate","freeSolo","option","params","getText","renderHelp","helpLink","themeType","onError","ConfigAutocompleteSendTo","askInstance","jsonData","sendTo","command","list","context","getContext","alsoDependsOn","maxLength","max","button","ConfigCRON","showDialog","simple","complex","dateFormat","isFloatComma","ConfigCertificateSelect","getCertificates","NONE_LABEL","NONE_VALUE","ConfigCheckbox","checked","validatorErrorText","ConfigLanguage","delimiter","prevValue","index","ConfigColor","showColorDialog","colorDialogValue","textColor","isUseBright","renderColorDialog","onPaste","ConfigCoordinates","autoInit","getCoordinates","getSystemConfig","longitude","latitude","divider","navigator","geolocation","getCurrentPosition","coords","getSystemCoordinates","getOrLoadRemote","remote","shareScope","remoteFallbackUrl","existingRemote","querySelector","__initialized","init","__webpack_share_scopes__","d","script","setAttribute","async","getElementsByTagName","appendChild","loadComponent","sharedScope","module","url","container","get","factory","Module","ConfigCustom","location","protocol","host","i18n","i18nURL","fetch","json","extendTranslations","uniqueName","fileToLoad","componentName","component","xs","lg","md","sm","darkStyle","newLine","flexBasis","ConfigDatePicker","systemConfig","fullWidthOneButton","fullWidthIcon","selectedImage","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","loadFile","AudioContext","buf","ConfigFileSelector","base64ToArrayBuffer","decodeAudioData","source","createBufferSource","connect","destination","start","extension","backgroundSize","backgroundRepeat","play","showFileBrowser","selectOnlyFolders","getIcon","disableEdit","renderFileBrowser","fullWidthTwoButtons","fullWidthThreeButtons","dropZone","dropZoneEmpty","flexDirection","disabledOpacity","deleteButton","dropzoneRef","objectID","upload","updateFiles","readFiles","pattern","folderName","dirFiles","readFolder","ok","regExp","RegExp","test","maxSize","Math","round","reduce","byte","isOk","withFolder","noSize","noNone","buttons","refresh","element","accept","last","errors","message","uploadError","binaryString","charCodeAt","ConfigFunc","getEnums","enums","confirmDialog","confirmNewValue","confirmAttr","confirmData","isError","custom","defaultFunc","executeCustom","instanceObj","arrayIndex","globalData","execute","registerOnForceUpdate","onUpdate","LIKE_SELECT","defaultSendTo","defaultSendToDone","sendToTimeout","confirm","cancel","confirmDepAttr","confirmDepNewValue","confirmOldValue","condition","confirmDependsOn","z","dep","onChangeDependsOn","calculateFunc","customObj","hiddenDependsOn","hidden","labelDependsOn","helpDependsOn","ignoreOwnChanges","_attr","Function","originalData","validator","link","renderTextWithA","calculate","hideOnlyControl","validatorNoSaveOnError","renderedItem","renderItem","commandRunning","tooltip","buttonTooltip","buttonTooltipNoTranslation","renderConfirmDialog","getPrototypeOf","constructor","customs","ConfigIP","getHostByIp","ips","listenOnAllPorts","address","onlyIp4","family","onlyIp6","ConfigImageUpload","imageRef","fileExists","exist","_getUrl","update","port","hostname","crop","ConfigInstanceSelect","getHistory","getAdapterInstances","instances","subscribeObject","onInstancesUpdate","unsubscribeObject","wrapper","ConfigJsonEditor","initialized","showSelectId","enableBasicAutocompletion","enableLiveAutocompletion","enableSnippets","$blockScrolling","LANGUAGES","languages","system","changeGuiLanguage","setLanguage","changeLanguage","language","control","textWithArrows","arrows","arrowUp","arrowDown","ConfigNumber","_value","arr","parseFloat","min","isNumber","step","isFinite","isNaN","ConfigObjectId","components","autocomplete","autocompleteSendTo","certificate","checkbox","ConfigChip","coordinates","cron","datePicker","ConfigStaticDivider","fileSelector","header","ConfigStaticHeader","ip","jsonEditor","objectId","password","ConfigPassword","ConfigPattern","room","ConfigRoom","ConfigSelect","selectSendTo","ConfigSelectSendTo","ConfigSendto","ConfigSetState","slider","ConfigSlider","staticImage","ConfigStaticImage","staticLink","ConfigStaticText","staticText","table","ConfigTable","ConfigText","textSendTo","ConfigTextSendTo","timePicker","ConfigTimePicker","topic","ConfigTopic","user","ConfigUser","heading","ConfigPanel","collapsable","multiEdit","noMultiEdit","ItemComponent","ConfigPanelStyled","onCommandRunning","panel","themaType","isParentTab","halfWidth1","halfWidth2","PASSWORD_PLACEHOLDER","_repeat","_visible","_notEqual","repeatPassword","repeat","onChangePassword","autoComplete","form","visible","passwordRepeat","copy","initialValue","menuPaper","multiple","_getValue","gap","v","showAllValues","manual","_error","_message","response","args","arg","_onClick","renderErrorDialog","renderMessageDialog","getObject","ack","okText","unit","marks","borderStyle","contrastText","marginBlockEnd","marginBlockStart","headerText","visuallyHidden","clip","addIcon","highlight","dark","rootTool","silver","filteredOut","buttonEmpty","buttonCell","nameOfFirstAttr","nameOfSecondAttr","row","property","orderCheck","order","orderBy","isAsc","newOrder","stableSort","iteration","applyFilter","comparator","getComparator","stabilizedThis","visibleValue","onChangeWrapper","updateVisible","typingTimer","objKeyName","objValue","arrayToObject","objValueName","handleRequestSort","newItem","accumulator","currentValue","clear","filterRefs","valueInputRef","idx","objectToArray","filterOn","attrItem","schemaForAttribute","schemaItem","valueChange","newObj","buttonsWidth","headCell","noDelete","doAnyFilterSet","isAnyFilterSet","allowAddByFilter","enhancedTableHead","onMoveUp","onMoveDown","descendingComparator","tabs","ConfigTabs","tab","dialogName","prefix","namespace","convertID2Topic","getUsers","users","_users","getObjectNameFromObj","getInvertedColor","JsonConfigComponent","onValueChange","_data","forceUpdateHandlers","updateData","buildDependencies","readData","readSettings","getCompactSystemConfig","subscribeState","onAlive","_list","flatten","attrs","warn","depObj","forceAttrUpdate","exists","ptStyles","LoaderPT","head","vendorStyles","LoaderVendor","logo","Logo","evt","contents","onLoad","readAsText","news","titleLang","desc","generateFile","handleFileSelect","click","readme","win","download","filename","encodeURIComponent","body","MDUtils","extractHeader","lines","_header","line","doc","different","SelectWithIcon","wordDifferent","allowNone","removePrefix","dense","inputProps","clone","oneOfType","div","TextWithIcon","moreClasses","toggleTheme","lookup","getAttr","setAttr","tableContainer","cell","rowMainWithChildren","rowMainWithoutChildren","rowNoEdit","cellExpand","cellButton","cellHeader","width_name_nicknames","width_ioType","width_type","width_displayTraits","width_roomHint","rowSecondary","fontStyle","cellSecondary","fieldEditWithButton","fieldEdit","fieldButton","colorDialog","subText","glow","animation","_a","_b","TreeTable","editMode","deleteMode","editData","columns","field","useTable","showSelectColor","glowOnChange","col","renderCellEditSelect","editComponent","renderCellEditCustom","renderCellEditBoolean","renderCellEditColor","renderCellEditObjectID","renderCellEditString","EditComponent","newVal","selectCallback","selectIdValue","_val","newColor","editable","cellStyle","renderCellEdit","renderCellNonEdit","sub","subField","subLookup","mainText","subStyle","levelShift","renderCellWithSubField","ii","renderCell","newData","renderLine","headerStyle","noSort","noAdd","updateTimeout","renderHead","renderSelectIdDialog","renderSelectColorDialog","oldLine","cropperStyles","outline","buttonRemoveWrapper","buttonCropWrapper","UploadImage","anchorEl","cropHandler","cropperRef","removeIconFunc","currentTarget","Boolean","imageElement","cropper","getCroppedCanvas","toDataURL","headerID","radio","dialogPaper","DialogComplexCron","onOk","clearButton","handleClear","handleOk","handleCancel","dialogMobile","contentMobile","titleRoot","DialogFileSelect","filters","isFolder","isMobile","innerWidth","isDoubleClick","DialogSimpleCron","TextInput","titleText","promptText","labelText","charCode","verify","rule","applyText","cancelText","IconFx","onClick","IconLogout","IconNoIcon","handler","callbackRef","useRef","fn","clamp","isTouch","getParentWindow","ownerDocument","defaultView","self","getRelativePosition","touchId","rect","getBoundingClientRect","pointer","touches","identifier","pageX","pageXOffset","pageY","pageYOffset","preventDefaultMove","Interactive","onMove","onKey","rest","onMoveCallback","useEventCallback","onKeyCallback","hasTouch","useMemo","handleMove","toggleDocumentEvents","handleMoveEnd","touch","parentWindow","toggleEvent","removeEventListener","nativeEvent","changedTouches","which","handleMoveStart","onTouchStart","onMouseDown","tabIndex","role","formatClassName","Pointer","nodeClassName","digits","base","pow","angleUnits","grad","turn","rad","PI","hexToRgba","hex","substr","parseHue","Number","hslaStringToHsva","hslString","exec","hslaToHsva","h","s","l","hslStringToHsva","hsvaToHsla","hh","hsvaToHslString","hsva","hsvaToHslaString","hsvaToRgba","floor","hsvaStringToHsva","hsvString","roundHsva","hsvStringToHsva","rgbaStringToHsva","rgbaString","rgbaToHsva","rgbStringToHsva","format","delta","Hue","hue","interaction","aria-label","aria-valuetext","Saturation","containerStyle","equalColorObjects","first","second","equalColorString","colorModel","onChangeCallback","toHsva","updateHsva","cache","equal","newHsva","fromHsva","nonce","useIsomorphicLayoutEffect","useLayoutEffect","getNonce","__webpack_nonce__","setNonce","hash","styleElementMap","Map","useStyleSheet","nodeRef","parentDocument","has","styleElement","set","defaultColor","useColorManipulation","HexColorPicker","Alpha","gradientStyle","AlphaColorPicker","HslaColorPicker","HslaStringColorPicker","HslColorPicker","HslStringColorPicker","HsvaColorPicker","HsvaStringColorPicker","HsvColorPicker","HsvStringColorPicker","RgbaColorPicker","RgbaStringColorPicker","RgbColorPicker","RgbStringColorPicker","matcher","ColorInput","escape","validate","process","onBlurCallback","handleBlur","spellCheck","HexColorInput","prefixed","alpha"],"mappings":"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","file":"static/js/178.23a28337.chunk.js","sourcesContent":["var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\n\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","/**\n * Copyright 2018-2022 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport {ChromePicker} from 'react-color';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\nimport IconDelete from '@mui/icons-material/Delete';\n\nconst styles = theme => ({\n color: {\n width: 36,\n height: 14,\n borderRadius: 2,\n },\n delButton: {\n //width: 32,\n //height: 32,\n marginTop: 16,\n },\n swatch: {\n marginTop: 16,\n padding: 5,\n background: '#fff',\n borderRadius: 1,\n boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\n display: 'inline-block',\n cursor: 'pointer',\n verticalAlign: 'middle',\n },\n swatchDisabled: {\n opacity: 0.5,\n cursor: 'default'\n },\n popover: {\n position: 'absolute',\n zIndex: 2,\n },\n cover: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n textDense: {\n marginTop: 0,\n marginBottom: 0,\n }\n});\n\n/**\n * @typedef {object} Rgb\n * @property {number} r The red component of the color (0-255).\n * @property {number} g The green component of the color (0-255).\n * @property {number} b The blue component of the color (0-255).\n * @property {number} a The alpha component of the color (0-255).\n *\n * @typedef {string | Rgb | { rgb: Rgb }} Color Definition of a color.\n *\n * @typedef {object} ColorPickerProps\n * @property {boolean} [disabled] Set to true to disable the color picker.\n * @property {Color} [value] The currently selected color.\n * @property {(rgba: string) => void} [onChange] The color change callback.\n * @property {string} [name] The name.\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n * @property {boolean} [openAbove] Open the color picker above the field?\n *\n * @extends {React.Component}\n */\nclass ColorPicker extends React.Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n this.state = {\n displayColorPicker: false,\n color: this.props.value || this.props.color,\n };\n }\n\n /**\n * Get the state derived from the given properties and state.\n * @param {{ color: Color; }} props\n * @param {{ color: Color; }} state\n */\n static getDerivedStateFromProps(props, state) {\n const pColor = ColorPicker.getColor(props.value || props.color);\n const sColor = ColorPicker.getColor(state.color);\n if (pColor !== sColor) {\n return {color: props.value || props.color}\n } else {\n return null;\n }\n }\n\n /**\n * @private\n */\n handleClick = () => {\n this.setState({displayColorPicker: !this.state.displayColorPicker});\n };\n\n /**\n * @private\n */\n handleClose = () => {\n this.setState({displayColorPicker: false});\n };\n\n /**\n * Convert the given color to hex ('#rrggbb') or rgba ('rgba(r,g,b,a)') format.\n * @param {Color} [color]\n * @param {boolean} [isHex] The returning string should be in hex format\n * @returns {string} the hex or rgba representation of the given color.\n */\n static getColor(color, isHex) {\n if (color && typeof color === 'object') {\n if (color.rgb) {\n if (isHex) {\n return '#' + color.rgb.r.toString(16).padStart(2, '0') + color.rgb.g.toString(16).padStart(2, '0') + color.rgb.b.toString(16).padStart(2, '0');\n } else {\n return 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')';\n }\n } else {\n if (isHex) {\n return '#' + color.r.toString(16).padStart(2, '0') + color.g.toString(16).padStart(2, '0') + color.b.toString(16).padStart(2, '0');\n } else {\n return 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')';\n }\n }\n } else {\n return isHex ? ColorPicker.rgb2hex(color || '') : color || '';\n }\n }\n\n /**\n * Convert rgb() or rgba() format to hex format #rrggbb.\n * @param {string} rgb\n * @returns {string}\n */\n static rgb2hex(rgb){\n const m = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n\n return m && m.length === 4 ? '#' +\n parseInt(m[1],10).toString(16).padStart(2, '0') +\n parseInt(m[2],10).toString(16).padStart(2, '0') +\n parseInt(m[3],10).toString(16).padStart(2, '0') : rgb;\n }\n\n /**\n * @private\n */\n handleChange = color => {\n this.setState({color});\n this.props.onChange && this.props.onChange(ColorPicker.getColor(color));\n };\n\n render() {\n const color = ColorPicker.getColor(this.state.color);\n let style = {};\n\n if (this.state.displayColorPicker && this.props.openAbove) {\n style = {\n top: -241,\n };\n }\n\n return \n this.handleChange(e.target.value)}\n />\n {color ? this.handleChange('')}\n size=\"small\"\n className={this.props.classes.delButton}\n style={color ? {} : {opacity: 0, cursor: 'default'}}\n > : null}\n
!this.props.disabled && this.handleClick()}>\n
\n
\n { this.state.displayColorPicker && !this.props.disabled ?
\n
this.handleClose()}/>\n this.handleChange(color)} />\n
: null }\n
;\n }\n}\n\nColorPicker.propTypes = {\n disabled: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n name: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n openAbove: PropTypes.bool,\n};\n\n/** @type {typeof ColorPicker} */\nconst _export = withStyles(styles)(ColorPicker);\nexport default _export;","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport Button from '@mui/material/Button';\nimport {Dialog, DialogActions, DialogContent, DialogTitle, IconButton, TextField} from '@mui/material';\nimport { withStyles } from '@mui/styles';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\nimport LanguageIcon from '@mui/icons-material/Language';\n\nimport Utils from './Utils';\nimport I18n from '../i18n';\n\nconst styles = theme => ({\n modalDialog: {\n minWidth: 400,\n maxWidth: 800,\n },\n overflowHidden: {\n display: 'flex',\n overflow: 'hidden'\n },\n titleIcon: {\n marginRight: 5,\n },\n content: {\n fontSize: 16,\n },\n languageButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1)\n },\n languageButtonActive: {\n color: theme.palette.primary.main\n },\n});\n\nconst CustomModal = ({ toggleTranslation, noTranslation, title, fullWidth, help, maxWidth, progress, icon, applyDisabled, applyButton, classes, open, onClose, children, titleButtonApply, titleButtonClose, onApply, textInput, defaultValue, overflowHidden }) => {\n const [value, setValue] = useState(defaultValue);\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n let Icon = null;\n\n if (icon) {\n Icon = icon;\n }\n\n return \n {title && \n {icon ? : null}\n {title}\n {I18n.getLanguage() !== 'en' && toggleTranslation ? toggleTranslation()}\n title={I18n.t('Disable/Enable translation')}\n >\n \n : null}\n }\n \n {textInput && setValue(e.target.value)}\n // customValue\n />}\n {children}\n {help ?
{help}
: null}\n
\n \n {applyButton && }\n disabled={progress || (applyDisabled && defaultValue === value)}\n onClick={() => onApply(textInput ? value : '')}\n variant=\"contained\"\n color=\"primary\"\n >\n {I18n.t(titleButtonApply)}\n }\n }\n >\n {I18n.t(titleButtonClose)}\n \n \n ;\n}\n\nCustomModal.defaultProps = {\n open: false,\n onApply: () => { },\n onClose: () => { },\n applyButton: true,\n applyDisabled: false,\n titleButtonClose: 'Cancel',\n titleButtonApply: 'Ok',\n overflowHidden: false,\n help: ''\n};\n\nCustomModal.propTypes = {\n icon: PropTypes.object,\n open: PropTypes.bool,\n onClose: PropTypes.func,\n children: PropTypes.any,\n titleButtonClose: PropTypes.string,\n titleButtonApply: PropTypes.string,\n onApply: PropTypes.func,\n fullWidth: PropTypes.bool,\n maxWidth: PropTypes.string,\n help: PropTypes.string,\n noTranslation: PropTypes.bool,\n toggleTranslation: PropTypes.func,\n};\n\nexport default withStyles(styles)(CustomModal);\n","/**\n * Copyright 2020-2022, bluefox \n *\n * MIT License\n *\n **/\nimport React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\nimport Dropzone from 'react-dropzone';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Toolbar from '@mui/material/Toolbar';\nimport IconButton from '@mui/material/IconButton';\nimport Fab from '@mui/material/Fab';\nimport Dialog from '@mui/material/Dialog';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Input from '@mui/material/Input';\nimport { Hidden, Tooltip } from '@mui/material';\n\nimport ErrorDialog from '../Dialogs/Error';\nimport Utils from './Utils';\nimport TextInputDialog from '../Dialogs/TextInput';\nimport { EXTENSIONS } from './FileViewer';\nimport FileViewer from './FileViewer';\n// import FileViewer from '@iobroker/adapter-react-v5/Components/FileViewer';\n\n// Icons\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport CloseIcon from '@mui/icons-material/Close';\nimport JsonIcon from '@mui/icons-material/Bookmark';\nimport CssIcon from '@mui/icons-material/BookmarkBorder';\nimport HtmlIcon from '@mui/icons-material/Description';\nimport EditIcon from '@mui/icons-material/Edit';\nimport JSIcon from '@mui/icons-material/Code';\nimport FileIcon from '@mui/icons-material/InsertDriveFile';\nimport UploadIcon from '@mui/icons-material/Publish';\nimport MusicIcon from '@mui/icons-material/MusicNote';\nimport DownloadIcon from '@mui/icons-material/SaveAlt';\nimport AddFolderIcon from '@mui/icons-material/CreateNewFolder';\nimport EmptyFilterIcon from '@mui/icons-material/FolderOpen';\nimport IconList from '@mui/icons-material/List';\nimport IconTile from '@mui/icons-material/ViewModule';\nimport IconBack from '@mui/icons-material/ArrowBack';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\n\nimport ExpertIcon from '../icons/IconExpert';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconNoIcon from '../icons/IconNoIcon';\n\nimport withWidth from './withWidth';\n\nconst ROW_HEIGHT = 32;\nconst BUTTON_WIDTH = 32;\nconst TILE_HEIGHT = 120;\nconst TILE_WIDTH = 64;\n\nconst NOT_FOUND = 'Not found';\n\nconst styles = theme => ({\n dialog: {\n height: `calc(100% - ${theme.mixins.toolbar.minHeight}px)`,\n },\n root: {\n width: '100%',\n overflow: 'hidden',\n height: '100%',\n position: 'relative',\n },\n filesDiv: {\n width: `calc(100% - ${theme.spacing(2)})`,\n overflowX: 'hidden',\n overflowY: 'auto',\n padding: theme.spacing(1),\n },\n filesDivTable: {\n height: `calc(100% - ${48 + parseInt(theme.spacing(1), 10)}px)`,\n },\n filesDivTile: {\n height: `calc(100% - ${48 * 2 + parseInt(theme.spacing(1), 10)}px)`,\n display: 'flex',\n alignContent: 'flex-start',\n alignItems: 'stretch',\n flexWrap: 'wrap',\n flex: `0 0 ${TILE_WIDTH}px`,\n },\n\n itemTile: {\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n height: TILE_HEIGHT,\n width: TILE_WIDTH,\n display: 'inline-block',\n textAlign: 'center',\n opacity: 0.1,\n transition: 'opacity 1s',\n margin: 4,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameFolderTile: {\n fontWeight: 'bold',\n },\n itemNameTile: {\n width: '100%',\n height: 32,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontSize: 12,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n itemFolderIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n paddingLeft: 8,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemFolderIconBack: {\n position: 'absolute',\n top: 22,\n left: 18,\n zIndex: 1,\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n },\n itemSizeTile: {\n width: '100%',\n height: 16,\n textAlign: 'center',\n fontSize: 10,\n },\n itemImageTile: {\n width: 'calc(100% - 8px)',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n margin: 4,\n display: 'block',\n textAlign: 'center',\n objectFit: 'contain',\n },\n itemIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n objectFit: 'contain',\n },\n\n itemSelected: {\n background: theme.palette.primary.main,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n\n itemTable: {\n userSelect: 'none',\n cursor: 'pointer',\n height: ROW_HEIGHT,\n display: 'inline-flex',\n lineHeight: `${ROW_HEIGHT}px`,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameTable: {\n display: 'inline-block',\n paddingLeft: 10,\n fontSize: '1rem',\n verticalAlign: 'top',\n flexGrow: 1,\n },\n itemNameFolderTable: {\n fontWeight: 'bold',\n },\n itemSizeTable: {\n display: 'inline-block',\n width: 60,\n verticalAlign: 'top',\n textAlign: 'right',\n },\n itemAccessTable: {\n // display: 'inline-block',\n verticalAlign: 'top',\n width: 60,\n textAlign: 'right',\n paddingRight: 5,\n display: 'flex',\n justifyContent: 'center',\n },\n itemImageTable: {\n display: 'inline-block',\n width: 30,\n marginTop: 1,\n objectFit: 'contain',\n maxHeight: 30,\n },\n itemIconTable: {\n display: 'inline-block',\n marginTop: 1,\n width: 30,\n height: 30,\n },\n itemFolderTable: {\n\n },\n itemFolderTemp: {\n opacity: 0.4,\n },\n itemFolderIconTable: {\n marginTop: 1,\n marginLeft: theme.spacing(1),\n display: 'inline-block',\n width: 30,\n height: 30,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemDownloadButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n '& span': {\n paddingTop: 9,\n },\n '& svg': {\n width: 14,\n height: 14,\n fontSize: '1rem',\n },\n },\n itemAclButtonTable: {\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n fontSize: 12,\n display: 'flex',\n },\n itemDeleteButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n '& svg': {\n width: 18,\n height: 18,\n fontSize: '1.5rem',\n },\n },\n\n uploadDiv: {\n top: 0,\n zIndex: 1,\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n opacity: 0.9,\n textAlign: 'center',\n background: '#FFFFFF',\n },\n uploadDivDragging: {\n opacity: 1,\n },\n\n uploadCenterDiv: {\n margin: 20,\n border: '3px dashed grey',\n borderRadius: 30,\n width: 'calc(100% - 40px)',\n height: 'calc(100% - 40px)',\n position: 'relative',\n color: theme.palette.mode === 'dark' ? '#222' : '#CCC',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n uploadCenterIcon: {\n width: '25%',\n height: '25%',\n },\n uploadCenterText: {\n fontSize: 24,\n fontWeight: 'bold',\n },\n uploadCloseButton: {\n zIndex: 2,\n position: 'absolute',\n top: 30,\n right: 30,\n },\n uploadCenterTextAndIcon: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n height: '30%',\n width: '50%',\n margin: '-15% 0 0 -25%',\n },\n menuButtonExpertActive: {\n color: '#c00000',\n },\n pathDiv: {\n display: 'flex',\n width: `calc(100% - ${theme.spacing(2)})`,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n textOverflow: 'clip',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n pathDivInput: {\n width: '100%',\n },\n pathDivBreadcrumb: {\n paddingTop: 3,\n paddingBottom: 2,\n borderBottom: 'solid 1px',\n },\n pathDivBreadcrumbDir: {\n paddingLeft: 4,\n paddingRight: 4,\n paddingBottom: 4,\n cursor: 'pointer',\n '&:hover': {\n background: theme.palette.mode === 'dark' ? '#333' : '#CCC',\n },\n },\n pathDivBreadcrumbSlash: {\n paddingLeft: 4,\n paddingRight: 4,\n paddingBottom: 4,\n opacity: 0.7,\n },\n pathDivBreadcrumbFile: {\n cursor: 'pointer',\n flexGrow: 1,\n },\n backgroundImageLight: {\n background: 'white',\n },\n backgroundImageDark: {\n background: 'black',\n },\n backgroundImageColored: {\n background: 'silver',\n },\n '@media screen and (max-width: 500px)': {\n itemNameTable: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n textAlign: 'end',\n direction: 'rtl',\n },\n },\n specialFolder: {\n color: theme.palette.mode === 'dark' ? '#229b0f' : '#5dd300'\n }\n});\n\nconst USER_DATA = '0_userdata.0';\n\nfunction sortFolders(a, b) {\n if (a.folder && b.folder) {\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n }\n if (a.folder) {\n return -1;\n }\n if (b.folder) {\n return 1;\n }\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n}\n\nfunction getParentDir(dir) {\n const parts = (dir || '').split('/');\n parts.length && parts.pop();\n return parts.join('/');\n}\n\nfunction isFile(path) {\n const ext = Utils.getFileExtension(path);\n if (ext && ext.toLowerCase().match(/[a-z]+/) && ext.length < 5) {\n return true;\n }\n\n return false;\n}\n\nconst TABLE = 'Table';\nconst TILE = 'Tile';\n\n/**\n * @extends {React.Component}\n */\nclass FileBrowser extends Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n let expanded = (window._localStorage || window.localStorage).getItem('files.expanded') || '[]';\n\n if (this.props.limitPath) {\n const parts = this.props.limitPath.split('/');\n this.limitToObjectID = parts[0];\n this.limitToPath = !parts.length ? null : (parts.length === 1 && parts[0] === '' ? null : parts.join('/'));\n if (this.limitToPath && this.limitToPath.endsWith('/')) {\n this.limitToPath.substring(0, this.limitToPath.length - 1);\n }\n }\n\n try {\n expanded = JSON.parse(expanded);\n if (this.limitToPath) {\n expanded = expanded.filter(id => id.startsWith(this.limitToPath + '/') || id === this.limitToPath || this.limitToPath.startsWith(id + '/'));\n }\n } catch (e) {\n expanded = [];\n }\n\n let viewType;\n if (this.props.showViewTypeButton) {\n viewType = (window._localStorage || window.localStorage).getItem('files.viewType') || TABLE;\n } else {\n viewType = TABLE;\n }\n\n const selected = this.props.selected || (window._localStorage || window.localStorage).getItem('files.selected') || USER_DATA;\n let currentDir = '';\n if (isFile(selected)) {\n currentDir = getParentDir(selected);\n } else {\n currentDir = selected;\n }\n const backgroundImage = (window._localStorage || window.localStorage).getItem('files.backgroundImage') || null;\n\n this.state = {\n viewType,\n folders: {},\n filterEmpty: (window._localStorage || window.localStorage).getItem('files.empty') !== 'false',\n expanded,\n currentDir,\n expertMode: this.props.expertMode,\n addFolder: false,\n uploadFile: false,\n deleteItem: '',\n marked: [],\n viewer: '',\n formatEditFile: '',\n path: selected,\n selected,\n errorText: '',\n modalEditOfAccess: false,\n backgroundImage,\n queueLength: 0,\n loadAllFolders: false,\n allFoldersLoaded: false,\n fileErrors: [],\n };\n\n this.imagePrefix = this.props.imagePrefix || './files/';\n\n this.levelPadding = this.props.levelPadding || 20;\n this.mounted = true;\n this.suppressDeleteConfirm = 0;\n\n this.browseList = [];\n this.browseListRunning = false;\n this.initialReadFinished = false;\n this.supportSubscribes = null;\n this._tempTimeout = {};\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.expertMode !== undefined && props.expertMode !== state.expertMode) {\n return { expertMode: props.expertMode, loadAllFolders: true };\n }\n\n return null;\n }\n\n loadFolders() {\n this.initialReadFinished = false;\n\n return this.browseFolder('/')\n .then(folders => {\n return this.state.viewType === TABLE ?\n this.browseFolders([...this.state.expanded], folders)\n :\n (this.state.currentDir && this.state.currentDir !== '/' && (!this.limitToObjectID || this.state.currentDir.startsWith(this.limitToObjectID)) ? this.browseFolder(this.state.currentDir, folders) : Promise.resolve(folders))\n })\n .then(folders => this.setState({ folders }, () => {\n if (this.state.viewType === TABLE && !this.findItem(this.state.selected)) {\n const parts = this.state.selected.split('/');\n while (parts.length && !this.findItem(parts.join('/'))) {\n parts.pop();\n }\n let selected;\n if (parts.length) {\n selected = parts.join('/');\n } else {\n selected = USER_DATA;\n }\n this.setState({ selected, path: selected, pathFocus: false }, () => this.scrollToSelected());\n } else {\n this.scrollToSelected();\n }\n this.initialReadFinished = true;\n }));\n }\n\n scrollToSelected() {\n if (this.mounted) {\n const el = document.getElementById(this.state.selected);\n el && el.scrollIntoView();\n }\n }\n\n componentDidMount() {\n this.mounted = true;\n this.loadFolders();\n return this.props.socket.checkFeatureSupported('BINARY_STATE_EVENT')\n .then(result => {\n this.supportSubscribes = result;\n this.supportSubscribes && this.props.socket.subscribeFiles('*', '*', this.onFileChange);\n });\n }\n\n componentWillUnmount() {\n this.supportSubscribes && this.props.socket.unsubscribeFiles('*', '*', this.onFileChange);\n this.mounted = false;\n this.browseList = null;\n this.browseListRunning = false;\n Object.values(this._tempTimeout)\n .forEach(timer => timer && clearTimeout(timer));\n this._tempTimeout = {};\n }\n\n browseFolders(foldersList, _newFolders, _resolve) {\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder => _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (!_resolve) {\n return new Promise(resolve => this.browseFolders(foldersList, _newFolders, resolve));\n }\n\n if (!foldersList || !foldersList.length) {\n return _resolve(_newFolders);\n }\n\n return this.browseFolder(foldersList.shift(), _newFolders)\n .then(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0))\n .catch(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0));\n }\n\n readDirSerial(adapter, relPath) {\n return new Promise((resolve, reject) => {\n if (this.browseList) { // if component still mounted\n this.browseList.push({\n resolve, reject, adapter, relPath,\n });\n !this.browseListRunning && this.processBrowseList();\n }\n });\n }\n\n processBrowseList(level) {\n if (!this.browseListRunning && this.browseList && this.browseList.length) {\n this.browseListRunning = true;\n if (this.browseList.length > 10) {\n // not too often\n if (!(this.browseList.length % 10)) {\n this.setState({ queueLength: this.browseList.length });\n }\n } else {\n this.setState({ queueLength: this.browseList.length });\n }\n\n this.browseList[0].processing = true;\n this.props.socket.readDir(this.browseList[0].adapter, this.browseList[0].relPath)\n .then(files => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const resolve = item.resolve;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n resolve(files);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n })\n .catch(e => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const reject = item.reject;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n reject(e);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n });\n }\n }\n\n browseFolder(folderId, _newFolders, _checkEmpty, force) {\n if (typeof _newFolders === 'boolean') {\n force = _newFolders;\n _newFolders = null;\n }\n\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder =>\n _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (_newFolders[folderId] && !force) {\n if (!_checkEmpty) {\n return new Promise((resolve, reject) =>\n Promise.all(_newFolders[folderId].filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(error => { })))\n .then(() => resolve(_newFolders))\n .catch(error => reject(error)));\n }\n\n return Promise.resolve(_newFolders);\n }\n\n if (!folderId || folderId === '/') {\n return this.props.socket.readMetaItems()\n .then(objs => {\n const _folders = [];\n let userData = null;\n\n // load only adapter.admin and not other meta files like hm-rpc.0.devices.blablabla\n if (!this.state.expertMode) {\n objs = objs.filter(obj => !obj._id.endsWith('.admin'));\n }\n const pos = objs.findIndex(obj => obj._id === 'system.meta.uuid');\n if (pos !== -1) {\n objs.splice(pos, 1);\n }\n\n // remember, that all folders are loaded\n if (this.state.expertMode) {\n this.setState({ allFoldersLoaded: true, loadFolders: false });\n }\n\n objs.forEach(obj => {\n if (this.limitToObjectID && this.limitToObjectID !== obj._id) {\n return;\n }\n\n const item = {\n id: obj._id,\n name: obj._id,\n title: (obj.common && obj.common.name) || obj._id,\n meta: true,\n from: obj.from,\n ts: obj.ts,\n color: obj.common && obj.common.color,\n icon: obj.common && obj.common.icon,\n folder: true,\n acl: obj.acl,\n level: 0,\n };\n if (item.id === USER_DATA) {\n // user data must be first\n userData = item;\n } else {\n _folders.push(item);\n }\n });\n _folders.sort((a, b) => (a.id > b.id ? 1 : (a.id < b.id ? -1 : 0)));\n if (!this.limitToObjectID || this.limitToObjectID === USER_DATA) {\n userData && _folders.unshift(userData);\n }\n\n _newFolders[folderId || '/'] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders.filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(error => { })))\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => this.initialReadFinished && window.alert(`Cannot read meta items: ${e}`));\n }\n\n const parts = folderId.split('/');\n const level = parts.length;\n const adapter = parts.shift();\n const relPath = parts.join('/');\n\n // make all requests here serial\n return this.readDirSerial(adapter, relPath)\n .then(files => {\n const _folders = [];\n files.forEach(file => {\n const item = {\n id: `${folderId}/${file.file}`,\n ext: Utils.getFileExtension(file.file),\n folder: file.isDir,\n name: file.file,\n size: file.stats && file.stats.size,\n modified: file.modifiedAt,\n acl: file.acl,\n level,\n };\n\n if (this.limitToPath) {\n if (item.folder && (item.id.startsWith(this.limitToPath + '/') || item.id === this.limitToPath || this.limitToPath.startsWith(item.id + '/'))) {\n _folders.push(item);\n } else if (item.id.startsWith(this.limitToPath + '/')) {\n _folders.push(item);\n }\n } else {\n _folders.push(item);\n }\n });\n\n _folders.sort(sortFolders);\n _newFolders[folderId] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders\n .filter(item => item.folder)\n .map(item => this.browseFolder(item.id, _newFolders, true))\n )\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => {\n this.initialReadFinished && window.alert(`Cannot read ${adapter}${relPath ? `/${relPath}` : ''}: ${e}`);\n _newFolders[folderId] = [];\n return _newFolders;\n });\n }\n\n toggleFolder(item, e) {\n e && e.stopPropagation();\n const expanded = [...this.state.expanded];\n const pos = expanded.indexOf(item.id);\n if (pos === -1) {\n expanded.push(item.id);\n expanded.sort();\n\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n\n if (!item.temp) {\n return this.browseFolder(item.id)\n .then(folders => this.setState({ expanded, folders }))\n .catch(err => window.alert(err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', item.id) : this.props.t('ra_Cannot read \"%s\"', item.id)));\n } else {\n this.setState({ expanded });\n }\n } else {\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ expanded });\n }\n }\n\n onFileChange = (id, fileName, size) => {\n const key = id + '/' + fileName;\n const pos = key.lastIndexOf('/');\n const folder = key.substring(0, pos);\n console.log(`File changed ${key}[${size}]`);\n\n if (this.state.folders[folder]) {\n this._tempTimeout[folder] && clearTimeout(this._tempTimeout[folder]);\n\n this._tempTimeout[folder] = setTimeout(() => {\n delete this._tempTimeout[folder];\n\n this.browseFolder(folder, true)\n .then(folders => this.setState({ folders }));\n }, 300);\n }\n };\n\n changeFolder(e, folder) {\n e && e.stopPropagation();\n\n this.lastSelect = Date.now();\n\n folder = folder || getParentDir(this.state.currentDir);\n\n if (folder === '/') {\n folder = '';\n }\n\n (window._localStorage || window.localStorage).setItem('files.currentDir', folder);\n\n if (folder && !this.state.folders[folder]) {\n return this.browseFolder(folder)\n .then(folders =>\n this.setState({\n folders,\n path: folder,\n currentDir: folder,\n selected: folder,\n pathFocus: false\n }, () =>\n this.props.onSelect && this.props.onSelect('')));\n }\n\n return this.setState({\n currentDir: folder,\n selected: folder,\n path: folder,\n pathFocus: false\n }, () =>\n this.props.onSelect && this.props.onSelect(''));\n }\n\n select(id, e, cb) {\n if (typeof e === 'function') {\n cb = e;\n e = null;\n }\n e && e.stopPropagation();\n this.lastSelect = Date.now();\n (window._localStorage || window.localStorage).setItem('files.selected', id);\n this.setState({ selected: id, path: id, pathFocus: false }, () => {\n if (this.props.onSelect) {\n const ext = Utils.getFileExtension(id);\n if ((!this.props.filterFiles || this.props.filterFiles.includes(ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(ext))\n ) {\n this.props.onSelect(id, false, !!this.state.folders[id]);\n } else {\n this.props.onSelect('');\n }\n }\n cb && cb();\n });\n }\n\n renderFolder(item, expanded) {\n if (this.state.filterEmpty && (!this.state.folders[item.id] || !this.state.folders[item.id].length) && item.id !== USER_DATA && !item.temp) {\n return null;\n }\n const Icon = expanded ? IconOpen : IconClosed;\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const isUserData = item.name === USER_DATA;\n const isSpecialData = isUserData || item.name === 'vis.0';\n\n return this.state.viewType === TABLE ? this.select(item.id, e) : this.changeFolder(e, item.id)}\n onDoubleClick={e => this.state.viewType === TABLE && this.toggleFolder(item, e)}\n title={item.title && typeof item.title === 'object' ? (item.title[this.props.lang] || item.title.end || '') : (item.title || null)}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n item.temp && this.props.classes['itemFolderTemp'],\n )}\n >\n this.toggleFolder(item, e) : undefined} />\n\n
{isUserData ? this.props.t('ra_User files') : item.name}
\n\n \n
{this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : ''}
\n
\n\n \n {this.state.viewType === TABLE ? this.formatAcl(item.acl) : null}\n \n\n \n {this.state.viewType === TABLE && this.props.expertMode ?
: null}\n \n {this.state.viewType === TABLE && this.props.allowDownload ?
: null}\n\n {this.state.viewType === TABLE && this.props.allowDelete && this.state.folders[item.id] && this.state.folders[item.id].length ?\n {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n \n \n :\n (this.state.viewType === TABLE && this.props.allowDelete ?
: null)}\n
;\n }\n\n renderBackFolder() {\n return this.changeFolder(e)}\n title={this.props.t('ra_Back to %s', getParentDir(this.state.currentDir))}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n )}\n >\n \n \n\n ..
\n
;\n }\n\n formatSize(size) {\n return
{size || size === 0 ? Utils.formatBytes(size) : ''}
;\n }\n\n formatAcl(acl) {\n let access = acl && (acl.permissions || acl.file);\n if (access) {\n access = access.toString(16).padStart(3, '0');\n }\n\n return
\n this.setState({ modalEditOfAccess: true })}\n className={this.props.classes['itemAclButton' + this.state.viewType]}\n >{access || '---'}\n
;\n }\n\n getFileIcon(ext) {\n switch (ext) {\n case 'json':\n return ;\n\n case 'css':\n return ;\n\n case 'js':\n case 'ts':\n return ;\n\n case 'html':\n case 'md':\n return ;\n\n case 'mp3':\n case 'ogg':\n case 'wav':\n case 'm4a':\n case 'mp4':\n case 'flac':\n return ;\n\n default:\n return ;\n }\n }\n\n static getEditFile(ext) {\n switch (ext) {\n case 'json':\n case 'js':\n case 'html':\n case 'txt':\n return true;\n default:\n return false;\n }\n }\n\n setStateBackgroundImage = () => {\n const array = ['light', 'dark', 'colored', 'delete'];\n this.setState(({ backgroundImage }) => {\n if (array.indexOf(backgroundImage) !== -1 && array.length - 1 !== array.indexOf(backgroundImage)) {\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[array.indexOf(backgroundImage) + 1]);\n return { backgroundImage: array[array.indexOf(backgroundImage) + 1] };\n }\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[0]);\n return { backgroundImage: array[0] };\n });\n }\n\n getClassBackgroundImage = () => {\n // ['light', 'dark', 'colored', 'delete']\n switch (this.state.backgroundImage) {\n case 'light':\n return this.props.classes.backgroundImageLight;\n case 'dark':\n return this.props.classes.backgroundImageDark;\n case 'colored':\n return this.props.classes.backgroundImageColored;\n case 'delete':\n return null;\n default:\n return null;\n }\n }\n\n renderFile(item) {\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const ext = Utils.getFileExtension(item.name);\n\n return {\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n onClick={e => this.select(item.id, e)}\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px)` } : {}}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFile${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n )}\n >\n {EXTENSIONS.images.includes(ext) ?\n this.state.fileErrors.includes(item.id) ?\n :\n {\n e.target.onerror = null;\n const fileErrors = [...this.state.fileErrors];\n if (!fileErrors.includes(item.id)) {\n fileErrors.push(item.id);\n this.setState({ fileErrors });\n }\n }}\n className={Utils.clsx(this.props.classes['itemImage' + this.state.viewType], this.getClassBackgroundImage())}\n src={this.imagePrefix + item.id} alt={item.name}\n />\n :\n this.getFileIcon(ext)}\n
{item.name}
\n {this.formatSize(item.size)}\n {this.state.viewType === TABLE ? this.formatAcl(item.acl) : null}\n \n {this.state.viewType === TABLE && this.props.expertMode && FileBrowser.getEditFile(ext) ?\n {\n e.stopPropagation();\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n \n \n :\n
}\n \n {this.state.viewType === TABLE && this.props.allowDownload ? e.stopPropagation()}\n size=\"large\"\n >\n \n : null}\n\n {this.state.viewType === TABLE &&\n this.props.allowDelete &&\n item.id !== 'vis.0/' &&\n item.id !== USER_DATA\n ?\n {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n \n \n :\n (this.state.viewType === TABLE && this.props.allowDelete ?\n
\n :\n null\n )\n }\n
;\n }\n\n renderItems(folderId) {\n if (this.state.folders && this.state.folders[folderId]) {\n // tile\n if (this.state.viewType === TILE) {\n const res = [];\n if (folderId && folderId !== '/') {\n res.push(this.renderBackFolder());\n }\n this.state.folders[folderId].forEach(item => {\n if (item.folder) {\n res.push(this.renderFolder(item));\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n }\n });\n return res;\n }\n return this.state.folders[folderId].map(item => {\n const res = [];\n if (item.folder) {\n const expanded = this.state.expanded.includes(item.id);\n\n res.push(this.renderFolder(item, expanded));\n if (this.state.folders[item.id] && expanded) {\n res.push(this.renderItems(item.id));\n }\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n } else {\n return null;\n }\n\n return res;\n });\n }\n\n return
\n \n
\n {this.state.queueLength}\n
\n
;\n }\n\n renderToolbar() {\n return \n {this.props.showExpertButton ? this.setState({ expertMode: !this.state.expertMode })}\n size=\"large\"\n >\n \n : null}\n {this.props.showViewTypeButton ? {\n const viewType = this.state.viewType === TABLE ? TILE : TABLE;\n (window._localStorage || window.localStorage).setItem('files.viewType', viewType);\n let currentDir = this.state.selected;\n if (isFile(currentDir)) {\n currentDir = getParentDir(currentDir);\n }\n this.setState({ viewType, currentDir }, () => {\n if (this.state.viewType === TABLE) {\n this.scrollToSelected();\n }\n });\n }}\n size=\"large\"\n >\n {this.state.viewType !== TABLE ? : }\n : null}\n {\n (window._localStorage || window.localStorage).setItem('file.empty', !this.state.filterEmpty);\n this.setState({ filterEmpty: !this.state.filterEmpty });\n }}\n size=\"large\"\n >\n \n \n this.setState({ folders: {} }, () => this.loadFolders())}\n size=\"large\"\n >\n \n \n {this.props.allowCreateFolder ? this.setState({ addFolder: true })}\n size=\"large\"\n >\n \n : null}\n {this.props.allowUpload ? this.setState({ uploadFile: true })}\n size=\"large\"\n >\n \n : null}\n \n \n \n \n \n ;\n }\n\n findItem(id, folders) {\n folders = folders || this.state.folders;\n if (!folders) {\n return null;\n }\n const parts = id.split('/');\n parts.pop();\n const parentFolder = parts.join('/') || '/';\n if (!folders[parentFolder]) {\n return null;\n }\n return folders[parentFolder].find(item => item.id === id);\n }\n\n renderInputDialog() {\n if (this.state.addFolder) {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n return window.alert(this.props.t('ra_Invalid parent folder!'));\n }\n\n return this.state.folders[parentFolder].find(item => item.name === text) ? '' : this.props.t('ra_Duplicate name')}\n onClose={name => {\n if (name) {\n const folders = {};\n Object.keys(this.state.folders).forEach(folder => folders[folder] = this.state.folders[folder]);\n const parent = this.findItem(parentFolder);\n const id = `${parentFolder}/${name}`;\n folders[parentFolder].push({\n id,\n level: parent.level + 1,\n name,\n folder: true,\n temp: true,\n });\n\n folders[parentFolder].sort(sortFolders);\n\n folders[id] = [];\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n }\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ addFolder: false, folders, expanded }, () =>\n this.select(id));\n } else {\n this.setState({ addFolder: false });\n }\n }}\n replace={text => text.replace(/[^-_\\w\\d]/, '_')}\n />;\n }\n return null;\n }\n\n componentDidUpdate(/* prevProps , prevState, snapshot */) {\n this.setOpacityTimer && clearTimeout(this.setOpacityTimer);\n this.setOpacityTimer = setTimeout(() => {\n this.setOpacityTimer = null;\n const items = window.document.getElementsByClassName('browserItem');\n for (let i = 0; i < items.length; i++) {\n items[i].style.opacity = 1;\n }\n }, 100);\n }\n\n uploadFile(fileName, data) {\n const parts = fileName.split('/');\n const adapter = parts.shift();\n return this.props.socket.writeFile64(adapter, parts.join('/'), data)\n .catch(e => window.alert(`Cannot write file: ${e}`));\n }\n\n findFirstFolder(id) {\n let parentFolder = id;\n const item = this.findItem(parentFolder);\n // find folder\n if (item && !item.folder) {\n const parts = parentFolder.split('/');\n parts.pop();\n parentFolder = '';\n while (parts.length) {\n const _item = this.findItem(parts.join('/'));\n if (_item && _item.folder) {\n parentFolder = parts.join('/');\n break;\n }\n }\n }\n\n return parentFolder;\n }\n\n renderUpload() {\n if (this.state.uploadFile) {\n return [\n this.setState({ uploadFile: false })}\n >\n \n ,\n this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={acceptedFiles => {\n let count = acceptedFiles.length;\n\n acceptedFiles.forEach(file => {\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n return window.alert(this.props.t('ra_Invalid parent folder!'));\n }\n const id = `${parentFolder}/${file.name}`;\n\n this.uploadFile(id, reader.result)\n .then(() => {\n if (!--count) {\n this.setState({ uploadFile: false }, () => {\n if (this.supportSubscribes) {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ expanded }, () =>\n this.select(id));\n } else {\n setTimeout(() =>\n this.browseFolder(parentFolder, true)\n .then(folders => {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ folders, expanded }, () =>\n this.select(id));\n })\n , 500);\n }\n });\n }\n });\n };\n\n reader.readAsArrayBuffer(file);\n });\n }}\n >\n {({ getRootProps, getInputProps }) => (\n \n \n
\n
\n \n
\n {\n this.state.uploadFile === 'dragging' ? this.props.t('ra_Drop file here') :\n this.props.t('ra_Place your files here or click here to open the browse dialog')\n }\n
\n
\n
\n
)}\n ,\n ];\n }\n return null;\n }\n\n deleteRecursive(id) {\n const item = this.findItem(id);\n if (item.folder) {\n return (this.state.folders[id] ? Promise.all(this.state.folders[id].map(_item =>\n this.deleteRecursive(_item.id))) : Promise.resolve())\n .then(() => {\n // If it is folder of second level\n if (item.level >= 1) {\n const parts = id.split('/');\n const adapter = parts.shift();\n this.props.socket.deleteFolder(adapter, parts.join('/'))\n .then(() => {\n // remove this folder\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n delete folders[item.id];\n // delete folder from parent item\n const parentId = getParentDir(item.id);\n const parentFolder = folders[parentId];\n if (parentFolder) {\n const pos = parentFolder.indexOf(parentFolder.find(f => f.id === item.id));\n if (pos !== -1) {\n parentFolder.splice(pos, 1);\n }\n\n this.select(parentId, () => this.setState({ folders }));\n }\n });\n }\n });\n }\n\n const parts = id.split('/');\n const adapter = parts.shift();\n if (parts.length) {\n return this.props.socket.deleteFile(adapter, parts.join('/'))\n .catch(e => window.alert(`Cannot delete file: ${e}`));\n }\n return Promise.resolve();\n }\n\n deleteItem(deleteItem) {\n deleteItem = deleteItem || this.state.deleteItem;\n\n this.setState({ deleteItem: '' }, () =>\n this.deleteRecursive(deleteItem)\n .then(() => {\n const newState = {};\n const pos = this.state.expanded.indexOf(deleteItem);\n if (pos !== -1) {\n const expanded = [...this.state.expanded];\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n newState.expanded = expanded;\n }\n\n if (!this.supportSubscribes) {\n let parentFolder = this.findFirstFolder(deleteItem);\n const folders = {};\n Object.keys(this.state.folders).forEach(name => {\n if (name !== parentFolder && !name.startsWith(parentFolder + '/')) {\n folders[name] = this.state.folders[name];\n }\n });\n newState.folders = folders;\n\n this.setState(newState, () =>\n setTimeout(() => this.browseFolders([...this.state.expanded], folders)\n .then(folders => this.setState({ folders })), 200));\n\n } else {\n this.setState(newState);\n }\n })\n );\n }\n\n renderDeleteDialog() {\n if (this.state.deleteItem) {\n return this.setState({ deleteItem: '' })}\n aria-labelledby=\"form-dialog-title\"\n >\n {this.props.t('ra_Confirm deletion of %s', this.state.deleteItem.split('/').pop())}\n \n \n {this.props.t('ra_Are you sure?')}\n \n \n \n {\n this.suppressDeleteConfirm = Date.now() + 60000 * 5;\n this.deleteItem();\n }}\n >\n {this.props.t('ra_Delete (no confirm for 5 mins)')}\n \n \n \n \n ;\n }\n return false;\n }\n\n renderViewDialog() {\n return this.state.viewer ? this.setState({ viewer: '', formatEditFile: '' })}\n /> : null;\n }\n\n renderError() {\n if (this.state.errorText) {\n return this.setState({ errorText: '' })} />;\n }\n return null;\n }\n\n updateItemsAcl(info) {\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n let changed;\n info.forEach(it => {\n const item = this.findItem(it.id, folders);\n if (item && JSON.stringify(item.acl) !== JSON.stringify(it.acl)) {\n item.acl = it.acl;\n changed = true;\n }\n });\n changed && this.setState({ folders });\n }\n\n changeToPath() {\n setTimeout(() => {\n if (this.state.path !== this.state.selected && (!this.lastSelect || Date.now() - this.lastSelect > 100)) {\n let folder = this.state.path;\n if (isFile(this.state.path)) {\n folder = getParentDir(this.state.path);\n }\n new Promise(resolve => {\n if (!this.state.folders[folder]) {\n return this.browseFolder(folder)\n .then(folders => this.setState({ folders }, () => resolve(true)))\n .catch(err => this.setState({ errorText: err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', folder) : this.props.t('ra_Cannot read \"%s\"', folder) }));\n }\n return resolve(true);\n })\n .then(result =>\n result && this.setState({ selected: this.state.path, currentDir: folder, pathFocus: false }));\n } else if (!this.lastSelect || Date.now() - this.lastSelect > 100) {\n this.setState({ pathFocus: false });\n }\n }, 100);\n }\n\n renderBreadcrumb() {\n const parts = this.state.selected.startsWith('/') ? this.state.selected.split('/') : (`/${this.state.selected}`).split('/');\n const p = [];\n return parts.map((part, i) => {\n part && p.push(part);\n const path = p.join('/');\n if (i < parts.length - 1) {\n return [\n
this.changeFolder(e, path || '/')}>\n {part || this.props.t('ra_Root')}\n
,\n {'>'}];\n }\n return
this.setState({ pathFocus: true })}>{part}
;\n });\n }\n\n renderPath() {\n return
\n {this.state.pathFocus ?\n e.keyCode === 13 && this.changeToPath()}\n onBlur={() => this.changeToPath()}\n onChange={e => this.setState({ path: e.target.value })}\n className={this.props.classes.pathDivInput}\n />\n :\n this.renderBreadcrumb()\n }\n
;\n }\n\n render() {\n if (!this.props.ready) {\n return ;\n }\n\n if (this.state.loadAllFolders && !this.foldersLoading) {\n this.foldersLoading = true;\n setTimeout(() => {\n this.setState({ loadAllFolders: false, folders: {} }, () => {\n this.foldersLoading = false;\n this.loadFolders();\n });\n }, 300);\n }\n\n return
\n {this.props.showToolbar ? this.renderToolbar() : null}\n {this.state.viewType === TILE ? this.renderPath() : null}\n
\n {this.state.viewType === TABLE ? this.renderItems('/') : this.renderItems(this.state.currentDir || '/')}\n
\n {this.props.allowUpload ? this.renderInputDialog() : null}\n {this.props.allowUpload ? this.renderUpload() : null}\n {this.props.allowDelete ? this.renderDeleteDialog() : null}\n {this.props.allowView ? this.renderViewDialog() : null}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n {this.renderError()}\n
;\n }\n}\n\nFileBrowser.defaultProps = {\n modalEditOfAccessControl: () => { },\n};\n\nFileBrowser.propTypes = {\n style: PropTypes.object,\n className: PropTypes.string,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n socket: PropTypes.object.isRequired,\n ready: PropTypes.bool,\n expertMode: PropTypes.bool,\n showToolbar: PropTypes.bool,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n imagePrefix: PropTypes.string,\n showExpertButton: PropTypes.bool,\n viewType: PropTypes.string,\n showViewTypeButton: PropTypes.bool,\n\n selected: PropTypes.string,\n tileView: PropTypes.bool,\n filterFiles: PropTypes.array, // like ['png', 'svg', 'bmp', 'jpg', 'jpeg']\n filterByType: PropTypes.string, // images, code or txt from FileViewer.EXTENSIONS\n onSelect: PropTypes.func, // function (id, isDoubleClick)\n\n modalEditOfAccessControl: PropTypes.func,\n};\n\n/** @type {typeof FileBrowser} */\nconst _export = withWidth()(withStyles(styles)(FileBrowser));\nexport default _export;","import React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@mui/material/TextField';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { IconButton } from '@mui/material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\nimport CloseIcon from '@mui/icons-material/Close';\nimport SaveIcon from '@mui/icons-material/Save';\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n },\n paper: {\n height: 'calc(100% - 64px)',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n },\n dialogTitle: {\n justifyContent: 'space-between',\n display: 'flex'\n }\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],\n code: ['js', 'json', 'md'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n audio: ['mp3', 'wav', 'ogg', 'acc'],\n video: ['mp4', 'mov', 'avi'],\n};\n\nfunction bufferToBase64(buffer) {\n let binary = '';\n let bytes = new Uint8Array(buffer);\n let len = bytes.byteLength;\n for (let i = 0; i < len && i < 50; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\n * @property {string} [key] The key to identify this component.\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component}\n */\nclass FileViewer extends Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n const ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n ext,\n editing: !!this.props.formatEditFile || false,\n editingValue: null,\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\n forceUpdate: Date.now(),\n changed: false,\n imgError: false,\n };\n }\n\n readFile() {\n if (this.props.href) {\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.socket.readFile(adapter, name)\n .then(data => {\n if (data.file !== undefined) {\n data = data.file;\n }\n\n const newState = {copyPossible: this.state.copyPossible};\n // try to detect valid extension\n if (data.type === 'Buffer') {\n const ext = Utils.detectMimeType(bufferToBase64(data.data));\n if (ext) {\n newState.ext = ext;\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\n }\n }\n\n if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(this.state.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(this.state.ext)) {\n newState.code = data;\n newState.editingValue = data;\n }\n }\n\n this.setState(newState);\n })\n .catch(e => window.alert('Cannot read file: ' + e));\n }\n }\n\n componentDidMount() {\n this.readFile();\n\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n componentWillUnmount() {\n this.timeout && clearTimeout(this.timeout);\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n onFileChanged = (id, fileName, size) => {\n if (!this.state.changed) {\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (size === null) {\n window.alert('Show file was deleted!');\n } else if (this.state.text !== null || this.state.code !== null) {\n this.readFile();\n } else {\n this.setState({ forceUpdate: Date.now() });\n }\n }, 300);\n }\n };\n\n writeFile64 = () => {\n const parts = this.props.href.split('/');\n const data = this.state.editingValue;\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\n .then(_ => this.props.onClose())\n .catch(e => window.alert('Cannot write file: ' + e));\n }\n\n getEditFile(ext) {\n switch (ext) {\n case 'json':\n return 'json';\n case 'js':\n return 'javascript';\n case 'html':\n return 'html';\n case 'txt':\n return 'html';\n default:\n return 'json';\n }\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.state.ext)) {\n if (this.state.imgError) {\n return ;\n } else {\n return {\n e.target.onerror = null;\n this.setState({ imgError: true });\n }}\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\n src={this.props.href + '?ts=' + this.state.forceUpdate}\n alt={this.props.href}\n />;\n }\n } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n return this.setState({ editingValue: newValue, changed: true })}\n InputProps={{ readOnly: !this.state.editing,}}\n />;\n }\n }\n\n render() {\n return this.props.onClose()}\n fullWidth={true}\n maxWidth=\"xl\"\n aria-labelledby=\"form-dialog-title\"\n >\n
\n {this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href}\n {EXTENSIONS.images.includes(this.state.ext) &&
\n \n \n \n
\n }\n
\n \n {this.getContent()}\n \n \n {this.state.copyPossible ?\n Utils.copyToClipboard(this.state.text || this.state.code, e)}\n startIcon={}\n >\n {this.props.t('Copy content')}\n : null}\n {this.state.editing ?\n }\n >\n {this.props.t('Save')}\n : null}\n this.props.onClose()}\n color=\"primary\"\n startIcon={}\n >\n {this.props.t('Close')}\n \n \n ;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n lang: PropTypes.string,\n expertMode: PropTypes.bool,\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n supportSubscribes: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n","import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDropzone} from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport IconButton from '@mui/material/IconButton';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component}\n */\nlet IconPicker = function (props) {\n let IconCustom = props.icon;\n\n const useStyles = makeStyles(theme => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center'\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n }\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});\n\n return
\n {IconCustom ? : null}\n \n \n { props.label }\n \n
\n {props.value ?\n
\n \n {!props.disabled && props.onChange('')}\n >\n \n }\n
\n :\n (!props.disabled && props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)\n }\n\n {!props.disabled && \n \n {\n isDragActive ?\n {I18n.t('ra_Drop the files here...')} :\n {I18n.t(`ra_Drag 'n' drop some files here, or click to select files`)}\n }\n
}\n
\n \n
;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\n// import devices from '../assets/devices/list.json';\nconst devices = [\n {\n \"_id\": \"hood\",\n \"name\": {\n \"en\": \"Hood\",\n \"ru\": \"Вытяжка\",\n \"de\": \"Abzugshaube\",\n \"fr\": \"Capot\",\n \"it\": \"Cappe\",\n \"nl\": \"Hood\",\n \"pl\": \"Okapy\",\n \"pt\": \"Hood\",\n \"es\": \"Campana\",\n \"zh-cn\": \"抽油烟机\"\n },\n \"icon\": \"Hoods.svg\"\n },\n {\n \"_id\": \"alarm_system\",\n \"name\": {\n \"en\": \"Alarm System\",\n \"ru\": \"Сигнализация\",\n \"de\": \"Alarmanlage\",\n \"fr\": \"Systèmes D'Alarme\",\n \"it\": \"Sistemi Di Allarme\",\n \"nl\": \"Alarm Systems\",\n \"pl\": \"Systemy Alarmowe\",\n \"pt\": \"Sistemas De Alarme\",\n \"es\": \"Sistemas De Alarma\",\n \"zh-cn\": \"报警系统\"\n },\n \"icon\": \"Alarm Systems.svg\"\n },\n {\n \"_id\": \"battery_status\",\n \"name\": {\n \"en\": \"Battery Status\",\n \"ru\": \"Заряд батареи\",\n \"de\": \"Batteriestatus\",\n \"fr\": \"État De La Batterie\",\n \"it\": \"Stato Della Batteria\",\n \"nl\": \"Batterij Status\",\n \"pl\": \"Stan Baterii\",\n \"pt\": \"Estado Da Bateria\",\n \"es\": \"Estado De La Batería\",\n \"zh-cn\": \"电池状态\"\n },\n \"icon\": \"Battery Status.svg\"\n },\n {\n \"_id\": \"lighting\",\n \"name\": {\n \"en\": \"Lighting\",\n \"ru\": \"Светильник\",\n \"de\": \"Beleuchtung\",\n \"fr\": \"Éclairages\",\n \"it\": \"Illuminazione\",\n \"nl\": \"Verlichting\",\n \"pl\": \"Oprawy Oświetleniowe\",\n \"pt\": \"Iluminações\",\n \"es\": \"Iluminaciones\",\n \"zh-cn\": \"照明\"\n },\n \"icon\": \"Lightings.svg\"\n },\n {\n \"_id\": \"shading\",\n \"name\": {\n \"en\": \"Shading\",\n \"ru\": \"Затенение\",\n \"de\": \"Beschattungen\",\n \"fr\": \"Ombres\",\n \"it\": \"Ombreggiatura\",\n \"nl\": \"Shading\",\n \"pl\": \"Zacienienie\",\n \"pt\": \"Shading\",\n \"es\": \"Sombreado\",\n \"zh-cn\": \"底纹\"\n },\n \"icon\": \"Shading.svg\"\n },\n {\n \"_id\": \"irrigation\",\n \"name\": {\n \"en\": \"Irrigation\",\n \"ru\": \"Орошение\",\n \"de\": \"Bewässerung\",\n \"fr\": \"Irrigation\",\n \"it\": \"Irrigazione\",\n \"nl\": \"Irrigatie\",\n \"pl\": \"Nawadnianie\",\n \"pt\": \"Irrigação\",\n \"es\": \"Irrigación\",\n \"zh-cn\": \"灌溉\"\n },\n \"icon\": \"Irrigation.svg\"\n },\n {\n \"_id\": \"iron\",\n \"name\": {\n \"en\": \"Iron\",\n \"ru\": \"Утюг\",\n \"de\": \"Bügeleisen\",\n \"fr\": \"Le Fer\",\n \"it\": \"Ferro\",\n \"nl\": \"Ijzer\",\n \"pl\": \"Żelazo\",\n \"pt\": \"Ferro\",\n \"es\": \"Hierro\",\n \"zh-cn\": \"铁\"\n },\n \"icon\": \"Iron.svg\"\n },\n {\n \"_id\": \"computer\",\n \"name\": {\n \"en\": \"Computer\",\n \"ru\": \"Компьютер\",\n \"de\": \"Rechner\",\n \"fr\": \"L'Ordinateur\",\n \"it\": \"Computer\",\n \"nl\": \"Computer\",\n \"pl\": \"Komputer\",\n \"pt\": \"Computador\",\n \"es\": \"Ordenador\",\n \"zh-cn\": \"电脑\"\n },\n \"icon\": \"Computer.svg\"\n },\n {\n \"_id\": \"ceiling_spotlight\",\n \"name\": {\n \"en\": \"Ceiling Spotlight\",\n \"ru\": \"Потолочный прожектор\",\n \"de\": \"Deckenspot\",\n \"fr\": \"Plafond Spotlight\",\n \"it\": \"Faretti A Soffitto\",\n \"nl\": \"Plafond Spotlight\",\n \"pl\": \"Reflektory Sufitowe\",\n \"pt\": \"Tecto Foco\",\n \"es\": \"Focos De Techo\",\n \"zh-cn\": \"天花射灯\"\n },\n \"icon\": \"Ceiling Spotlights.svg\"\n },\n {\n \"_id\": \"printer\",\n \"name\": {\n \"en\": \"Printer\",\n \"de\": \"Drucker\",\n \"ru\": \"Принтер\",\n \"pt\": \"Impressora\",\n \"nl\": \"Printer\",\n \"fr\": \"Imprimante\",\n \"it\": \"Stampante\",\n \"es\": \"Impresora\",\n \"pl\": \"Drukarka\",\n \"zh-cn\": \"打印机\"\n },\n \"icon\": \"Printer.svg\"\n },\n {\n \"_id\": \"power_consumption\",\n \"name\": {\n \"en\": \"Power Consumption\",\n \"ru\": \"Потребляемая мощность\",\n \"de\": \"Stromverbrauch\",\n \"fr\": \"Consommation D'Énergie\",\n \"it\": \"Consumo Di Energia\",\n \"nl\": \"Energieverbruik\",\n \"pl\": \"Pobór Energii\",\n \"pt\": \"Consumo De Energia\",\n \"es\": \"El Consumo De Energía\",\n \"zh-cn\": \"能量消耗\"\n },\n \"icon\": \"Power Consumption.svg\"\n },\n {\n \"_id\": \"window\",\n \"name\": {\n \"en\": \"Window\",\n \"ru\": \"Окно\",\n \"de\": \"Fenster\",\n \"fr\": \"La Fenêtre\",\n \"it\": \"Finestra\",\n \"nl\": \"Venster\",\n \"pl\": \"Okno\",\n \"pt\": \"Janela\",\n \"es\": \"Ventana\",\n \"zh-cn\": \"窗户\"\n },\n \"icon\": \"Window.svg\"\n },\n {\n \"_id\": \"garage_door\",\n \"name\": {\n \"en\": \"Garage Door\",\n \"ru\": \"Гаражные Ворота\",\n \"de\": \"Garagentor\",\n \"fr\": \"Portes De Garage\",\n \"it\": \"Garage Door\",\n \"nl\": \"Garage Door\",\n \"pl\": \"Bramy Garażowe\",\n \"pt\": \"Portas De Garagem\",\n \"es\": \"Las Puertas De Garaje\",\n \"zh-cn\": \"车库门\"\n },\n \"icon\": \"Garage Doors.svg\"\n },\n {\n \"_id\": \"hairdryer\",\n \"name\": {\n \"en\": \"Hairdryer\",\n \"ru\": \"Фен\",\n \"de\": \"Haartrockner\",\n \"fr\": \"Sèche-Cheveux\",\n \"it\": \"Asciugacapelli\",\n \"nl\": \"Haardroger\",\n \"pl\": \"Suszarka Do Włosów\",\n \"pt\": \"Secador De Cabelo\",\n \"es\": \"Secador De Pelo\",\n \"zh-cn\": \"电吹风\"\n },\n \"icon\": \"Hairdryer.svg\"\n },\n {\n \"_id\": \"hanging_lamp\",\n \"name\": {\n \"en\": \"Hanging Lamp\",\n \"ru\": \"Подвесной светильник\",\n \"de\": \"Hängelampe\",\n \"fr\": \"Lampes Suspendues\",\n \"it\": \"Lampade A Sospensione\",\n \"nl\": \"Opknoping Lampen\",\n \"pl\": \"Lampy Wiszące\",\n \"pt\": \"Lâmpadas De Suspensão\",\n \"es\": \"Lámparas Colgantes\",\n \"zh-cn\": \"挂灯\"\n },\n \"icon\": \"Hanging Lamps.svg\"\n },\n {\n \"_id\": \"doorstep\",\n \"name\": {\n \"en\": \"Enterance\",\n \"ru\": \"Входная дверь\",\n \"de\": \"Haustür\",\n \"fr\": \"Seuil De Porte\",\n \"it\": \"Gradino Della Porta\",\n \"nl\": \"Drempel\",\n \"pl\": \"Próg\",\n \"pt\": \"Porta\",\n \"es\": \"Peldaño\",\n \"zh-cn\": \"门阶\"\n },\n \"icon\": \"Doorstep.svg\"\n },\n {\n \"_id\": \"hot_water\",\n \"name\": {\n \"en\": \"Hot Water\",\n \"ru\": \"Горячая вода\",\n \"de\": \"Heißwasser\",\n \"fr\": \"Eau Chaude\",\n \"it\": \"Acqua Calda\",\n \"nl\": \"Heet Water\",\n \"pl\": \"Gorąca Woda\",\n \"pt\": \"Água Quente\",\n \"es\": \"Agua Caliente\",\n \"zh-cn\": \"热水\"\n },\n \"icon\": \"Hot Water.svg\"\n },\n {\n \"_id\": \"heating\",\n \"name\": {\n \"en\": \"Heating\",\n \"ru\": \"Отопление\",\n \"de\": \"Heizung\",\n \"fr\": \"Chauffe-Eau\",\n \"it\": \"Riscaldatore\",\n \"nl\": \"Verwarmer\",\n \"pl\": \"Podgrzewacz\",\n \"pt\": \"Aquecedor\",\n \"es\": \"Calentador\",\n \"zh-cn\": \"加热器\"\n },\n \"icon\": \"Heater.svg\"\n },\n {\n \"_id\": \"stove\",\n \"name\": {\n \"en\": \"Stove\",\n \"ru\": \"Печь\",\n \"de\": \"Herd\",\n \"fr\": \"Le Fourneau\",\n \"it\": \"Stufa\",\n \"nl\": \"Fornuis\",\n \"pl\": \"Kuchenka\",\n \"pt\": \"Forno\",\n \"es\": \"Cocina\",\n \"zh-cn\": \"火炉\"\n },\n \"icon\": \"Stove.svg\"\n },\n {\n \"_id\": \"louvre\",\n \"name\": {\n \"en\": \"Louvre\",\n \"ru\": \"Жалюзи\",\n \"de\": \"Jalousie\",\n \"fr\": \"Persienne\",\n \"it\": \"Persiana Di Ventilazione\",\n \"nl\": \"Louvre\",\n \"pl\": \"Żaluzja\",\n \"pt\": \"Trapeira\",\n \"es\": \"Lumbrera\",\n \"zh-cn\": \"卢浮宫\"\n },\n \"icon\": \"Louvre.svg\"\n },\n {\n \"_id\": \"coffee_maker\",\n \"name\": {\n \"en\": \"Coffee Maker\",\n \"ru\": \"Кофеварка\",\n \"de\": \"Kaffemaschine\",\n \"fr\": \"Cafetière\",\n \"it\": \"Macchine Da Caffè\",\n \"nl\": \"Koffie Maker\",\n \"pl\": \"Ekspresy Do Kawy\",\n \"pt\": \"Cafeteira\",\n \"es\": \"Cafetera\",\n \"zh-cn\": \"咖啡壶\"\n },\n \"icon\": \"Coffee Makers.svg\"\n },\n {\n \"_id\": \"cold_water\",\n \"name\": {\n \"en\": \"Cold Water\",\n \"ru\": \"Холодная вода\",\n \"de\": \"Kaltwasser\",\n \"fr\": \"Eau Froide\",\n \"it\": \"Acqua Fredda\",\n \"nl\": \"Koud Water\",\n \"pl\": \"Zimna Woda\",\n \"pt\": \"Água Fria\",\n \"es\": \"Agua Fría\",\n \"zh-cn\": \"冷水\"\n },\n \"icon\": \"Cold Water.svg\"\n },\n {\n \"_id\": \"climate\",\n \"name\": {\n \"en\": \"Climate\",\n \"ru\": \"Климат\",\n \"de\": \"Klima\",\n \"fr\": \"Climat\",\n \"it\": \"Clima\",\n \"nl\": \"Klimaat\",\n \"pl\": \"Klimat\",\n \"pt\": \"Clima\",\n \"es\": \"Clima\",\n \"zh-cn\": \"气候\"\n },\n \"icon\": \"Climate.svg\"\n },\n {\n \"_id\": \"speaker\",\n \"name\": {\n \"en\": \"Speaker\",\n \"ru\": \"Звуковая система\",\n \"de\": \"Lautsprecher\",\n \"fr\": \"Orateur\",\n \"it\": \"Altoparlante\",\n \"nl\": \"Spreker\",\n \"pl\": \"Głośnik\",\n \"pt\": \"Palestrante\",\n \"es\": \"Altavoz\",\n \"zh-cn\": \"扬声器\"\n },\n \"icon\": \"Speaker.svg\"\n },\n {\n \"_id\": \"led_strip\",\n \"name\": {\n \"en\": \"Led Strip\",\n \"ru\": \"Светодиодная лента\",\n \"de\": \"LED Leiste\",\n \"fr\": \"Led Strip\",\n \"it\": \"Led Strip\",\n \"nl\": \"Loden Strip\",\n \"pl\": \"Pasek Ledowy\",\n \"pt\": \"Led Faixa\",\n \"es\": \"Tira Llevada\",\n \"zh-cn\": \"灯带\"\n },\n \"icon\": \"Led Strip.svg\"\n },\n {\n \"_id\": \"light\",\n \"name\": {\n \"en\": \"Light\",\n \"ru\": \"Свет\",\n \"de\": \"Licht\",\n \"fr\": \"Lumière\",\n \"it\": \"Leggero\",\n \"nl\": \"Licht\",\n \"pl\": \"Lekki\",\n \"pt\": \"Luz\",\n \"es\": \"Luz\",\n \"zh-cn\": \"光\"\n },\n \"icon\": \"Light.svg\"\n },\n {\n \"_id\": \"fan\",\n \"name\": {\n \"en\": \"Fan\",\n \"ru\": \"Вентилятор\",\n \"de\": \"Lüfter\",\n \"fr\": \"Ventilateur\",\n \"it\": \"Fan\",\n \"nl\": \"Ventilator\",\n \"pl\": \"Wentylator\",\n \"pt\": \"Ventilador\",\n \"es\": \"Ventilador\",\n \"zh-cn\": \"扇子\"\n },\n \"icon\": \"Fan.svg\"\n },\n {\n \"_id\": \"humidity\",\n \"name\": {\n \"en\": \"Humidity\",\n \"ru\": \"Влажность\",\n \"de\": \"Luftfeuchtigkeit\",\n \"fr\": \"Humidité\",\n \"it\": \"Umidità\",\n \"nl\": \"Vochtigheid\",\n \"pl\": \"Wilgotność\",\n \"pt\": \"Umidade\",\n \"es\": \"Humedad\",\n \"zh-cn\": \"湿度\"\n },\n \"icon\": \"Humidity.svg\"\n },\n {\n \"_id\": \"ventilation\",\n \"name\": {\n \"en\": \"Ventilation\",\n \"ru\": \"Вентиляция\",\n \"de\": \"Lüftung\",\n \"fr\": \"Ventilation\",\n \"it\": \"Ventilazione\",\n \"nl\": \"Ventilatie\",\n \"pl\": \"Wentylacja\",\n \"pt\": \"Ventilação\",\n \"es\": \"Ventilación\",\n \"zh-cn\": \"通风\"\n },\n \"icon\": \"Ventilation.svg\"\n },\n {\n \"_id\": \"chandelier\",\n \"name\": {\n \"en\": \"Chandelier\",\n \"ru\": \"Люстра\",\n \"de\": \"Kronleuchter\",\n \"fr\": \"Lustre\",\n \"it\": \"Lampadario\",\n \"nl\": \"Kroonluchter\",\n \"pl\": \"Żyrandol\",\n \"pt\": \"Lustre\",\n \"es\": \"Candelabro\",\n \"zh-cn\": \"枝形吊灯\"\n },\n \"icon\": \"Chandelier.svg\"\n },\n {\n \"_id\": \"awning\",\n \"name\": {\n \"en\": \"Awning\",\n \"ru\": \"Маркиза\",\n \"de\": \"Markise\",\n \"fr\": \"Auvents\",\n \"it\": \"Tende\",\n \"nl\": \"Luifels\",\n \"pl\": \"Okrycia\",\n \"pt\": \"Toldos\",\n \"es\": \"Toldos\",\n \"zh-cn\": \"遮阳篷\"\n },\n \"icon\": \"Awnings.svg\"\n },\n {\n \"_id\": \"music\",\n \"name\": {\n \"en\": \"Music\",\n \"ru\": \"Музыка\",\n \"de\": \"Musik\",\n \"fr\": \"Musique\",\n \"it\": \"Musica\",\n \"nl\": \"Muziek\",\n \"pl\": \"Muzyka\",\n \"pt\": \"Música\",\n \"es\": \"Música\",\n \"zh-cn\": \"音乐\"\n },\n \"icon\": \"Music.svg\"\n },\n {\n \"_id\": \"people\",\n \"name\": {\n \"en\": \"People\",\n \"ru\": \"Люди\",\n \"de\": \"Personen\",\n \"fr\": \"Gens\",\n \"it\": \"Persone\",\n \"nl\": \"Mensen\",\n \"pl\": \"Ludzie\",\n \"pt\": \"Pessoas\",\n \"es\": \"Personas\",\n \"zh-cn\": \"人们\"\n },\n \"icon\": \"People.svg\"\n },\n {\n \"_id\": \"pool\",\n \"name\": {\n \"en\": \"Pool\",\n \"ru\": \"Бассейн\",\n \"de\": \"Pool\",\n \"fr\": \"Piscine\",\n \"it\": \"Piscina\",\n \"nl\": \"Zwembad\",\n \"pl\": \"Basen\",\n \"pt\": \"Piscina\",\n \"es\": \"Piscina\",\n \"zh-cn\": \"水池\"\n },\n \"icon\": \"Pool.svg\"\n },\n {\n \"_id\": \"pump\",\n \"name\": {\n \"en\": \"Pump\",\n \"ru\": \"Насос\",\n \"de\": \"Pumpe\",\n \"fr\": \"Pompe\",\n \"it\": \"Pompa\",\n \"nl\": \"Pomp\",\n \"pl\": \"Pompa\",\n \"pt\": \"Bombear\",\n \"es\": \"Bomba\",\n \"zh-cn\": \"泵\"\n },\n \"icon\": \"Pump.svg\"\n },\n {\n \"_id\": \"outdoor_blinds\",\n \"name\": {\n \"en\": \"Outdoor Blinds\",\n \"ru\": \"Внещгте жалюзи\",\n \"de\": \"Raffstore\",\n \"fr\": \"Volets\",\n \"it\": \"Tende Da Esterni\",\n \"nl\": \"Outdoor Blinds\",\n \"pl\": \"Rolety Zewnętrzne\",\n \"pt\": \"Estores Exteriores\",\n \"es\": \"Persianas Exteriores\",\n \"zh-cn\": \"室外百叶窗\"\n },\n \"icon\": \"Outdoor Blinds.svg\"\n },\n {\n \"_id\": \"mowing_machine\",\n \"name\": {\n \"en\": \"Mowing Machine\",\n \"ru\": \"Газонокосилка\",\n \"de\": \"Rasenmäher\",\n \"fr\": \"Machine De Fauchage\",\n \"it\": \"Macchina Di Falciatura\",\n \"nl\": \"Maaimachine\",\n \"pl\": \"Kosiarka\",\n \"pt\": \"Roçada Máquina\",\n \"es\": \"Segadora\",\n \"zh-cn\": \"割草机\"\n },\n \"icon\": \"Mowing Machine.svg\"\n },\n {\n \"_id\": \"receiver\",\n \"name\": {\n \"en\": \"Receiver\",\n \"ru\": \"Приставка\",\n \"de\": \"Receiver\",\n \"fr\": \"Destinataire\",\n \"it\": \"Ricevitore\",\n \"nl\": \"Ontvanger\",\n \"pl\": \"Odbiorca\",\n \"pt\": \"Recebedor\",\n \"es\": \"Receptor\",\n \"zh-cn\": \"接收者\"\n },\n \"icon\": \"Receiver.svg\"\n },\n {\n \"_id\": \"shutters\",\n \"name\": {\n \"en\": \"Shutters\",\n \"ru\": \"Ставни\",\n \"de\": \"Rollladen\",\n \"fr\": \"Volets\",\n \"it\": \"Persiane\",\n \"nl\": \"Shutters\",\n \"pl\": \"Żaluzje\",\n \"pt\": \"Persianas\",\n \"es\": \"Persianas\",\n \"zh-cn\": \"百叶窗\"\n },\n \"icon\": \"Shutters.svg\"\n },\n {\n \"_id\": \"smoke_detector\",\n \"name\": {\n \"en\": \"Smoke detector\",\n \"de\": \"Rauchmelder\",\n \"ru\": \"Детектор дыма\",\n \"pt\": \"Detector de fumaça\",\n \"nl\": \"Rookdetector\",\n \"fr\": \"Détecteur de fumée\",\n \"it\": \"Rilevatore di fumo\",\n \"es\": \"Detector de humo\",\n \"pl\": \"Wykrywacz dymu\",\n \"zh-cn\": \"烟雾探测器\"\n },\n \"icon\": \"SmokeDetector.svg\"\n },\n {\n \"_id\": \"lock\",\n \"name\": {\n \"en\": \"Lock\",\n \"ru\": \"Замок\",\n \"de\": \"Schloß\",\n \"fr\": \"Fermer À Clé\",\n \"it\": \"Serratura\",\n \"nl\": \"Slot\",\n \"pl\": \"Zamek\",\n \"pt\": \"Trancar\",\n \"es\": \"Cerrar Con Llave\",\n \"zh-cn\": \"锁\"\n },\n \"icon\": \"Lock.svg\"\n },\n {\n \"_id\": \"security\",\n \"name\": {\n \"en\": \"Security\",\n \"ru\": \"Безопасность\",\n \"de\": \"Sicherheit\",\n \"fr\": \"Sécurité\",\n \"it\": \"Sicurezza\",\n \"nl\": \"Veiligheid\",\n \"pl\": \"Bezpieczeństwo\",\n \"pt\": \"Segurança\",\n \"es\": \"Seguridad\",\n \"zh-cn\": \"安全\"\n },\n \"icon\": \"Security.svg\"\n },\n {\n \"_id\": \"dishwasher\",\n \"name\": {\n \"en\": \"Dishwasher\",\n \"ru\": \"Посудомоечная машина\",\n \"de\": \"Spülmaschine\",\n \"fr\": \"Lave-Vaisselles\",\n \"it\": \"Lavastoviglie\",\n \"nl\": \"Vaatwassers\",\n \"pl\": \"Zmywarki\",\n \"pt\": \"Máquinas De Lavar Louça\",\n \"es\": \"Lavaplatos\",\n \"zh-cn\": \"洗碗机\"\n },\n \"icon\": \"Dishwashers.svg\"\n },\n {\n \"_id\": \"vacuum_cleaner\",\n \"name\": {\n \"en\": \"Vacuum Cleaner\",\n \"ru\": \"Пылесос\",\n \"de\": \"Staubsauger\",\n \"fr\": \"Aspirateur\",\n \"it\": \"Aspirapolvere\",\n \"nl\": \"Stofzuiger\",\n \"pl\": \"Odkurzacz\",\n \"pt\": \"Aspirador De Pó\",\n \"es\": \"Aspiradora\",\n \"zh-cn\": \"吸尘器\"\n },\n \"icon\": \"Vacuum Cleaner.svg\"\n },\n {\n \"_id\": \"socket\",\n \"name\": {\n \"en\": \"Socket\",\n \"ru\": \"Розетка\",\n \"de\": \"Steckdose\",\n \"fr\": \"Prise\",\n \"it\": \"Socket\",\n \"nl\": \"Socket\",\n \"pl\": \"Gniazdka\",\n \"pt\": \"Tomada\",\n \"es\": \"Zócalo\",\n \"zh-cn\": \"套接字\"\n },\n \"icon\": \"Sockets.svg\"\n },\n {\n \"_id\": \"floor_lamp\",\n \"name\": {\n \"en\": \"Floor Lamp\",\n \"ru\": \"Торшер\",\n \"de\": \"Stehlampe\",\n \"fr\": \"Lampes Pour Plancher\",\n \"it\": \"Lampade A Stelo\",\n \"nl\": \"Vloerlampen\",\n \"pl\": \"Lampy Podłogowe\",\n \"pt\": \"Lâmpadas Chão\",\n \"es\": \"Lámparas De Pie\",\n \"zh-cn\": \"落地灯\"\n },\n \"icon\": \"Floor Lamps.svg\"\n },\n {\n \"_id\": \"power_consumption\",\n \"name\": {\n \"en\": \"Power Consumption\",\n \"ru\": \"Потребляемая мощность\",\n \"de\": \"Stromverbrauch\",\n \"fr\": \"Consommation D'Énergie\",\n \"it\": \"Consumo Di Energia\",\n \"nl\": \"Energieverbruik\",\n \"pl\": \"Pobór Energii\",\n \"pt\": \"Consumo De Energia\",\n \"es\": \"El Consumo De Energía\",\n \"zh-cn\": \"能量消耗\"\n },\n \"icon\": \"Power Consumption.svg\"\n },\n {\n \"_id\": \"temperature_sensor\",\n \"name\": {\n \"en\": \"Temperature Sensor\",\n \"ru\": \"Температурный датчик\",\n \"de\": \"Temperatur-Sensor\",\n \"fr\": \"Capteur De Température\",\n \"it\": \"Sensori Di Temperatura\",\n \"nl\": \"Temperatuursensor\",\n \"pl\": \"Czujniki Temperatury\",\n \"pt\": \"Sensores De Temperatura\",\n \"es\": \"Sensores De Temperatura\",\n \"zh-cn\": \"温度传感器\"\n },\n \"icon\": \"Temperature Sensors.svg\"\n },\n {\n \"_id\": \"table_lamp\",\n \"name\": {\n \"en\": \"Table Lamp\",\n \"ru\": \"Настольная лампа\",\n \"de\": \"Tischlampe\",\n \"fr\": \"Lampe De Chevet\",\n \"it\": \"Lampade Da Tavolo\",\n \"nl\": \"Tafellampen\",\n \"pl\": \"Lampy Stołowe\",\n \"pt\": \"Lâmpadas De Mesa\",\n \"es\": \"Lámparas De Mesa\",\n \"zh-cn\": \"台灯\"\n },\n \"icon\": \"Table Lamps.svg\"\n },\n {\n \"_id\": \"gate\",\n \"name\": {\n \"en\": \"Gate\",\n \"ru\": \"Ворота\",\n \"de\": \"Tor\",\n \"fr\": \"Porte\",\n \"it\": \"Gate\",\n \"nl\": \"Gate\",\n \"pl\": \"Bramy\",\n \"pt\": \"Portões\",\n \"es\": \"Puertas\",\n \"zh-cn\": \"盖茨\"\n },\n \"icon\": \"Gates.svg\"\n },\n {\n \"_id\": \"dryer\",\n \"name\": {\n \"en\": \"Dryer\",\n \"ru\": \"Сушилка\",\n \"de\": \"Trockner\",\n \"fr\": \"Séchoir\",\n \"it\": \"Asciugatrice\",\n \"nl\": \"Droger\",\n \"pl\": \"Suszarka\",\n \"pt\": \"Secador\",\n \"es\": \"Secadora\",\n \"zh-cn\": \"烘干机\"\n },\n \"icon\": \"Dryer.svg\"\n },\n {\n \"_id\": \"door\",\n \"name\": {\n \"en\": \"Door\",\n \"ru\": \"Дверь\",\n \"de\": \"Tür\",\n \"fr\": \"Des Portes\",\n \"it\": \"Porte\",\n \"nl\": \"Deuren\",\n \"pl\": \"Drzwi\",\n \"pt\": \"Portas\",\n \"es\": \"Puertas\",\n \"zh-cn\": \"门\"\n },\n \"icon\": \"Doors.svg\"\n },\n {\n \"_id\": \"tv\",\n \"name\": {\n \"en\": \"Tv\",\n \"ru\": \"Телевизор\",\n \"de\": \"TV\",\n \"fr\": \"La Télé\",\n \"it\": \"Tv\",\n \"nl\": \"Tv\",\n \"pl\": \"Telewizja\",\n \"pt\": \"Televisão\",\n \"es\": \"Televisor\",\n \"zh-cn\": \"电视\"\n },\n \"icon\": \"Tv.svg\"\n },\n {\n \"_id\": \"consumption\",\n \"name\": {\n \"en\": \"Consumption\",\n \"ru\": \"Потребление\",\n \"de\": \"Verbrauch\",\n \"fr\": \"Consommation\",\n \"it\": \"Consumo\",\n \"nl\": \"Consumptie\",\n \"pl\": \"Konsumpcja\",\n \"pt\": \"Consumo\",\n \"es\": \"Consumo\",\n \"zh-cn\": \"消费\"\n },\n \"icon\": \"Consumption.svg\"\n },\n {\n \"_id\": \"amplifier\",\n \"name\": {\n \"en\": \"Amplifier\",\n \"ru\": \"Усилитель звука\",\n \"de\": \"Verstärker\",\n \"fr\": \"Amplificateur\",\n \"it\": \"Amplificatore\",\n \"nl\": \"Versterker\",\n \"pl\": \"Wzmacniacz\",\n \"pt\": \"Amplificador\",\n \"es\": \"Amplificador\",\n \"zh-cn\": \"放大器\"\n },\n \"icon\": \"Amplifier.svg\"\n },\n {\n \"_id\": \"curtains\",\n \"name\": {\n \"en\": \"Curtains\",\n \"ru\": \"Шторы\",\n \"de\": \"Vorhänge\",\n \"fr\": \"Des Rideaux\",\n \"it\": \"Le Tende\",\n \"nl\": \"Gordijnen\",\n \"pl\": \"Zasłony\",\n \"pt\": \"Cortinas\",\n \"es\": \"Cortinas\",\n \"zh-cn\": \"窗帘\"\n },\n \"icon\": \"Curtains.svg\"\n },\n {\n \"_id\": \"sconce\",\n \"name\": {\n \"en\": \"Sconce\",\n \"ru\": \"Настенный светильник\",\n \"de\": \"Wandlampe\",\n \"fr\": \"Sconce\",\n \"it\": \"Sconce\",\n \"nl\": \"Sconce\",\n \"pl\": \"Kinkiety\",\n \"pt\": \"Arandelas\",\n \"es\": \"Los Apliques\",\n \"zh-cn\": \"壁灯\"\n },\n \"icon\": \"Sconces.svg\"\n },\n {\n \"_id\": \"washing_machine\",\n \"name\": {\n \"en\": \"Washing Machine\",\n \"ru\": \"Стиральная машина\",\n \"de\": \"Waschmaschine\",\n \"fr\": \"Machines À Laver\",\n \"it\": \"Lavatrici\",\n \"nl\": \"Wasmachines\",\n \"pl\": \"Pralki\",\n \"pt\": \"Máquinas De Lavar Roupas\",\n \"es\": \"Lavadoras\",\n \"zh-cn\": \"洗衣机\"\n },\n \"icon\": \"Washing Machines.svg\"\n },\n {\n \"_id\": \"water\",\n \"name\": {\n \"en\": \"Water\",\n \"ru\": \"Вода\",\n \"de\": \"Wasser\",\n \"fr\": \"L'Eau\",\n \"it\": \"Acqua\",\n \"nl\": \"Water\",\n \"pl\": \"Woda\",\n \"pt\": \"Água\",\n \"es\": \"Agua\",\n \"zh-cn\": \"水\"\n },\n \"icon\": \"Water.svg\"\n },\n {\n \"_id\": \"water_heater\",\n \"name\": {\n \"en\": \"Water Heater\",\n \"ru\": \"Нагреватель воды\",\n \"de\": \"Wasserkocher\",\n \"fr\": \"Chauffe-Eau\",\n \"it\": \"Scaldabagno\",\n \"nl\": \"Waterkoker\",\n \"pl\": \"Podgrzewacz Wody\",\n \"pt\": \"Aquecedor De Água\",\n \"es\": \"Calentador De Agua\",\n \"zh-cn\": \"热水器\"\n },\n \"icon\": \"Water Heater.svg\"\n },\n {\n \"_id\": \"water_consumption\",\n \"name\": {\n \"en\": \"Water Consumption\",\n \"ru\": \"Потребление воды\",\n \"de\": \"Wasserverbrauch\",\n \"fr\": \"Consommation D'Eau\",\n \"it\": \"Consumo D'Acqua\",\n \"nl\": \"Waterverbruik\",\n \"pl\": \"Konsumpcja Wody\",\n \"pt\": \"Consumo De Água\",\n \"es\": \"Consumo De Agua\",\n \"zh-cn\": \"耗水量\"\n },\n \"icon\": \"Water Consumption.svg\"\n },\n {\n \"_id\": \"weather\",\n \"name\": {\n \"en\": \"Weather\",\n \"ru\": \"Погода\",\n \"de\": \"Wetter\",\n \"fr\": \"La Météo\",\n \"it\": \"Tempo Metereologico\",\n \"nl\": \"Weer\",\n \"pl\": \"Pogoda\",\n \"pt\": \"Clima\",\n \"es\": \"Tiempo\",\n \"zh-cn\": \"天气\"\n },\n \"icon\": \"Weather.svg\"\n }\n];\n\n// import rooms from '../assets/rooms/list.json';\nconst rooms = [\n {\n \"_id\": \"storeroom\",\n \"name\": {\n \"en\": \"Storeroom\",\n \"ru\": \"Кладовая\",\n \"de\": \"Abstellraum\",\n \"fr\": \"Débarras\",\n \"it\": \"Dispensa\",\n \"nl\": \"Bergplaats\",\n \"pl\": \"Magazyn\",\n \"pt\": \"Despensa\",\n \"es\": \"Trastero\",\n \"zh-cn\": \"库房\"\n },\n \"icon\": \"Storeroom.svg\"\n },\n {\n \"_id\": \"second_floor\",\n \"name\": {\n \"en\": \"Second floor\",\n \"ru\": \"Второй этаж\",\n \"de\": \"Erster OG\",\n \"pt\": \"Primeiro andar\",\n \"nl\": \"Eerste verdieping\",\n \"fr\": \"Premier étage\",\n \"it\": \"Primo piano\",\n \"es\": \"Primer piso\",\n \"pl\": \"Pierwsze piętro\",\n \"zh-cn\": \"第一层\"\n },\n \"icon\": \"Second Floor.svg\"\n },\n {\n \"_id\": \"dressing_room\",\n \"name\": {\n \"en\": \"Dressing Room\",\n \"ru\": \"Гардеробная\",\n \"de\": \"Ankleide\",\n \"fr\": \"Vestiaire\",\n \"it\": \"Camerino\",\n \"nl\": \"Kleedkamer\",\n \"pl\": \"Przebieralnia\",\n \"pt\": \"Provador\",\n \"es\": \"Vestidor\",\n \"zh-cn\": \"更衣室\"\n },\n \"icon\": \"Dressing Room.svg\"\n },\n {\n \"_id\": \"workspace\",\n \"name\": {\n \"en\": \"Workspace\",\n \"ru\": \"Рабочая Среда\",\n \"de\": \"Arbeitszimmer\",\n \"fr\": \"Espace De Travail\",\n \"it\": \"Area Di Lavoro\",\n \"nl\": \"Workspace\",\n \"pl\": \"Workspace\",\n \"pt\": \"Área De Trabalho\",\n \"es\": \"Espacio De Trabajo\",\n \"zh-cn\": \"工作区\"\n },\n \"icon\": \"Workspace.svg\"\n },\n {\n \"_id\": \"driveway\",\n \"name\": {\n \"en\": \"Driveway\",\n \"ru\": \"Дорога\",\n \"de\": \"Auffahrt\",\n \"fr\": \"Allée\",\n \"it\": \"Viale\",\n \"nl\": \"Pad\",\n \"pl\": \"Podjazd\",\n \"pt\": \"Entrada Da Garagem\",\n \"es\": \"Entrada De Coches\",\n \"zh-cn\": \"车道\"\n },\n \"icon\": \"Driveway.svg\"\n },\n {\n \"_id\": \"outdoors\",\n \"name\": {\n \"en\": \"Outdoors\",\n \"ru\": \"На Улице\",\n \"de\": \"Außenbereich\",\n \"fr\": \"En Plein Air\",\n \"it\": \"All'Aperto\",\n \"nl\": \"Buitenshuis\",\n \"pl\": \"Na Dworze\",\n \"pt\": \"Ao Ar Livre\",\n \"es\": \"Al Aire Libre\",\n \"zh-cn\": \"户外\"\n },\n \"icon\": \"Outdoors.svg\"\n },\n {\n \"_id\": \"bathroom\",\n \"name\": {\n \"en\": \"Bathroom\",\n \"ru\": \"Ванная Комната\",\n \"de\": \"Badezimmer\",\n \"fr\": \"Salle De Bains\",\n \"it\": \"Bagno\",\n \"nl\": \"Badkamer\",\n \"pl\": \"Łazienka\",\n \"pt\": \"Banheiro\",\n \"es\": \"Baño\",\n \"zh-cn\": \"浴室\"\n },\n \"icon\": \"Bathroom.svg\"\n },\n {\n \"_id\": \"balcony\",\n \"name\": {\n \"en\": \"Balcony\",\n \"ru\": \"Балкон\",\n \"de\": \"Balkon\",\n \"fr\": \"Balcon\",\n \"it\": \"Balcone\",\n \"nl\": \"Balkon\",\n \"pl\": \"Balkon\",\n \"pt\": \"Sacada\",\n \"es\": \"Balcón\",\n \"zh-cn\": \"阳台\"\n },\n \"icon\": \"Balcony.svg\"\n },\n {\n \"_id\": \"office\",\n \"name\": {\n \"en\": \"Office\",\n \"ru\": \"Офис\",\n \"de\": \"Office\",\n \"fr\": \"Bureau\",\n \"it\": \"Ufficio\",\n \"nl\": \"Kantoor\",\n \"pl\": \"Gabinet\",\n \"pt\": \"Escritório\",\n \"es\": \"Oficina\",\n \"zh-cn\": \"办公室\"\n },\n \"icon\": \"Office.svg\"\n },\n {\n \"_id\": \"carport\",\n \"name\": {\n \"en\": \"Carport\",\n \"ru\": \"Навес\",\n \"de\": \"Carport\",\n \"fr\": \"Carport\",\n \"it\": \"Posto Auto Coperto\",\n \"nl\": \"Carport\",\n \"pl\": \"Wiata\",\n \"pt\": \"Telheiro\",\n \"es\": \"Cochera\",\n \"zh-cn\": \"车棚\"\n },\n \"icon\": \"Carport.svg\"\n },\n {\n \"_id\": \"attic\",\n \"name\": {\n \"en\": \"Attic\",\n \"ru\": \"Чердак\",\n \"de\": \"Dachgeschoss\",\n \"fr\": \"Grenier\",\n \"it\": \"Attico\",\n \"nl\": \"Zolder\",\n \"pl\": \"Poddasze\",\n \"pt\": \"Sótão\",\n \"es\": \"Ático\",\n \"zh-cn\": \"阁楼\"\n },\n \"icon\": \"Attic.svg\"\n },\n {\n \"_id\": \"hall\",\n \"name\": {\n \"en\": \"Hall\",\n \"ru\": \"Зал\",\n \"de\": \"Diele\",\n \"fr\": \"Salle\",\n \"it\": \"Sala\",\n \"nl\": \"Hal\",\n \"pl\": \"Sala\",\n \"pt\": \"Corredor\",\n \"es\": \"Sala\",\n \"zh-cn\": \"大厅\"\n },\n \"icon\": \"Hall.svg\"\n },\n {\n \"_id\": \"entrance\",\n \"name\": {\n \"en\": \"Entrance\",\n \"ru\": \"Вход\",\n \"de\": \"Eingang\",\n \"fr\": \"Entrée\",\n \"it\": \"Ingresso\",\n \"nl\": \"Ingang\",\n \"pl\": \"Wejście\",\n \"pt\": \"Entrada\",\n \"es\": \"Entrada\",\n \"zh-cn\": \"入口\"\n },\n \"icon\": \"Entrance.svg\"\n },\n {\n \"_id\": \"ground_floor\",\n \"name\": {\n \"en\": \"Ground Floor\",\n \"ru\": \"Первый Этаж\",\n \"de\": \"Erdgeschoss\",\n \"fr\": \"Rez-De-Chaussée\",\n \"it\": \"Piano Terra\",\n \"nl\": \"Begane Grond\",\n \"pl\": \"Parter\",\n \"pt\": \"Térreo\",\n \"es\": \"Planta Baja\",\n \"zh-cn\": \"一楼\"\n },\n \"icon\": \"Ground Floor.svg\"\n },\n {\n \"_id\": \"dining_area\",\n \"name\": {\n \"en\": \"Dining Area\",\n \"ru\": \"Столовая\",\n \"de\": \"Essbereich\",\n \"fr\": \"Salle À Manger\",\n \"it\": \"Zona Pranzo\",\n \"nl\": \"Eethoek\",\n \"pl\": \"Jadalnia\",\n \"pt\": \"Área De Refeições\",\n \"es\": \"Comedor\",\n \"zh-cn\": \"用餐区\"\n },\n \"icon\": \"Dining Area.svg\"\n },\n {\n \"_id\": \"dining_room\",\n \"name\": {\n \"en\": \"Dining Room\",\n \"ru\": \"Столовая\",\n \"de\": \"Esszimmer\",\n \"fr\": \"Salle À Manger\",\n \"it\": \"Sala Da Pranzo\",\n \"nl\": \"Eetkamer\",\n \"pl\": \"Jadalnia\",\n \"pt\": \"Sala De Jantar\",\n \"es\": \"Comedor\",\n \"zh-cn\": \"饭厅\"\n },\n \"icon\": \"Dining Room.svg\"\n },\n {\n \"_id\": \"gym\",\n \"name\": {\n \"en\": \"Gym\",\n \"ru\": \"Спортзал\",\n \"de\": \"Fitnessraum\",\n \"fr\": \"Gym\",\n \"it\": \"Palestra\",\n \"nl\": \"Sportschool\",\n \"pl\": \"Siłownia\",\n \"pt\": \"Ginásio\",\n \"es\": \"Gimnasio\",\n \"zh-cn\": \"健身房\"\n },\n \"icon\": \"Gym.svg\"\n },\n {\n \"_id\": \"gallery\",\n \"name\": {\n \"en\": \"Gallery\",\n \"ru\": \"Галерея\",\n \"de\": \"Galerie\",\n \"fr\": \"Galerie\",\n \"it\": \"Galleria\",\n \"nl\": \"Galerij\",\n \"pl\": \"Galeria\",\n \"pt\": \"Galeria\",\n \"es\": \"Galería\",\n \"zh-cn\": \"画廊\"\n },\n \"icon\": \"Gallery.svg\"\n },\n {\n \"_id\": \"garage\",\n \"name\": {\n \"en\": \"Garage\",\n \"ru\": \"Гараж\",\n \"de\": \"Garage\",\n \"fr\": \"Garage\",\n \"it\": \"Box Auto\",\n \"nl\": \"Garage\",\n \"pl\": \"Garaż\",\n \"pt\": \"Garagem\",\n \"es\": \"Garaje\",\n \"zh-cn\": \"车库\"\n },\n \"icon\": \"Garage.svg\"\n },\n {\n \"_id\": \"wardrobe\",\n \"name\": {\n \"en\": \"Wardrobe\",\n \"ru\": \"Гардероб\",\n \"de\": \"Garderobe\",\n \"fr\": \"Penderie\",\n \"it\": \"Armadio\",\n \"nl\": \"Garderobe\",\n \"pl\": \"Szafa\",\n \"pt\": \"Guarda Roupa\",\n \"es\": \"Armario\",\n \"zh-cn\": \"衣柜\"\n },\n \"icon\": \"Wardrobe.svg\"\n },\n {\n \"_id\": \"garden\",\n \"name\": {\n \"en\": \"Garden\",\n \"ru\": \"Сад\",\n \"de\": \"Garten\",\n \"fr\": \"Jardin\",\n \"it\": \"Giardino\",\n \"nl\": \"Tuin\",\n \"pl\": \"Ogród\",\n \"pt\": \"Jardim\",\n \"es\": \"Jardín\",\n \"zh-cn\": \"花园\"\n },\n \"icon\": \"Garden.svg\"\n },\n {\n \"_id\": \"summer_house\",\n \"name\": {\n \"en\": \"Summer House\",\n \"ru\": \"Дача\",\n \"de\": \"Gartenhaus\",\n \"fr\": \"Maison D'Été\",\n \"it\": \"Casa Estiva\",\n \"nl\": \"Zomerhuis\",\n \"pl\": \"Domek Letniskowy\",\n \"pt\": \"Summer House\",\n \"es\": \"Casa De Verano\",\n \"zh-cn\": \"凉亭\"\n },\n \"icon\": \"Summer House.svg\"\n },\n {\n \"_id\": \"guest_bathroom\",\n \"name\": {\n \"en\": \"Guest Bathroom\",\n \"ru\": \"Гостевая Комната\",\n \"de\": \"Gäste-WC\",\n \"fr\": \"Salle De Bains Invité\",\n \"it\": \"Guest Bathroom\",\n \"nl\": \"Gastenbadkamer\",\n \"pl\": \"Łazienka Gościnna\",\n \"pt\": \"Banheiro De Hóspedes\",\n \"es\": \"Baño De Visitas\",\n \"zh-cn\": \"客用浴室\"\n },\n \"icon\": \"Guest Bathroom.svg\"\n },\n {\n \"_id\": \"guest_room\",\n \"name\": {\n \"en\": \"Guest Room\",\n \"ru\": \"Гостевая Комната\",\n \"de\": \"Gästezimmer\",\n \"fr\": \"Chambre D'Amis\",\n \"it\": \"Stanza Degli Ospiti\",\n \"nl\": \"Guest Room\",\n \"pl\": \"Pokój Gościnny\",\n \"pt\": \"Quarto De Hóspedes\",\n \"es\": \"Habitación De Huéspedes\",\n \"zh-cn\": \"客房\"\n },\n \"icon\": \"Guest Room.svg\"\n },\n {\n \"_id\": \"laundry_room\",\n \"name\": {\n \"en\": \"Laundry Room\",\n \"ru\": \"Прачечная\",\n \"de\": \"Hauswirtschaftsraum\",\n \"fr\": \"Buanderie\",\n \"it\": \"Lavanderia\",\n \"nl\": \"Wasruimte\",\n \"pl\": \"Pralnia\",\n \"pt\": \"Lavandaria\",\n \"es\": \"Cuarto De Lavado\",\n \"zh-cn\": \"洗衣房\"\n },\n \"icon\": \"Laundry Room.svg\"\n },\n {\n \"_id\": \"home_theater\",\n \"name\": {\n \"en\": \"Home Theater\",\n \"ru\": \"Домашний Театр\",\n \"de\": \"Heimkino\",\n \"fr\": \"Cinéma Maison\",\n \"it\": \"Home Theater\",\n \"nl\": \"Thuisbioscoop\",\n \"pl\": \"Kino Domowe\",\n \"pt\": \"Cinema Em Casa\",\n \"es\": \"Cine En Casa\",\n \"zh-cn\": \"家庭电影院\"\n },\n \"icon\": \"Home Theater.svg\"\n },\n {\n \"_id\": \"boiler_room\",\n \"name\": {\n \"en\": \"Boiler Room\",\n \"ru\": \"Бойлерная\",\n \"de\": \"Heizungsraum\",\n \"fr\": \"Chaufferie\",\n \"it\": \"Locale Caldaia\",\n \"nl\": \"Boiler Room\",\n \"pl\": \"Kotłownia\",\n \"pt\": \"Sala Da Caldeira\",\n \"es\": \"Sala De Calderas\",\n \"zh-cn\": \"锅炉房\"\n },\n \"icon\": \"Boiler Room.svg\"\n },\n {\n \"_id\": \"chamber\",\n \"name\": {\n \"en\": \"Chamber\",\n \"ru\": \"Камера\",\n \"de\": \"Kammer\",\n \"fr\": \"Chambre\",\n \"it\": \"Camera\",\n \"nl\": \"Kamer\",\n \"pl\": \"Izba\",\n \"pt\": \"Câmara\",\n \"es\": \"Cámara\",\n \"zh-cn\": \"商会\"\n },\n \"icon\": \"Chamber.svg\"\n },\n {\n \"_id\": \"basement,_cellar\",\n \"name\": {\n \"en\": \"Basement, Cellar\",\n \"ru\": \"Подвал, Погреб\",\n \"de\": \"Keller\",\n \"fr\": \"Sous-Sol, Cave\",\n \"it\": \"Taverna, Cantina\",\n \"nl\": \"Kelder, Kelder\",\n \"pl\": \"Piwnica, Piwnica\",\n \"pt\": \"Porão, Adega\",\n \"es\": \"Sótano, Bodega\",\n \"zh-cn\": \"地下室,地窖\"\n },\n \"icon\": \"Basement.svg\"\n },\n {\n \"_id\": \"nursery\",\n \"name\": {\n \"en\": \"Nursery\",\n \"ru\": \"Питомник\",\n \"de\": \"Kinderzimmer\",\n \"fr\": \"Garderie\",\n \"it\": \"Asilo\",\n \"nl\": \"Kinderkamer\",\n \"pl\": \"Żłobek\",\n \"pt\": \"Berçário\",\n \"es\": \"Guardería\",\n \"zh-cn\": \"苗圃\"\n },\n \"icon\": \"Nursery.svg\"\n },\n {\n \"_id\": \"corridor\",\n \"name\": {\n \"en\": \"Corridor\",\n \"ru\": \"Коридор\",\n \"de\": \"Korridor\",\n \"fr\": \"Couloir\",\n \"it\": \"Corridoio\",\n \"nl\": \"Gang\",\n \"pl\": \"Korytarz\",\n \"pt\": \"Corredor\",\n \"es\": \"Corredor\",\n \"zh-cn\": \"走廊\"\n },\n \"icon\": \"Corridor.svg\"\n },\n {\n \"_id\": \"kitchen\",\n \"name\": {\n \"en\": \"Kitchen\",\n \"ru\": \"Кухня\",\n \"de\": \"Küche\",\n \"fr\": \"Cuisine\",\n \"it\": \"Cucina\",\n \"nl\": \"Keuken\",\n \"pl\": \"Kuchnia\",\n \"pt\": \"Cozinha\",\n \"es\": \"Cocina\",\n \"zh-cn\": \"厨房\"\n },\n \"icon\": \"Kitchen.svg\"\n },\n {\n \"_id\": \"upstairs\",\n \"name\": {\n \"en\": \"Upstairs\",\n \"ru\": \"Вверх По Лестнице\",\n \"de\": \"Obergeschoss\",\n \"fr\": \"En Haut\",\n \"it\": \"Di Sopra\",\n \"nl\": \"Boven\",\n \"pl\": \"Na Górę\",\n \"pt\": \"Andar De Cima\",\n \"es\": \"Piso Superior\",\n \"zh-cn\": \"楼上\"\n },\n \"icon\": \"Upstairs.svg\"\n },\n {\n \"_id\": \"office\",\n \"name\": {\n \"en\": \"Office\",\n \"ru\": \"Офис\",\n \"de\": \"Office\",\n \"fr\": \"Bureau\",\n \"it\": \"Ufficio\",\n \"nl\": \"Kantoor\",\n \"pl\": \"Gabinet\",\n \"pt\": \"Escritório\",\n \"es\": \"Oficina\",\n \"zh-cn\": \"办公室\"\n },\n \"icon\": \"Office.svg\"\n },\n {\n \"_id\": \"pool\",\n \"name\": {\n \"en\": \"Pool\",\n \"ru\": \"Бассейн\",\n \"de\": \"Pool\",\n \"fr\": \"Piscine\",\n \"it\": \"Piscina\",\n \"nl\": \"Zwembad\",\n \"pl\": \"Basen\",\n \"pt\": \"Piscina\",\n \"es\": \"Piscina\",\n \"zh-cn\": \"水池\"\n },\n \"icon\": \"Pool.svg\"\n },\n {\n \"_id\": \"rear_wall\",\n \"name\": {\n \"en\": \"Rear Wall\",\n \"ru\": \"Задняя Стенка\",\n \"de\": \"Rückwand\",\n \"fr\": \"Paroi Arrière\",\n \"it\": \"Parete Posteriore\",\n \"nl\": \"Achterwand\",\n \"pl\": \"Tylna Ściana\",\n \"pt\": \"Parede Traseira\",\n \"es\": \"Pared Posterior\",\n \"zh-cn\": \"后墙\"\n },\n \"icon\": \"Rear Wall.svg\"\n },\n {\n \"_id\": \"barn\",\n \"name\": {\n \"en\": \"Barn\",\n \"ru\": \"Амбар\",\n \"de\": \"Scheune\",\n \"fr\": \"Grange\",\n \"it\": \"Fienile\",\n \"nl\": \"Schuur\",\n \"pl\": \"Stodoła\",\n \"pt\": \"Celeiro\",\n \"es\": \"Granero\",\n \"zh-cn\": \"谷仓\"\n },\n \"icon\": \"Barn.svg\"\n },\n {\n \"_id\": \"sleeping_area\",\n \"name\": {\n \"en\": \"Sleeping Area\",\n \"ru\": \"Спальное Место\",\n \"de\": \"Schlafbereich\",\n \"fr\": \"Coin Montagne\",\n \"it\": \"Area Sleeping\",\n \"nl\": \"Sleeping Area\",\n \"pl\": \"Powierzchnia Spania\",\n \"pt\": \"Sleeping Area\",\n \"es\": \"Área De Dormir\",\n \"zh-cn\": \"睡眠区\"\n },\n \"icon\": \"Sleeping Area.svg\"\n },\n {\n \"_id\": \"bedroom\",\n \"name\": {\n \"en\": \"Bedroom\",\n \"ru\": \"Спальная Комната\",\n \"de\": \"Schlafzimmer\",\n \"fr\": \"Chambre\",\n \"it\": \"Camera Da Letto\",\n \"nl\": \"Slaapkamer\",\n \"pl\": \"Sypialnia\",\n \"pt\": \"Quarto\",\n \"es\": \"Cuarto\",\n \"zh-cn\": \"卧室\"\n },\n \"icon\": \"Bedroom.svg\"\n },\n {\n \"_id\": \"shed\",\n \"name\": {\n \"en\": \"Shed\",\n \"ru\": \"Сбрасывать\",\n \"de\": \"Schuppen\",\n \"fr\": \"Hangar\",\n \"it\": \"Capannone\",\n \"nl\": \"Schuur\",\n \"pl\": \"Budka\",\n \"pt\": \"Cabana\",\n \"es\": \"Cobertizo\",\n \"zh-cn\": \"棚\"\n },\n \"icon\": \"Shed.svg\"\n },\n {\n \"_id\": \"swimming_pool\",\n \"name\": {\n \"en\": \"Swimming Pool\",\n \"ru\": \"Плавательный Бассейн\",\n \"de\": \"Schwimmbad\",\n \"fr\": \"Piscine\",\n \"it\": \"Piscina\",\n \"nl\": \"Zwembad\",\n \"pl\": \"Basen\",\n \"pt\": \"Piscina\",\n \"es\": \"Piscina\",\n \"zh-cn\": \"游泳池\"\n },\n \"icon\": \"Swimming Pool.svg\"\n },\n {\n \"_id\": \"dining\",\n \"name\": {\n \"en\": \"Dining\",\n \"ru\": \"Обеденный\",\n \"de\": \"Speis\",\n \"fr\": \"À Manger\",\n \"it\": \"Cenare\",\n \"nl\": \"Dining\",\n \"pl\": \"Jadalnia\",\n \"pt\": \"Jantar\",\n \"es\": \"Comida\",\n \"zh-cn\": \"用餐\"\n },\n \"icon\": \"Dining.svg\"\n },\n {\n \"_id\": \"playroom\",\n \"name\": {\n \"en\": \"Playroom\",\n \"ru\": \"Игровая Комната\",\n \"de\": \"Spielzimmer\",\n \"fr\": \"Salle De Jeux\",\n \"it\": \"Stanza Dei Giochi\",\n \"nl\": \"Speelkamer\",\n \"pl\": \"Pokój Zabaw\",\n \"pt\": \"Sala De Jogos\",\n \"es\": \"Cuarto De Jugar\",\n \"zh-cn\": \"游戏室\"\n },\n \"icon\": \"Playroom.svg\"\n },\n {\n \"_id\": \"stairway\",\n \"name\": {\n \"en\": \"Stairway\",\n \"ru\": \"Лестница\",\n \"de\": \"Treppe\",\n \"fr\": \"Escalier\",\n \"it\": \"Scala\",\n \"nl\": \"Trap\",\n \"pl\": \"Klatka Schodowa\",\n \"pt\": \"Escada\",\n \"es\": \"Escalera\",\n \"zh-cn\": \"楼梯\"\n },\n \"icon\": \"Stairway.svg\"\n },\n {\n \"_id\": \"equipment_room\",\n \"name\": {\n \"en\": \"Equipment Room\",\n \"ru\": \"Оборудование Номера\",\n \"de\": \"Technikraum\",\n \"fr\": \"Salle D'Équipement\",\n \"it\": \"Stanza Degli Attrezzi\",\n \"nl\": \"Technische Ruimte\",\n \"pl\": \"Wyposażenie Pokoi\",\n \"pt\": \"Sala De Equipamentos\",\n \"es\": \"Cuarto De Equipos\",\n \"zh-cn\": \"机房\"\n },\n \"icon\": \"Equipment Room.svg\"\n },\n {\n \"_id\": \"terrace\",\n \"name\": {\n \"en\": \"Terrace\",\n \"ru\": \"Терраса\",\n \"de\": \"Terrasse\",\n \"fr\": \"Terrasse\",\n \"it\": \"Terrazza\",\n \"nl\": \"Terras\",\n \"pl\": \"Taras\",\n \"pt\": \"Terraço\",\n \"es\": \"Terraza\",\n \"zh-cn\": \"阳台\"\n },\n \"icon\": \"Terrace.svg\"\n },\n {\n \"_id\": \"toilet\",\n \"name\": {\n \"en\": \"Toilet\",\n \"ru\": \"Туалет\",\n \"de\": \"Toilette\",\n \"fr\": \"Toilette\",\n \"it\": \"Gabinetto\",\n \"nl\": \"Toilet\",\n \"pl\": \"Toaleta\",\n \"pt\": \"Banheiro\",\n \"es\": \"Inodoro\",\n \"zh-cn\": \"洗手间\"\n },\n \"icon\": \"Toilet.svg\"\n },\n {\n \"_id\": \"stairwell\",\n \"name\": {\n \"en\": \"Stairwell\",\n \"ru\": \"Лестничная клетка\",\n \"de\": \"Treppenhaus\",\n \"fr\": \"Cage D'Escalier\",\n \"it\": \"Tromba Delle Scale\",\n \"nl\": \"Trappenhuis\",\n \"pl\": \"Klatka Schodowa\",\n \"pt\": \"Caixa De Escada\",\n \"es\": \"Hueco De Escalera\",\n \"zh-cn\": \"楼梯间\"\n },\n \"icon\": \"Stairwell.svg\"\n },\n {\n \"_id\": \"locker_room\",\n \"name\": {\n \"en\": \"Locker Room\",\n \"ru\": \"Камера Хранения\",\n \"de\": \"Umkleideraum\",\n \"fr\": \"Vestiaire\",\n \"it\": \"Spogliatoio\",\n \"nl\": \"Kleedkamer\",\n \"pl\": \"Szatnia\",\n \"pt\": \"Vestiário\",\n \"es\": \"Vestuario\",\n \"zh-cn\": \"更衣室\"\n },\n \"icon\": \"Locker Room.svg\"\n },\n {\n \"_id\": \"basement\",\n \"name\": {\n \"en\": \"Basement\",\n \"ru\": \"Подвал\",\n \"de\": \"Untergeschoss\",\n \"fr\": \"Sous-Sol\",\n \"it\": \"Seminterrato\",\n \"nl\": \"Kelder\",\n \"pl\": \"Piwnica\",\n \"pt\": \"Porão\",\n \"es\": \"Sótano\",\n \"zh-cn\": \"地下室\"\n },\n \"icon\": \"Basement.svg\"\n },\n {\n \"_id\": \"front_yard\",\n \"name\": {\n \"en\": \"Front Yard\",\n \"ru\": \"Передний Двор\",\n \"de\": \"Vorgarten\",\n \"fr\": \"Front Yard\",\n \"it\": \"Cortile\",\n \"nl\": \"Voortuin\",\n \"pl\": \"Podwórko\",\n \"pt\": \"Jardim Da Frente\",\n \"es\": \"Patio Delantero\",\n \"zh-cn\": \"前院\"\n },\n \"icon\": \"Front Yard.svg\"\n },\n {\n \"_id\": \"anteroom\",\n \"name\": {\n \"en\": \"Anteroom\",\n \"ru\": \"Передняя\",\n \"de\": \"Vorraum\",\n \"fr\": \"Antichambre\",\n \"it\": \"Anticamera\",\n \"nl\": \"Voorkamer\",\n \"pl\": \"Przedpokój\",\n \"pt\": \"Ante-Sala\",\n \"es\": \"Antesala\",\n \"zh-cn\": \"接待室\"\n },\n \"icon\": \"Anteroom.svg\"\n },\n {\n \"_id\": \"washroom\",\n \"name\": {\n \"en\": \"Washroom\",\n \"ru\": \"Уборная\",\n \"de\": \"Waschraum\",\n \"fr\": \"Toilettes\",\n \"it\": \"Bagno\",\n \"nl\": \"Waskamer\",\n \"pl\": \"Umywalnia\",\n \"pt\": \"Banheiro\",\n \"es\": \"Baño\",\n \"zh-cn\": \"卫生间\"\n },\n \"icon\": \"Washroom.svg\"\n },\n {\n \"_id\": \"wc\",\n \"name\": {\n \"en\": \"Wc\",\n \"ru\": \"Туалет\",\n \"de\": \"WC\",\n \"fr\": \"Toilettes\",\n \"it\": \"Bagno\",\n \"nl\": \"Wc\",\n \"pl\": \"Toaleta\",\n \"pt\": \"Banheiro\",\n \"es\": \"Wc\",\n \"zh-cn\": \"厕所\"\n },\n \"icon\": \"Wc.svg\"\n },\n {\n \"_id\": \"workshop\",\n \"name\": {\n \"en\": \"Workshop\",\n \"ru\": \"Мастерская\",\n \"de\": \"Werkstatt\",\n \"fr\": \"Atelier\",\n \"it\": \"Laboratorio\",\n \"nl\": \"Werkplaats\",\n \"pl\": \"Warsztat\",\n \"pt\": \"Oficina\",\n \"es\": \"Taller\",\n \"zh-cn\": \"作坊\"\n },\n \"icon\": \"Workshop.svg\"\n },\n {\n \"_id\": \"windscreen\",\n \"name\": {\n \"en\": \"Windscreen\",\n \"ru\": \"Ветровое Стекло\",\n \"de\": \"Windfang\",\n \"fr\": \"Pare-Brise\",\n \"it\": \"Parabrezza\",\n \"nl\": \"Voorruit\",\n \"pl\": \"Szyba Przednia\",\n \"pt\": \"Pára-Brisas\",\n \"es\": \"Parabrisas\",\n \"zh-cn\": \"风档\"\n },\n \"icon\": \"Windscreen.svg\"\n },\n {\n \"_id\": \"living_area\",\n \"name\": {\n \"en\": \"Living Area\",\n \"ru\": \"Жилая Площадь\",\n \"de\": \"Wohnbereich\",\n \"fr\": \"Salon\",\n \"it\": \"Zona Giorno\",\n \"nl\": \"Living Area\",\n \"pl\": \"Powierzchnia Mieszkalna\",\n \"pt\": \"Sala-De-Estar\",\n \"es\": \"Sala De Estar\",\n \"zh-cn\": \"生活区域\"\n },\n \"icon\": \"Living Area.svg\"\n },\n {\n \"_id\": \"living_room\",\n \"name\": {\n \"en\": \"Living Room\",\n \"ru\": \"Гостинная\",\n \"de\": \"Wohnzimmer\",\n \"fr\": \"Le Salon\",\n \"it\": \"Soggiorno\",\n \"nl\": \"Woonkamer\",\n \"pl\": \"Salon\",\n \"pt\": \"Sala De Estar\",\n \"es\": \"Sala De Estar\",\n \"zh-cn\": \"客厅\"\n },\n \"icon\": \"Living Room.svg\"\n },\n {\n \"_id\": \"living_room\",\n \"name\": {\n \"en\": \"Living Room\",\n \"ru\": \"Гостинная\",\n \"de\": \"Wohnzimmer\",\n \"fr\": \"Le Salon\",\n \"it\": \"Soggiorno\",\n \"nl\": \"Woonkamer\",\n \"pl\": \"Salon\",\n \"pt\": \"Sala De Estar\",\n \"es\": \"Sala De Estar\",\n \"zh-cn\": \"客厅\"\n },\n \"icon\": \"Living Room.svg\"\n }\n];\n\nclass IconSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n opened: false,\n names: [],\n filter: '',\n icons: props.icons || null,\n };\n }\n\n loadAllIcons() {\n if (this.state.loading || this.state.icons) {\n return;\n }\n this.setState({loading: true}, () => {\n const icons = [];\n const names = [];\n\n if (!this.props.icons) {\n let templates = this.props.onlyRooms || (!this.props.onlyRooms && !this.props.onlyDevices) ? rooms : null;\n\n const promises = [];\n if (templates) {\n templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/rooms/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i] = icon));\n });\n }\n\n templates = this.props.onlyDevices || (!this.props.onlyRooms && !this.props.onlyDevices) ? devices : null;\n if (templates) {\n const offset = promises.length;\n templates && templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/devices/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i + offset] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i + offset] = icon));\n });\n }\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n } else {\n const promises = this.props.icons.map((item, i) => {\n let href;\n if (typeof item === 'object') {\n href = item.icon || item.src || item.href;\n names[i] = typeof item.name === 'object' ? item.name[this.props.lang] || item.name.en || item._id : item.name;\n if (!names[i]) {\n const parts = href.split('.');\n parts.pop();\n names[i] = parts[parts.length - 1];\n }\n } else {\n href = item;\n }\n\n if (href) {\n if (href.startsWith('data:')) {\n icons[i] = href;\n return Promise.resolve();\n } else {\n return Utils.getSvg(href)\n .then(icon =>\n icons[i] = icon);\n }\n } else {\n return Promise.resolve();\n }\n });\n\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n }\n });\n }\n\n render() {\n if (this.state.loading) {\n return ;\n }\n\n return <>\n this.setState({opened: true}, () => this.loadAllIcons())} style={{minWidth: 40, marginRight: 8}}\n >...\n {this.state.opened ? this.setState({opened: false})} open={true}>\n {this.props.t('ra_Select predefined icon')}\n {this.state.isAnyName ? this.setState({filter: e.target.value.toLowerCase()})}\n placeholder={this.props.t('ra_Filter')}\n InputProps={{\n endAdornment: this.state.filter\n ?\n this.setState({filter: ''})}>\n \n \n :\n undefined,\n }}\n /> : null}\n \n \n
\n {this.state.icons && this.state.icons.map((icon, i) => {\n if (!this.state.filter || (this.state.names[i] && this.state.names[i].toLowerCase().includes(this.state.filter))) {\n return \n \n this.setState({opened: false}, () =>\n (this.props.onSelect || this.props.onChange)(icon))\n }\n size=\"large\"\n >\n \n \n ;\n } else {\n return null;\n }\n })}\n
\n
\n \n this.setState({opened: false})}\n startIcon={}\n >\n {this.props.t('ra_Close')}\n \n \n
: null}\n ;\n }\n}\n\nIconSelector.propTypes = {\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n onSelect: PropTypes.func, // one of onSelect or onChange are required\n onChange: PropTypes.func,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\n/** @type {typeof IconSelector} */\nexport default IconSelector;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport IconNoIcon from '../icons/IconNoIcon';\n\nfunction getElementFromSource(src) {\n const svgContainer = document.createElement('div');\n svgContainer.innerHTML = src;\n const svg = svgContainer.firstElementChild;\n if (svg.remove) {\n svg.remove();\n } else {\n svgContainer.removeChild(svg);\n }\n\n svgContainer.remove();\n return svg;\n}\n\nfunction serializeAttrs(map) {\n const ret = {};\n for (let prop, i = 0; i < map.length; i++) {\n const key = map[i].name;\n if (key === 'class') {\n prop = 'className';\n }\n else if (!key.startsWith('data-')) {\n prop = key.replace(/[-|:]([a-z])/g, g => g[1].toUpperCase());\n } else {\n prop = key;\n }\n\n ret[prop] = map[i].value;\n }\n return ret;\n}\n\n/**\n * @typedef {object} ImageProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [color] The color.\n * @property {string} [src] The source of the image.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {string} [className] The CSS class name.\n * @property {boolean} [showError] Show image errors (or just show no image)?\n *\n * @extends {React.Component}\n */\nclass Image extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n svg: !!(this.props.src && this.props.src.startsWith('data:')),\n created: true,\n color: this.props.color || '',\n src: this.props.src || '',\n imgError: false,\n showError: this.props.showError,\n };\n\n this.svg = this.state.svg ? this.getSvgFromData(this.state.src) : null;\n }\n\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n\n if (props && state && props.src !== state.src) {\n newState.src = props.src;\n newState.svg = props.src && props.src.startsWith('data:');\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.color !== state.color) {\n newState.color = props.color;\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.showError !== state.showError) {\n newState.showError = props.showError;\n changed = true;\n }\n\n return changed ? newState : null;\n }\n\n getSvgFromData(src) {\n const len = 'data:image/svg+xml;base64,';\n if (!src.startsWith(len)) {\n return null;\n }\n src = src.substring(len.length);\n try {\n src = atob(src);\n const svg = getElementFromSource(src);\n const inner = svg.innerHTML;\n const svgProps = serializeAttrs(svg.attributes || []);\n\n svg.remove();\n\n return ;\n } catch (e) {\n\n }\n return null;\n }\n\n render() {\n if (this.state.svg) {\n if (!this.state.created) {\n setTimeout(() => {\n this.svg = this.getSvgFromData(this.state.src);\n this.setState({created: true});\n }, 50);\n }\n\n return this.svg;\n } else if (this.state.src) {\n if (this.state.imgError || !this.state.src) {\n return ;\n } else {\n return this.props.showError ? this.setState({imgError: true}) : this.setState({src: ''})}\n />;\n }\n } else {\n return null;\n }\n }\n}\n\nImage.propTypes = {\n color: PropTypes.string,\n src: PropTypes.string.isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n};\n\nexport default Image;","/**\n * Notice: Some code was adapted from Material-UI's text field.\n * Copyright (c) 2014 Call-Em-All (https://github.com/callemall/material-ui)\n */\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport PropTypes from 'prop-types'\nimport Input from '@mui/material/Input'\nimport FilledInput from '@mui/material/FilledInput/FilledInput'\nimport OutlinedInput from '@mui/material/OutlinedInput'\nimport InputLabel from '@mui/material/InputLabel'\nimport Chip from '@mui/material/Chip'\nimport withStyles from '@mui/styles/withStyles'\nimport blue from '@mui/material/colors/blue'\nimport FormControl from '@mui/material/FormControl'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport Utils from '../Utils';\n\nconst variantComponent = {\n standard: Input,\n filled: FilledInput,\n outlined: OutlinedInput,\n};\n\nconst styles = (theme) => {\n const light = theme.palette.type === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n\n return {\n root: {},\n inputRoot: {\n display: 'inline-flex',\n flexWrap: 'wrap',\n flex: 1,\n marginTop: 0,\n minWidth: 70,\n '&$outlined,&$filled': {\n boxSizing: 'border-box',\n },\n '&$outlined': {\n paddingTop: 14,\n },\n '&$filled': {\n paddingTop: 28,\n }\n },\n input: {\n display: 'inline-block',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n appearance: 'none', // Remove border in Safari, doesn't seem to break anything in other browsers\n WebkitTapHighlightColor: 'rgba(0,0,0,0)', // Remove mobile color flashing (deprecated style).\n float: 'left',\n flex: 1,\n },\n chipContainer: {\n display: 'flex',\n flexFlow: 'row wrap',\n cursor: 'text',\n marginBottom: -2,\n minHeight: 40,\n '&$labeled&$standard': {\n marginTop: 18,\n },\n },\n outlined: {\n '& input': {\n height: 16,\n paddingTop: 4,\n paddingBottom: 12,\n marginTop: 4,\n marginBottom: 4,\n },\n },\n standard: {},\n filled: {\n '& input': {\n height: 22,\n marginBottom: 4,\n marginTop: 4,\n paddingTop: 0,\n },\n '$marginDense & input': {\n height: 26,\n },\n },\n labeled: {},\n label: {\n top: 4,\n '&$outlined&:not($labelShrink)': {\n top: 2,\n '$marginDense &': {\n top: 5,\n }\n },\n '&$filled&:not($labelShrink)': {\n top: 15,\n '$marginDense &': {\n top: 20,\n },\n },\n },\n labelShrink: {\n top: 0,\n },\n helperText: {\n marginBottom: -20,\n },\n focused: {},\n disabled: {},\n underline: {\n '&:after': {\n borderBottom: `2px solid ${theme.palette.primary[light ? 'dark' : 'light']}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut,\n }),\n pointerEvents: 'none', // Transparent to the hover style.\n },\n '&$focused:after': {\n transform: 'scaleX(1)',\n },\n '&$error:after': {\n borderBottomColor: theme.palette.error.main,\n transform: 'scaleX(1)', // error is always underlined in red\n },\n '&:before': {\n borderBottom: `1px solid ${bottomLineColor}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter,\n }),\n pointerEvents: 'none', // Transparent to the hover style.\n },\n '&:hover:not($disabled):not($focused):not($error):before': {\n borderBottom: `2px solid ${theme.palette.text.primary}`,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n borderBottom: `1px solid ${bottomLineColor}`,\n }\n },\n '&$disabled:before': {\n borderBottomStyle: 'dotted',\n }\n },\n error: {\n '&:after': {\n backgroundColor: theme.palette.error.main,\n transform: 'scaleX(1)', // error is always underlined in red\n }\n },\n chip: {\n margin: '0 8px 8px 0',\n float: 'left',\n },\n marginDense: {},\n }\n}\n\nconst keyCodes = {\n BACKSPACE: 8,\n DELETE: 46,\n LEFT_ARROW: 37,\n RIGHT_ARROW: 39,\n};\n\nclass ChipInput extends React.Component {\n state = {\n chips: [],\n errorText: undefined,\n focusedChip: null,\n inputValue: '',\n isClean: true,\n isFocused: false,\n chipsUpdated: false,\n prevPropsValue: [],\n };\n\n constructor(props) {\n super(props);\n if (props.defaultValue) {\n this.state.chips = props.defaultValue;\n }\n this.labelRef = React.createRef();\n this.input = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.variant === 'outlined') {\n this.labelNode = ReactDOM.findDOMNode(this.labelRef.current);\n this.forceUpdate();\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.inputBlurTimeout);\n }\n\n static getDerivedStateFromProps(props, state) {\n let newState = null;\n\n if (props.value && props.value.length !== state.prevPropsValue.length) {\n newState = {prevPropsValue: props.value};\n if (props.clearInputValueOnChange) {\n newState.inputValue = '';\n }\n }\n\n // if change detection is only needed for clearInputValueOnChange\n if (props.clearInputValueOnChange && props.value && props.value.length !== state.prevPropsValue.length) {\n newState = {prevPropsValue: props.value, inputValue: ''};\n }\n\n if (props.disabled) {\n newState = {...newState, focusedChip: null};\n }\n\n if (!state.chipsUpdated && props.defaultValue) {\n newState = {...newState, chips: props.defaultValue};\n }\n\n return newState;\n }\n\n /**\n * Blurs this component.\n * @public\n */\n blur() {\n if (this.input) {\n this.actualInput.blur();\n }\n }\n\n /**\n * Focuses this component.\n * @public\n */\n focus = () => {\n this.actualInput.focus();\n if (this.state.focusedChip) {\n this.setState({focusedChip: null});\n }\n }\n\n handleInputBlur = event => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.setState({ isFocused: false });\n if (this.state.focusedChip) {\n this.setState({ focusedChip: null });\n }\n const value = event.target.value;\n let addChipOptions;\n switch (this.props.blurBehavior) {\n case 'add-or-clear':\n addChipOptions = { clearInputOnFail: true };\n // falls through\n case 'add':\n if (this.props.delayBeforeAdd) {\n // Let's assume that we only want to add the existing content as chip, when\n // another event has not added a chip within 200ms .\n // e.g. onSelection Callback in Autocomplete case\n const numChipsBefore = (this.props.value || this.state.chips).length;\n this.inputBlurTimeout = setTimeout(() => {\n const numChipsAfter = (this.props.value || this.state.chips).length;\n if (numChipsBefore === numChipsAfter) {\n this.handleAddChip(value, addChipOptions);\n } else {\n this.clearInput();\n }\n }, 150);\n } else {\n this.handleAddChip(value, addChipOptions);\n }\n break;\n\n case 'clear':\n this.clearInput();\n break;\n\n default:\n break;\n }\n }\n\n handleInputFocus = event => {\n this.setState({ isFocused: true });\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n }\n\n handleKeyDown = event => {\n const { focusedChip } = this.state;\n this._keyPressed = false;\n this._preventChipCreation = false;\n\n if (this.props.onKeyDown) {\n // Needed for arrow controls on menu in autocomplete scenario\n this.props.onKeyDown(event);\n // Check if the callback marked the event as isDefaultPrevented() and skip further actions\n // enter key for example should not always add the current value of the inputField\n if (event.isDefaultPrevented()) {\n return;\n }\n }\n const chips = this.props.value || this.state.chips;\n if (this.props.newChipKeyCodes.includes(event.keyCode) || this.props.newChipKeys.includes(event.key)) {\n const result = this.handleAddChip(event.target.value);\n if (result !== false) {\n event.preventDefault();\n }\n return;\n }\n\n switch (event.keyCode) {\n case keyCodes.BACKSPACE:\n if (event.target.value === '') {\n if (focusedChip) {\n this.handleDeleteChip(chips[focusedChip], focusedChip);\n if (focusedChip) {\n this.setState({focusedChip: focusedChip - 1});\n }\n } else {\n this.setState({focusedChip: chips.length - 1});\n }\n }\n break;\n case keyCodes.DELETE:\n if (event.target.value === '' && focusedChip) {\n this.handleDeleteChip(chips[focusedChip], focusedChip);\n if (focusedChip <= chips.length - 1) {\n this.setState({ focusedChip });\n }\n }\n break;\n case keyCodes.LEFT_ARROW:\n if (focusedChip == null && event.target.value === '' && chips.length) {\n this.setState({ focusedChip: chips.length - 1 });\n } else if (focusedChip != null && focusedChip > 0) {\n this.setState({ focusedChip: focusedChip - 1 });\n }\n break;\n case keyCodes.RIGHT_ARROW:\n if (focusedChip != null && focusedChip < chips.length - 1) {\n this.setState({ focusedChip: focusedChip + 1 });\n } else {\n this.setState({ focusedChip: null });\n }\n break;\n default:\n this.setState({ focusedChip: null });\n break;\n }\n }\n\n handleKeyUp = event => {\n if (!this._preventChipCreation && (this.props.newChipKeyCodes.indexOf(event.keyCode) >= 0 || this.props.newChipKeys.indexOf(event.key) >= 0) && this._keyPressed) {\n this.clearInput();\n } else {\n this.updateInput(event.target.value);\n }\n if (this.props.onKeyUp) {\n this.props.onKeyUp(event);\n }\n }\n\n handleKeyPress = event => {\n this._keyPressed = true;\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n }\n\n handleUpdateInput = e => {\n if (this.props.inputValue == null) {\n this.updateInput(e.target.value);\n }\n\n if (this.props.onUpdateInput) {\n this.props.onUpdateInput(e);\n }\n }\n\n /**\n * Handles adding a chip.\n * @param {string|object} chip Value of the chip, either a string or an object (if dataSourceConfig is set)\n * @param {object=} options Additional options\n * @param {boolean=} options.clearInputOnFail If `true`, and `onBeforeAdd` returns `false`, clear the input\n * @returns True if the chip was added (or at least `onAdd` was called), false if adding the chip was prevented\n */\n handleAddChip(chip, options) {\n if (this.props.onBeforeAdd && !this.props.onBeforeAdd(chip)) {\n this._preventChipCreation = true;\n if (options && options.clearInputOnFail) {\n this.clearInput();\n }\n return false;\n }\n this.clearInput();\n const chips = this.props.value || this.state.chips;\n\n if (this.props.dataSourceConfig) {\n if (typeof chip === 'string') {\n chip = {\n [this.props.dataSourceConfig.text]: chip,\n [this.props.dataSourceConfig.value]: chip\n };\n }\n\n if (this.props.allowDuplicates || !chips.some(c => c[this.props.dataSourceConfig.value] === chip[this.props.dataSourceConfig.value])) {\n if (this.props.value && this.props.onAdd) {\n this.props.onAdd(chip);\n } else {\n this.updateChips([...this.state.chips, chip]);\n }\n }\n return true;\n }\n\n if (chip.trim().length > 0) {\n if (this.props.allowDuplicates || !chips.includes(chip)) {\n if (this.props.value && this.props.onAdd) {\n this.props.onAdd(chip);\n } else {\n this.updateChips([...this.state.chips, chip]);\n }\n }\n return true;\n }\n return false;\n }\n\n handleDeleteChip(chip, i) {\n if (!this.props.value) {\n const chips = this.state.chips.slice();\n const changed = chips.splice(i, 1); // remove the chip at index i\n if (changed) {\n let focusedChip = this.state.focusedChip;\n if (this.state.focusedChip === i) {\n focusedChip = null;\n } else if (this.state.focusedChip > i) {\n focusedChip = this.state.focusedChip - 1;\n }\n this.updateChips(chips, { focusedChip });\n }\n } else if (this.props.onDelete) {\n this.props.onDelete(chip, i);\n }\n }\n\n updateChips(chips, additionalUpdates = {}) {\n this.setState({ chips, chipsUpdated: true, ...additionalUpdates });\n if (this.props.onChange) {\n this.props.onChange(chips);\n }\n }\n\n /**\n * Clears the text field for adding new chips.\n * This only works in uncontrolled input mode, i.e. if the inputValue prop is not used.\n * @public\n */\n clearInput() {\n this.updateInput('');\n }\n\n updateInput(value) {\n this.setState({ inputValue: value });\n }\n\n /**\n * Set the reference to the actual input, that is the input of the Input.\n * @param {object} ref - The reference\n */\n setActualInputRef = ref => {\n this.actualInput = ref;\n this.props.inputRef && this.props.inputRef(ref);\n }\n\n render() {\n const {\n allowDuplicates,\n alwaysShowPlaceholder,\n blurBehavior,\n children,\n chipRenderer = defaultChipRenderer,\n classes,\n className,\n clearInputValueOnChange,\n dataSource,\n dataSourceConfig,\n defaultValue,\n delayBeforeAdd,\n disabled,\n disableUnderline,\n error,\n filter,\n FormHelperTextProps,\n fullWidth,\n fullWidthInput,\n helperText,\n id,\n InputProps = {},\n inputRef,\n InputLabelProps = {},\n inputValue,\n label,\n newChipKeyCodes,\n newChipKeys,\n onBeforeAdd,\n onAdd,\n onBlur,\n onDelete,\n onChange,\n onFocus,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n onUpdateInput,\n placeholder,\n readOnly,\n required,\n rootRef,\n value,\n variant,\n ...other\n } = this.props;\n\n const chips = value || this.state.chips || [];\n const actualInputValue = inputValue != null ? inputValue : this.state.inputValue;\n\n const hasInput = (this.props.value || actualInputValue).length || actualInputValue.length;\n const shrinkFloatingLabel = InputLabelProps.shrink != null\n ? InputLabelProps.shrink\n : (label != null && (hasInput || this.state.isFocused || chips.length));\n\n const chipComponents = chips.map((chip, i) => {\n const value = dataSourceConfig ? chip[dataSourceConfig.value] : chip;\n return chipRenderer(\n {\n value,\n text: dataSourceConfig ? chip[dataSourceConfig.text] : chip,\n chip,\n isDisabled: !!disabled,\n isReadOnly: readOnly,\n isFocused: this.state.focusedChip === i,\n handleClick: () => this.setState({focusedChip: i}),\n handleDelete: () => this.handleDeleteChip(chip, i),\n className: classes.chip\n },\n i\n );\n });\n\n const InputMore = {}\n if (variant === 'outlined') {\n InputMore.notched = shrinkFloatingLabel;\n InputMore.labelWidth =\n (shrinkFloatingLabel && this.labelNode && this.labelNode.offsetWidth) ||\n 0;\n }\n\n if (variant !== 'standard') {\n InputMore.startAdornment = {chipComponents};\n } else {\n InputProps.disableUnderline = true;\n }\n\n const InputComponent = variantComponent[variant];\n\n return 0 ? undefined : required}\n onClick={this.focus}\n disabled={disabled}\n variant={variant}\n {...other}\n >\n {label && \n {label}\n }\n \n {variant === 'standard' && chipComponents}\n \n \n {helperText && \n {helperText}\n }\n ;\n }\n}\n\nChipInput.propTypes = {\n /** Allows duplicate chips if set to true. */\n allowDuplicates: PropTypes.bool,\n /** If true, the placeholder will always be visible. */\n alwaysShowPlaceholder: PropTypes.bool,\n /** Behavior when the chip input is blurred: `'clear'` clears the input, `'add'` creates a chip and `'ignore'` keeps the input. */\n blurBehavior: PropTypes.oneOf(['clear', 'add', 'add-or-clear', 'ignore']),\n /** A function of the type `({ value, text, chip, isFocused, isDisabled, isReadOnly, handleClick, handleDelete, className }, key) => node` that returns a chip based on the given properties. This can be used to customize chip styles. Each item in the `dataSource` array will be passed to `chipRenderer` as arguments `chip`, `value` and `text`. If `dataSource` is an array of objects and `dataSourceConfig` is present, then `value` and `text` will instead correspond to the object values defined in `dataSourceConfig`. If `dataSourceConfig` is not set and `dataSource` is an array of objects, then a custom `chipRenderer` must be set. `chip` is always the raw value from `dataSource`, either an object or a string. */\n chipRenderer: PropTypes.func,\n /** Whether the input value should be cleared if the `value` prop is changed. */\n clearInputValueOnChange: PropTypes.bool,\n /** Data source for auto complete. This should be an array of strings or objects. */\n dataSource: PropTypes.array,\n /** Config for objects list dataSource, e.g. `{ text: 'text', value: 'value' }`. If not specified, the `dataSource` must be a flat array of strings or a custom `chipRenderer` must be set to handle the objects. */\n dataSourceConfig: PropTypes.shape({\n text: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n }),\n /** The chips to display by default (for uncontrolled mode). */\n defaultValue: PropTypes.array,\n /** Whether to use `setTimeout` to delay adding chips in case other input events like `onSelection` need to fire first */\n delayBeforeAdd: PropTypes.bool,\n /** Disables the chip input if set to true. */\n disabled: PropTypes.bool,\n /** Disable the input underline. Only valid for 'standard' variant */\n disableUnderline: PropTypes.bool,\n /** Props to pass through to the `FormHelperText` component. */\n FormHelperTextProps: PropTypes.object,\n /** If true, the chip input will fill the available width. */\n fullWidth: PropTypes.bool,\n /** If true, the input field will always be below the chips and fill the available space. By default, it will try to be beside the chips. */\n fullWidthInput: PropTypes.bool,\n /** Helper text that is displayed below the input. */\n helperText: PropTypes.node,\n /** Props to pass through to the `InputLabel`. */\n InputLabelProps: PropTypes.object,\n /** Props to pass through to the `Input`. */\n InputProps: PropTypes.object,\n /** Use this property to pass a ref callback to the native input component. */\n inputRef: PropTypes.func,\n /** The input value (enables controlled mode for the text input if set). */\n inputValue: PropTypes.string,\n /* The content of the floating label. */\n label: PropTypes.node,\n /** The key codes (`KeyboardEvent.keyCode`) used to determine when to create a new chip. */\n newChipKeyCodes: PropTypes.arrayOf(PropTypes.number),\n /** The keys (`KeyboardEvent.key`) used to determine when to create a new chip. */\n newChipKeys: PropTypes.arrayOf(PropTypes.string),\n /** Callback function that is called when a new chip was added (in controlled mode). */\n onAdd: PropTypes.func,\n /** Callback function that is called with the chip to be added and should return true to add the chip or false to prevent the chip from being added without clearing the text input. */\n onBeforeAdd: PropTypes.func,\n /** Callback function that is called when the chips change (in uncontrolled mode). */\n onChange: PropTypes.func,\n /** Callback function that is called when a new chip was removed (in controlled mode). */\n onDelete: PropTypes.func,\n /** Callback function that is called when the input changes. */\n onUpdateInput: PropTypes.func,\n /** A placeholder that is displayed if the input has no values. */\n placeholder: PropTypes.string,\n /** Makes the chip input read-only if set to true. */\n readOnly: PropTypes.bool,\n /** The chips to display (enables controlled mode if set). */\n value: PropTypes.array,\n /** The variant of the Input component */\n variant: PropTypes.oneOf(['outlined', 'standard', 'filled'])\n}\n\nChipInput.defaultProps = {\n allowDuplicates: false,\n blurBehavior: 'clear',\n clearInputValueOnChange: false,\n delayBeforeAdd: false,\n disableUnderline: false,\n newChipKeyCodes: [13],\n newChipKeys: ['Enter'],\n variant: 'standard'\n};\n\nexport default withStyles(styles, {name: 'WAMuiChipInput'})(ChipInput);\n\nexport const defaultChipRenderer = ({\n value,\n text,\n isFocused,\n isDisabled,\n isReadOnly,\n handleClick,\n handleDelete,\n className\n}, key) =>\n ;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n },\n notAlive: {\n color: '#a30000'\n },\n});\n\nclass ConfigAlive extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n const instance = this.getInstance();\n\n this.props.socket.getState(instance + '.alive')\n .then(state => this.setState({alive: !!(state && state.val), instance}));\n }\n\n getInstance() {\n let instance = this.props.schema.instance || (this.props.adapterName + '.' + this.props.instance);\n if (instance.includes('${')) {\n instance = this.getPattern(instance);\n }\n if (instance && !instance.startsWith('system.adapter.')) {\n instance = 'system.adapter.' + instance;\n }\n return instance;\n }\n\n renderItem() {\n if (this.getInstance() !== this.state.instance) {\n setTimeout(() => {\n const instance = this.getInstance();\n if (instance) {\n this.props.socket.getState(instance + '.alive')\n .then(state => this.setState({alive: !!(state && state.val), instance}));\n } else {\n this.setState({alive: null, instance})\n }\n }, 200);\n }\n\n if (this.state.alive !== false && this.state.alive !== true) {\n return null;\n }\n\n const instance = this.state.instance.replace(/^system.adapter./, '');\n return
\n {this.state.alive ?\n this.props.schema.textAlive !== undefined ? (this.props.schema.textAlive ? I18n.t(this.props.schema.textAlive, instance) : '') : I18n.t('ra_Instance %s is alive', instance)\n :\n this.props.schema.textNotAlive !== undefined ? (this.props.schema.textNotAlive ? I18n.t(this.props.schema.textNotAlive, instance) : '') : I18n.t('ra_Instance %s is not alive', instance)\n }\n
;\n }\n}\n\nConfigAlive.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n};\n\nexport default withStyles(styles)(ConfigAlive);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocomplete extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions = this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)));\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n // eslint-disable-next-line\n item = this.state.value !== null && this.state.value !== undefined && options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n }\n\n return {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n options={options}\n getOptionLabel={option => (option && option.label) || ''}\n renderInput={params => }\n />;\n }\n}\n\nConfigAutocomplete.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocomplete);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocompleteSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const selectOptions = this.props.schema.options ?\n this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)))\n :\n [];\n\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.command || 'send', data)\n .then(list => {\n if (list && Array.isArray(list)) {\n list.forEach(item =>\n selectOptions.push(typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item))));\n }\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions, context: this.getContext()});\n } else {\n this.setState({value, selectOptions, context: this.getContext()});\n }\n });\n } else {\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n }\n\n getContext() {\n const context = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n return JSON.stringify(context);\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => this.askInstance(), 300);\n }\n }\n\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_LABEL;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n item = this.state.value !== null && this.state.value !== undefined &&\n //eslint-disable-next-line\n options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n item = item || null;\n }\n\n if (!options.length) {\n return {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n } else {\n return (option && option.label) || ''}\n className={this.props.classes.indeterminate}\n onInputChange={e => {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n renderInput={(params) =>\n }\n />;\n }\n }\n}\n\nConfigAutocompleteSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocompleteSendTo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport { Button, TextField } from '@mui/material';\n\nimport DialogCron from '../..//Dialogs/Cron';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n flex: {\n display: 'flex'\n },\n button: {\n height: 48,\n marginLeft: 4,\n minWidth: 48,\n }\n});\n\nclass ConfigCRON extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || '';\n this.setState({ value});\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema, attr } = this.props;\n const { value, showDialog } = this.state;\n\n return \n {this.getText(schema.label)}\n
\n {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(attr, value))\n }}\n />\n this.setState({ showDialog: true })}\n >...\n
\n {showDialog ? this.setState({ showDialog: false })}\n cancel={I18n.t('ra_Cancel')}\n ok={I18n.t('ra_Ok')}\n onOk={value =>\n this.setState({ showDialog: false, value }, () =>\n this.onChange(attr, value))}\n /> : null}\n
;\n }\n}\n\nConfigCRON.propTypes = {\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n};\n\nexport default withStyles(styles)(ConfigCRON);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport I18n from '../../i18n';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigCertificateSelect extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let selectOptions = await this.props.socket.getCertificates();\n\n selectOptions = selectOptions\n .filter(el => {\n const name = this.props.attr.toLowerCase();\n\n if (name.includes(el.type)) {\n return true;\n } else if (el.type === 'public' && name.includes('cert')) {\n return true;\n } else if (el.type === 'private' && (name.includes('priv') || name.includes('key'))) {\n return true;\n } else if (el.type === 'chained' && (name.includes('chain') || name.includes('ca'))) {\n return true;\n }\n\n return false;\n })\n .map(el => ({label: el.name, value: el.name}));\n\n selectOptions.unshift({label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE});\n\n this.setState({value, selectOptions});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n // eslint-disable-next-line\n const item = this.state.selectOptions?.find(item => item.value === this.state.value);\n\n return \n {this.getText(this.props.schema.label)}\n this.getText(item?.label, this.props.schema.noTranslation !== false)}\n onChange={e =>\n this.setState({ value: e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value))}\n >\n {this.state.selectOptions?.map(item =>\n {\n this.getText(item.label, this.props.schema.noTranslation !== false)\n })}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigCertificateSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCertificateSelect);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport I18n from '../../i18n';\n\nconst styles = theme => ({\n error: {\n color: 'red'\n }\n});\n\nclass ConfigCheckbox extends ConfigGeneric {\n renderItem(error, disabled) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let isIndeterminate = Array.isArray(value);\n\n return \n {\n e.preventDefault();\n e.stopPropagation();\n this.onChange(this.props.attr, !value);\n }}\n control={ {\n if (isIndeterminate) {\n this.onChange(this.props.attr, true);\n } else {\n this.onChange(this.props.attr, e.target.checked);\n }\n }}\n disabled={!!disabled}\n />}\n label={this.getText(this.props.schema.label)}\n />\n {\n error ? (this.props.schema.validatorErrorText ? I18n.t(this.props.schema.validatorErrorText) : I18n.t('ra_Error')) :\n null}\n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n \n }\n}\n\nConfigCheckbox.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCheckbox);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ChipInput from './ChipInput';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigLanguage extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr);\n if (this.props.schema.delimiter && typeof value === 'string') {\n const parts = value.split(this.props.schema.delimiter).map(a => a.trim()).filter(a => a);\n this.setState({ value: parts });\n } else {\n this.setState({ value: value || [] });\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const { attr,schema } = this.props;\n const { value } = this.state;\n return \n {\n const newValue = JSON.parse(JSON.stringify(value));\n newValue.push(chip);\n this.setState({ value: newValue, prevValue: '' }, () => {\n if (this.props.schema.delimiter) {\n this.onChange(attr, newValue.join(this.props.schema.delimiter + ' '));\n } else {\n this.onChange(attr, newValue);\n }\n });\n }}\n onDelete={(chip, index) => {\n const newValue = JSON.parse(JSON.stringify(value));\n newValue.splice(index, 1);\n this.setState({ value: newValue, prevValue: '' }, () => {\n if (this.props.schema.delimiter) {\n this.onChange(attr, newValue.join(this.props.schema.delimiter + ' '));\n } else {\n this.onChange(attr, newValue);\n }\n });\n }}\n />\n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigLanguage.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigLanguage);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {withStyles} from '@mui/styles';\nimport { ChromePicker } from 'react-color';\n\nimport IconButton from '@mui/material/IconButton';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\n\nimport ClearIcon from '@mui/icons-material/Close';\n\nimport Utils from '../Utils';\nimport ColorPicker from '../ColorPicker';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({});\n\nclass ConfigColor extends ConfigGeneric {\n renderColorDialog() {\n return !!this.state.showColorDialog && this.setState({showColorDialog: false})}\n open={this.state.showColorDialog}>\n {\n this.setState({colorDialogValue: value}, () =>\n this.onChange(this.props.attr, ColorPicker.getColor(this.state.colorDialogValue, true)));\n }}\n />\n ;\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let textColor = Utils.isUseBright(value, null);\n if (textColor === null) {\n textColor = undefined;\n }\n return <>\n { this.renderColorDialog() }\n this.setState({showColorDialog: true, colorDialogValue: value})}\n onChange={e => {\n const color = e.target.value;\n this.onChange(this.props.attr, color);\n }}\n inputProps={{\n style: {\n //paddingLeft: noPadding ? 0 : 8,\n backgroundColor: value,\n color: textColor ? '#FFF' : '#000'\n }\n }}\n InputProps={{\n endAdornment: value ?\n {\n e.stopPropagation();\n this.onChange(this.props.attr, '');\n }}>\n \n \n : undefined,\n }}\n InputLabelProps={{shrink: true}}\n />\n ;\n }\n}\n\nConfigColor.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigColor);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport Fab from '@mui/material/Fab';\n\nimport IconGpsFixed from '@mui/icons-material/GpsFixed';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n width: {\n width: 'calc(100% - 40px)',\n }\n});\n\nclass ConfigCoordinates extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value && this.props.schema.autoInit) {\n setTimeout(() => this.getCoordinates(), 300);\n }\n }\n\n getSystemCoordinates() {\n return this.props.socket.getSystemConfig()\n .then(obj => {\n if (obj && obj.common && (obj.common.longitude || obj.common.latitude)) {\n window.alert(I18n.t('ra_Used system settings'));\n this.setState({ value: obj.common.latitude + (this.props.schema.divider || ',') + obj.common.longitude });\n } else {\n window.alert(I18n.t('ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser'));\n }\n });\n }\n\n getCoordinates() {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n if (position && position.coords) {\n this.setState({value: position.coords.latitude + (this.props.schema.divider || ',') + position.coords.longitude});\n } else {\n this.getSystemCoordinates();\n }\n },\n error => {\n this.getSystemCoordinates();\n }\n );\n } else {\n this.getSystemCoordinates();\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n return <>\n {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n this.getCoordinates()}>\n ;\n }\n}\n\nConfigCoordinates.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCoordinates);","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Grid from '@mui/material/Grid';\n\nimport i18n from '../../i18n';\nconst getOrLoadRemote = (remote, shareScope, remoteFallbackUrl = undefined) =>\n new Promise((resolve, reject) => {\n // check if remote exists on window\n if (!window[remote]) {\n // search dom to see if remote tag exists, but might still be loading (async)\n const existingRemote = document.querySelector(`script[data-webpack=\"${remote}\"]`);\n // when remote is loaded.\n const onload = async () => {\n // check if it was initialized\n if (window[remote]) {\n if (!window[remote].__initialized) {\n // if share scope doesn't exist (like in webpack 4) then expect shareScope to be a manual object\n if (typeof __webpack_share_scopes__ === 'undefined') {\n // use default share scope object passed in manually\n await window[remote].init(shareScope.default);\n } else {\n // otherwise, init share scope as usual\n // eslint-disable-next-line\n await window[remote].init(__webpack_share_scopes__[shareScope]);\n }\n // mark remote as initialized\n window[remote].__initialized = true;\n }\n } else {\n console.error('Cannot load ' + remote);\n return reject('Cannot load ' + remote);\n }\n // resolve promise so marking remote as loaded\n resolve(window[remote]);\n };\n\n if (existingRemote) {\n // if existing remote but not loaded, hook into its onload and wait for it to be ready\n existingRemote.onload = onload;\n existingRemote.onerror = reject;\n // check if remote fallback exists as param passed to function\n // TODO: should scan public config for a matching key if no override exists\n } else if (remoteFallbackUrl) {\n // inject remote if a fallback exists and call the same onload function\n const d = document;\n const script = d.createElement('script');\n script.type = 'text/javascript';\n // mark as data-webpack so runtime can track it internally\n script.setAttribute('data-webpack', `${remote}`);\n script.async = true;\n script.onerror = reject;\n script.onload = onload;\n script.src = remoteFallbackUrl;\n d.getElementsByTagName('head')[0].appendChild(script);\n } else {\n // no remote and no fallback exist, reject\n reject(`Cannot Find Remote ${remote} to inject`);\n }\n } else {\n // remote already instantiated, resolve\n resolve(window[remote]);\n }\n });\n\nconst loadComponent = (remote, sharedScope, module, url) => async () => {\n const container = await getOrLoadRemote(remote, sharedScope, url);\n const factory = await container.get(module);\n const Module = factory();\n return Module;\n};\n\nclass ConfigCustom extends Component {\n constructor(props) {\n super(props);\n // schema.url - location of Widget\n // schema.name - Component name\n // schema.i18n - i18n\n\n this.state = {\n Component: null,\n error: '',\n };\n }\n\n // load component dynamically\n async componentDidMount() {\n if (!this.props.schema.url) {\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: 'URL is empty. Cannot load custom component!' });\n return;\n }\n\n let url;\n if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {\n url = this.props.schema.url;\n } else if (this.props.schema.url.startsWith('./')) {\n url = `${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\\./, '')}`;\n } else {\n url = `${window.location.protocol}//${window.location.host}/adapter/${this.props.adapterName}/${this.props.schema.url}`;\n }\n\n if (this.props.schema.i18n === true) {\n // load i18n from files\n const pos = url.lastIndexOf('/');\n let i18nURL;\n if (pos !== -1) {\n i18nURL = url.substring(0, pos);\n } else {\n i18nURL = url;\n }\n const lang = i18n.getLanguage();\n const file = `${i18nURL}/i18n/${lang}.json`;\n\n await fetch(file)\n .then(data => data.json())\n .then(json => i18n.extendTranslations(json, lang))\n .catch(error => console.log(`Cannot load i18n \"${file}\": ${error}`));\n } else if (this.props.schema.i18n && typeof this.props.schema.i18n === 'object') {\n try {\n i18n.extendTranslations(this.props.schema.i18n);\n } catch (error) {\n console.error(`Cannot import i18n: ${error}`);\n }\n }\n\n try {\n const [uniqueName, fileToLoad, ...componentName] = this.props.schema.name.split('/');\n console.log(uniqueName, fileToLoad, componentName.join('/'));\n // const component = await window.importFederation(uniqueName, {url, format: 'esm', from: 'vite'}, fileToLoad);\n const component = (await loadComponent(uniqueName, 'default', `./${fileToLoad}`, url)()).default;\n\n if (!component || !component || !component[componentName.join('/')]) {\n const keys = Object.keys(component || {});\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: `Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${keys.join(', ')}` });\n } else {\n this.setState({ Component: component[componentName.join('/')] });\n }\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n render() {\n const Component = this.state.Component;\n\n // render temporary placeholder\n if (!Component) {\n if (this.state.error) {\n return;\n } else {\n const schema = this.props.schema || {};\n\n const item = \n {this.state.error ?
{this.state.error}
: }\n ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n ;\n } else {\n return item;\n }\n }\n }\n\n return ;\n }\n}\n\nConfigCustom.propTypes = {\n socket: PropTypes.object,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n attr: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default ConfigCustom;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { DatePicker } from '@mui/x-date-pickers';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigDatePicker extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n InputLabelProps={{\n shrink: true,\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n}\n\nConfigDatePicker.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigDatePicker);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconText from '@mui/icons-material/Article';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconCode from '@mui/icons-material/Code';\nimport IconPlay from '@mui/icons-material/PlayArrow';\n\nimport FileSelectDialog from '../../Dialogs/FileSelect';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 69px)',\n marginRight: 4,\n },\n fullWidthIcon: {\n width: 'calc(100% - 119px)',\n marginRight: 4,\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFile extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return { value };\n } else {\n return null;\n }\n }\n\n loadFile() {\n const pos = this.state.value.indexOf('/');\n if (pos !== -1) {\n const adapter = this.state.value.substring(0, pos);\n const path = this.state.value.substring(pos + 1);\n return this.props.socket.readFile(adapter, path, true);\n }\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon() {\n const extension = this.state.value.split('.').pop().toLowerCase();\n if (IMAGE_EXT.includes(extension)) {\n return
;\n } else if (AUDIO_EXT.includes(extension)) {\n return this.play()}>;\n } else if (DOC_EXT.includes(extension)) {\n return ;\n } else if (VIDEO_EXT.includes(extension)) {\n return ;\n } else if (JS_EXT.includes(extension)) {\n return ;\n }\n return null;\n }\n\n renderFileBrowser() {\n if (!this.state.showFileBrowser) {\n return null;\n } else {\n return this.setState({ showFileBrowser: false})}\n onOk={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n selectOnlyFolders={this.props.schema.selectOnlyFolders}\n allowUpload={this.props.schema.allowUpload}\n allowDownload={this.props.schema.allowDownload}\n allowCreateFolder={this.props.schema.allowCreateFolder}\n allowView={this.props.schema.allowView}\n showToolbar={this.props.schema.showToolbar}\n limitPath={this.props.schema.limitPath}\n />;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const icon = this.getIcon();\n\n return
\n {icon}\n {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n \n {this.renderFileBrowser()}\n
;\n }\n}\n\nConfigFile.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFile);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport Dropzone from 'react-dropzone';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\n\nimport IconRefresh from '@mui/icons-material/Refresh';\nimport IconUpload from '@mui/icons-material/UploadFile';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconPlay from '@mui/icons-material/PlayArrow';\nimport IconAudio from '@mui/icons-material/MusicNote';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconText from '@mui/icons-material/Article';\nimport IconCode from '@mui/icons-material/Code';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\nimport Utils from '../../Components/Utils';\nimport I18n from '../../i18n';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 42px)'\n },\n fullWidthTwoButtons: {\n width: 'calc(100% - 84px)'\n },\n fullWidthThreeButtons: {\n width: 'calc(100% - 126x)'\n },\n dropZone: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n error: {\n border: '2px solid red'\n },\n deleteButton: {\n\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFileSelector extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n this.objectID = (this.props.schema.objectID || '0_userdata.0').replace('%INSTANCE%', this.props.instance);\n this.path = this.props.schema.upload;\n if (this.path) {\n if (this.path === '/') {\n this.path = '';\n } else {\n if (!this.path.endsWith('/')) {\n this.path = this.path + '/';\n }\n }\n }\n\n // read files\n this.updateFiles()\n .then(() => {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n });\n }\n\n updateFiles() {\n return this.readFiles(this.props.schema.pattern)\n .then(files => this.setState({ files }));\n }\n\n async readFolder(folderName, files, filter) {\n try {\n const dirFiles = await this.props.socket.readDir(this.objectID, folderName.replace(/^\\//, '') || null);\n for (let f = 0; f < dirFiles.length; f++) {\n const file = dirFiles[f];\n if (file.isDir) {\n // read it\n await this.readFolder(`${folderName + file.file}/`, files, filter);\n } else {\n let ok = false;\n if (filter === '*.*' && file.file.includes('.')) {\n ok = true;\n } else if (!filter || filter === '*') {\n ok = true;\n } else if (filter === '.*' && file.file.startsWith('.')) {\n ok = true;\n } else {\n const regExp = new RegExp('^' + filter.replace(/\\./g, '\\\\.').replace(/\\*/g,'.*') + '$');\n ok = regExp.test(file.file);\n }\n\n ok && files.push({ name: folderName + file.file, size: file.stats ? Utils.formatBytes(file.stats.size) : '--' })\n }\n }\n } catch (e) {\n console.error(`Cannot read \"${folderName}\": ${e}`);\n }\n\n return files;\n }\n\n async readFiles(pattern) {\n const files = [];\n pattern = pattern || this.props.schema.pattern;\n if (!pattern) {\n pattern = '**/*.*';\n }\n let filter;\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n filter = pattern;\n } else {\n filter = pattern.substring(pos + 1);\n }\n\n if (pattern.startsWith('**')) {\n // read all folders\n await this.readFolder('/', files, filter);\n } else {\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n await this.readFolder('/', files, filter);\n } else {\n const folder = pattern.substring(0, pos + 1);\n await this.readFolder(folder, files, filter);\n }\n }\n\n return files;\n }\n\n onDrop(acceptedFiles) {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n const maxSize = this.props.schema.maxSize || (2 * 1024 * 1024);\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n this.props.socket.writeFile64(this.objectID, this.path + file.name, base64)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot upload file: ' + e));\n };\n reader.readAsArrayBuffer(file);\n }\n\n renderDeleteDialog() {\n if (!this.state.deleteFile) {\n return null;\n }\n return {\n const deleteFile = this.state.deleteFile;\n this.setState({deleteFile: false}, () => {\n if (isOk) {\n this.props.socket.deleteFile(this.objectID, deleteFile)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot delete file: ' + e));\n }\n });\n }}\n />;\n }\n\n static base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon(item) {\n if (!item || !item.extension) {\n return null;\n }\n if (IMAGE_EXT.includes(item.extension)) {\n return
;\n } else if (AUDIO_EXT.includes(item.extension)) {\n return ;\n } else if (DOC_EXT.includes(item.extension)) {\n return ;\n } else if (VIDEO_EXT.includes(item.extension)) {\n return ;\n } else if (JS_EXT.includes(item.extension)) {\n return ;\n }\n return null;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.files) {\n return null;\n }\n let folders = [];\n if (!this.props.schema.withFolder) {\n this.state.files.forEach(file => {\n const pos = file.name.lastIndexOf('/');\n if (pos === -1) {\n if (!folders.includes('/')) {\n folders.push('/');\n }\n } else {\n const folder = file.name.substring(0, pos + 1);\n if (!folders.includes(folder)) {\n folders.push(folder);\n }\n }\n });\n }\n\n const selectOptions = this.state.files\n .map(file => ({\n value: file.name,\n label: !this.props.schema.withFolder && folders.length === 1 ? `${file.name.substring(folders[0].length)}` : `${file.name}` + (this.props.schema.noSize ? '' : `(${file.size})`),\n extension: file.name.toLowerCase().split('.').pop(),\n }));\n\n if (!this.props.schema.noNone) {\n selectOptions.unshift({label: I18n.t('ra_none'), value: ''});\n }\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value === this.state.value);\n\n let buttons = 0;\n\n if (this.props.schema.upload) {\n buttons++;\n }\n if (this.props.schema.refresh) {\n buttons++;\n }\n let play = this.state.value && (this.state.value.endsWith('.mp3') || this.state.value.endsWith('.ogg') || this.state.value.endsWith('.wav'));\n // show play button\n if (play) {\n buttons++;\n }\n\n const element =
\n \n {this.getText(this.props.schema.label)}\n {\n return <>{this.getIcon(item)}{item?.label || ''}\n }}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {selectOptions.map(item => {\n return \n {this.getIcon(item)}\n {item.label}\n {this.props.schema.delete && item.value ?\n this.setState({deleteFile: item.value})}> : null}\n ;\n })}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n \n { this.props.schema.refresh && this.updateFiles()}> }\n { this.props.schema.upload && this.dropzoneRef.current?.open()}> }\n { play && this.play()}> }\n
;\n\n if (!this.props.schema.upload) {\n return <>{element}{this.renderDeleteDialog()};\n } else {\n let accept = {'*/*': []};\n if (this.props.schema.pattern) {\n const last = this.props.schema.pattern.split('/').pop().toLowerCase().replace(/.*\\./, '');\n if (last === 'png' || last === 'jpg' || last === 'svg') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg']\n };\n } else if (last === 'mp3' || last === 'ogg' || last === 'wav') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'ics') {\n accept = {\n 'text/calendar': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'txt') {\n accept = {\n 'text/plain': ['.txt']\n };\n } else if (last === 'pem') {\n accept = {\n 'text/plain': ['.pem']\n };\n } else if (last === 'pem') {\n accept = {\n '*/*': ['.' + last]\n };\n }\n }\n\n return {\n this.setState({ uploadFile: 'dragging' });\n }}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || I18n.t('Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => \n \n {this.state.uploadFile === 'dragging' ?
\n
\n \n
{\n this.state.uploadFile === 'dragging' ? I18n.t('ra_Drop file here') :\n I18n.t('ra_Place your files here or click here to open the browse dialog')}
\n
\n
: null}\n {element}\n {this.renderDeleteDialog()}\n
}\n ;\n }\n }\n}\n\nConfigFileSelector.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFileSelector);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('functions')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.functions.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return \n {this.getText(this.props.schema.label)}\n item ? : ''}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {this.state.selectOptions.map(item =>\n \n \n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigFunc.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFunc);","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\n\nimport IconInfo from '@mui/icons-material/Info';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nclass ConfigGeneric extends Component {\n static DIFFERENT_VALUE = '__different__';\n static DIFFERENT_LABEL = 'ra___different__';\n static NONE_VALUE = '';\n static NONE_LABEL = 'ra_none';\n static AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDialog: false,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n };\n\n this.isError = {};\n\n if (this.props.schema) {\n if (this.props.custom) {\n this.defaultValue = this.props.schema.defaultFunc ? this.executeCustom(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n } else {\n this.defaultValue = this.props.schema.defaultFunc ? this.execute(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n }\n }\n\n this.lang = I18n.getLanguage();\n }\n\n componentDidMount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n const LIKE_SELECT = ['select', 'autocomplete', 'autocompleteSendTo'];\n // init default value\n if (this.defaultValue !== undefined) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (value === undefined || (LIKE_SELECT.includes(this.props.schema.type) && (value === '' || value === null))) {\n setTimeout(() => {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, this.defaultValue, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, this.defaultValue);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }, 100);\n }\n } else if (this.props.schema.defaultSendTo) {\n this.sendTo();\n }\n }\n\n sendTo() {\n if (this.props.alive) {\n this.defaultSendToDone = true;\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n } else {\n data = {\n attr: this.props.attr,\n value: ConfigGeneric.getValue(this.props.data, this.props.attr),\n };\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.defaultSendTo, data)\n .then(value => {\n if (value !== null && value !== undefined) {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, value, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, value);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }\n });\n } else {\n this.defaultSendToDone = false;\n // show error, that instance does not started\n this.onError(this.props.attr, I18n.t('ra_Instance %s is not alive', this.props.instance));\n }\n }\n\n componentWillUnmount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr)\n if (this.sendToTimeout) {\n clearTimeout(this.sendToTimeout);\n this.sendToTimeout = null;\n }\n }\n\n onUpdate = data => {\n const value = ConfigGeneric.getValue(data || this.props.data, this.props.attr) || '';\n if (this.state.value !== value) {\n this.setState({ value });\n } else {\n this.forceUpdate();\n }\n }\n\n static getValue(data, attr) {\n if (typeof attr === 'string') {\n return ConfigGeneric.getValue(data, attr.split('.'));\n } else {\n if (attr.length === 1) {\n return data[attr[0]];\n } else {\n const part = attr.shift();\n if (typeof data[part] === 'object') {\n return ConfigGeneric.getValue(data[part], attr);\n } else {\n return null;\n }\n }\n }\n }\n\n static setValue(data, attr, value) {\n if (typeof attr === 'string') {\n return ConfigGeneric.setValue(data, attr.split('.'), value);\n } else {\n if (attr.length === 1) {\n if (value === null) {\n delete data[attr[0]];\n } else {\n data[attr[0]] = value;\n }\n } else {\n const part = attr.shift();\n if (!data[part] || typeof data[part] === 'object') {\n data[part] = data[part] || {};\n }\n return ConfigGeneric.setValue(data[part], attr, value);\n }\n }\n }\n\n getText(text, noTranslation) {\n if (!text) {\n return '';\n }\n\n if (typeof text === 'string') {\n text = noTranslation ? text : I18n.t(text);\n if (text.includes('${')) {\n return this.getPattern(text);\n } else {\n return text;\n }\n } else if (text && typeof text === 'object') {\n if (text.func) {\n // calculate pattern\n if (typeof text.func === 'object') {\n return this.getPattern(text.func[this.lang] || text.func.en || '');\n } else {\n this.getPattern(text.func);\n }\n } else {\n return text[this.lang] || text.en || '';\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = ;\n } else if (confirm.type === 'error') {\n icon = ;\n } else if (confirm.type === 'info') {\n icon = ;\n }\n\n return \n this.setState({ confirmDialog: false}, () => {\n if (isOk) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n if (this.state.confirmDepAttr) {\n ConfigGeneric.setValue(data, this.state.confirmDepAttr, this.state.confirmDepNewValue);\n }\n\n ConfigGeneric.setValue(data, this.state.confirmAttr, this.state.confirmNewValue);\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null}, () =>\n this.props.onChange(data));\n } else {\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null});\n }\n })\n }\n />;\n }\n\n onChange(attr, newValue) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n ConfigGeneric.setValue(data, attr, newValue);\n\n if (this.props.schema.confirm && this.execute(this.props.schema.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmData: null,\n });\n } else {\n // find any inputs with confirmation\n if (this.props.schema.confirmDependsOn) {\n for (let z = 0; z < this.props.schema.confirmDependsOn.length; z++) {\n const dep = this.props.schema.confirmDependsOn[z];\n if (dep.confirm) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n if (this.execute(dep.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmDepNewValue: val,\n confirmDepAttr: dep.attr,\n confirmData: dep.confirm,\n });\n }\n }\n }\n }\n\n const changed = [];\n if (this.props.schema.onChangeDependsOn) {\n for (let z = 0; z < this.props.schema.onChangeDependsOn.length; z++) {\n const dep = this.props.schema.onChangeDependsOn[z];\n if (dep.onChange) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(dep.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(dep.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n\n if (newValue !== val) {\n ConfigGeneric.setValue(data, dep.attr, newValue);\n changed.push(dep.attr);\n }\n }\n }\n }\n\n if (this.props.schema.hiddenDependsOn) {\n for (let z = 0; z < this.props.schema.hiddenDependsOn.length; z++) {\n const dep = this.props.schema.hiddenDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.labelDependsOn) {\n for (let z = 0; z < this.props.schema.labelDependsOn.length; z++) {\n const dep = this.props.schema.labelDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.helpDependsOn) {\n for (let z = 0; z < this.props.schema.helpDependsOn.length; z++) {\n const dep = this.props.schema.helpDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.onChange && !this.props.schema.onChange.ignoreOwnChanges) {\n const val = ConfigGeneric.getValue(data, this.props.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(this.props.schema.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n if (newValue !== val) {\n ConfigGeneric.setValue(data, this.props.attr, newValue);\n }\n }\n\n if (this.props.custom) {\n this.props.onChange(attr, newValue);\n\n changed && changed.length && changed.forEach((_attr, i) =>\n setTimeout(() => this.props.onChange(_attr, ConfigGeneric.getValue(data, attr)), i * 50));\n } else {\n this.props.onChange(data, undefined, () =>\n changed.length && this.props.forceUpdate(changed, data));\n }\n }\n }\n\n execute(func, defaultValue, data, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return defaultValue;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', '_instance', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket, this.props.instance, arrayIndex, globalData);\n // console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return defaultValue;\n }\n }\n }\n\n executeCustom(func, data, customObj, instanceObj, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return null;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket, arrayIndex, globalData);\n console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return null;\n }\n }\n }\n\n calculate(schema) {\n let error;\n let disabled;\n let hidden;\n let defaultValue;\n\n if (this.props.custom) {\n error = schema.validator ? !this.executeCustom(schema.validator, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : schema.default;\n }\n\n return { error, disabled, hidden, defaultValue };\n }\n\n onError(attr, error) {\n if (!error) {\n delete this.isError[attr];\n } else {\n this.isError[attr] = error;\n }\n\n this.props.onError && this.props.onError(attr, error);\n }\n\n renderItem(error, disabled, defaultValue) {\n return this.getText(this.props.schema.label) || this.getText(this.props.schema.text)\n }\n\n renderHelp(text, link, noTranslation) {\n if (!link) {\n text = this.getText(text, noTranslation) || '';\n if (text && text.includes('{this.getText(text, noTranslation)};\n }\n }\n\n getPattern(pattern) {\n if (!pattern) {\n return '';\n } else {\n if (typeof pattern === 'object') {\n pattern = pattern.func;\n }\n\n try {\n if (this.props.custom) {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n const result = f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.instanceObj, this.props.customObj, this.props.socket);\n return result;\n } else {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n return f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket);\n }\n } catch (e) {\n console.error(`Cannot execute ${pattern}: ${e}`);\n return pattern;\n }\n }\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n if (this.props.alive && this.defaultSendToDone === false) {\n this.sendToTimeout = setTimeout(() => {this.sendToTimeout = null; this.sendTo();}, 200);\n }\n\n const { error, disabled, hidden, defaultValue } = this.calculate(schema);\n\n if (hidden) {\n // Remove all errors if element is hidden\n if (Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n\n if (schema.hideOnlyControl) {\n const item = ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n ;\n } else {\n return item;\n }\n } else {\n return null;\n }\n } else {\n // Add error\n if (schema.validatorNoSaveOnError) {\n if (error && !Object.keys(this.isError).length) {\n this.isError = {[this.props.attr]: schema.validatorErrorText ? I18n.t(schema.validatorErrorText) : true};\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr, isError[attr])),\n 100, JSON.parse(JSON.stringify(this.isError)));\n } else if (!error && Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n }\n\n const renderedItem = this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue);\n\n const item = \n { this.props.schema.defaultSendTo && this.props.schema.button ? \n {renderedItem}\n this.sendTo()}\n title={this.props.schema.buttonTooltip ? this.getText(this.props.schema.buttonTooltip, this.props.schema.buttonTooltipNoTranslation) : I18n.t('ra_Request data by instance')}\n >{this.getText(this.props.schema.button)}\n \n :\n renderedItem\n }\n ;\n\n if (schema.newLine) {\n return <>\n
\n {this.renderConfirmDialog()}\n {item}\n ;\n } else {\n if (this.state.confirmDialog) {\n return <>\n {this.renderConfirmDialog()}\n {item}\n ;\n } else {\n return item;\n }\n }\n }\n }\n}\n\nConfigGeneric.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n attr: PropTypes.string,\n value: PropTypes.any,\n themeName: PropTypes.string,\n style: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n forceUpdate: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n};\n\nexport default ConfigGeneric;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigIP extends ConfigGeneric {\n\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getHostByIp(this.props.common.host)\n .then(ips => {\n // [{name, address, family}]\n if (!this.props.schema.listenOnAllPorts) {\n ips = ips.filter(item => item.address !== '0.0.0.0' && item.address !== '::');\n }\n if (this.props.schema.onlyIp4) {\n ips = ips.filter(item => item.family === 'ipv4');\n } else\n if (this.props.schema.onlyIp6) {\n ips = ips.filter(item => item.family === 'ipv6');\n }\n ips.forEach(item => {\n if (item.address === '0.0.0.0') {\n item.name = '[IPv4] 0.0.0.0 - ' + I18n.t('ra_Listen on all IPs');\n } else\n if (item.address === '::') {\n item.name = '[IPv6] :: - ' + I18n.t('ra_Listen on all IPs');\n }\n });\n this.setState({ips});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const item = this.state.ips?.find(item => item.address === value);\n\n return \n {this.getText(this.props.schema.label)}\n item?.name || val}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.ips?.map((item, i) =>\n {item.name})}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigIP.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigIP);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport UploadImage from '../UploadImage';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n image: {\n width: 100\n }\n});\n\nclass ConfigImageUpload extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.imageRef = React.createRef();\n this.index = Date.now();\n }\n async componentDidMount() {\n super.componentDidMount();\n\n if (this.props.schema.base64) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n } else {\n this.props.socket.fileExists(this.props.adapterName + '.' + this.props.instance, this.props.attr)\n .then(exist => {\n if (exist && this.imageRef.current) {\n this.imageRef.current.src = this._getUrl();\n this.imageRef.current.style.display = 'block';\n }\n });\n }\n }\n\n _getUrl(update) {\n if (update) {\n this.index = Date.now();\n }\n let url = `files/${this.props.adapterName}.${this.props.instance}/${this.props.attr}?t=${this.index}`;\n if (window.location.port === '3000') {\n url = `${window.location.protocol}//${window.location.hostname}:8081/${url}`;\n }\n\n return url;\n }\n\n renderItem(error, disabled, defaultValue) {\n // eslint-disable-next-line\n return \n {this.getText(this.props.schema.label)}\n {\n if (this.props.schema.base64) {\n this.setState({ value: null }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n // delete file to /instance/attr\n this.props.socket.deleteFile(this.props.adapterName + '.' + this.props.instance, this.props.attr);\n // update image\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'none';\n this.imageRef.current.src = '';\n }\n }\n }}\n onChange={base64 => {\n if (this.props.schema.base64) {\n this.setState({ value: base64 }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n if (base64.startsWith('data')) {\n base64 = base64.split(',')[1];\n }\n // upload file to /instance/attr\n this.props.socket.writeFile64(this.props.adapterName + '.' + this.props.instance, this.props.attr, base64)\n .then(() => {\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'block';\n this.imageRef.current.src = this._getUrl(true);\n }\n });\n }\n }}\n t={I18n.t}\n />\n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n {this.props.schema.base64 ? null : }\n ;\n }\n}\n\nConfigImageUpload.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigImageUpload);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n});\n\nclass ConfigInstanceSelect extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n let adapter = this.props.schema.adapter;\n if (adapter === '_dataSources') {\n adapter = undefined;\n }\n\n this.props.socket.getAdapterInstances(adapter, true)\n .then(async instances => {\n let selectOptions;\n if (this.props.schema.adapter === '_dataSources') {\n // get only \"data-sources\", like history, sql, influx\n instances = instances.filter(instance => instance && instance.common && instance.common.getHistory);\n } else if (this.props.schema.adapter) {\n instances = instances.filter(instance => instance && instance._id.startsWith('system.adapter.' + this.props.schema.adapter + '.'));\n }\n\n selectOptions = instances.map(instance => ({\n value: this.props.schema.long ? instance._id :\n (this.props.schema.short ? instance._id.split('.').pop() : instance._id.replace(/^system\\.adapter\\./, '')),\n label: `${instance.common.name} [${instance._id.replace(/^system\\.adapter\\./, '')}]`\n }));\n\n selectOptions.sort((a, b) => {\n if (a.value > b.value) {\n return 1;\n } else if (a.value < b.value) {\n return -1;\n } else {\n return 0;\n }\n });\n\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n if (this.props.schema.all) {\n selectOptions.unshift({ label: I18n.t('sch_all'), value: '*' });\n }\n\n this.setState({ value: value || '', selectOptions });\n\n await this.props.socket.subscribeObject(`system.adapter.${adapter ? adapter + '.' : ''}*`, this.onInstancesUpdate);\n });\n }\n\n componentWillUnmount() {\n this.props.socket.unsubscribeObject('system.adapter.*', this.onInstancesUpdate)\n .then(() => {});\n super.componentWillUnmount();\n }\n\n onInstancesUpdate = (id, obj) => {\n if (!id.match(/^system\\.adapter\\.[-_a-z\\d]+\\.\\d+$/)) {\n return;\n }\n const _id = this.props.schema.long ? id : (this.props.schema.short ? id.split('.').pop() : id.replace(/^system\\.adapter\\./, ''));\n const index = this.state.selectOptions.findIndex(item => item.value === _id);\n if (!obj) {\n // deleted\n if (index !== -1) {\n const selectOptions = JSON.parse(JSON.stringify(this.state.selectOptions));\n\n const newState = {};\n if (this.state.value === selectOptions[index].value) {\n newState.value = ConfigGeneric.NONE_VALUE;\n }\n selectOptions.splice(index, 1);\n newState.selectOptions = selectOptions;\n\n this.setState(newState);\n }\n } else {\n if (this.props.schema.adapter === '_dataSources' && (!obj.common || !obj.common.getHistory)) {\n return;\n }\n\n if (index === -1) {\n const selectOptions = JSON.parse(JSON.stringify(this.state.selectOptions));\n selectOptions.push({\n value: this.props.schema.long ? obj._id :\n (this.props.schema.short ? obj._id.split('.').pop() : obj._id.replace(/^system\\.adapter\\./, '')),\n label: `${obj.common.name} [${obj._id.replace(/^system\\.adapter\\./, '')}]`\n });\n selectOptions.sort((a, b) => a.label > b.label ? 1 : (a.label < b.label ? -1 : 0));\n this.setState({ selectOptions });\n }\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(item => item.value === this.state.value);\n\n return \n {this.props.schema.label ? {this.getText(this.props.schema.label)} : null }\n this.getText(item?.label, true)}\n onChange={e =>\n this.setState({ value: e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value))}\n >\n {this.state.selectOptions.map(item =>\n {\n this.getText(item.label, true)\n })}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigInstanceSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigInstanceSelect);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport { Button } from '@mui/material';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport I18n from '../../i18n';\nimport CustomModal from '../CustomModal';\n\nimport AceEditor from 'react-ace';\n// import 'ace-builds/webpack-resolver';\nimport 'ace-builds/src-noconflict/mode-json';\nimport 'ace-builds/src-noconflict/theme-clouds_midnight';\nimport 'ace-builds/src-noconflict/theme-chrome';\nimport 'ace-builds/src-noconflict/ext-language_tools';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n flex: {\n display: 'flex'\n },\n button: {\n height: 48,\n // marginLeft: 4,\n minWidth: 48,\n },\n wrapper: {\n width: 'calc(100vw - 40px)',\n height: 'calc(100vh - 188px)',\n }\n});\n\nclass ConfigJsonEditor extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || {};\n this.setState({ value, initialized: true });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.initialized) {\n return null;\n }\n const { classes, schema, data, attr } = this.props;\n const { value, showSelectId } = this.state;\n return \n
\n this.setState({ showSelectId: true })}\n >{I18n.t('ra_JSON editor')}\n
\n {showSelectId ? this.setState({ showSelectId: false, value: ConfigGeneric.getValue(data, attr) || {} })}\n onApply={() => this.setState({ showSelectId: false }, () => this.onChange(attr, value))}\n >\n
\n this.setState({ value: newValue })}\n name=\"ConfigJsonEditor\"\n fontSize={14}\n setOptions={{\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n enableSnippets: true\n }}\n editorProps={{ $blockScrolling: true }}\n />\n
\n : null}\n {schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n
;\n }\n}\n\nConfigJsonEditor.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigJsonEditor);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nconst LANGUAGES =[\n {\n value: 'en',\n label: 'English'\n },\n {\n value: 'de',\n label: 'Deutsch'\n },\n {\n value: 'ru',\n label: 'русский'\n },\n {\n value: 'pt',\n label: 'Portugues'\n },\n {\n value: 'nl',\n label: 'Nederlands'\n },\n {\n value: 'fr',\n label: 'français'\n },\n {\n value: 'it',\n label: 'Italiano'\n },\n {\n value: 'es',\n label: 'Espanol'\n },\n {\n value: 'pl',\n label: 'Polski'\n },\n {\n value: 'zh-ch',\n label: '简体中文'\n }\n];\n\nclass ConfigLanguage extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const languages = [...LANGUAGES];\n if (this.props.schema.system) {\n languages.unshift({value: '', label: I18n.t('ra_System language')});\n }\n\n this.setState({value: value || I18n.getLanguage(), selectOptions: languages});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(item => item.value === this.state.value || (!item.value && !this.state.value));\n\n return \n {this.getText(this.props.schema.label)}\n this.getText(item?.label, this.props.schema.noTranslation)}\n onChange={e => {\n const value = e.target.value === '_' ? '' : e.target.value;\n this.setState({ value }, () => {\n this.onChange(this.props.attr, value);\n if (this.props.schema.changeGuiLanguage) {\n if (value) {\n if (value === I18n.getLanguage()) {\n return;\n }\n I18n.setLanguage(value);\n this.props.changeLanguage && this.props.changeLanguage();\n } else {\n this.props.socket.getSystemConfig()\n .then(systemConfig => {\n if (systemConfig.common.language === I18n.getLanguage()) {\n return;\n }\n if (systemConfig.common.language) {\n I18n.setLanguage(systemConfig.common.language);\n this.props.changeLanguage && this.props.changeLanguage();\n }\n });\n }\n }\n });\n }}\n >\n {this.state.selectOptions?.map(item =>\n {item.label})}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigLanguage.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigLanguage);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField, FormControl } from '@mui/material';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n },\n control: {\n flexDirection: 'row',\n width: '100%'\n },\n textWithArrows: {\n width: 'calc(100% - 12px)',\n },\n arrows: {\n width: 12,\n display: 'inline'\n },\n arrowUp: {\n fontSize: 10,\n userSelect: 'none',\n cursor: 'pointer',\n },\n arrowDown: {\n fontSize: 10,\n userSelect: 'none',\n cursor: 'pointer',\n }\n});\n\nclass ConfigNumber extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const _value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ _value });\n //this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n }\n\n static getDerivedStateFromProps(props, state) {\n if ((props.schema.min !== undefined && props.schema.min < 0) ||\n (props.schema.max !== undefined && props.schema.max < 0)\n ) {\n return null;\n }\n const _value = ConfigGeneric.getValue(props.data, props.attr);\n if (_value === null || _value === undefined || _value.toString() !== parseFloat(state._value).toString()) {\n return { _value };\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n const arr = [...this.state.value].map(item => ({label: item.toString(), value: item}));\n arr.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n\n return option.label === value.label}\n onChange={(_, value) =>\n this.onChange(this.props.attr, value ? parseFloat(value.value) : this.props.schema.min || 0)}\n options={arr}\n getOptionLabel={option => option.label}\n renderInput={params => }\n />;\n } else {\n if (!error && this.state._value !== null && this.state._value !== undefined) {\n if (this.props.schema.min !== undefined && this.state._value < this.props.schema.min) {\n error = I18n.t('ra_Too small');\n }\n if (this.props.schema.max !== undefined && this.state._value > this.props.schema.max) {\n error = I18n.t('ra_Too big');\n }\n }\n\n let type = 'number';\n if ((this.props.schema.min !== undefined && this.props.schema.min < 0) ||\n (this.props.schema.max !== undefined && this.props.schema.max < 0)\n ) {\n type = 'text';\n }\n\n const isNumber = this.state._value !== null &&\n this.state._value !== undefined &&\n (typeof this.state._value === 'number' ||\n (typeof this.state._value === 'string' &&\n this.state._value.trim() === parseFloat(this.state._value).toString())\n );\n\n return \n {\n const _value = e.target.value;\n if (isFinite(_value)) {\n if (this.props.schema.min !== undefined && parseFloat(_value) < this.props.schema.min) {\n this.onError(this.props.attr, I18n.t('ra_Too small'));\n } else if (this.props.schema.max !== undefined && parseFloat(_value) > this.props.schema.max) {\n this.onError(this.props.attr, I18n.t('ra_Too big'));\n } else if (_value === '-' || isNaN(parseFloat(_value))) {\n this.onError(this.props.attr, I18n.t('ra_Not a number'));\n } else {\n this.onError(this.props.attr); // clear error\n }\n } else if (_value !== '') {\n this.onError(this.props.attr, I18n.t('ra_Not a number'));\n } else {\n this.onError(this.props.attr); // clear error\n }\n\n this.setState({ _value }, () => {\n if (_value.trim() === parseFloat(_value).toString()) {\n this.onChange(this.props.attr, parseFloat(_value) || 0);\n }\n });\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={error && typeof error === 'string' ? error : this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n {type === 'text' && isNumber ?
\n {\n let _value = parseFloat(this.state._value) + 1;\n if (this.props.schema.max !== undefined && _value <= this.props.schema.max) {\n this.setState({ _value });\n }\n }}\n >▲
\n {\n let _value = parseFloat(this.state._value) - 1;\n if (this.props.schema.min !== undefined && _value >= this.props.schema.min) {\n this.setState({ _value });\n }\n }}\n >▼
\n
: null}\n ;\n }\n }\n}\n\nConfigNumber.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigNumber);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport { Button, TextField } from '@mui/material';\n\nimport DialogSelectID from '../../Dialogs/SelectID';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n flex: {\n display: 'flex'\n },\n button: {\n height: 48,\n marginLeft: 4,\n minWidth: 48,\n }\n});\n\nclass ConfigObjectId extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || '';\n this.setState({ value, initialized: true});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.initialized) {\n return null;\n }\n const { classes, schema, socket, attr } = this.props;\n const { value, showSelectId } = this.state;\n\n return \n {this.getText(schema.label)}\n
\n {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(attr, value))\n }}\n />\n this.setState({ showSelectId: true })}\n >...\n
\n {showSelectId ? this.setState({ showSelectId: false })}\n onOk={value =>\n this.setState({ showSelectId: false, value }, () =>\n this.onChange(attr, value))}\n /> : null}\n
;\n }\n}\n\nConfigObjectId.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n};\n\nexport default withStyles(styles)(ConfigObjectId);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport Grid from '@mui/material/Grid';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport Typography from '@mui/material/Typography';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigAlive from './ConfigAlive';\nimport ConfigAutocomplete from './ConfigAutocomplete';\nimport ConfigAutocompleteSendTo from './ConfigAutocompleteSendTo';\nimport ConfigCRON from './ConfigCRON';\nimport ConfigCertificateSelect from './ConfigCertificateSelect';\nimport ConfigCheckbox from './ConfigCheckbox';\nimport ConfigChip from './ConfigChip';\nimport ConfigColor from './ConfigColor';\nimport ConfigCoordinates from './ConfigCoordinates';\nimport ConfigCustom from './ConfigCustom';\nimport ConfigDatePicker from './ConfigDatePicker';\nimport ConfigFile from './ConfigFile';\nimport ConfigFileSelector from './ConfigFileSelector';\nimport ConfigFunc from './ConfigFunc';\nimport ConfigIP from './ConfigIP';\nimport ConfigImageUpload from './ConfigImageUpload';\nimport ConfigInstanceSelect from './ConfigInstanceSelect';\nimport ConfigJsonEditor from './ConfigJsonEditor';\nimport ConfigLanguage from './ConfigLanguage';\nimport ConfigNumber from './ConfigNumber';\nimport ConfigObjectId from './ConfigObjectId';\nimport ConfigPassword from './ConfigPassword';\nimport ConfigPattern from './ConfigPattern';\nimport ConfigRoom from './ConfigRoom';\nimport ConfigSelect from './ConfigSelect';\nimport ConfigSelectSendTo from './ConfigSelectSendTo';\nimport ConfigSendto from './ConfigSendto';\nimport ConfigSetState from './ConfigSetState';\nimport ConfigSlider from './ConfigSlider';\nimport ConfigStaticDivider from './ConfigStaticDivider';\nimport ConfigStaticHeader from './ConfigStaticHeader';\nimport ConfigStaticImage from './ConfigStaticImage';\nimport ConfigStaticText from './ConfigStaticText';\nimport ConfigTable from './ConfigTable';\nimport ConfigText from './ConfigText';\nimport ConfigTextSendTo from './ConfigTextSendTo';\nimport ConfigTimePicker from './ConfigTimePicker';\nimport ConfigTopic from './ConfigTopic';\nimport ConfigUser from './ConfigUser';\n\nconst components = {\n alive: ConfigAlive,\n autocomplete: ConfigAutocomplete,\n autocompleteSendTo: ConfigAutocompleteSendTo,\n certificate: ConfigCertificateSelect,\n checkbox: ConfigCheckbox,\n chip: ConfigChip, // deprecated. Use \"chips\"\n chips: ConfigChip,\n color: ConfigColor,\n coordinates: ConfigCoordinates,\n cron: ConfigCRON,\n custom: ConfigCustom,\n datePicker: ConfigDatePicker,\n divider: ConfigStaticDivider,\n file: ConfigFile,\n fileSelector: ConfigFileSelector,\n func: ConfigFunc,\n header: ConfigStaticHeader,\n image: ConfigImageUpload,\n instance: ConfigInstanceSelect,\n ip: ConfigIP,\n jsonEditor: ConfigJsonEditor,\n language: ConfigLanguage,\n number: ConfigNumber,\n objectId: ConfigObjectId,\n password: ConfigPassword,\n pattern: ConfigPattern,\n room: ConfigRoom,\n select: ConfigSelect,\n selectSendTo: ConfigSelectSendTo,\n sendTo: ConfigSendto,\n setState: ConfigSetState,\n slider: ConfigSlider,\n staticImage: ConfigStaticImage,\n staticLink: ConfigStaticText,\n staticText: ConfigStaticText,\n table: ConfigTable,\n text: ConfigText,\n textSendTo: ConfigTextSendTo,\n timePicker: ConfigTimePicker,\n topic: ConfigTopic,\n user: ConfigUser,\n};\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n //height: '100%',\n },\n paper: {\n margin: 10,\n height: 'calc(100vh - 235px) !important',\n width: 'auto !important',\n overflowY: 'auto',\n paddingBottom: theme.spacing(1)\n },\n padding: {\n padding: 10,\n },\n heading: {\n\n },\n primary: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.mode === 'dark' ? 'inherit' : '#FFF'\n },\n secondary: {\n backgroundColor: theme.palette.secondary.main,\n }\n});\n\nclass ConfigPanel extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n if (this.props.schema && this.props.schema.collapsable) {\n this.setState({expanded: (window._localStorage || window.localStorage).getItem(this.props.adapterName + '.' + this.props.attr) === 'true'});\n }\n }\n\n renderItems(items, disabled) {\n const classes = this.props.classes || {};\n\n return items ? Object.keys(items).map(attr => {\n if (this.props.multiEdit && items[attr].noMultiEdit) {\n return null;\n }\n\n const type = items[attr].type || 'panel';\n let ItemComponent;\n if (type === 'custom') {\n // name\n // url\n if (items[attr].url) {\n ItemComponent = ConfigCustom;\n } else\n if (this.props.customs && this.props.customs[items[attr].component]) {\n ItemComponent = this.props.customs[items[attr].component];\n } else {\n console.error('Cannot find custom component: ' + items[attr].component);\n ItemComponent = ConfigGeneric;\n }\n } else if (type === 'panel') {\n ItemComponent = ConfigPanelStyled;\n } else {\n ItemComponent = components[type] || ConfigGeneric;\n }\n\n return ;\n }) : null;\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n const { disabled, hidden } = this.calculate(schema);\n\n const items = this.props.schema.items;\n const classes = this.props.classes || {};\n\n if (hidden) {\n if (schema.hideOnlyControl) {\n const item = ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n \n } else {\n return item;\n }\n } else {\n return null;\n }\n } else\n if (this.props.table) {\n return this.renderItems(items, disabled);\n } else\n if (this.props.custom) {\n return \n {this.renderItems(items, disabled)}\n ;\n } else {\n let content;\n if (schema.collapsable) {\n content = {\n (window._localStorage || window.localStorage).setItem(this.props.adapterName + '.' + this.props.attr, this.state.expanded ? 'false' : 'true');\n this.setState({expanded: !this.state.expanded});\n }}\n >\n }\n style={Object.assign({}, schema.style, this.props.themeType ? schema.darkStyle : {})}\n className={clsx(classes.fullWidth, schema.color === 'primary' && classes.primary, schema.color === 'secondary' && classes.secondary)}\n >\n {this.getText(schema.label)}\n \n \n \n {this.renderItems(items, disabled)}\n \n \n \n } else {\n content = \n \n {this.renderItems(items, disabled)}\n \n
;\n }\n\n if (!this.props.isParentTab) {\n const item = \n {content}\n ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n ;\n } else {\n return item;\n }\n } else {\n return content;\n }\n }\n }\n}\n\nConfigPanel.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n index: PropTypes.number,\n customs: PropTypes.object,\n alive: PropTypes.bool,\n systemConfig: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n multiEdit: PropTypes.bool,\n isParentTab: PropTypes.bool,\n imagePrefix: PropTypes.string,\n changeLanguage: PropTypes.func,\n\n arrayIndex: PropTypes.number,\n globalData: PropTypes.object,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n\n forceUpdate: PropTypes.func,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n registerOnForceUpdate: PropTypes.func,\n};\n\nconst ConfigPanelStyled = withStyles(styles)(ConfigPanel);\n\nexport default ConfigPanelStyled;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\n\nimport Visibility from '@mui/icons-material/Visibility';\nimport VisibilityOff from '@mui/icons-material/VisibilityOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n display: 'inline-block'\n },\n halfWidth1: {\n width: `calc(50% - ${theme.spacing(0.5)})`,\n display: 'inline-block',\n marginRight: theme.spacing(1),\n },\n halfWidth2: {\n width: `calc(50% - ${theme.spacing(0.5)})`,\n display: 'inline-block'\n }\n});\n\nconst PASSWORD_PLACEHOLDER = '____ppp____';\n\nclass ConfigPassword extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({\n _repeat: value ? PASSWORD_PLACEHOLDER : '',\n _visible: false,\n value: value ? PASSWORD_PLACEHOLDER : '',\n _notEqual: false\n });\n }\n\n onChangePassword(password, repeatPassword) {\n if (password === undefined) {\n password = this.state.value;\n }\n if (repeatPassword === undefined) {\n repeatPassword = this.state._repeat;\n }\n const _notEqual = !!this.props.schema.repeat && repeatPassword !== password;\n this.setState({value: password, _repeat: repeatPassword, _notEqual}, () => {\n if (_notEqual) {\n this.onError(this.props.attr, I18n.t('ra_Passwords are not equal!'));\n } else {\n this.onError(this.props.attr); // clear error\n this.onChange(this.props.attr, password);\n }\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (this.state._notEqual === undefined) {\n return null;\n }\n\n const password = this.onChangePassword(e.target.value)}\n label={this.getText(this.props.schema.label)}\n inputProps={{\n autoComplete: 'new-password',\n form: {autoComplete: 'off'},\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined\n }}\n helperText={this.state._notEqual ? I18n.t('ra_Passwords are not equal!') : this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n InputProps={{endAdornment: this.state.value && this.state.value !== PASSWORD_PLACEHOLDER && this.props.schema.visible ? \n {\n e.preventDefault();\n e.stopPropagation();\n this.setState({_visible: !this.state._visible});\n }}\n edge='end'\n >\n {this.state._visible ? : }\n \n : undefined\n }}\n />;\n\n if (this.props.schema.repeat) {\n const passwordRepeat = this.onChangePassword(undefined, e.target.value)}\n label={`${this.getText(this.props.schema.label)} (${I18n.t('ra_repeat')})`}\n inputProps={{\n autoComplete: 'new-password',\n form: {autoComplete: 'off'},\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined\n }}\n helperText={this.state._notEqual ? I18n.t('ra_Passwords are not equal!') : this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n InputProps={{endAdornment: this.state._repeat && this.state._repeat !== PASSWORD_PLACEHOLDER ? \n {\n e.preventDefault();\n e.stopPropagation();\n this.setState({_visible: !this.state._visible});\n }}\n edge='end'\n >\n {this.state._visible ? : }\n \n : undefined\n }}\n />;\n\n return
\n
{password}
\n
{passwordRepeat}
\n
;\n } else {\n return password;\n }\n }\n}\n\nConfigPassword.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigPassword);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\n\nimport IconButton from '@mui/material/IconButton';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nimport copy from '../copy-to-clipboard';\nimport CopyIcon from '../../icons/IconCopy';\n\nconst styles = theme => ({\n});\n\nclass ConfigPattern extends ConfigGeneric {\n renderItem(error, disabled) {\n return {\n copy(this.getPattern(this.props.schema.pattern));\n window.alert('Copied');\n }}>\n \n \n : undefined,\n }}\n value={this.getPattern(this.props.schema.pattern)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n}\n\nConfigPattern.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigPattern);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('rooms')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.rooms.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return \n {this.getText(this.props.schema.label)}\n item ? : ''}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {this.state.selectOptions.map(item =>\n \n \n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigFunc.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFunc);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigSelect extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions = JSON.parse(JSON.stringify(this.props.schema.options));\n\n // if __different\n if (Array.isArray(value)) {\n this.initialValue = [...value];\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const selectOptions = (this.state.selectOptions || []).filter(item => {\n if (!item.hidden) {\n return true;\n } else if (this.props.custom) {\n return !this.executeCustom(item.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData);\n } else {\n return !this.execute(item.hidden, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData);\n }\n });\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value == this.state.value); // let \"==\" be and not ===\n\n return \n {this.getText(this.props.schema.label)}\n this.getText(item?.label, this.props.schema.noTranslation)}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () => {\n if (this.state.value === ConfigGeneric.DIFFERENT_VALUE) {\n this.onChange(this.props.attr, this.initialValue);\n } else {\n this.onChange(this.props.attr, this.state.value);\n }\n });\n }}\n >\n {selectOptions.map(item =>\n {this.getText(item.label, this.props.schema.noTranslation)})}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSelect);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport TextField from '@mui/material/TextField';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport ListItemText from '@mui/material/ListItemText';\nimport Checkbox from '@mui/material/Checkbox';\nimport Chip from '@mui/material/Chip';\nimport Box from '@mui/material/Box';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n menuPaper: {\n maxHeight: 800\n },\n});\n\n/*\nto use this option, your adapter must implement listUart message\n\nadapter.on('message', obj => {\n if (obj) {\n switch (obj.command) {\n case 'command':\n if (obj.callback) {\n try {\n const serialport = require('serialport');\n if (serialport) {\n // read all found serial ports\n serialport.list()\n .then(ports => {\n adapter.log.info('List of port: ' + JSON.stringify(ports));\n adapter.sendTo(obj.from, obj.command, ports.map(item =>\n ({label: item.path, value: item.path})), obj.callback);\n })\n .catch(e => {\n adapter.sendTo(obj.from, obj.command, [], obj.callback);\n adapter.log.error(e)\n });\n } else {\n adapter.log.warn('Module serialport is not available');\n adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);\n }\n } catch (e) {\n adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);\n }\n }\n\n break;\n }\n }\n});\n */\n\nclass ConfigSelectSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance(){\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {}, this.props.data);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.command || 'send', data)\n .then(list =>\n this.setState({list, context: this.getContext()}));\n } else {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.setState({ value });\n }\n }\n\n getContext() {\n const context = {};\n\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n\n return JSON.stringify(context);\n }\n\n _getValue() {\n let value = this.state.value === null || this.state.value === undefined ? ConfigGeneric.getValue(this.props.data, this.props.attr) : this.state.value;\n\n if (this.props.schema.multiple) {\n if (typeof value === 'string') {\n value = [value];\n } else if (value === null || value === undefined) {\n value = [];\n }\n }\n\n return value;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => this.askInstance(), 300);\n }\n }\n\n let value = this._getValue();\n\n if (!this.props.alive) {\n if (this.props.schema.multiple || this.props.schema.manual === false) {\n return I18n.t('ra_Cannot retrieve options, as instance is offline');\n } else {\n return {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n } else\n if (!this.state.list) {\n return ;\n } else {\n const selectOptions = (this.state.list || [])\n .filter(item => {\n if (!item.hidden) {\n return true;\n } else if (this.props.custom) {\n return !this.executeCustom(item.hidden, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData);\n } else {\n return !this.execute(item.hidden, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData);\n }\n });\n\n const item = selectOptions.find(item => item.value === value);\n\n return \n {this.getText(this.props.schema.label)}\n \n this.props.schema.multiple ?\n \n {val.map(v => {\n const item = selectOptions.find(_item => _item.value === v);\n if (item || this.props.schema.showAllValues !== false) {\n const label = item?.label || v;\n return {\n e.stopPropagation();\n e.preventDefault ();\n let _value = JSON.parse(JSON.stringify(this._getValue()));\n const pos = value.indexOf(v);\n if (pos !== -1) {\n _value.splice(pos, 1);\n this.setState({ value: _value }, () => this.onChange(this.props.attr, _value));\n }\n }}*/ />;\n } else {\n return null;\n }\n })}\n \n :\n (item?.label || val)\n }\n onChange={e => {\n this.onChange(this.props.attr, e.target.value);\n }}\n >\n {selectOptions.map((item, i) =>\n \n { this.props.schema.multiple ? {\n let _value = JSON.parse(JSON.stringify(this._getValue()));\n const pos = value.indexOf(item.value);\n if (pos !== -1) {\n _value.splice(pos, 1);\n } else {\n _value.push(item.value);\n _value.sort();\n }\n this.setState({ value: _value }, () => this.onChange(this.props.attr, _value));\n }}/> : null }\n \n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n }\n}\n\nConfigSelectSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n adapterName: PropTypes.string,\n alive: PropTypes.bool,\n instance: PropTypes.number,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSelectSendTo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport DialogError from '../../Dialogs/Error';\nimport DialogMessage from '../../Dialogs/Message';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nclass ConfigSendto extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.setState( {_error: '', _message: ''});\n }\n\n renderErrorDialog() {\n if (this.state._error) {\n return this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n renderMessageDialog() {\n if (this.state._message) {\n return this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n _onClick() {\n this.props.onCommandRunning(true);\n\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {}, this.props.data);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(\n `${this.props.adapterName}.${this.props.instance}`,\n this.props.schema.command || 'send',\n data\n )\n .then(response => {\n if (response?.error) {\n if (this.props.schema.error && this.props.schema.error[response.error]) {\n let error = this.getText(this.props.schema.error[response.error]);\n if (response.args) {\n response.args.forEach(arg => error = error.replace('%s', arg));\n }\n this.setState({_error: error});\n } else {\n this.setState({_error: response.error ? I18n.t(response.error) : I18n.t('ra_Error')});\n }\n } else {\n if (response?.result && this.props.schema.result && this.props.schema.result[response.result]) {\n let text = this.getText(this.props.schema.result[response.result]);\n if (response.args) {\n response.args.forEach(arg => text = text.replace('%s', arg));\n }\n window.alert(text);\n } else {\n if (response?.result) {\n window.alert(typeof response.result === 'object' ? JSON.stringify(response.result) : response.result);\n } else {\n window.alert(I18n.t('ra_Ok'));\n }\n }\n }\n })\n .catch(e => {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n this.setState({_error: this.getText(this.props.schema.error[e.toString()])});\n } else {\n this.setState({_error: I18n.t(e.toString()) || I18n.t('ra_Error')});\n }\n })\n .then(() => this.props.onCommandRunning(false))\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = ;\n } else if (confirm.type === 'error') {\n icon = ;\n } else if (confirm.type === 'info') {\n icon = ;\n }\n\n return \n this.setState({ confirmDialog: false}, () =>\n isOk && this._onClick())\n }\n />;\n }\n\n renderItem(error, disabled, defaultValue) {\n return
\n {\n if (this.props.schema.confirm) {\n this.setState({confirmDialog: true});\n } else {\n this._onClick();\n }\n }}\n >\n {this.props.schema.icon ? : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n \n {this.renderErrorDialog()}\n {this.renderMessageDialog()}\n
;\n }\n}\n\nConfigSendto.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSendto);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport ConfirmDialog from '../../Dialogs/Confirm';\nimport ConfigGeneric from './ConfigGeneric';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nclass ConfigSetState extends ConfigGeneric {\n async _onClick() {\n let val = this.props.schema.val;\n if (typeof val === 'string' && val.includes('${')) {\n val = this.getPattern(val);\n const obj = await this.props.socket.getObject(this.props.schema.id);\n if (obj?.common?.type === 'number') {\n val = parseFloat(val);\n } else if (obj?.common?.type === 'boolean') {\n val = val === 'true' || val === true || val === '1' || val === 1;\n }\n }\n\n try {\n await this.props.socket.setState(this.props.schema.id, {val, ack: !!this.props.schema.ack});\n this.props.schema.okText && window.alert(this.getText(this.props.schema.okText));\n } catch (e) {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n window.alert(this.getText(this.props.schema.error[e.toString()]));\n } else {\n window.alert(I18n.t(e.toString()) || I18n.t('ra_Error'));\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = ;\n } else if (confirm.type === 'error') {\n icon = ;\n } else if (confirm.type === 'info') {\n icon = ;\n }\n\n return \n this.setState({ confirmDialog: false}, async () =>\n isOk && (await this._onClick()))\n }\n />;\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n if (this.props.schema.confirm) {\n this.setState({confirmDialog: true});\n } else {\n await this._onClick();\n }\n }}\n >\n {this.props.schema.icon ? : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n ;\n }\n}\n\nConfigSetState.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSetState);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Box, Typography, Slider } from '@mui/material';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n },\n slider: {\n marginLeft: 10,\n marginRight: 10,\n width: 'calc(100% - 20px)',\n }\n});\n\nclass ConfigSlider extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const _value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ _value });\n }\n\n static getDerivedStateFromProps(props, state) {\n if ((props.schema.min !== undefined && props.schema.min < 0) ||\n (props.schema.max !== undefined && props.schema.max < 0)\n ) {\n return null;\n }\n const _value = ConfigGeneric.getValue(props.data, props.attr);\n if (_value === null || _value === undefined || _value.toString() !== parseFloat(state._value).toString()) {\n return { _value };\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const min = this.props.schema.min || 0;\n const max = this.props.schema.max || 100;\n const unit = this.props.schema.unit || '';\n\n const marks = [\n { value: min, label: min + unit},\n { value: max, label: max + unit}\n ];\n\n return \n {this.props.schema.label ? \n {this.getText(this.props.schema.label)}\n : null}\n value + unit}\n step={this.props.schema.step || ((max - min) / 100)}\n valueLabelDisplay=\"auto\"\n marks={marks}\n disabled={!!disabled}\n error={error || ''}\n onChange={e => {\n const _value = e.target.value;\n this.setState({ _value }, () =>\n this.onChange(this.props.attr, _value));\n }}\n />\n {this.props.schema.help ? \n {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n : null}\n ;\n }\n}\n\nConfigSlider.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSlider);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n backgroundColor: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n borderStyle: 'hidden',\n },\n primary: {\n backgroundColor: theme.palette.primary.main\n },\n secondary: {\n backgroundColor: theme.palette.secondary.main\n }\n});\n\nclass ConfigStaticDivider extends ConfigGeneric {\n renderItem() {\n return ;\n }\n}\n\nConfigStaticDivider.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticDivider);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n header: {\n width: '100%',\n background: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n padding: '4px !important',\n borderRadius: 3,\n marginBlockEnd: 0,\n marginBlockStart: 0,\n },\n});\n\nclass ConfigStaticHeader extends ConfigGeneric {\n renderItem() {\n switch ((this.props.schema.size || 5).toString()) {\n case '1':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '2':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '3':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '4':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '5':\n default:\n return
\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n
;\n }\n }\n}\n\nConfigStaticHeader.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticHeader);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n height: '100%',\n width: '100%',\n }\n});\n\nclass ConfigStaticImage extends ConfigGeneric {\n renderItem() {\n let src = this.props.schema.src;\n if (src && !src.startsWith('.') &&\n !src.startsWith('http') &&\n !src.startsWith(`adapter/${this.props.adapterName}/`) &&\n !src.startsWith(`./adapter/${this.props.adapterName}/`)\n ) {\n src = `adapter/${this.props.adapterName}/${src}`;\n }\n\n return this.props.schema.href && window.open(this.props.schema.href, '_blank') : null}\n alt=\"\"\n />;\n }\n}\n\nConfigStaticImage.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticImage);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport Icon from '../Icon';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n height: '100%',\n width: '100%',\n }\n});\n\nclass ConfigStaticText extends ConfigGeneric {\n renderItem(error, disabled) {\n if (this.props.schema.button) {\n return {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}\n >\n {this.props.schema.icon ? : null}\n {this.getText(this.props.schema.text || this.props.schema.label, this.props.schema.noTranslation)}\n \n } else {\n\n return {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}>\n {this.getText(this.props.schema.text || this.props.schema.label)}\n ;\n }\n }\n}\n\nConfigStaticText.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticText);\n","import React, { createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { /*lighten,*/ withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { IconButton, InputAdornment, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableSortLabel, TextField, Toolbar, Tooltip, Typography } from '@mui/material';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport CloseIcon from '@mui/icons-material/Close';\nimport UpIcon from '@mui/icons-material/ArrowUpward';\nimport DownIcon from '@mui/icons-material/ArrowDownward';\nimport IconFilterOn from '@mui/icons-material/FilterAlt';\nimport IconFilterOff from '@mui/icons-material/FilterAltOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n headerText: {\n width: '100%'\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n addIcon: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n highlight:\n theme.palette.mode === 'light'\n ? {\n color: theme.palette.secondary.main,\n // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n silver: {\n opacity: 0.2\n },\n flex: {\n display: 'flex'\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center'\n },\n buttonEmpty: {\n width: 30,\n display: 'inline-block'\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n }\n});\n\nfunction objectToArray(object, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array = [];\n Object.keys(object).forEach(key => {\n const item = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key]\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(array, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object = {};\n\n array.forEach(row => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\nclass ConfigTable extends ConfigGeneric {\n constructor(props) {\n super(props)\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach(el => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n async componentDidMount() {\n super.componentDidMount();\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(value, this.props.schema.objKeyName, this.props.schema.objValueName);\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n const visibleValue = value.map((_, i) => i);\n\n this.setState({\n value,\n visibleValue,\n orderBy: /*this.props.schema.items.length ? this.props.schema.items[0].attr : */'',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n });\n }\n\n componentWillUnmount() {\n this.typingTimer && clearTimeout(this.typingTimer)\n this.typingTimer = null;\n super.componentWillUnmount();\n }\n\n itemTable(attrItem, data, idx) {\n const { value, systemConfig } = this.state;\n const { schema } = this.props;\n const schemaForAttribute = schema.items && schema.items.find(el => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute\n }\n };\n\n return {\n const newObj = JSON.parse(JSON.stringify(value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () =>\n this.onChangeWrapper(newObj,true));\n }}\n onError={(error, attr) => this.onError(error, attr)}\n />;\n }\n\n static descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n } else\n if (b[orderBy] > a[orderBy]) {\n return 1;\n } else {\n return 0;\n }\n }\n\n static getComparator(order, orderBy) {\n return order === 'desc'\n ? (a, b) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a, b) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n handleRequestSort = (property, orderCheck = false) => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : (isAsc ? 'desc' : 'asc');\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue));\n }\n }\n\n stableSort = (order, orderBy) => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n enhancedTableHead(buttonsWidth) {\n const { schema, classes } = this.props;\n const { order, orderBy } = this.state;\n return \n \n {schema.items && schema.items.map(headCell => (\n \n
\n {headCell.sort && this.handleRequestSort(headCell.attr)}\n />}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ?\n this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n InputProps={{\n endAdornment: this.filterRefs[headCell.attr]?.current?.children[0]?.children[0]?.value && \n {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }}\n >\n \n \n ,\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n : {this.getText(headCell.title)}}\n { headCell.filter ? {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (pos && this.filterRefs[headCell.attr].current.children[0].children[0].value) {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }\n });\n }}\n >{this.state.filterOn.includes(headCell.attr) ? : } : null}\n
\n \n ))}\n {!schema.noDelete && \n \n \n \n }\n
\n
;\n }\n\n onDelete = index => () => {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n let visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n newValue.splice(index, 1);\n const pos = visibleValue.indexOf(index);\n if (pos !== -1) {\n visibleValue.splice(pos, 1);\n visibleValue = visibleValue.map(i => i > index ? i - 1 : i);\n }\n\n this.setState({ value: newValue, visibleValue, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue));\n };\n\n onChangeWrapper = (newValue, updateVisible = false) => {\n this.typingTimer && clearTimeout(this.typingTimer);\n\n this.typingTimer = setTimeout((value, updateVisible) => {\n this.typingTimer = null;\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(JSON.parse(JSON.stringify(value)), this.props.schema.objKeyName, this.props.schema.objValueName);\n this.onChange(this.props.attr, objValue);\n } else {\n this.onChange(this.props.attr, value);\n }\n\n if (updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n }, 300, newValue, updateVisible);\n }\n\n onAdd = () => {\n const { schema } = this.props;\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n\n const newItem = schema.items && schema.items.reduce((accumulator, currentValue) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc ? this.executeCustom(currentValue.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, newValue.length, this.props.data) : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc ? this.execute(currentValue.defaultFunc, this.props.schema.default, this.props.data, newValue.length, this.props.data) : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n }, {});\n\n newValue.push(newItem);\n visibleValue.push(newValue.length - 1);\n\n this.setState({ value: newValue, visibleValue }, () =>\n this.onChangeWrapper(newValue));\n }\n\n isAnyFilterSet() {\n return Object.keys(this.filterRefs).find(attr => this.filterRefs[attr].current?.children[0].children[0].value);\n }\n\n applyFilter = (clear = false, value = this.state.value) => {\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = this.filterRefs[attr].current?.children[0].children[0].value;\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef));\n } else if (this.filterRefs[attr].current) {\n this.filterRefs[attr].current.children[0].children[0].value = '';\n }\n });\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue });\n }\n }\n\n onMoveUp(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx - 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n onMoveDown(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx + 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema } = this.props;\n const { value, visibleValue } = this.state;\n\n if (!value) {\n return null;\n }\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n return \n
\n {schema.label ? \n \n {this.getText(schema.label)}\n \n : null}\n {!schema.noDelete ? \n \n \n \n \n \n : null}\n
\n \n \n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64)}\n \n {visibleValue.map((idx, i) =>\n \n {schema.items && schema.items.map(headCell =>\n \n {this.itemTable(headCell.attr, value[idx], idx)}\n \n )}\n {!schema.noDelete && \n {!doAnyFilterSet && !this.state.orderBy ? (i ? \n this.onMoveUp(idx)}>\n \n \n :
) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? \n this.onMoveDown(idx)}>\n \n \n :
) : null}\n \n \n \n \n \n }\n )}\n \n
\n {!visibleValue.length && value.length ?\n
\n \n {I18n.t('ra_All items are filtered out')}\n this.applyFilter(true)}\n >\n \n \n \n
: null}\n
\n {schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n
;\n }\n}\n\nConfigTable.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigTable);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n tabs: {\n height: '100%',\n width: '100%',\n },\n panel: {\n height: 'calc(100% - 48px)',\n width: '100%',\n display: 'block'\n }\n});\n\nclass ConfigTabs extends ConfigGeneric {\n constructor(props) {\n super(props);\n\n let tab = (window._localStorage || window.localStorage).getItem((this.props.dialogName || 'App') + '.' + this.props.adapterName) || Object.keys(this.props.schema.items)[0];\n if (!Object.keys(this.props.schema.items).includes(tab)) {\n tab = Object.keys(this.props.schema.items)[0];\n }\n this.state = {\n tab,\n };\n }\n\n render() {\n const items = this.props.schema.items;\n\n return
\n {\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.' + this.props.adapterName, tab);\n this.setState({tab});\n }}>\n {Object.keys(items).map(name => {\n let disabled;\n if (this.props.custom) {\n const hidden = this.executeCustom(items[name].hidden, this.props.data, this.props.customObj, this.props.instanceObj);\n if (hidden) {\n return null;\n }\n disabled = this.executeCustom(items[name].disabled, this.props.data, this.props.customObj, this.props.instanceObj);\n } else {\n const hidden = this.execute(items[name].hidden, false);\n if (hidden) {\n return null;\n }\n disabled = this.execute(items[name].disabled, false);\n }\n return \n })}\n \n {}\n
;\n }\n}\n\nConfigTabs.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n multiEdit: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n\n registerOnForceUpdate: PropTypes.func.isRequired,\n forceUpdate: PropTypes.func.isRequired,\n changeLanguage: PropTypes.func,\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n};\n\nexport default withStyles(styles)(ConfigTabs);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigText extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return {value};\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n const arr = [...this.state.value].map(item => ({label: item.toString(), value: item}));\n arr.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n\n return option.label === value.label}\n onChange={(_, value) =>\n this.onChange(this.props.attr, value ? value.value : '')}\n options={arr}\n getOptionLabel={option => option.label}\n renderInput={params => }\n />;\n } else {\n return {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n }\n}\n\nConfigText.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigText);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport copy from '../copy-to-clipboard';\nimport CopyIcon from '../../icons/IconCopy';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigTextSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.command || 'send', data)\n .then(text => this.setState({text: text || '', context: this.getContext()}));\n }\n }\n\n getContext() {\n const context = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n return JSON.stringify(context);\n }\n\n renderItem(error, disabled, defaultValue) {\n if (this.state.text === undefined) {\n return null;\n }\n\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => {\n this.askInstance();\n }, 300);\n }\n }\n\n if (this.props.schema.container === 'text') {\n return {\n copy(this.state.text);\n window.alert('Copied');\n }}>\n \n \n : undefined,\n }}\n value={this.state.text}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n } else {\n return
{this.state.text}
;\n }\n }\n}\n\nConfigTextSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n};\n\nexport default withStyles(styles)(ConfigTextSendTo);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport { TimePicker } from '@mui/x-date-pickers';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigTimePicker extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n InputLabelProps={{\n shrink: true,\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n }\n}\n\nConfigTimePicker.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigTimePicker);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport { TextField } from '@mui/material';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nfunction convertID2Topic(id, prefix, namespace) {\n let topic;\n if (namespace && id.substring(0, namespace.length) === namespace) {\n topic = id.substring(namespace.length + 1);\n } else {\n topic = id;\n }\n topic = topic.replace(/\\./g, '/').replace(/_/g, ' ');\n return topic;\n}\n\nclass ConfigTopic extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value && this.props.customObj && this.props.customObj._id) {\n let topic = convertID2Topic(this.props.customObj._id, null, this.props.adapterName + '.' + this.props.instance);\n this.setState({value: topic});\n } else {\n this.setState({value: value || ''});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n />;\n }\n}\n\nConfigTopic.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n customObj: PropTypes.object,\n};\n\nexport default withStyles(styles)(ConfigTopic);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport Icon from '../Icon';\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n }\n\n this.setState({users: _users});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return \n {this.getText(this.props.schema.label)}\n {this.state.users && this.state.users[val]?.icon ? : null}{(this.state.users && this.state.users[val]?.name) || val || ''}}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => \n {this.state.users[id].icon ? : null}\n {this.state.users[id].name}\n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigUser.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigUser);","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '../../i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n schema: JSON.parse(JSON.stringify(this.props.schema))\n };\n\n this.forceUpdateHandlers = {};\n\n this.buildDependencies(this.state.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.updateData !== state.updateData) {\n return {\n updateData: props.updateData,\n originalData: JSON.stringify(props.data),\n schema: JSON.parse(JSON.stringify(props.schema)),\n };\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value);\n cb && cb();\n } else {\n const state = {data};\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({state}, () => {\n this.props.onChange(_data, state.changed);\n cb && cb();\n });\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return this.onError(attr, error)}\n />;\n }\n }\n\n changeLanguage = () => {\n this.forceUpdate();\n }\n\n forceAttrUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return ;\n }\n\n return
\n {this.renderItem(this.state.schema)}\n
;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);","/**\n * Copyright 2021-2022 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n// import './PT.css'\nconst ptStyles = `\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n.pt-logo-div {\n position: absolute;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n z-index: 2;\n}\n.pt-logo-border {\n border-style: solid;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.pt-loader-block {\n height: 65px;\n width: 74px;\n border-radius: 15px;\n position: absolute;\n box-sizing: content-box;\n}\n.pt-loader-blue {\n border: 9px solid #0F99DE;\n transform: rotate(5grad);\n left: 93px;\n top: 0;\n animation: spin-blue 5s ease-in-out infinite;\n}\n.pt-loader-green {\n border: 9px solid #88A536;\n transform: rotate(-6grad);\n left: 70px;\n top: 58px;\n animation: spin-green 5s ease-in-out infinite;\n}\n.pt-loader-red {\n border: 9px solid #BD1B24;\n transform: rotate(-15grad);\n left: 24px;\n top: 100px;\n animation: spin-red 5s ease-in-out infinite;\n}\n\n@keyframes spin-blue {\n 0% {\n transform: rotate(5deg);\n }\n 25% {\n transform: rotate(185deg);\n }\n 50% {\n transform: rotate(185deg);\n }\n 75% {\n transform: rotate(185deg);\n }\n 100% {\n transform: rotate(185deg);\n }\n}\n@keyframes spin-green {\n 0% {\n transform: rotate(-6deg);\n }\n 25% {\n transform: rotate(-6deg);\n }\n 50% {\n transform: rotate(174deg);\n }\n 75% {\n transform: rotate(174deg);\n }\n 100% {\n transform: rotate(-6deg);\n }\n}\n@keyframes spin-red {\n 0% {\n transform: rotate(-15deg);\n }\n 25% {\n transform: rotate(-15deg);\n }\n 50% {\n transform: rotate(-15deg);\n }\n 75% {\n transform: rotate(165deg);\n }\n 100% {\n transform: rotate(165deg);\n }\n}\n`;\n\n/**\n * @typedef {object} LoaderPTProps\n * @property {string} [key] The key to identify this component.\n * @property {number} [size] The size in pixels of this loader.\n * @property {string} [themeType] The chosen theme type.\n * @property {string} [theme] The chosen theme.\n *\n * @extends {React.Component}\n */\nclass LoaderPT extends React.Component {\n /**\n * @param {LoaderPTProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n\n if (!window.document.getElementById('pt-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'pt-iobroker-component');\n style.innerHTML = ptStyles;\n window.document.head.appendChild(style);\n }\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return
\n
\n
\n
\n
\n
\n
\n
\n
;\n }\n}\n\nLoaderPT.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderPT} */\nconst _export = LoaderPT;\nexport default _export;","/**\n * Copyright 2021-2022 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CircularProgress from '@mui/material/CircularProgress';\n// import './Vendor.css'\nconst vendorStyles = `\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n`;\n\n/**\n * @typedef {object} LoaderVendorProps\n * @property {string} [key] The key to identify this component.\n * @property {number} [size] The size in pixels of this loader.\n * @property {string} [themeType] The chosen theme type.\n * @property {string} [theme] The chosen theme.\n *\n * @extends {React.Component}\n */\nclass LoaderVendor extends React.Component {\n /**\n * @param {LoaderVendorProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n\n if (!window.document.getElementById('vendor-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'vendor-iobroker-component');\n style.innerHTML = vendorStyles;\n window.document.head.appendChild(style);\n }\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return
\n
\n \n
\n
;\n }\n}\n\nLoaderVendor.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderVendor} */\nconst _export = LoaderVendor;\nexport default _export;\n","// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport Fab from '@mui/material/Fab';\nimport PropTypes from 'prop-types';\n\nimport I18n from '../i18n';\n\nimport IconHelp from '@mui/icons-material/Help'\nimport IconUpload from '@mui/icons-material/VerticalAlignTop'\nimport IconDownload from '@mui/icons-material/VerticalAlignBottom'\n\nconst styles = theme => ({\n buttons: {\n marginRight: 5,\n marginTop: 5,\n float: 'right'\n },\n logo: {\n padding: 8,\n width: 64\n }\n});\n\n/**\n * @typedef {object} LogoProps\n * @property {any} common Adapter common configuration from io-package.json\n * @property {any} native Adapter native data from io-package.json\n * @property {number} instance Adapter instance number.\n * @property {(contents: any) => void} [onLoad]\n * @property {(error: string) => void} [onError]\n * @property {{ buttons: string, logo: string }} classes The styling class names.\n *\n * @extends {React.Component}\n */\nclass Logo extends React.Component {\n\n static generateFile(filename, obj) {\n const el = window.document.createElement('a');\n el.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(obj, null, 2)));\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n window.document.body.appendChild(el);\n\n el.click();\n\n window.document.body.removeChild(el);\n }\n\n handleFileSelect(evt) {\n const f = evt.target.files[0];\n if (f) {\n const r = new window.FileReader();\n r.onload = e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n if (json.native && json.common) {\n if (json.common.name !== this.props.common.name) {\n this.props.onError && this.props.onError(I18n.t('ra_otherConfig', json.common.name));\n } else {\n this.props.onLoad && this.props.onLoad(json.native);\n }\n } else {\n this.props.onError && this.props.onError(I18n.t('ra_invalidConfig'));\n }\n } catch (e) {\n this.props.onError && this.props.onError(e.toString());\n }\n };\n r.readAsText(f);\n } else {\n alert('Failed to open JSON File');\n }\n }\n\n download() {\n const result = {\n _id: `system.adapter.${this.props.common.name}.${this.props.instance}`,\n common: JSON.parse(JSON.stringify(this.props.common)),\n native: this.props.native\n };\n // remove unimportant information\n if (result.common.news) {\n delete result.common.news;\n }\n if (result.common.titleLang) {\n delete result.common.titleLang;\n }\n if (result.common.desc) {\n delete result.common.desc;\n }\n\n //window.open('data:application/iobroker; content-disposition=attachment; filename=' + result._id + '.json,' + JSON.stringify(result, null, 2));\n Logo.generateFile(result._id + '.json', result);\n }\n\n upload() {\n const input = window.document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleFileSelect(e, () => {}), false);\n (input.click)();\n }\n\n render() {\n return
\n {this.props.common.icon ?\n \"logo\"/ : null}\n {this.props.common.readme ?\n {\n const win = window.open(this.props.common.readme, '_blank');\n win.focus();\n }}\n > : null}\n this.upload()}>\n this.download()}>\n
;\n }\n}\n\nLogo.propTypes = {\n common: PropTypes.object.isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n onError: PropTypes.func.isRequired,\n onLoad: PropTypes.func.isRequired,\n};\n\n/** @type {typeof Logo} */\nconst _export = withStyles(styles)(Logo);\nexport default _export;","/**\n * Copyright 2018-2022 bluefox \n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\n\nclass MDUtils {\n static text2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, ' '));\n }\n\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\n }\n\n static openLink(url, target) {\n if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static getTitle(text) {\n let {body, header} = MDUtils.extractHeader(text);\n if (!header.title) {\n // remove {docsify-bla}\n body = body.replace(/{[^}]*}/g, '');\n body = body.trim();\n const lines = body.replace(/\\r/g, '').split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('# ')) {\n return lines[i].substring(2).trim();\n }\n }\n return '';\n } else {\n return header.title;\n }\n }\n\n static extractHeader(text) {\n const attrs = {};\n if (text.substring(0, 3) === '---') {\n const pos = text.substring(3).indexOf('\\n---');\n if (pos !== -1) {\n const _header = text.substring(3, pos + 3);\n const lines = _header.replace(/\\r/g, '').split('\\n');\n lines.forEach(line => {\n if (!line.trim()) {\n return;\n }\n const pos = line.indexOf(':');\n if (pos !== -1) {\n const attr = line.substring(0, pos).trim();\n attrs[attr] = line.substring(pos + 1).trim();\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\n if (attrs[attr] === 'true') {\n attrs[attr] = true;\n } else if (attrs[attr] === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\n attrs[attr] = parseFloat(attrs[attr]);\n }\n } else {\n attrs[line.trim()] = true;\n }\n });\n text = text.substring(pos + 7);\n }\n }\n return {header: attrs, body: text};\n }\n\n static removeDocsify(text) {\n const m = text.match(/{docsify-[^}]*}/g);\n if (m) {\n m.forEach(doc => text = text.replace(doc, ''));\n }\n return text;\n }\n\n static onCopy(e, text) {\n copy(text);\n e && e.stopPropagation();\n e && e.preventDefault();\n }\n}\n\nexport default MDUtils;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport {FormControl, InputLabel, MenuItem, Select} from '@mui/material';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\nimport I18n from '../i18n';\n\nconst styles = theme => ({\n different: {\n opacity: 0.5\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass SelectWithIcon extends Component {\n constructor(props) {\n super(props);\n\n if (this.props.different) {\n this.wordDifferent = this.props.t(this.props.different);\n }\n\n let list;\n if (Array.isArray(this.props.list || this.props.options)) {\n list = this.props.list.map(obj => ({\n name: Utils.getObjectNameFromObj(obj, this.props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: obj._id,\n icon: obj.common?.icon,\n color: obj.common?.color,\n }));\n } else {\n list = Object.values(this.props.list || this.props.options).map(obj => ({\n name: Utils.getObjectNameFromObj(obj, this.props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: obj._id,\n icon: obj.common?.icon,\n color: obj.common?.color,\n }));\n }\n\n if (this.props.different && this.props.value === this.props.different) {\n list.unshift({value: this.props.different, name: this.wordDifferent});\n }\n\n if (this.props.allowNone) {\n list.unshift({value: '', name: I18n.t('ra_none')});\n }\n\n this.state = {\n list,\n };\n }\n\n render() {\n if (this.props.allowNone && !this.state.list.find(obj => obj.value === '')) {\n this.timeout = this.timeout || setTimeout(() => {\n this.timeout = null;\n const list = JSON.parse(JSON.stringify(this.state.list));\n list.unshift({value: '', name: I18n.t('ra_none')});\n this.setState({list});\n }, 100);\n } else if (!this.props.allowNone && this.state.list.find(obj => obj.value === '')) {\n this.timeout = this.timeout || setTimeout(() => {\n this.timeout = null;\n const list = JSON.parse(JSON.stringify(this.state.list));\n const i = this.state.list.findIndex(obj => obj.value === '');\n list.splice(i, 1);\n this.setState({list});\n }, 100);\n }\n\n const item = this.state.list.find(it => it.value === this.props.value || (this.props.removePrefix && it.value.replace(this.props.removePrefix, '') === this.props.value));\n\n const style = this.props.value === this.props.different ? {} :\n {\n color: item?.color || undefined,\n backgroundColor: Utils.getInvertedColor(item?.color, this.props.themeType)\n };\n\n if (this.props.dense && this.props.style) {\n Object.assign(style, this.props.style);\n }\n\n const select = {item?.icon ? : null}{item?.name}}\n classes={{root: Utils.clsx(\n this.props.value === this.props.different ? this.props.classes.different : '',\n this.props.dense ? this.props.className : ''\n )}}\n style={style}\n onChange={el => {\n if (this.props.different && el.target.value !== this.props.different) {\n let pos = null;\n for (let i = 0; i < this.state.list.length; i++) {\n if (this.state.list[i].value === this.props.different) {\n pos = i;\n break;\n }\n }\n if (pos !== null) {\n const list = Utils.clone(this.state.list);\n list.splice(pos, 1);\n return this.setState({list}, () => this.props.onChange(el.target.value));\n }\n }\n\n this.props.onChange(this.props.removePrefix ? el.target.value.replace(this.props.removePrefix, '') : el.target.value);\n }}\n >\n {this.state.list.map(el => \n {el.icon ? : null}\n {el.name}\n )}\n ;\n\n if (this.props.dense) {\n return select;\n } else {\n return \n {this.props.label}\n {select}\n ;\n\n }\n }\n}\n\nSelectWithIcon.propTypes = {\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n themeType: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n list: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n options: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n different: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n label: PropTypes.string,\n fullWidth: PropTypes.bool,\n className: PropTypes.string,\n style: PropTypes.object,\n removePrefix: PropTypes.string,\n allowNone: PropTypes.bool,\n inputProps: PropTypes.object,\n};\n\nexport default withStyles(styles)(SelectWithIcon);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\nconst styles = theme => ({\n div: {\n borderRadius: 3,\n padding: '0 3px',\n lineHeight: '20px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8,\n verticalAlign: 'middle',\n },\n text: {\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n});\n\nconst TextWithIcon = props => {\n let item = props.value;\n let prefix = props.removePrefix || '';\n\n if (typeof item === 'string') {\n const list = props.list || props.options;\n if (props.list) {\n if (Array.isArray(list)) {\n const _item = list.find(obj => obj._id === prefix + item);\n if (_item) {\n item = {\n name: Utils.getObjectNameFromObj(_item, props.lang).replace('system.group.', ''),\n value: _item._id,\n icon: _item.common?.icon,\n color: _item.common?.color,\n };\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else if (list[prefix + item]) {\n item = {\n name: Utils.getObjectNameFromObj(list[prefix + item], props.lang).replace('system.group.', ''),\n value: list[prefix + item]._id,\n icon: list[prefix + item].common?.icon,\n color: list[prefix + item].common?.color,\n };\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else if (!item || typeof item !== 'object') {\n item = {\n name: '',\n value: '',\n };\n } else {\n item = {\n name: Utils.getObjectNameFromObj(item, props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: item._id,\n icon: item.common?.icon,\n color: item.common?.color,\n };\n }\n\n const style = item?.color ? {\n border:`1px solid ${Utils.invertColor(item?.color)}`,\n color: Utils.getInvertedColor(item?.color, props.themeType, true) || undefined,\n backgroundColor: item?.color\n } : {};\n\n return
\n {item?.icon ? : null}
{item?.name}
\n
;\n}\n\nTextWithIcon.propTypes = {\n lang: PropTypes.string.isRequired,\n themeType: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n list: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n options: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n className: PropTypes.string,\n style: PropTypes.object,\n title: PropTypes.string,\n removePrefix: PropTypes.string,\n moreClasses: PropTypes.object,\n};\n\nexport default withStyles(styles)(TextWithIcon);","import React from 'react';\n\nimport { IconButton, Tooltip } from '@mui/material';\n\nimport Brightness4Icon from '@mui/icons-material/Brightness4';\nimport Brightness5Icon from '@mui/icons-material/Brightness5';\nimport Brightness6Icon from '@mui/icons-material/Brightness6';\nimport Brightness7Icon from '@mui/icons-material/Brightness7';\n\nexport default function ToggleThemeMenu({ themeName, toggleTheme, t, className, style, size }) {\n return
\n \n toggleTheme()} size={size || 'medium'}>\n {themeName === 'dark' && }\n {themeName === 'blue' && }\n {themeName === 'colored' && }\n {themeName === 'light' && }\n \n \n
;\n}","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport { HexColorPicker as ColorPicker } from 'react-colorful';\n\nimport Fab from '@mui/material/Fab';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport TableSortLabel from '@mui/material/TableSortLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport TextField from '@mui/material/TextField';\nimport Checkbox from '@mui/material/Checkbox';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconExpand from '@mui/icons-material/NavigateNext';\nimport IconCollapse from '@mui/icons-material/ExpandMore';\nimport IconCheck from '@mui/icons-material/Check';\nimport IconClose from '@mui/icons-material/Close';\nimport IconAdd from '@mui/icons-material/Add';\nimport IconList from '@mui/icons-material/ViewHeadline';\nimport IconColor from '@mui/icons-material/Colorize';\n\nimport DialogSelectID from '../Dialogs/SelectID';\nimport Utils from './Utils';\n\nfunction getAttr(obj, attr, lookup) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (!obj) {\n return null;\n }\n\n if (attr.length === 1) {\n if (lookup && lookup[obj[attr[0]]]) {\n return lookup[obj[attr[0]]];\n } else {\n return obj[attr[0]];\n }\n } else {\n const name = attr.shift();\n return getAttr(obj[name], attr);\n }\n}\n\nfunction setAttr(obj, attr, value) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (attr.length === 1) {\n return obj[attr[0]] = value;\n } else {\n const name = attr.shift();\n if (obj[name] === null || obj[name] === undefined) {\n obj[name] = {};\n }\n return setAttr(obj[name], attr, value);\n }\n}\n\nconst styles = theme => ({\n tableContainer: {\n width: '100%',\n height: '100%',\n overflow: 'auto'\n },\n table: {\n width: '100%',\n minWidth: 800,\n maxWidth: 1920,\n },\n cell: {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 4,\n paddingRight: 4,\n },\n rowMainWithChildren: {\n\n },\n rowMainWithoutChildren: {\n\n },\n rowNoEdit: {\n opacity: 0.3\n },\n cellExpand: {\n width: 30,\n },\n cellButton: {\n width: 30,\n },\n cellHeader: {\n fontWeight: 'bold',\n background: theme.palette.mode === 'dark' ? '#888' : '#888',\n color: theme.palette.mode === 'dark' ? '#EEE' : '#111',\n height: 48,\n wordBreak: 'break-word',\n whiteSpace: 'pre',\n },\n width_name_nicknames: {\n maxWidth: 150,\n },\n width_ioType: {\n maxWidth: 100,\n },\n width_type: {\n maxWidth: 100,\n },\n width_displayTraits: {\n maxWidth: 100,\n },\n width_roomHint: {\n maxWidth: 100,\n },\n rowSecondary: {\n fontStyle: 'italic',\n },\n cellSecondary: {\n fontSize: 10,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n fieldEditWithButton: {\n width: `calc(100% - 33px)`,\n display: 'inline-block',\n },\n fieldEdit: {\n width: `100%`,\n display: 'inline-block',\n lineHeight: '50px',\n verticalAlign: 'middle',\n },\n fieldButton: {\n width: 30,\n display: 'inline-block',\n },\n colorDialog: {\n overflow: 'hidden',\n padding: 15,\n },\n subText: {\n fontSize: 10,\n fontStyle: 'italic',\n },\n glow: {\n animation: 'glow 0.2s 2 alternate'\n }\n});\n\nfunction descendingComparator(a, b, orderBy, lookup) {\n const _a = getAttr(a, orderBy, lookup) || '';\n const _b = getAttr(b, orderBy, lookup) || '';\n\n if (_b < _a) {\n return -1;\n } else\n if (_b > _a) {\n return 1;\n } else {\n return 0;\n }\n}\n\nfunction getComparator(order, orderBy, lookup) {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy, lookup)\n : (a, b) => -descendingComparator(a, b, orderBy, lookup);\n}\n\nfunction stableSort(array, comparator) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n}\n\nclass TreeTable extends React.Component {\n constructor(props) {\n super(props);\n\n let opened = (window._localStorage || window.localStorage).getItem(this.props.name || 'iob-table') || '[]';\n try {\n opened = JSON.parse(opened) || [];\n } catch (e) {\n opened = [];\n }\n if (!Array.isArray(opened)) {\n opened = [];\n }\n\n this.state = {\n opened,\n editMode: false,\n deleteMode: false,\n editData: null,\n order: 'asc',\n update: null,\n orderBy: this.props.columns[0].field,\n useTable: false,\n showSelectColor: false,\n glowOnChange: props.glowOnChange,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.glowOnChange) {\n const update = [];\n let count = 0;\n if (props.data && state.data) {\n props.data.forEach(line => {\n count++;\n const oldLine = state.data.find(it => it.id === line.id);\n if (oldLine) {\n if (JSON.stringify(oldLine) !== JSON.stringify(line)) {\n update.push(line.id);\n }\n } else {\n update.push(line.id);\n }\n });\n }\n\n if (update.length && update.length !== count) {\n return {data: props.data, update};\n } else {\n return {data: props.data};\n }\n } else {\n return {data: props.data};\n }\n }\n\n renderCellEdit(item, col) {\n let val = getAttr(item, col.field);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.lookup) {\n return this.renderCellEditSelect(item, col, val);\n } if (col.editComponent) {\n return this.renderCellEditCustom(item, col, val);\n } else {\n if (col.type === 'boolean' || (!col.type && typeof val === 'boolean')) {\n return this.renderCellEditBoolean(item, col, val);\n } else if (col.type === 'color') {\n return this.renderCellEditColor(item, col, val);\n } else if (col.type === 'oid') {\n return this.renderCellEditObjectID(item, col, val);\n } else {\n return this.renderCellEditString(item, col, val);\n }\n }\n }\n\n renderCellEditSelect(item, col, val) {\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n value={(this.state.editData && this.state.editData[col.field]) || val}\n >\n {Object.keys(col.lookup).map(v => {col.lookup[v]})}\n ;\n }\n\n renderCellEditString(item, col, val) {\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />;\n }\n\n renderCellEditCustom(item, col, val) {\n const EditComponent = col.editComponent;\n\n // use new value if exists\n if (this.state.editData && this.state.editData[col.field] !== undefined) {\n val = this.state.editData[col.field];\n item = JSON.parse(JSON.stringify(item));\n item[col.field] = val;\n }\n\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (newVal === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newVal;\n }\n this.setState({editData});\n }}\n />;\n }\n\n renderCellEditBoolean(item, col, val) {\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.checked === !!val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.checked;\n }\n this.setState({editData});\n }}\n inputProps={{ 'aria-label': 'checkbox' }}\n />;\n }\n\n renderSelectColorDialog() {\n return {\n this.selectCallback = null;\n this.setState({showSelectColor: false});\n }}\n open={this.state.showSelectColor}>\n {\n this.setState({selectIdValue: color}, () =>\n this.selectCallback && this.selectCallback(color));\n }}\n />\n ;\n }\n\n renderCellEditColor(item, col, val) {\n const _val = this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val;\n return
\n {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />\n\n {\n this.selectCallback = newColor => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (newColor === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newColor;\n }\n this.setState({editData});\n };\n\n this.setState({showSelectColor: true, selectIdValue: val});\n }}\n size=\"large\">\n
;\n }\n\n renderSelectIdDialog() {\n if (this.state.showSelectId) {\n return this.setState({showSelectId: false})}\n onOk={(selected, name) => {\n this.setState({showSelectId: false, selectIdValue: null});\n this.selectCallback && this.selectCallback(selected);\n this.selectCallback = null;\n }}\n />;\n } else {\n return null;\n }\n }\n\n renderCellEditObjectID(item, col, val) {\n return
\n {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />\n\n {\n this.selectCallback = selected => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (selected === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = selected;\n }\n this.setState({editData});\n };\n\n this.setState({showSelectId: true, selectIdValue: val});\n }}\n size=\"large\"\n >\n
;\n }\n\n renderCellNonEdit(item, col) {\n let val = getAttr(item, col.field, col.lookup);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.type === 'boolean') {\n return \n } else {\n return val;\n }\n }\n\n renderCell(item, col, level, i) {\n if (this.state.editMode === i && col.editable !== 'never' && col.editable !== false) {\n return \n {this.renderCellEdit(item, col)}\n ;\n } else {\n return \n {this.renderCellNonEdit(item, col)}\n ;\n }\n }\n\n renderCellWithSubField(item, col) {\n const main = getAttr(item, col.field, col.lookup);\n const sub = getAttr(item, col.subField, col.subLookup);\n return
\n
{main}
\n
{sub}
\n
;\n }\n\n renderLine(item, level) {\n const levelShift = this.props.levelShift === undefined ? 24 : this.props.levelShift;\n\n level = level || 0;\n const i = this.props.data.indexOf(item);\n if (!item) {\n return null;\n }\n if (!level && item.parentId) {\n return null;\n } else if (level && !item.parentId) {\n return null; // should never happen\n } else {\n // try to find children\n const opened = this.state.opened.includes(item.id);\n const children = this.props.data.filter(it => it.parentId === item.id);\n\n return [\n \n \n {children.length ? {\n const opened = [...this.state.opened];\n const pos = opened.indexOf(item.id);\n if (pos === -1) {\n opened.push(item.id);\n opened.sort();\n } else {\n opened.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(this.props.name || 'iob-table', JSON.stringify(opened));\n\n this.setState({opened});\n }}\n size=\"small\">\n {opened ? : }\n : null}\n \n \n {this.props.columns[0].subField ?\n this.renderCellWithSubField(item, this.props.columns[0])\n :\n getAttr(item, this.props.columns[0].field, this.props.columns[0].lookup)\n }\n \n\n {this.props.columns.map((col, ii) =>\n !ii && !col.hidden ? null : this.renderCell(item, col, level, i))}\n\n {this.props.onUpdate ? \n {this.state.editMode === i || this.state.deleteMode === i ?\n {\n if (this.state.editMode !== false) {\n const newData = JSON.parse(JSON.stringify(item));\n Object.keys(this.state.editData).forEach(attr => setAttr(newData, attr, this.state.editData[attr]));\n this.setState({editMode: false}, () => this.props.onUpdate(newData, item))\n } else {\n this.setState({deleteMode: false}, () => this.props.onDelete(item))\n }\n }}\n size=\"large\">\n \n \n :\n this.setState({editMode: i, editData: null})}\n size=\"large\">\n \n }\n : null}\n {this.props.onUpdate || this.props.onDelete ? \n {this.state.editMode === i || this.state.deleteMode === i ?\n this.setState({editMode: false, deleteMode: false})}\n size=\"large\">\n \n \n :\n (this.props.onDelete ? this.setState({deleteMode: i})}\n size=\"large\">\n \n : null)\n }\n : null}\n ,\n !level && opened ? children.map(item => this.renderLine(item, level + 1)) : null,\n ];\n }\n }\n\n handleRequestSort(property) {\n const isAsc = this.state.orderBy === property && this.state.order === 'asc';\n this.setState({order: isAsc ? 'desc' : 'asc', orderBy: property});\n }\n\n renderHead() {\n return \n \n \n \n {this.props.noSort ? null : this.handleRequestSort(this.props.columns[0].field)}\n >\n {this.props.columns[0].title || this.props.columns[0].field}\n {this.state.orderBy === this.props.columns[0].field ?\n \n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n : null}\n }\n \n {this.props.columns.map((col, i) =>\n !i && !col.hidden ? null : \n {this.props.noSort ? null : this.handleRequestSort(col.field)}\n >\n {col.title || col.field}\n {this.state.orderBy === col.field ?\n \n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n : null}\n }\n )}\n {this.props.onUpdate ? \n {!this.props.noAdd ? this.props.onUpdate(true)}>\n \n : null }\n : null}\n {this.props.onDelete || this.props.onUpdate ? : null}\n \n ;\n }\n\n render() {\n const lookup = this.props.columns.find(col => col.field === this.state.orderBy).lookup;\n const table = stableSort(this.props.data, getComparator(this.state.order, this.state.orderBy, lookup));\n\n if (this.state.update && this.state.update.length) {\n this.updateTimeout && clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = null;\n this.setState({update: null});\n }, 500);\n }\n\n return
\n \n {this.renderHead()}\n \n {table.map(item => this.renderLine(item))}\n \n
\n {this.renderSelectIdDialog()}\n {this.renderSelectColorDialog()}\n
;\n }\n}\n/*\nconst columns = [\n {\n title: 'Name of field', // required, else it will be \"field\"\n field: 'fieldIdInData', // required\n editable: false, // or true [default - true]\n cellStyle: { // CSS style - // optional\n maxWidth: '12rem',\n overflow: 'hidden',\n wordBreak: 'break-word'\n },\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'value1': 'text1',\n 'value2': 'text2',\n }\n },\n {\n title: 'Type', // required, else it will be \"field\"\n field: 'myType', // required\n editable: true, // or true [default - true]\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'number': 'Number',\n 'string': 'String',\n 'boolean': 'Boolean',\n },\n type: 'number/string/color/oid/icon/boolean', // oid=ObjectID,icon=base64-icon\n editComponent: props =>\n
Prefix{
\n props.onChange(e.target.value)}\n />\n Suffix\n
,\n },\n];\n*/\n/* const data = [\n {\n id: 'UniqueID1' // required\n fieldIdInData: 'Name1',\n myType: 'number',\n },\n {\n id: 'UniqueID2' // required\n fieldIdInData: 'Name12',\n myType: 'string',\n },\n];\n */\n\n/*\n// STYLES\nconst styles = theme => ({\n tableDiv: {\n width: '100%',\n overflow: 'hidden',\n height: 'calc(100% - 48px)',\n },\n});\n// renderTable\nrenderTable() {\n return
\n console.log('Update: ' + JSON.stringify(newData))}\n onDelete={oldData => console.log('Delete: ' + JSON.stringify(oldData))}\n />\n
;\n}\n */\n\nTreeTable.propTypes = {\n data: PropTypes.array.isRequired,\n className: PropTypes.string,\n loading: PropTypes.bool,\n name: PropTypes.string, // name of table to save settings in localStorage\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n cellStyle: PropTypes.object,\n editComponent: PropTypes.func,\n field: PropTypes.string,\n headerStyle: PropTypes.object,\n hidden: PropTypes.bool,\n lookup: PropTypes.object,\n editable: PropTypes.bool,\n title: PropTypes.string,\n type: PropTypes.oneOf([\n 'string',\n 'boolean',\n 'numeric',\n 'icon', // todo: not yet implemented\n 'oid',\n 'color',\n ]),\n })\n ).isRequired,\n noSort: PropTypes.bool,\n onUpdate: PropTypes.func,\n onDelete: PropTypes.func,\n noAdd: PropTypes.bool, // hide add button\n themeType: PropTypes.string,\n glowOnChange: PropTypes.bool,\n socket: PropTypes.object, // only if oid type is used\n levelShift: PropTypes.number, // Shift in pixels for every level\n};\n\nexport default withStyles(styles)(TreeTable);","import { Component, createRef } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport Dropzone from 'react-dropzone';\nimport { Cropper } from 'react-cropper';\n\nimport { withStyles } from '@mui/styles';\nimport { Menu, MenuItem, Tooltip } from '@mui/material';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\nimport CropIcon from '@mui/icons-material/Crop';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\n// import 'cropperjs/dist/cropper.css';\nconst cropperStyles = `\n/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:11.623Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n.cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n`;\n\nconst styles = theme => ({\n dropZone: {\n width: '100%',\n height: 100,\n position: 'relative',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n height: 300,\n opacity: 0.9,\n marginTop: 30,\n cursor: 'pointer',\n outline: 'none'\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: 'calc(100% - 10px)',\n height: 'calc(100% - 10px)',\n position: 'relative',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n buttonRemoveWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0\n },\n buttonCropWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0,\n top: 50\n },\n error: {\n border: '2px solid red'\n }\n});\n\nclass UploadImage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n uploadFile: false,\n anchorEl: null,\n cropHandler: false,\n };\n this.cropperRef = createRef();\n\n if (!window.document.getElementById('cropper-style-json-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'cropper-style-json-component');\n style.innerHTML = cropperStyles;\n window.document.head.appendChild(style);\n }\n }\n\n onDrop(acceptedFiles) {\n const { maxSize, t, onChange } = this.props;\n\n const file = acceptedFiles[0];\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n onChange(base64);\n };\n reader.readAsArrayBuffer(file);\n }\n\n render() {\n const { disabled, maxSize, classes, icon, t, removeIconFunc, accept, error, crop, onChange } = this.props;\n const { uploadFile, anchorEl, cropHandler } = this.state;\n return this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || t('ra_Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => \n \n
\n {!icon ?
\n \n
{\n uploadFile === 'dragging' ? t('ra_Drop file here') :\n t('ra_Place your files here or click here to open the browse dialog')}
\n
\n :\n removeIconFunc && !cropHandler &&
\n \n {\n removeIconFunc && removeIconFunc();\n e.stopPropagation();\n }}>\n \n \n
\n }\n {icon && crop &&
\n \n {\n if (!cropHandler) {\n this.setState({ cropHandler: true });\n } else {\n this.setState({ anchorEl: e.currentTarget });\n }\n e.stopPropagation();\n }}>\n \n \n this.setState({ anchorEl: null })}\n >\n this.setState({ anchorEl: null, cropHandler: false }, () => {\n const imageElement = this.cropperRef?.current?.cropper;\n onChange(imageElement.getCroppedCanvas().toDataURL());\n })}>{t('ra_Save')}\n this.setState({ anchorEl: null, cropHandler: false })}>{t('ra_Close')}\n \n
}\n {icon && !cropHandler ? \"icon\" : null}\n\n {icon && crop && cropHandler ? : null}\n
\n
}\n ;\n }\n}\n\nUploadImage.defaultProps = {\n disabled: false,\n maxSize: 10 * 1024,\n icon: null,\n removeIconFunc: null,\n accept: { 'image/*': [] },\n error: false,\n onChange: base64 => console.log(base64),\n t: el => el,\n crop: false,\n};\n\nUploadImage.propTypes = {\n classes: PropTypes.object,\n maxSize: PropTypes.number,\n disabled: PropTypes.bool,\n crop: PropTypes.bool,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n accept: PropTypes.object,\n t: PropTypes.func,\n};\n\nexport default withStyles(styles)(UploadImage);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconClear from '@mui/icons-material/Delete';\n\nimport ComplexCron from '../Components/ComplexCron';\n\nimport I18n from '../i18n';\n\n// Generate cron expression\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n radio: {\n display: 'inline-block'\n },\n dialogPaper: {\n height: 'calc(100% - 96px)'\n }\n});\n\nclass DialogComplexCron extends React.Component {\n constructor(props) {\n super(props);\n let cron;\n if (this.props.cron && typeof this.props.cron === 'string' && this.props.cron.replace(/^[\"']/, '')[0] !== '{') {\n cron = this.props.cron.replace(/['\"]/g, '').trim();\n } else {\n cron = this.props.cron || '{}';\n if (typeof cron === 'string') {\n cron = cron.replace(/^[\"']/, '').replace(/[\"']\\n?$/, '');\n }\n }\n\n this.state = {\n cron,\n };\n }\n\n handleCancel() {\n this.props.onClose();\n }\n\n handleOk() {\n this.props.onOk(this.state.cron);\n this.props.onClose();\n }\n\n handleClear() {\n this.props.onOk(false);\n this.props.onClose();\n }\n\n render() {\n return {}}\n maxWidth=\"md\"\n fullWidth={true}\n classes={{paper: this.props.classes.dialogPaper}}\n open={true}\n aria-labelledby=\"cron-dialog-title\"\n >\n {this.props.title || I18n.t('ra_Define schedule...')}\n \n this.setState({cron})}\n language={I18n.getLanguage()}\n />\n \n \n {!!this.props.clearButton && }\n \n \n \n ;\n }\n}\n\nDialogComplexCron.propTypes = {\n classes: PropTypes.object,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n cron: PropTypes.string,\n cancel: PropTypes.string,\n ok: PropTypes.string,\n simple: PropTypes.bool,\n language: PropTypes.string,\n clearButton: PropTypes.bool,\n};\n\nexport default withStyles(styles)(DialogComplexCron);\n","/**\n * Copyright 2022 bluefox \n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport I18n from '../i18n';\nimport Utils from '../Components/Utils';\nimport FileBrowser from '../Components/FileBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} FileSelectDialogProps\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [dialogName] PropTypes.string, // where to store settings in localStorage\n * @property {boolean} [selected] Pre-selected file\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | undefined) => void} onOk Handler that is called when the user presses OK.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {boolean} [socket] Socket class (required)\n * @property {boolean} [allowUpload] If download of files enabled\n * @property {boolean} [allowDownload] If download of files enabled\n * @property {boolean} [allowCreateFolder] If creation of folders enabled\n * @property {boolean} [allowDelete] If creation of folders enabled\n * @property {boolean} [allowView] if tile view enabled (default true)\n * @property {boolean} [showToolbar] Show toolbar (default true)\n * @property {array} [limitPath] Limit file browser to one specific objectID of type meta and following path (like vis.0/main)\n * @property {array} [filterFiles] like `['png', 'svg', 'bmp', 'jpg', 'jpeg']`\n * @property {string} [filterByType] images, code, txt, audio, video\n * @property {bool} [selectOnlyFolders] allow only folders selection\n *\n * @extends {React.Component}\n */\nclass DialogFileSelect extends React.Component {\n /**\n * @param {FileSelectDialogProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'FileSelect.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n this.state = {\n selected: this.props.selected || '',\n isFolder: false,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.state.selected || '');\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n title = [\n { I18n.t('ra_Selected') } ,\n {this.state.selected}\n ];\n } else {\n title = this.props.title || I18n.t('ra_Please select file...');\n }\n\n return {}}\n maxWidth={false}\n classes={{ paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile) }}\n fullWidth={true}\n open={true}\n aria-labelledby=\"file-dialog-title\"\n >\n { title }\n \n {\n this.setState({ selected, isFolder }, () =>\n isDoubleClick && ((this.props.selectOnlyFolders && isFolder) || (!this.props.selectOnlyFolders && !isFolder)) && this.handleOk());\n }}\n t={I18n.t}\n lang={I18n.getLanguage()}\n socket={this.props.socket}\n />\n \n \n \n \n \n ;\n }\n}\n\nDialogFileSelect.propTypes = {\n imagePrefix: PropTypes.string,\n dialogName: PropTypes.string, // where to store settings in localStorage\n selected: PropTypes.string,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n ok: PropTypes.string,\n cancel: PropTypes.string,\n socket: PropTypes.object.isRequired,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n showToolbar: PropTypes.bool,\n objectID: PropTypes.string,\n filterFiles: PropTypes.arrayOf(PropTypes.string),\n filterByType: PropTypes.string,\n limitPath: PropTypes.string,\n selectOnlyFolders: PropTypes.bool,\n};\n\n/** @type {typeof DialogFileSelect} */\nconst _export = withStyles(styles)(DialogFileSelect);\nexport default _export;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\n\nimport SimpleCron from '../Components/SimpleCron';\n\nimport I18n from '../i18n';\n\n// Generate cron expression\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n radio: {\n display: 'inline-block'\n },\n dialogPaper: {\n height: 'calc(100% - 96px)'\n },\n});\n\nclass DialogSimpleCron extends React.Component {\n constructor(props) {\n super(props);\n\n let cron;\n if (this.props.cron && typeof this.props.cron === 'string' && this.props.cron.replace(/^[\"']/, '')[0] !== '{') {\n cron = this.props.cron.replace(/['\"]/g, '').trim();\n } else {\n cron = this.props.cron || '{}';\n if (typeof cron === 'string') {\n cron = cron.replace(/^[\"']/, '').replace(/[\"']\\n?$/, '');\n }\n }\n\n this.state = {\n cron,\n };\n }\n\n handleCancel() {\n this.props.onClose();\n }\n\n handleOk() {\n this.props.onOk(this.state.cron);\n this.props.onClose();\n }\n\n render() {\n return {}}\n maxWidth=\"md\"\n fullWidth={true}\n classes={{paper: this.props.classes.dialogPaper}}\n open={true}\n aria-labelledby=\"cron-dialog-title\"\n >\n {this.props.title || I18n.t('ra_Define CRON...')}\n \n this.setState({cron})}\n language={I18n.getLanguage()}\n />\n \n \n \n \n \n ;\n }\n}\n\nDialogSimpleCron.propTypes = {\n classes: PropTypes.object,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n cron: PropTypes.string,\n cancel: PropTypes.string,\n ok: PropTypes.string,\n simple: PropTypes.bool,\n language: PropTypes.string\n\n};\n\nexport default withStyles(styles)(DialogSimpleCron);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport I18n from '../i18n';\n\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\n\nimport withWidth from '../Components/withWidth';\n\n/**\n * @typedef {object} TextInputProps\n * @property {string} [key] The key to identify this component.\n * @property {(text: string | null) => void} onClose The dialog close callback.\n * @property {string} titleText The title text.\n * @property {string} [promptText] Prompt text (default: empty).\n * @property {string} [labelText] Label text (default: empty).\n * @property {string} cancelText The text of the cancel button.\n * @property {string} applyText The text of the apply button.\n * @property {(text: string) => string} [verify] The verification callback. Return a non-empty string if there was an error.\n * @property {(text: string) => string} [rule] The text replacement callback.\n * @property {'text' | 'number' | 'password' | 'email'} [type] The type of the textbox (default: text).\n * @property {string} [input] The input when opening the dialog.\n *\n * @extends {React.Component}\n */\nclass TextInput extends React.Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n\n this.state = {\n text: this.props.input || this.props.value || '', // input is deprectaed\n error: ''\n }\n }\n render() {\n return this.props.onClose(null)} aria-labelledby=\"form-dialog-title\">\n {this.props.titleText}\n \n \n {this.props.promptText}\n \n e.charCode === 13 && this.state.text && this.props.onClose(this.state.text)}\n onChange={e => {\n let error = '';\n if (this.props.verify) {\n error = !this.props.verify(e.target.value);\n }\n\n if (this.props.rule) {\n this.setState({text: this.props.rule(e.target.value), error});\n } else {\n this.setState({text: e.target.value, error});\n }\n }}\n fullWidth\n />\n \n \n \n \n \n ;\n }\n}\n\nTextInput.propTypes = {\n onClose: PropTypes.func.isRequired,\n titleText: PropTypes.string.isRequired,\n promptText: PropTypes.string,\n labelText: PropTypes.string,\n cancelText: PropTypes.string,\n applyText: PropTypes.string,\n verify: PropTypes.func,\n replace: PropTypes.func,\n type: PropTypes.string, // text, number, password, email\n value: PropTypes.string,\n};\n\n/** @type {typeof TextInput} */\nconst _export = withWidth()(TextInput);\nexport default _export;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst IconFx = props => {\n return props.onClick && props.onClick(e)} style={props.style || {}} viewBox=\"0 0 95 95\" width={props.width || 20} height={props.height || props.width || 20} xmlns=\"http://www.w3.org/2000/svg\" className={ props.className }>\n \n ;\n}\n\nIconFx.propTypes = {\n onClick: PropTypes.func,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string\n};\n\nexport default IconFx;","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * @typedef {object} IconLogoutProps\n * @property {number} [width] The width in pixels of the icon.\n * @property {number} [height] The height in pixels of the icon.\n * @property {(e: React.MouseEvent) => void} [onClick] Click handler.\n * @property {string} [className] The class name for the SVG element.\n *\n * @extends {React.Component}\n */\nconst IconLogout = props => {\n return props.onClick && props.onClick(e)} viewBox=\"0 0 512 512\" width={props.width || 20} height={props.height || props.width || 20} xmlns=\"http://www.w3.org/2000/svg\" className={ props.className }>\n \n \n ;\n}\nIconLogout.propTypes = {\n onClick: PropTypes.func,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string\n};\n\nexport default IconLogout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * @typedef {object} IconNoIconProps\n * @property {number} [width] The width in pixels of the icon.\n * @property {number} [height] The height in pixels of the icon.\n * @property {(e: React.MouseEvent) => void} [onClick] Click handler.\n * @property {string} [className] The class name for the SVG element.\n *\n * @extends {React.Component}\n */\nconst IconNoIcon = props => {\n return props.onClick && props.onClick(e)} viewBox=\"0 0 512 512\" width={props.width || 20} height={props.height || props.width || 20} xmlns=\"http://www.w3.org/2000/svg\" className={ props.className }>\n \n ;\n}\nIconNoIcon.propTypes = {\n onClick: PropTypes.func,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string\n};\n\nexport default IconNoIcon;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n}), 'ArrowBack');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"\n}), 'ArrowUpward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n}), 'Article');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"\n}), 'Bookmark');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15-5-2.18L7 18V5h10v13z\"\n}), 'BookmarkBorder');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\"\n}), 'Brightness4');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"\n}), 'Brightness5');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\"\n}), 'Brightness6');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"\n}), 'Brightness7');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m20.71 5.63-2.34-2.34a.9959.9959 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19 5 17.08l8.06-8.06 1.92 1.92L6.92 19z\"\n}), 'Colorize');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z\"\n}), 'CreateNewFolder');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z\"\n}), 'Crop');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z\"\n}), 'FilterAlt');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19.79 5.61C20.3 4.95 19.83 4 19 4H6.83l7.97 7.97 4.99-6.36zM2.81 2.81 1.39 4.22 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.17l5.78 5.78 1.41-1.41L2.81 2.81z\"\n}), 'FilterAltOff');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\"\n}), 'FolderOpen');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"\n}), 'GpsFixed');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z\"\n}), 'InsertDriveFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"\n}), 'Language');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"\n}), 'List');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\"\n}), 'MusicNote');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'NavigateNext');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z\"\n}), 'SaveAlt');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z\"\n}), 'UploadFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z\"\n}), 'VerticalAlignBottom');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z\"\n}), 'VerticalAlignTop');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z\"\n}), 'Videocam');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"\n}), 'ViewHeadline');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v6.5H9.33V5h5.34zm1 6.5H21V5h-5.33v6.5zm-1 7.5v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zm-7.34 0H3V19h5.33v-6.5zm0-1V5H3v6.5h5.33z\"\n}), 'ViewModule');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');\n\nexports.default = _default;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/* Use it instead of .includes method for IE support */\nexport function arrayIncludes(array, itemOrItems) {\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.every(item => array.indexOf(item) !== -1);\n }\n\n return array.indexOf(itemOrItems) !== -1;\n}\nexport const onSpaceOrEnter = (innerFn, onFocus) => event => {\n if (event.key === 'Enter' || event.key === ' ') {\n innerFn(); // prevent any side effects\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onFocus) {\n onFocus(event);\n }\n};\nexport const executeInTheNextEventLoopTick = fn => {\n setTimeout(fn, 0);\n};\nexport const doNothing = () => {};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disabled\", \"onSelect\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, alpha } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { onSpaceOrEnter } from '../internals/utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersMonth', ['root', 'selected']);\nconst PickersMonthRoot = styled(Typography)(({\n theme\n}) => _extends({\n flex: '1 0 33.33%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n pointerEvents: 'none',\n color: theme.palette.text.secondary\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - do not document.\n */\n\nexport const PickersMonth = props => {\n const {\n disabled,\n onSelect,\n selected,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const handleSelection = () => {\n onSelect(value);\n };\n\n return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({\n component: \"button\",\n type: \"button\",\n className: clsx(classes.root, selected && classes.selected),\n tabIndex: disabled ? -1 : 0,\n onClick: handleSelection,\n onKeyDown: onSpaceOrEnter(handleSelection),\n color: selected ? 'primary' : undefined,\n variant: selected ? 'h5' : 'subtitle1',\n disabled: disabled\n }, other));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const getPickersLocalization = pickersTranslations => {\n return {\n components: {\n MuiLocalizationProvider: {\n defaultProps: {\n localeText: _extends({}, pickersTranslations)\n }\n }\n }\n };\n};","import { getPickersLocalization } from './utils/getPickersLocalization';\n// This object is not Partial because it is the default values\nconst enUSPickers = {\n // Calendar navigation\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n // View navigation\n openPreviousView: 'open previous view',\n openNextView: 'open next view',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Start',\n end: 'End',\n // Action bar\n cancelButtonLabel: 'Cancel',\n clearButtonLabel: 'Clear',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Today',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} hours`,\n minutesClockNumberText: minutes => `${minutes} minutes`,\n secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Choose date',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Choose time',\n // Table labels\n timeTableLabel: 'pick time',\n dateTableLabel: 'pick date'\n};\nexport const DEFAULT_LOCALE = enUSPickers;\nexport const enUS = getPickersLocalization(enUSPickers);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport { DEFAULT_LOCALE } from '../locales';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MuiPickersAdapterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n MuiPickersAdapterContext.displayName = 'MuiPickersAdapterContext';\n}\n\nlet warnedOnce = false;\n/**\n * @ignore - do not document.\n */\n\nexport function LocalizationProvider(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLocalizationProvider'\n });\n const {\n children,\n dateAdapter: Utils,\n dateFormats,\n dateLibInstance,\n locale,\n adapterLocale,\n localeText\n } = props;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce && locale !== undefined) {\n warnedOnce = true;\n console.warn(\"LocalizationProvider's prop `locale` is deprecated and replaced by `adapterLocale`\");\n }\n }\n\n const utils = React.useMemo(() => new Utils({\n locale: adapterLocale != null ? adapterLocale : locale,\n formats: dateFormats,\n instance: dateLibInstance\n }), [Utils, locale, adapterLocale, dateFormats, dateLibInstance]);\n const defaultDates = React.useMemo(() => {\n return {\n minDate: utils.date('1900-01-01T00:00:00.000'),\n maxDate: utils.date('2099-12-31T00:00:00.000')\n };\n }, [utils]);\n const contextValue = React.useMemo(() => {\n return {\n utils,\n defaultDates,\n localeText: _extends({}, DEFAULT_LOCALE, localeText != null ? localeText : {})\n };\n }, [defaultDates, utils, localeText]);\n return /*#__PURE__*/_jsx(MuiPickersAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Locale for the date library you are using\n */\n adapterLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n children: PropTypes.node,\n\n /**\n * DateIO adapter class function\n */\n dateAdapter: PropTypes.func.isRequired,\n\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n fullDate: PropTypes.string,\n fullDateTime: PropTypes.string,\n fullDateTime12h: PropTypes.string,\n fullDateTime24h: PropTypes.string,\n fullDateWithWeekday: PropTypes.string,\n fullTime: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthAndDate: PropTypes.string,\n monthAndYear: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n\n /**\n * Locale for the date library you are using\n * @deprecated Use `adapterLocale` instead\n */\n locale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n\n /**\n * Locale for components texts\n */\n localeText: PropTypes.object\n} : void 0;","import * as React from 'react';\nimport { MuiPickersAdapterContext } from '../../LocalizationProvider/LocalizationProvider';\nexport const useLocalizationContext = () => {\n const localization = React.useContext(MuiPickersAdapterContext);\n\n if (localization === null) {\n throw new Error('MUI: Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.');\n }\n\n return localization;\n};\nexport const useUtils = () => useLocalizationContext().utils;\nexport const useDefaultDates = () => useLocalizationContext().defaultDates;\nexport const useLocaleText = () => useLocalizationContext().localeText;\nexport const useNow = () => {\n const utils = useUtils();\n const now = React.useRef(utils.date());\n return now.current;\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getMonthPickerUtilityClass(slot) {\n return generateUtilityClass('MuiMonthPicker', slot);\n}\nexport const monthPickerClasses = generateUtilityClasses('MuiMonthPicker', ['root']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"date\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"shouldDisableMonth\", \"readOnly\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { PickersMonth } from './PickersMonth';\nimport { useUtils, useNow, useDefaultDates } from '../internals/hooks/useUtils';\nimport { getMonthPickerUtilityClass } from './monthPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMonthPickerUtilityClass, classes);\n};\n\nconst MonthPickerRoot = styled('div', {\n name: 'MuiMonthPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: 310,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n margin: '0 4px'\n});\nexport const MonthPicker = /*#__PURE__*/React.forwardRef(function MonthPicker(inProps, ref) {\n const utils = useUtils();\n const now = useNow();\n const defaultDates = useDefaultDates();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMonthPicker'\n });\n\n const {\n className,\n date: propDate,\n disabled,\n disableFuture,\n disablePast,\n maxDate = defaultDates.maxDate,\n minDate = defaultDates.minDate,\n onChange,\n shouldDisableMonth,\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const currentDate = propDate != null ? propDate : now;\n const currentMonth = utils.getMonth(currentDate);\n\n const isMonthDisabled = month => {\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n\n if (utils.isBefore(month, firstEnabledMonth)) {\n return true;\n }\n\n if (utils.isAfter(month, lastEnabledMonth)) {\n return true;\n }\n\n if (!shouldDisableMonth) {\n return false;\n }\n\n return shouldDisableMonth(month);\n };\n\n const onMonthSelect = month => {\n if (readOnly) {\n return;\n }\n\n const newDate = utils.setMonth(currentDate, month);\n onChange(newDate, 'finish');\n };\n\n return /*#__PURE__*/_jsx(MonthPickerRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: utils.getMonthArray(currentDate).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'monthShort');\n return /*#__PURE__*/_jsx(PickersMonth, {\n value: monthNumber,\n selected: monthNumber === currentMonth,\n onSelect: onMonthSelect,\n disabled: disabled || isMonthDisabled(month),\n children: monthText\n }, monthText);\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MonthPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * className applied to the root element.\n */\n className: PropTypes.string,\n\n /**\n * Date value for the MonthPicker\n */\n date: PropTypes.any,\n\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired on date change.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;","import * as React from 'react';\nimport { useLocalizationContext } from '../useUtils';\nexport function useValidation(props, validate, isSameError) {\n const {\n value,\n onError\n } = props;\n const adapter = useLocalizationContext();\n const previousValidationErrorRef = React.useRef(null);\n const validationError = validate({\n adapter,\n value,\n props\n });\n React.useEffect(() => {\n if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {\n onError(validationError, value);\n }\n\n previousValidationErrorRef.current = validationError;\n }, [isSameError, onError, previousValidationErrorRef, validationError, value]);\n return validationError;\n}","import * as React from 'react';\nimport { useValidation } from './useValidation';\nimport { useLocalizationContext } from '../useUtils';\nexport const validateDate = ({\n props,\n value,\n adapter\n}) => {\n const now = adapter.utils.date();\n const date = adapter.utils.date(value);\n const {\n shouldDisableDate,\n minDate = adapter.defaultDates.minDate,\n maxDate = adapter.defaultDates.maxDate,\n disableFuture,\n disablePast\n } = props;\n\n if (date === null) {\n return null;\n }\n\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n\n case Boolean(shouldDisableDate && shouldDisableDate(date)):\n return 'shouldDisableDate';\n\n case Boolean(disableFuture && adapter.utils.isAfterDay(date, now)):\n return 'disableFuture';\n\n case Boolean(disablePast && adapter.utils.isBeforeDay(date, now)):\n return 'disablePast';\n\n case Boolean(minDate && adapter.utils.isBeforeDay(date, minDate)):\n return 'minDate';\n\n case Boolean(maxDate && adapter.utils.isAfterDay(date, maxDate)):\n return 'maxDate';\n\n default:\n return null;\n }\n};\nexport const useIsDayDisabled = ({\n shouldDisableDate,\n minDate,\n maxDate,\n disableFuture,\n disablePast\n}) => {\n const adapter = useLocalizationContext();\n return React.useCallback(day => validateDate({\n adapter,\n value: day,\n props: {\n shouldDisableDate,\n minDate,\n maxDate,\n disableFuture,\n disablePast\n }\n }) !== null, [adapter, shouldDisableDate, minDate, maxDate, disableFuture, disablePast]);\n};\n\nconst isSameDateError = (a, b) => a === b;\n\nexport const useDateValidation = props => useValidation(props, validateDate, isSameDateError);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useIsDayDisabled } from '../internals/hooks/validation/useDateValidation';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nexport const createCalendarStateReducer = (reduceAnimations, disableSwitchToMonthOnDayFocus, utils) => (state, action) => {\n switch (action.type) {\n case 'changeMonth':\n return _extends({}, state, {\n slideDirection: action.direction,\n currentMonth: action.newMonth,\n isMonthSwitchingAnimating: !reduceAnimations\n });\n\n case 'finishMonthSwitchingAnimation':\n return _extends({}, state, {\n isMonthSwitchingAnimating: false\n });\n\n case 'changeFocusedDay':\n {\n if (state.focusedDay != null && action.focusedDay != null && utils.isSameDay(action.focusedDay, state.focusedDay)) {\n return state;\n }\n\n const needMonthSwitch = action.focusedDay != null && !disableSwitchToMonthOnDayFocus && !utils.isSameMonth(state.currentMonth, action.focusedDay);\n return _extends({}, state, {\n focusedDay: action.focusedDay,\n isMonthSwitchingAnimating: needMonthSwitch && !reduceAnimations,\n currentMonth: needMonthSwitch ? utils.startOfMonth(action.focusedDay) : state.currentMonth,\n slideDirection: action.focusedDay != null && utils.isAfterDay(action.focusedDay, state.currentMonth) ? 'left' : 'right'\n });\n }\n\n default:\n throw new Error('missing support');\n }\n};\nexport const useCalendarState = ({\n date,\n defaultCalendarMonth,\n disableFuture,\n disablePast,\n disableSwitchToMonthOnDayFocus = false,\n maxDate,\n minDate,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate\n}) => {\n var _ref;\n\n const now = useNow();\n const utils = useUtils();\n const reducerFn = React.useRef(createCalendarStateReducer(Boolean(reduceAnimations), disableSwitchToMonthOnDayFocus, utils)).current;\n const [calendarState, dispatch] = React.useReducer(reducerFn, {\n isMonthSwitchingAnimating: false,\n focusedDay: date || now,\n currentMonth: utils.startOfMonth((_ref = date != null ? date : defaultCalendarMonth) != null ? _ref : now),\n slideDirection: 'left'\n });\n const handleChangeMonth = React.useCallback(payload => {\n dispatch(_extends({\n type: 'changeMonth'\n }, payload));\n\n if (onMonthChange) {\n onMonthChange(payload.newMonth);\n }\n }, [onMonthChange]);\n const changeMonth = React.useCallback(newDate => {\n const newDateRequested = newDate != null ? newDate : now;\n\n if (utils.isSameMonth(newDateRequested, calendarState.currentMonth)) {\n return;\n }\n\n handleChangeMonth({\n newMonth: utils.startOfMonth(newDateRequested),\n direction: utils.isAfterDay(newDateRequested, calendarState.currentMonth) ? 'left' : 'right'\n });\n }, [calendarState.currentMonth, handleChangeMonth, now, utils]);\n const isDateDisabled = useIsDayDisabled({\n shouldDisableDate,\n minDate,\n maxDate,\n disableFuture,\n disablePast\n });\n const onMonthSwitchingAnimationEnd = React.useCallback(() => {\n dispatch({\n type: 'finishMonthSwitchingAnimation'\n });\n }, []);\n const changeFocusedDay = React.useCallback(newFocusedDate => {\n if (!isDateDisabled(newFocusedDate)) {\n dispatch({\n type: 'changeFocusedDay',\n focusedDay: newFocusedDate\n });\n }\n }, [isDateDisabled]);\n return {\n calendarState,\n changeMonth,\n changeFocusedDay,\n isDateDisabled,\n onMonthSwitchingAnimationEnd,\n handleChangeMonth\n };\n};","import * as React from 'react';\nimport clsx from 'clsx';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersFadeTransitionGroup', ['root']);\nconst animationDuration = 500;\nconst PickersFadeTransitionGroupRoot = styled(TransitionGroup)({\n display: 'block',\n position: 'relative'\n});\n/**\n * @ignore - do not document.\n */\n\nexport const PickersFadeTransitionGroup = ({\n children,\n className,\n reduceAnimations,\n transKey\n}) => {\n if (reduceAnimations) {\n return children;\n }\n\n return /*#__PURE__*/_jsx(PickersFadeTransitionGroupRoot, {\n className: clsx(classes.root, className),\n children: /*#__PURE__*/_jsx(Fade, {\n appear: false,\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: {\n appear: animationDuration,\n enter: animationDuration / 2,\n exit: 0\n },\n children: children\n }, transKey)\n });\n};","import * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","export const DAY_SIZE = 36;\nexport const DAY_MARGIN = 2;\nexport const DIALOG_WIDTH = 320;\nexport const VIEW_HEIGHT = 358;","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getPickersDayUtilityClass(slot) {\n return generateUtilityClass('MuiPickersDay', slot);\n}\nexport const pickersDayClasses = generateUtilityClasses('MuiPickersDay', ['root', 'dayWithMargin', 'dayOutsideMonth', 'hiddenDaySpacingFiller', 'today', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"day\", \"disabled\", \"disableHighlightToday\", \"disableMargin\", \"hidden\", \"isAnimating\", \"onClick\", \"onDayFocus\", \"onDaySelect\", \"onFocus\", \"onKeyDown\", \"outsideCurrentMonth\", \"selected\", \"showDaysOutsideCurrentMonth\", \"children\", \"today\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { useTheme, alpha, styled, useThemeProps } from '@mui/material/styles';\nimport { useForkRef } from '@mui/material/utils';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { getPickersDayUtilityClass, pickersDayClasses } from './pickersDayClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n selected,\n disableMargin,\n disableHighlightToday,\n today,\n outsideCurrentMonth,\n showDaysOutsideCurrentMonth,\n classes\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', !disableMargin && 'dayWithMargin', !disableHighlightToday && today && 'today', outsideCurrentMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth'],\n hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']\n };\n return composeClasses(slots, getPickersDayUtilityClass, classes);\n};\n\nconst styleArg = ({\n theme,\n ownerState\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n borderRadius: '50%',\n padding: 0,\n // background required here to prevent collides with the other days when animating with transition group\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:focus': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n [`&.${pickersDayClasses.selected}`]: {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n}, !ownerState.disableMargin && {\n margin: `0 ${DAY_MARGIN}px`\n}, ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && {\n color: theme.palette.text.secondary\n}, !ownerState.disableHighlightToday && ownerState.today && {\n [`&:not(.${pickersDayClasses.selected})`]: {\n border: `1px solid ${theme.palette.text.secondary}`\n }\n});\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.today && styles.today, !ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.outsideCurrentMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];\n};\n\nconst PickersDayRoot = styled(ButtonBase, {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(styleArg);\nconst PickersDayFiller = styled('div', {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, styleArg({\n theme,\n ownerState\n}), {\n visibility: 'hidden'\n}));\n\nconst noop = () => {};\n\nconst PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps, forwardedRef) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersDay'\n });\n\n const {\n autoFocus = false,\n className,\n day,\n disabled = false,\n disableHighlightToday = false,\n disableMargin = false,\n isAnimating,\n onClick,\n onDayFocus = noop,\n onDaySelect,\n onFocus,\n onKeyDown,\n outsideCurrentMonth,\n selected = false,\n showDaysOutsideCurrentMonth = false,\n children,\n today: isToday = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n autoFocus,\n disabled,\n disableHighlightToday,\n disableMargin,\n selected,\n showDaysOutsideCurrentMonth,\n today: isToday\n });\n\n const classes = useUtilityClasses(ownerState);\n const utils = useUtils();\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, forwardedRef); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus && !disabled && !isAnimating && !outsideCurrentMonth) {\n // ref.current being null would be a bug in MUI\n ref.current.focus();\n }\n }, [autoFocus, disabled, isAnimating, outsideCurrentMonth]);\n\n const handleFocus = event => {\n if (onDayFocus) {\n onDayFocus(day);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleClick = event => {\n if (!disabled) {\n onDaySelect(day, 'finish');\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const theme = useTheme();\n\n function handleKeyDown(event) {\n if (onKeyDown !== undefined) {\n onKeyDown(event);\n }\n\n switch (event.key) {\n case 'ArrowUp':\n onDayFocus(utils.addDays(day, -7));\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n onDayFocus(utils.addDays(day, 7));\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n case 'Home':\n onDayFocus(utils.startOfWeek(day));\n event.preventDefault();\n break;\n\n case 'End':\n onDayFocus(utils.endOfWeek(day));\n event.preventDefault();\n break;\n\n case 'PageUp':\n onDayFocus(utils.getNextMonth(day));\n event.preventDefault();\n break;\n\n case 'PageDown':\n onDayFocus(utils.getPreviousMonth(day));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (outsideCurrentMonth && !showDaysOutsideCurrentMonth) {\n return /*#__PURE__*/_jsx(PickersDayFiller, {\n className: clsx(classes.root, classes.hiddenDaySpacingFiller, className),\n ownerState: ownerState\n });\n }\n\n return /*#__PURE__*/_jsx(PickersDayRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: handleRef,\n centerRipple: true,\n disabled: disabled,\n \"aria-label\": !children ? utils.format(day, 'fullDate') : undefined,\n tabIndex: selected ? 0 : -1,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick\n }, other, {\n children: !children ? utils.format(day, 'dayOfMonth') : children\n }));\n});\nexport const areDayPropsEqual = (prevProps, nextProps) => {\n return prevProps.autoFocus === nextProps.autoFocus && prevProps.isAnimating === nextProps.isAnimating && prevProps.today === nextProps.today && prevProps.disabled === nextProps.disabled && prevProps.selected === nextProps.selected && prevProps.disableMargin === nextProps.disableMargin && prevProps.showDaysOutsideCurrentMonth === nextProps.showDaysOutsideCurrentMonth && prevProps.disableHighlightToday === nextProps.disableHighlightToday && prevProps.className === nextProps.className && prevProps.outsideCurrentMonth === nextProps.outsideCurrentMonth && prevProps.onDayFocus === nextProps.onDayFocus && prevProps.onDaySelect === nextProps.onDaySelect;\n};\nprocess.env.NODE_ENV !== \"production\" ? PickersDayRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The date to show.\n */\n day: PropTypes.any.isRequired,\n\n /**\n * If `true`, renders as disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * If `true`, days are rendering without margin. Useful for displaying linked range of days.\n * @default false\n */\n disableMargin: PropTypes.bool,\n isAnimating: PropTypes.bool,\n onDayFocus: PropTypes.func,\n onDaySelect: PropTypes.func.isRequired,\n\n /**\n * If `true`, day is outside of month and will be hidden.\n */\n outsideCurrentMonth: PropTypes.bool.isRequired,\n\n /**\n * If `true`, renders as selected.\n * @default false\n */\n selected: PropTypes.bool,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * If `true`, renders as today date.\n * @default false\n */\n today: PropTypes.bool\n} : void 0;\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [PickersDay API](https://mui.com/x/api/date-pickers/pickers-day/)\n */\n\nexport const PickersDay = /*#__PURE__*/React.memo(PickersDayRaw, areDayPropsEqual);","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"reduceAnimations\", \"slideDirection\", \"transKey\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersSlideTransition', ['root', 'slideEnter-left', 'slideEnter-right', 'slideEnterActive', 'slideEnterActive', 'slideExit', 'slideExitActiveLeft-left', 'slideExitActiveLeft-right']);\nexport const slideAnimationDuration = 350;\nconst PickersSlideTransitionRoot = styled(TransitionGroup)(({\n theme\n}) => {\n const slideTransition = theme.transitions.create('transform', {\n duration: slideAnimationDuration,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)'\n });\n return {\n display: 'block',\n position: 'relative',\n overflowX: 'hidden',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0\n },\n [`& .${classes['slideEnter-left']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n zIndex: 1\n },\n [`& .${classes['slideEnter-right']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n zIndex: 1\n },\n [`& .${classes.slideEnterActive}`]: {\n transform: 'translate(0%)',\n transition: slideTransition\n },\n [`& .${classes.slideExit}`]: {\n transform: 'translate(0%)'\n },\n [`& .${classes['slideExitActiveLeft-left']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n transition: slideTransition,\n zIndex: 0\n },\n [`& .${classes['slideExitActiveLeft-right']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n transition: slideTransition,\n zIndex: 0\n }\n };\n});\n/**\n * @ignore - do not document.\n */\n\nexport const PickersSlideTransition = _ref => {\n let {\n children,\n className,\n reduceAnimations,\n slideDirection,\n transKey\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n if (reduceAnimations) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx(classes.root, className),\n children: children\n });\n }\n\n const transitionClasses = {\n exit: classes.slideExit,\n enterActive: classes.slideEnterActive,\n enter: classes[`slideEnter-${slideDirection}`],\n exitActive: classes[`slideExitActiveLeft-${slideDirection}`]\n };\n return /*#__PURE__*/_jsx(PickersSlideTransitionRoot, {\n className: clsx(classes.root, className),\n childFactory: element => /*#__PURE__*/React.cloneElement(element, {\n classNames: transitionClasses\n }),\n children: /*#__PURE__*/_jsx(CSSTransition, _extends({\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: slideAnimationDuration,\n classNames: transitionClasses\n }, other, {\n children: children\n }), transKey)\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { PickersDay } from '../PickersDay/PickersDay';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { PickersSlideTransition } from './PickersSlideTransition';\nimport { useIsDayDisabled } from '../internals/hooks/validation/useDateValidation';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst weeksContainerHeight = (DAY_SIZE + DAY_MARGIN * 4) * 6;\nconst PickersCalendarDayHeader = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nconst PickersCalendarWeekDayLabel = styled(Typography)(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: theme.palette.text.secondary\n}));\nconst PickersCalendarLoadingContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarSlideTransition = styled(PickersSlideTransition)({\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarWeekContainer = styled('div')({\n overflow: 'hidden'\n});\nconst PickersCalendarWeek = styled('div')({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\n/**\n * @ignore - do not document.\n */\n\nexport function DayPicker(props) {\n const now = useNow();\n const utils = useUtils();\n const {\n autoFocus,\n onFocusedDayChange,\n className,\n currentMonth,\n selectedDays,\n disabled,\n disableHighlightToday,\n focusedDay,\n isMonthSwitchingAnimating,\n loading,\n onSelectedDaysChange,\n onMonthSwitchingAnimationEnd,\n readOnly,\n reduceAnimations,\n renderDay,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n showDaysOutsideCurrentMonth,\n slideDirection,\n TransitionProps,\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate\n } = props;\n const isDateDisabled = useIsDayDisabled({\n shouldDisableDate,\n minDate,\n maxDate,\n disablePast,\n disableFuture\n });\n const handleDaySelect = React.useCallback((day, isFinish = 'finish') => {\n if (readOnly) {\n return;\n }\n\n onSelectedDaysChange(day, isFinish);\n }, [onSelectedDaysChange, readOnly]);\n const currentMonthNumber = utils.getMonth(currentMonth);\n const validSelectedDays = selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)); // need a new ref whenever the `key` of the transition changes: http://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.\n\n const transitionKey = currentMonthNumber; // eslint-disable-next-line react-hooks/exhaustive-deps\n\n const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(PickersCalendarDayHeader, {\n children: utils.getWeekdays().map((day, i) => /*#__PURE__*/_jsx(PickersCalendarWeekDayLabel, {\n \"aria-hidden\": true,\n variant: \"caption\",\n children: day.charAt(0).toUpperCase()\n }, day + i.toString()))\n }), loading ? /*#__PURE__*/_jsx(PickersCalendarLoadingContainer, {\n children: renderLoading()\n }) : /*#__PURE__*/_jsx(PickersCalendarSlideTransition, _extends({\n transKey: transitionKey,\n onExited: onMonthSwitchingAnimationEnd,\n reduceAnimations: reduceAnimations,\n slideDirection: slideDirection,\n className: className\n }, TransitionProps, {\n nodeRef: slideNodeRef,\n children: /*#__PURE__*/_jsx(PickersCalendarWeekContainer, {\n ref: slideNodeRef,\n role: \"grid\",\n children: utils.getWeekArray(currentMonth).map(week => /*#__PURE__*/_jsx(PickersCalendarWeek, {\n role: \"row\",\n children: week.map(day => {\n const pickersDayProps = {\n key: day == null ? void 0 : day.toString(),\n day,\n isAnimating: isMonthSwitchingAnimating,\n disabled: disabled || isDateDisabled(day),\n autoFocus: autoFocus && focusedDay !== null && utils.isSameDay(day, focusedDay),\n today: utils.isSameDay(day, now),\n outsideCurrentMonth: utils.getMonth(day) !== currentMonthNumber,\n selected: validSelectedDays.some(selectedDay => utils.isSameDay(selectedDay, day)),\n disableHighlightToday,\n showDaysOutsideCurrentMonth,\n onDayFocus: onFocusedDayChange,\n onDaySelect: handleDaySelect\n };\n return renderDay ? renderDay(day, validSelectedDays, pickersDayProps) : /*#__PURE__*/_jsx(\"div\", {\n role: \"cell\",\n children: /*#__PURE__*/_jsx(PickersDay, _extends({}, pickersDayProps))\n }, pickersDayProps.key);\n })\n }, `week-${week[0]}`))\n })\n }))]\n });\n}","import * as React from 'react';\nimport { useControlled } from '@mui/material/utils';\nimport { arrayIncludes } from '../utils/utils';\nexport function useViews({\n onChange,\n onViewChange,\n openTo,\n view,\n views\n}) {\n var _views, _views2;\n\n const [openView, setOpenView] = useControlled({\n name: 'Picker',\n state: 'view',\n controlled: view,\n default: openTo && arrayIncludes(views, openTo) ? openTo : views[0]\n });\n const previousView = (_views = views[views.indexOf(openView) - 1]) != null ? _views : null;\n const nextView = (_views2 = views[views.indexOf(openView) + 1]) != null ? _views2 : null;\n const changeView = React.useCallback(newView => {\n setOpenView(newView);\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [setOpenView, onViewChange]);\n const openNext = React.useCallback(() => {\n if (nextView) {\n changeView(nextView);\n }\n }, [nextView, changeView]);\n const handleChangeAndOpenNext = React.useCallback((date, currentViewSelectionState) => {\n const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';\n const globalSelectionState = isSelectionFinishedOnCurrentView && Boolean(nextView) ? 'partial' : currentViewSelectionState;\n onChange(date, globalSelectionState);\n\n if (isSelectionFinishedOnCurrentView) {\n openNext();\n }\n }, [nextView, onChange, openNext]);\n return {\n handleChangeAndOpenNext,\n nextView,\n previousView,\n openNext,\n openView,\n setOpenView: changeView\n };\n}","import { createSvgIcon } from '@mui/material/utils';\nimport * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ArrowDropDown = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n/**\n * @ignore - internal component.\n */\n\nexport const ArrowLeft = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'ArrowLeft');\n/**\n * @ignore - internal component.\n */\n\nexport const ArrowRight = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'ArrowRight');\n/**\n * @ignore - internal component.\n */\n\nexport const Calendar = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Calendar');\n/**\n * @ignore - internal component.\n */\n\nexport const Clock = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Clock');\n/**\n * @ignore - internal component.\n */\n\nexport const DateRange = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\"\n}), 'DateRange');\n/**\n * @ignore - internal component.\n */\n\nexport const Pen = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Pen');\n/**\n * @ignore - internal component.\n */\n\nexport const Time = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Time');","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"components\", \"componentsProps\", \"isLeftDisabled\", \"isLeftHidden\", \"isRightDisabled\", \"isRightHidden\", \"leftArrowButtonText\", \"onLeftClick\", \"onRightClick\", \"rightArrowButtonText\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { generateUtilityClasses } from '@mui/material';\nimport { useTheme, styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { ArrowLeft, ArrowRight } from './icons';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button']);\nconst PickersArrowSwitcherRoot = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex'\n});\nconst PickersArrowSwitcherSpacer = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})(({\n theme\n}) => ({\n width: theme.spacing(3)\n}));\nconst PickersArrowSwitcherButton = styled(IconButton, {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Button',\n overridesResolver: (props, styles) => styles.button\n})(({\n ownerState\n}) => _extends({}, ownerState.hidden && {\n visibility: 'hidden'\n}));\nexport const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(props, ref) {\n const {\n children,\n className,\n components,\n componentsProps,\n isLeftDisabled,\n isLeftHidden,\n isRightDisabled,\n isRightHidden,\n leftArrowButtonText,\n onLeftClick,\n onRightClick,\n rightArrowButtonText\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const leftArrowButtonProps = (componentsProps == null ? void 0 : componentsProps.leftArrowButton) || {};\n const LeftArrowIcon = (components == null ? void 0 : components.LeftArrowIcon) || ArrowLeft;\n const rightArrowButtonProps = (componentsProps == null ? void 0 : componentsProps.rightArrowButton) || {};\n const RightArrowIcon = (components == null ? void 0 : components.RightArrowIcon) || ArrowRight;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components == null ? void 0 : components.LeftArrowButton,\n size: \"small\",\n \"aria-label\": leftArrowButtonText,\n title: leftArrowButtonText,\n disabled: isLeftDisabled,\n edge: \"end\",\n onClick: onLeftClick\n }, leftArrowButtonProps, {\n className: clsx(classes.button, leftArrowButtonProps.className),\n ownerState: _extends({}, ownerState, leftArrowButtonProps, {\n hidden: isLeftHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(RightArrowIcon, {}) : /*#__PURE__*/_jsx(LeftArrowIcon, {})\n })), children ? /*#__PURE__*/_jsx(Typography, {\n variant: \"subtitle1\",\n component: \"span\",\n children: children\n }) : /*#__PURE__*/_jsx(PickersArrowSwitcherSpacer, {\n className: classes.spacer,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components == null ? void 0 : components.RightArrowButton,\n size: \"small\",\n \"aria-label\": rightArrowButtonText,\n title: rightArrowButtonText,\n edge: \"start\",\n disabled: isRightDisabled,\n onClick: onRightClick\n }, rightArrowButtonProps, {\n className: clsx(classes.button, rightArrowButtonProps.className),\n ownerState: _extends({}, ownerState, rightArrowButtonProps, {\n hidden: isRightHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(LeftArrowIcon, {}) : /*#__PURE__*/_jsx(RightArrowIcon, {})\n }))]\n }));\n});","export const getMeridiem = (date, utils) => {\n if (!date) {\n return null;\n }\n\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\n};\nexport const convertValueToMeridiem = (value, meridiem, ampm) => {\n if (ampm) {\n const currentMeridiem = value >= 12 ? 'pm' : 'am';\n\n if (currentMeridiem !== meridiem) {\n return meridiem === 'am' ? value - 12 : value + 12;\n }\n }\n\n return value;\n};\nexport const convertToMeridiem = (time, meridiem, ampm, utils) => {\n const newHoursAmount = convertValueToMeridiem(utils.getHours(time), meridiem, ampm);\n return utils.setHours(time, newHoursAmount);\n};\nexport const getSecondsInDay = (date, utils) => {\n return utils.getHours(date) * 3600 + utils.getMinutes(date) * 60 + utils.getSeconds(date);\n};\nexport const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation = false, utils) => (dateLeft, dateRight) => {\n if (disableIgnoringDatePartForTimeValidation) {\n return utils.isAfter(dateLeft, dateRight);\n }\n\n return getSecondsInDay(dateLeft, utils) > getSecondsInDay(dateRight, utils);\n};","import * as React from 'react';\nimport { useUtils } from './useUtils';\nimport { getMeridiem, convertToMeridiem } from '../utils/time-utils';\nexport function useNextMonthDisabled(month, {\n disableFuture,\n maxDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n return !utils.isAfter(lastEnabledMonth, month);\n }, [disableFuture, maxDate, month, utils]);\n}\nexport function usePreviousMonthDisabled(month, {\n disablePast,\n minDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n return !utils.isBefore(firstEnabledMonth, month);\n }, [disablePast, minDate, month, utils]);\n}\nexport function useMeridiemMode(date, ampm, onChange) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n const handleMeridiemChange = React.useCallback(mode => {\n const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, 'partial');\n }, [ampm, date, onChange, utils]);\n return {\n meridiemMode,\n handleMeridiemChange\n };\n}","export const buildDeprecatedPropsWarning = message => {\n let alreadyWarned = false;\n\n if (process.env.NODE_ENV === 'production') {\n return () => {};\n }\n\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return deprecatedProps => {\n const deprecatedKeys = Object.entries(deprecatedProps).filter(([, value]) => value !== undefined).map(([key]) => `- ${key}`);\n\n if (!alreadyWarned && deprecatedKeys.length > 0) {\n alreadyWarned = true;\n console.warn([cleanMessage, 'deprecated props observed:', ...deprecatedKeys].join('\\n'));\n }\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';\nimport { ArrowDropDown } from '../internals/components/icons';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { usePreviousMonthDisabled, useNextMonthDisabled } from '../internals/hooks/date-helpers-hooks';\nimport { buildDeprecatedPropsWarning } from '../internals/utils/warning';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersCalendarHeaderRoot = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginTop: 16,\n marginBottom: 8,\n paddingLeft: 24,\n paddingRight: 12,\n // prevent jumping in safari\n maxHeight: 30,\n minHeight: 30\n});\nconst PickersCalendarHeaderLabel = styled('div')(({\n theme\n}) => _extends({\n display: 'flex',\n maxHeight: 30,\n overflow: 'hidden',\n alignItems: 'center',\n cursor: 'pointer',\n marginRight: 'auto'\n}, theme.typography.body1, {\n fontWeight: theme.typography.fontWeightMedium\n}));\nconst PickersCalendarHeaderLabelItem = styled('div')({\n marginRight: 6\n});\nconst PickersCalendarHeaderSwitchViewButton = styled(IconButton)({\n marginRight: 'auto'\n});\nconst PickersCalendarHeaderSwitchView = styled(ArrowDropDown)(({\n theme,\n ownerState\n}) => _extends({\n willChange: 'transform',\n transition: theme.transitions.create('transform'),\n transform: 'rotate(0deg)'\n}, ownerState.openView === 'year' && {\n transform: 'rotate(180deg)'\n}));\nconst deprecatedPropsWarning = buildDeprecatedPropsWarning('Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.');\n/**\n * @ignore - do not document.\n */\n\nexport function PickersCalendarHeader(props) {\n const {\n components = {},\n componentsProps = {},\n currentMonth: month,\n disabled,\n disableFuture,\n disablePast,\n getViewSwitchingButtonText: getViewSwitchingButtonTextProp,\n leftArrowButtonText: leftArrowButtonTextProp,\n maxDate,\n minDate,\n onMonthChange,\n onViewChange,\n openView: currentView,\n reduceAnimations,\n rightArrowButtonText: rightArrowButtonTextProp,\n views\n } = props;\n deprecatedPropsWarning({\n leftArrowButtonText: leftArrowButtonTextProp,\n rightArrowButtonText: rightArrowButtonTextProp,\n getViewSwitchingButtonText: getViewSwitchingButtonTextProp\n });\n const localeText = useLocaleText();\n const leftArrowButtonText = leftArrowButtonTextProp != null ? leftArrowButtonTextProp : localeText.previousMonth;\n const rightArrowButtonText = rightArrowButtonTextProp != null ? rightArrowButtonTextProp : localeText.nextMonth;\n const getViewSwitchingButtonText = getViewSwitchingButtonTextProp != null ? getViewSwitchingButtonTextProp : localeText.calendarViewSwitchingButtonAriaLabel;\n const utils = useUtils();\n const switchViewButtonProps = componentsProps.switchViewButton || {};\n\n const selectNextMonth = () => onMonthChange(utils.getNextMonth(month), 'left');\n\n const selectPreviousMonth = () => onMonthChange(utils.getPreviousMonth(month), 'right');\n\n const isNextMonthDisabled = useNextMonthDisabled(month, {\n disableFuture,\n maxDate\n });\n const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {\n disablePast,\n minDate\n });\n\n const handleToggleView = () => {\n if (views.length === 1 || !onViewChange || disabled) {\n return;\n }\n\n if (views.length === 2) {\n onViewChange(views.find(view => view !== currentView) || views[0]);\n } else {\n // switching only between first 2\n const nextIndexToOpen = views.indexOf(currentView) !== 0 ? 0 : 1;\n onViewChange(views[nextIndexToOpen]);\n }\n }; // No need to display more information\n\n\n if (views.length === 1 && views[0] === 'year') {\n return null;\n }\n\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, {\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabel, {\n role: \"presentation\",\n onClick: handleToggleView,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersFadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: utils.format(month, 'monthAndYear'),\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabelItem, {\n \"aria-live\": \"polite\",\n ownerState: ownerState,\n children: utils.format(month, 'monthAndYear')\n })\n }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({\n size: \"small\",\n as: components.SwitchViewButton,\n \"aria-label\": getViewSwitchingButtonText(currentView)\n }, switchViewButtonProps, {\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchView, {\n as: components.SwitchViewIcon,\n ownerState: ownerState\n })\n }))]\n }), /*#__PURE__*/_jsx(Fade, {\n in: currentView === 'day',\n children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: selectPreviousMonth,\n onRightClick: selectNextMonth,\n isLeftDisabled: isPreviousMonthDisabled,\n isRightDisabled: isNextMonthDisabled\n })\n })]\n });\n}","import * as React from 'react';\n\n/**\n * TODO consider getting rid from wrapper variant\n * @ignore - internal component.\n */\nexport const WrapperVariantContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useForkRef, capitalize } from '@mui/material/utils';\nimport { alpha, styled } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/material';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getPickersYearUtilityClass(slot) {\n return generateUtilityClass('PrivatePickersYear', slot);\n}\nexport const pickersYearClasses = generateUtilityClasses('PrivatePickersYear', ['root', 'modeMobile', 'modeDesktop', 'yearButton', 'disabled', 'selected']);\n\nconst useUtilityClasses = ownerState => {\n const {\n wrapperVariant,\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root', wrapperVariant && `mode${capitalize(wrapperVariant)}`],\n yearButton: ['yearButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersYearUtilityClass, classes);\n};\n\nconst PickersYearRoot = styled('div')(({\n ownerState\n}) => _extends({\n flexBasis: '33.3%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n}, (ownerState == null ? void 0 : ownerState.wrapperVariant) === 'desktop' && {\n flexBasis: '25%'\n}));\nconst PickersYearButton = styled('button')(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n [`&.${pickersYearClasses.disabled}`]: {\n color: theme.palette.text.secondary\n },\n [`&.${pickersYearClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport const PickersYear = /*#__PURE__*/React.forwardRef(function PickersYear(props, forwardedRef) {\n const {\n autoFocus,\n className,\n children,\n disabled,\n onClick,\n onKeyDown,\n selected,\n value\n } = props;\n const ref = React.useRef(null);\n const refHandle = useForkRef(ref, forwardedRef);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n\n const ownerState = _extends({}, props, {\n wrapperVariant\n });\n\n const classes = useUtilityClasses(ownerState); // TODO: Can we just forward this to the button?\n\n React.useEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUIu\n ref.current.focus();\n }\n }, [autoFocus]);\n return /*#__PURE__*/_jsx(PickersYearRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(PickersYearButton, {\n ref: refHandle,\n disabled: disabled,\n type: \"button\",\n tabIndex: selected ? 0 : -1,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n className: classes.yearButton,\n ownerState: ownerState,\n children: children\n })\n });\n});","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getYearPickerUtilityClass(slot) {\n return generateUtilityClass('MuiYearPicker', slot);\n}\nexport const yearPickerClasses = generateUtilityClasses('MuiYearPicker', ['root']);","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTheme, styled, useThemeProps as useThemProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport clsx from 'clsx';\nimport { PickersYear } from './PickersYear';\nimport { useUtils, useNow, useDefaultDates } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { getYearPickerUtilityClass } from './yearPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getYearPickerUtilityClass, classes);\n};\n\nconst YearPickerRoot = styled('div', {\n name: 'MuiYearPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflowY: 'auto',\n height: '100%',\n margin: '0 4px'\n});\nexport const YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, ref) {\n const now = useNow();\n const theme = useTheme();\n const utils = useUtils();\n const defaultProps = useDefaultDates();\n const props = useThemProps({\n props: inProps,\n name: 'MuiYearPicker'\n });\n const {\n autoFocus,\n className,\n date,\n disabled,\n disableFuture,\n disablePast,\n maxDate = defaultProps.maxDate,\n minDate = defaultProps.minDate,\n onChange,\n readOnly,\n shouldDisableYear\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const selectedDate = date || now;\n const currentYear = utils.getYear(selectedDate);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const selectedYearRef = React.useRef(null);\n const [focusedYear, setFocusedYear] = React.useState(currentYear);\n const isYearDisabled = React.useCallback(dateToValidate => {\n if (disablePast && utils.isBeforeYear(dateToValidate, now)) {\n return true;\n }\n\n if (disableFuture && utils.isAfterYear(dateToValidate, now)) {\n return true;\n }\n\n if (minDate && utils.isBeforeYear(dateToValidate, minDate)) {\n return true;\n }\n\n if (maxDate && utils.isAfterYear(dateToValidate, maxDate)) {\n return true;\n }\n\n if (shouldDisableYear && shouldDisableYear(dateToValidate)) {\n return true;\n }\n\n return false;\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);\n\n const handleYearSelection = (event, year, isFinish = 'finish') => {\n if (readOnly) {\n return;\n }\n\n const newDate = utils.setYear(selectedDate, year);\n onChange(newDate, isFinish);\n };\n\n const focusYear = React.useCallback(year => {\n if (!isYearDisabled(utils.setYear(selectedDate, year))) {\n setFocusedYear(year);\n }\n }, [selectedDate, isYearDisabled, utils]);\n const yearsInRow = wrapperVariant === 'desktop' ? 4 : 3;\n\n const handleKeyDown = (event, year) => {\n switch (event.key) {\n case 'ArrowUp':\n focusYear(year - yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n focusYear(year + yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n focusYear(year + (theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n focusYear(year + (theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n };\n\n return /*#__PURE__*/_jsx(YearPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: utils.getYearRange(minDate, maxDate).map(year => {\n const yearNumber = utils.getYear(year);\n const selected = yearNumber === currentYear;\n return /*#__PURE__*/_jsx(PickersYear, {\n selected: selected,\n value: yearNumber,\n onClick: handleYearSelection,\n onKeyDown: handleKeyDown,\n autoFocus: autoFocus && yearNumber === focusedYear,\n ref: selected ? selectedYearRef : undefined,\n disabled: disabled || isYearDisabled(year),\n children: utils.format(year, 'year')\n }, utils.format(year, 'year'));\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? YearPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n date: PropTypes.any,\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n onChange: PropTypes.func.isRequired,\n onFocusedDayChange: PropTypes.func,\n readOnly: PropTypes.bool,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func\n} : void 0;","export const findClosestEnabledDate = ({\n date,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n isDateDisabled,\n utils\n}) => {\n const today = utils.startOfDay(utils.date());\n\n if (disablePast && utils.isBefore(minDate, today)) {\n minDate = today;\n }\n\n if (disableFuture && utils.isAfter(maxDate, today)) {\n maxDate = today;\n }\n\n let forward = date;\n let backward = date;\n\n if (utils.isBefore(date, minDate)) {\n forward = utils.date(minDate);\n backward = null;\n }\n\n if (utils.isAfter(date, maxDate)) {\n if (backward) {\n backward = utils.date(maxDate);\n }\n\n forward = null;\n }\n\n while (forward || backward) {\n if (forward && utils.isAfter(forward, maxDate)) {\n forward = null;\n }\n\n if (backward && utils.isBefore(backward, minDate)) {\n backward = null;\n }\n\n if (forward) {\n if (!isDateDisabled(forward)) {\n return forward;\n }\n\n forward = utils.addDays(forward, 1);\n }\n\n if (backward) {\n if (!isDateDisabled(backward)) {\n return backward;\n }\n\n backward = utils.addDays(backward, -1);\n }\n }\n\n return null;\n};\nexport const parsePickerInputValue = (utils, value) => {\n const parsedValue = utils.date(value);\n return utils.isValid(parsedValue) ? parsedValue : null;\n};","import { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH, VIEW_HEIGHT } from '../../constants/dimensions';\nexport const PickerViewRoot = styled('div')({\n overflowX: 'hidden',\n width: DIALOG_WIDTH,\n maxHeight: VIEW_HEIGHT,\n display: 'flex',\n flexDirection: 'column',\n margin: '0 auto'\n});","export const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport const getCalendarPickerUtilityClass = slot => generateUtilityClass('MuiCalendarPicker', slot);\nexport const calendarPickerClasses = generateUtilityClasses('MuiCalendarPicker', ['root', 'viewTransitionContainer']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoFocus\", \"onViewChange\", \"date\", \"disableFuture\", \"disablePast\", \"defaultCalendarMonth\", \"loading\", \"onChange\", \"onYearChange\", \"onMonthChange\", \"reduceAnimations\", \"renderLoading\", \"shouldDisableDate\", \"shouldDisableMonth\", \"shouldDisableYear\", \"view\", \"views\", \"openTo\", \"className\", \"disabled\", \"readOnly\", \"minDate\", \"maxDate\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { MonthPicker } from '../MonthPicker/MonthPicker';\nimport { useCalendarState } from './useCalendarState';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';\nimport { DayPicker } from './DayPicker';\nimport { useViews } from '../internals/hooks/useViews';\nimport { PickersCalendarHeader } from './PickersCalendarHeader';\nimport { YearPicker } from '../YearPicker/YearPicker';\nimport { findClosestEnabledDate } from '../internals/utils/date-utils';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { defaultReduceAnimations } from '../internals/utils/defaultReduceAnimations';\nimport { getCalendarPickerUtilityClass } from './calendarPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n viewTransitionContainer: ['viewTransitionContainer']\n };\n return composeClasses(slots, getCalendarPickerUtilityClass, classes);\n};\n\nconst CalendarPickerRoot = styled(PickerViewRoot, {\n name: 'MuiCalendarPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst CalendarPickerViewTransitionContainer = styled(PickersFadeTransitionGroup, {\n name: 'MuiCalendarPicker',\n slot: 'ViewTransitionContainer',\n overridesResolver: (props, styles) => styles.viewTransitionContainer\n})({\n overflowY: 'auto'\n});\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [CalendarPicker API](https://mui.com/x/api/date-pickers/calendar-picker/)\n */\nconst CalendarPicker = /*#__PURE__*/React.forwardRef(function CalendarPicker(inProps, ref) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCalendarPicker'\n });\n\n const {\n autoFocus,\n onViewChange,\n date,\n disableFuture,\n disablePast,\n defaultCalendarMonth,\n loading = false,\n onChange,\n onYearChange,\n onMonthChange,\n reduceAnimations = defaultReduceAnimations,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n view,\n views = ['year', 'day'],\n openTo = 'day',\n className,\n disabled,\n readOnly,\n minDate = defaultDates.minDate,\n maxDate = defaultDates.maxDate\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n openView,\n setOpenView,\n openNext\n } = useViews({\n view,\n views,\n openTo,\n onChange,\n onViewChange\n });\n const {\n calendarState,\n changeFocusedDay,\n changeMonth,\n handleChangeMonth,\n isDateDisabled,\n onMonthSwitchingAnimationEnd\n } = useCalendarState({\n date,\n defaultCalendarMonth,\n reduceAnimations,\n onMonthChange,\n minDate,\n maxDate,\n shouldDisableDate,\n disablePast,\n disableFuture\n });\n const handleDateMonthChange = React.useCallback((newDate, selectionState) => {\n const startOfMonth = utils.startOfMonth(newDate);\n const endOfMonth = utils.endOfMonth(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfMonth) ? startOfMonth : minDate,\n maxDate: utils.isAfter(maxDate, endOfMonth) ? endOfMonth : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled\n }) : newDate;\n\n if (closestEnabledDate) {\n onChange(closestEnabledDate, selectionState);\n onMonthChange == null ? void 0 : onMonthChange(startOfMonth);\n } else {\n openNext();\n changeMonth(startOfMonth);\n }\n\n changeFocusedDay(closestEnabledDate);\n }, [changeFocusedDay, disableFuture, disablePast, isDateDisabled, maxDate, minDate, onChange, onMonthChange, changeMonth, openNext, utils]); // TODO: Use same behavior as `handleDateMonthChange` to avoid selecting a date in another year.\n // Needs startOfYear / endOfYear methods in adapter.\n\n const handleDateYearChange = React.useCallback((newDate, selectionState) => {\n const startOfYear = utils.startOfYear(newDate);\n const endOfYear = utils.endOfYear(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfYear) ? startOfYear : minDate,\n maxDate: utils.isAfter(maxDate, endOfYear) ? endOfYear : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled\n }) : newDate;\n\n if (closestEnabledDate) {\n onChange(closestEnabledDate, selectionState);\n onYearChange == null ? void 0 : onYearChange(closestEnabledDate);\n } else {\n openNext();\n changeMonth(startOfYear);\n }\n\n changeFocusedDay(closestEnabledDate);\n }, [changeFocusedDay, disableFuture, disablePast, isDateDisabled, maxDate, minDate, onChange, onYearChange, openNext, utils, changeMonth]);\n const onSelectedDayChange = React.useCallback((day, isFinish) => {\n if (date && day) {\n // If there is a date already selected, then we want to keep its time\n return onChange(utils.mergeDateAndTime(day, date), isFinish);\n }\n\n return onChange(day, isFinish);\n }, [utils, date, onChange]);\n React.useEffect(() => {\n if (date && isDateDisabled(date)) {\n const closestEnabledDate = findClosestEnabledDate({\n utils,\n date,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n isDateDisabled\n });\n onChange(closestEnabledDate, 'partial');\n } // This call is too expensive to run it on each prop change.\n // So just ensure that we are not rendering disabled as selected on mount.\n\n }, []); // eslint-disable-line\n\n React.useEffect(() => {\n if (date) {\n changeMonth(date);\n }\n }, [date]); // eslint-disable-line\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const baseDateValidationProps = {\n disablePast,\n disableFuture,\n maxDate,\n minDate\n }; // When disabled, limit the view to the selected date\n\n const minDateWithDisabled = disabled && date || minDate;\n const maxDateWithDisabled = disabled && date || maxDate;\n return /*#__PURE__*/_jsxs(CalendarPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersCalendarHeader, _extends({}, other, {\n views: views,\n openView: openView,\n currentMonth: calendarState.currentMonth,\n onViewChange: setOpenView,\n onMonthChange: (newMonth, direction) => handleChangeMonth({\n newMonth,\n direction\n }),\n minDate: minDateWithDisabled,\n maxDate: maxDateWithDisabled,\n disabled: disabled,\n disablePast: disablePast,\n disableFuture: disableFuture,\n reduceAnimations: reduceAnimations\n })), /*#__PURE__*/_jsx(CalendarPickerViewTransitionContainer, {\n reduceAnimations: reduceAnimations,\n className: classes.viewTransitionContainer,\n transKey: openView,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsxs(\"div\", {\n children: [openView === 'year' && /*#__PURE__*/_jsx(YearPicker, _extends({}, other, baseDateValidationProps, {\n autoFocus: autoFocus,\n date: date,\n onChange: handleDateYearChange,\n shouldDisableYear: shouldDisableYear,\n disabled: disabled,\n readOnly: readOnly\n })), openView === 'month' && /*#__PURE__*/_jsx(MonthPicker, _extends({}, baseDateValidationProps, {\n className: className,\n date: date,\n onChange: handleDateMonthChange,\n disabled: disabled,\n readOnly: readOnly,\n shouldDisableMonth: shouldDisableMonth\n })), openView === 'day' && /*#__PURE__*/_jsx(DayPicker, _extends({}, other, calendarState, baseDateValidationProps, {\n autoFocus: autoFocus,\n onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,\n onFocusedDayChange: changeFocusedDay,\n reduceAnimations: reduceAnimations,\n selectedDays: [date],\n onSelectedDaysChange: onSelectedDayChange,\n loading: loading,\n renderLoading: renderLoading,\n disabled: disabled,\n readOnly: readOnly,\n shouldDisableDate: shouldDisableDate\n }))]\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CalendarPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n date: PropTypes.any,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired on date change\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Initially open view.\n * @default 'day'\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * Controlled open view.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Views for calendar picker.\n * @default ['year', 'day']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;\nexport { CalendarPicker };","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport const getCalendarPickerSkeletonUtilityClass = slot => generateUtilityClass('MuiCalendarPickerSkeleton', slot);\nexport const calendarPickerSkeletonClasses = generateUtilityClasses('MuiCalendarPickerSkeleton', ['root', 'week', 'daySkeleton']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Skeleton from '@mui/material/Skeleton';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { getCalendarPickerSkeletonUtilityClass } from './calendarPickerSkeletonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n week: ['week'],\n daySkeleton: ['daySkeleton']\n };\n return composeClasses(slots, getCalendarPickerSkeletonUtilityClass, classes);\n};\n\nconst CalendarPickerSkeletonRoot = styled('div', {\n name: 'MuiCalendarPickerSkeleton',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n alignSelf: 'start'\n});\nconst CalendarPickerSkeletonWeek = styled('div', {\n name: 'MuiCalendarPickerSkeleton',\n slot: 'Week',\n overridesResolver: (props, styles) => styles.week\n})({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\nconst CalendarPickerSkeletonDay = styled(Skeleton, {\n name: 'MuiCalendarPickerSkeleton',\n slot: 'Day',\n overridesResolver: (props, styles) => styles.daySkeleton\n})(({\n ownerState\n}) => _extends({\n margin: `0 ${DAY_MARGIN}px`\n}, ownerState.day === 0 && {\n visibility: 'hidden'\n}));\nCalendarPickerSkeletonDay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n ownerState: PropTypes.shape({\n day: PropTypes.number.isRequired\n }).isRequired\n};\nconst monthMap = [[0, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0]];\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [CalendarPickerSkeleton API](https://mui.com/x/api/date-pickers/calendar-picker-skeleton/)\n */\n\nfunction CalendarPickerSkeleton(props) {\n const _useThemeProps = useThemeProps({\n props,\n name: 'MuiCalendarPickerSkeleton'\n }),\n {\n className\n } = _useThemeProps,\n other = _objectWithoutPropertiesLoose(_useThemeProps, _excluded);\n\n const classes = useUtilityClasses(props);\n return /*#__PURE__*/_jsx(CalendarPickerSkeletonRoot, _extends({\n className: clsx(classes.root, className)\n }, other, {\n children: monthMap.map((week, index) => /*#__PURE__*/_jsx(CalendarPickerSkeletonWeek, {\n className: classes.week,\n children: week.map((day, index2) => /*#__PURE__*/_jsx(CalendarPickerSkeletonDay, {\n variant: \"circular\",\n width: DAY_SIZE,\n height: DAY_SIZE,\n className: classes.daySkeleton,\n ownerState: {\n day\n }\n }, index2))\n }, index))\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? CalendarPickerSkeleton.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { CalendarPickerSkeleton };","import * as React from 'react';\nlet globalId = 0;\n\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseId = React['useId' + ''];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\n\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n } // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n\n\n return useGlobalId(idOverride);\n}","export const CLOCK_WIDTH = 220;\nexport const CLOCK_HOUR_WIDTH = 36;\nconst clockCenter = {\n x: CLOCK_WIDTH / 2,\n y: CLOCK_WIDTH / 2\n};\nconst baseClockPoint = {\n x: clockCenter.x,\n y: 0\n};\nconst cx = baseClockPoint.x - clockCenter.x;\nconst cy = baseClockPoint.y - clockCenter.y;\n\nconst rad2deg = rad => rad * (180 / Math.PI);\n\nconst getAngleValue = (step, offsetX, offsetY) => {\n const x = offsetX - clockCenter.x;\n const y = offsetY - clockCenter.y;\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\n let deg = rad2deg(atan);\n deg = Math.round(deg / step) * step;\n deg %= 360;\n const value = Math.floor(deg / step) || 0;\n const delta = x ** 2 + y ** 2;\n const distance = Math.sqrt(delta);\n return {\n value,\n distance\n };\n};\n\nexport const getMinutes = (offsetX, offsetY, step = 1) => {\n const angleStep = step * 6;\n let {\n value\n } = getAngleValue(angleStep, offsetX, offsetY);\n value = value * step % 60;\n return value;\n};\nexport const getHours = (offsetX, offsetY, ampm) => {\n const {\n value,\n distance\n } = getAngleValue(30, offsetX, offsetY);\n let hour = value || 12;\n\n if (!ampm) {\n if (distance < CLOCK_WIDTH / 2 - CLOCK_HOUR_WIDTH) {\n hour += 12;\n hour %= 24;\n }\n } else {\n hour %= 12;\n }\n\n return hour;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"hasSelected\", \"isInner\", \"type\", \"value\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ClockPointerRoot = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 2,\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n left: 'calc(50% - 1px)',\n bottom: '50%',\n transformOrigin: 'center bottom 0px'\n}, ownerState.toAnimateTransform && {\n transition: theme.transitions.create(['transform', 'height'])\n}));\nconst ClockPointerThumb = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 4,\n height: 4,\n backgroundColor: theme.palette.primary.contrastText,\n borderRadius: '50%',\n position: 'absolute',\n top: -21,\n left: `calc(50% - ${CLOCK_HOUR_WIDTH / 2}px)`,\n border: `${(CLOCK_HOUR_WIDTH - 4) / 2}px solid ${theme.palette.primary.main}`,\n boxSizing: 'content-box'\n}, ownerState.hasSelected && {\n backgroundColor: theme.palette.primary.main\n}));\n/**\n * @ignore - internal component.\n * TODO: Remove class\n */\n\nexport class ClockPointer extends React.Component {\n constructor(...args) {\n super(...args);\n this.state = {\n toAnimateTransform: false,\n previousType: undefined\n };\n }\n\n render() {\n const _this$props = this.props,\n {\n className,\n isInner,\n type,\n value\n } = _this$props,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n const ownerState = _extends({}, this.props, this.state);\n\n const getAngleStyle = () => {\n const max = type === 'hours' ? 12 : 60;\n let angle = 360 / max * value;\n\n if (type === 'hours' && value > 12) {\n angle -= 360; // round up angle to max 360 degrees\n }\n\n return {\n height: Math.round((isInner ? 0.26 : 0.4) * CLOCK_WIDTH),\n transform: `rotateZ(${angle}deg)`\n };\n };\n\n return /*#__PURE__*/_jsx(ClockPointerRoot, _extends({\n style: getAngleStyle(),\n className: className,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(ClockPointerThumb, {\n ownerState: ownerState\n })\n }));\n }\n\n}\n\nClockPointer.getDerivedStateFromProps = (nextProps, state) => {\n if (nextProps.type !== state.previousType) {\n return {\n toAnimateTransform: true,\n previousType: nextProps.type\n };\n }\n\n return {\n toAnimateTransform: false,\n previousType: nextProps.type\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { ClockPointer } from './ClockPointer';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { getHours, getMinutes } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ClockRoot = styled('div')(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(2)\n}));\nconst ClockClock = styled('div')({\n backgroundColor: 'rgba(0,0,0,.07)',\n borderRadius: '50%',\n height: 220,\n width: 220,\n flexShrink: 0,\n position: 'relative',\n pointerEvents: 'none'\n});\nconst ClockSquareMask = styled('div')(({\n ownerState\n}) => _extends({\n width: '100%',\n height: '100%',\n position: 'absolute',\n pointerEvents: 'auto',\n outline: 0,\n // Disable scroll capabilities.\n touchAction: 'none',\n userSelect: 'none'\n}, ownerState.disabled ? {} : {\n '@media (pointer: fine)': {\n cursor: 'pointer',\n borderRadius: '50%'\n },\n '&:active': {\n cursor: 'move'\n }\n}));\nconst ClockPin = styled('div')(({\n theme\n}) => ({\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n}));\nconst ClockAmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n left: 8\n}, ownerState.meridiemMode === 'am' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\nconst ClockPmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n right: 8\n}, ownerState.meridiemMode === 'pm' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport function Clock(props) {\n const {\n ampm,\n ampmInClock,\n autoFocus,\n children,\n date,\n getClockLabelText,\n handleMeridiemChange,\n isTimeDisabled,\n meridiemMode,\n minutesStep = 1,\n onChange,\n selectedId,\n type,\n value,\n disabled,\n readOnly\n } = props;\n const ownerState = props;\n const utils = useUtils();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const isMoving = React.useRef(false);\n const isSelectedTimeDisabled = isTimeDisabled(value, type);\n const isPointerInner = !ampm && type === 'hours' && (value < 1 || value > 12);\n\n const handleValueChange = (newValue, isFinish) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isTimeDisabled(newValue, type)) {\n return;\n }\n\n onChange(newValue, isFinish);\n };\n\n const setTime = (event, isFinish) => {\n let {\n offsetX,\n offsetY\n } = event;\n\n if (offsetX === undefined) {\n const rect = event.target.getBoundingClientRect();\n offsetX = event.changedTouches[0].clientX - rect.left;\n offsetY = event.changedTouches[0].clientY - rect.top;\n }\n\n const newSelectedValue = type === 'seconds' || type === 'minutes' ? getMinutes(offsetX, offsetY, minutesStep) : getHours(offsetX, offsetY, Boolean(ampm));\n handleValueChange(newSelectedValue, isFinish);\n };\n\n const handleTouchMove = event => {\n isMoving.current = true;\n setTime(event, 'shallow');\n };\n\n const handleTouchEnd = event => {\n if (isMoving.current) {\n setTime(event, 'finish');\n isMoving.current = false;\n }\n };\n\n const handleMouseMove = event => {\n // event.buttons & PRIMARY_MOUSE_BUTTON\n if (event.buttons > 0) {\n setTime(event.nativeEvent, 'shallow');\n }\n };\n\n const handleMouseUp = event => {\n if (isMoving.current) {\n isMoving.current = false;\n }\n\n setTime(event.nativeEvent, 'finish');\n };\n\n const hasSelected = React.useMemo(() => {\n if (type === 'hours') {\n return true;\n }\n\n return value % 5 === 0;\n }, [type, value]);\n const keyboardControlStep = type === 'minutes' ? minutesStep : 1;\n const listboxRef = React.useRef(null); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus) {\n // The ref not being resolved would be a bug in MUI.\n listboxRef.current.focus();\n }\n }, [autoFocus]);\n\n const handleKeyDown = event => {\n // TODO: Why this early exit?\n if (isMoving.current) {\n return;\n }\n\n switch (event.key) {\n case 'Home':\n // annulate both hours and minutes\n handleValueChange(0, 'partial');\n event.preventDefault();\n break;\n\n case 'End':\n handleValueChange(type === 'minutes' ? 59 : 23, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n handleValueChange(value + keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n handleValueChange(value - keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n default: // do nothing\n\n }\n };\n\n return /*#__PURE__*/_jsxs(ClockRoot, {\n children: [/*#__PURE__*/_jsxs(ClockClock, {\n children: [/*#__PURE__*/_jsx(ClockSquareMask, {\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n onMouseUp: handleMouseUp,\n onMouseMove: handleMouseMove,\n ownerState: {\n disabled\n }\n }), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockPin, {}), date && /*#__PURE__*/_jsx(ClockPointer, {\n type: type,\n value: value,\n isInner: isPointerInner,\n hasSelected: hasSelected\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n \"aria-activedescendant\": selectedId,\n \"aria-label\": getClockLabelText(type, date, utils),\n ref: listboxRef,\n role: \"listbox\",\n onKeyDown: handleKeyDown,\n tabIndex: 0,\n children: children\n })]\n }), ampm && (wrapperVariant === 'desktop' || ampmInClock) && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockAmButton, {\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled || meridiemMode === null,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"AM\"\n })\n }), /*#__PURE__*/_jsx(ClockPmButton, {\n disabled: disabled || meridiemMode === null,\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"PM\"\n })\n })]\n })]\n });\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"index\", \"inner\", \"label\", \"selected\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const classes = generateUtilityClasses('PrivateClockNumber', ['selected', 'disabled']);\nconst ClockNumberRoot = styled('span')(({\n theme,\n ownerState\n}) => _extends({\n height: CLOCK_HOUR_WIDTH,\n width: CLOCK_HOUR_WIDTH,\n position: 'absolute',\n left: `calc((100% - ${CLOCK_HOUR_WIDTH}px) / 2)`,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n '&:focused': {\n backgroundColor: theme.palette.background.paper\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText\n },\n [`&.${classes.disabled}`]: {\n pointerEvents: 'none',\n color: theme.palette.text.disabled\n }\n}, ownerState.inner && _extends({}, theme.typography.body2, {\n color: theme.palette.text.secondary\n})));\n/**\n * @ignore - internal component.\n */\n\nexport function ClockNumber(props) {\n const {\n className,\n disabled,\n index,\n inner,\n label,\n selected\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;\n const length = (CLOCK_WIDTH - CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);\n const x = Math.round(Math.cos(angle) * length);\n const y = Math.round(Math.sin(angle) * length);\n return /*#__PURE__*/_jsx(ClockNumberRoot, _extends({\n className: clsx(className, selected && classes.selected, disabled && classes.disabled),\n \"aria-disabled\": disabled ? true : undefined,\n \"aria-selected\": selected ? true : undefined,\n role: \"option\",\n style: {\n transform: `translate(${x}px, ${y + (CLOCK_WIDTH - CLOCK_HOUR_WIDTH) / 2}px`\n },\n ownerState: ownerState\n }, other, {\n children: label\n }));\n}","import * as React from 'react';\nimport { ClockNumber } from './ClockNumber';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n * @ignore - internal component.\n */\nexport const getHourNumbers = ({\n ampm,\n date,\n getClockNumberText,\n isDisabled,\n selectedId,\n utils\n}) => {\n const currentHours = date ? utils.getHours(date) : null;\n const hourNumbers = [];\n const startHour = ampm ? 1 : 0;\n const endHour = ampm ? 12 : 23;\n\n const isSelected = hour => {\n if (currentHours === null) {\n return false;\n }\n\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n\n return currentHours === hour || currentHours - 12 === hour;\n }\n\n return currentHours === hour;\n };\n\n for (let hour = startHour; hour <= endHour; hour += 1) {\n let label = hour.toString();\n\n if (hour === 0) {\n label = '00';\n }\n\n const inner = !ampm && (hour === 0 || hour > 12);\n label = utils.formatNumber(label);\n const selected = isSelected(hour);\n hourNumbers.push( /*#__PURE__*/_jsx(ClockNumber, {\n id: selected ? selectedId : undefined,\n index: hour,\n inner: inner,\n selected: selected,\n disabled: isDisabled(hour),\n label: label,\n \"aria-label\": getClockNumberText(label)\n }, hour));\n }\n\n return hourNumbers;\n};\nexport const getMinutesNumbers = ({\n utils,\n value,\n isDisabled,\n getClockNumberText,\n selectedId\n}) => {\n const f = utils.formatNumber;\n return [[5, f('05')], [10, f('10')], [15, f('15')], [20, f('20')], [25, f('25')], [30, f('30')], [35, f('35')], [40, f('40')], [45, f('45')], [50, f('50')], [55, f('55')], [0, f('00')]].map(([numberValue, label], index) => {\n const selected = numberValue === value;\n return /*#__PURE__*/_jsx(ClockNumber, {\n label: label,\n id: selected ? selectedId : undefined,\n index: index + 1,\n inner: false,\n disabled: isDisabled(numberValue),\n selected: selected,\n \"aria-label\": getClockNumberText(label)\n }, numberValue);\n });\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getClockPickerUtilityClass(slot) {\n return generateUtilityClass('MuiClockPicker', slot);\n}\nexport const clockPickerClasses = generateUtilityClasses('MuiClockPicker', ['root', 'arrowSwitcher']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { Clock } from './Clock';\nimport { useUtils, useNow, useLocaleText } from '../internals/hooks/useUtils';\nimport { buildDeprecatedPropsWarning } from '../internals/utils/warning';\nimport { getHourNumbers, getMinutesNumbers } from './ClockNumbers';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from '../internals/utils/time-utils';\nimport { useViews } from '../internals/hooks/useViews';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { getClockPickerUtilityClass } from './clockPickerClasses';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n arrowSwitcher: ['arrowSwitcher']\n };\n return composeClasses(slots, getClockPickerUtilityClass, classes);\n};\n\nconst ClockPickerRoot = styled(PickerViewRoot, {\n name: 'MuiClockPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst ClockPickerArrowSwitcher = styled(PickersArrowSwitcher, {\n name: 'MuiClockPicker',\n slot: 'ArrowSwitcher',\n overridesResolver: (props, styles) => styles.arrowSwitcher\n})({\n position: 'absolute',\n right: 12,\n top: 15\n});\nconst deprecatedPropsWarning = buildDeprecatedPropsWarning('Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.');\n/**\n *\n * API:\n *\n * - [ClockPicker API](https://mui.com/x/api/date-pickers/clock-picker/)\n */\n\nexport const ClockPicker = /*#__PURE__*/React.forwardRef(function ClockPicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockPicker'\n });\n const {\n ampm = false,\n ampmInClock = false,\n autoFocus,\n components,\n componentsProps,\n date,\n disableIgnoringDatePartForTimeValidation,\n getClockLabelText: getClockLabelTextProp,\n getHoursClockNumberText: getHoursClockNumberTextProp,\n getMinutesClockNumberText: getMinutesClockNumberTextProp,\n getSecondsClockNumberText: getSecondsClockNumberTextProp,\n leftArrowButtonText: leftArrowButtonTextProp,\n maxTime,\n minTime,\n minutesStep = 1,\n rightArrowButtonText: rightArrowButtonTextProp,\n shouldDisableTime,\n showViewSwitcher,\n onChange,\n view,\n views = ['hours', 'minutes'],\n openTo,\n onViewChange,\n className,\n disabled,\n readOnly\n } = props;\n deprecatedPropsWarning({\n leftArrowButtonText: leftArrowButtonTextProp,\n rightArrowButtonText: rightArrowButtonTextProp,\n getClockLabelText: getClockLabelTextProp,\n getHoursClockNumberText: getHoursClockNumberTextProp,\n getMinutesClockNumberText: getMinutesClockNumberTextProp,\n getSecondsClockNumberText: getSecondsClockNumberTextProp\n });\n const localeText = useLocaleText();\n const leftArrowButtonText = leftArrowButtonTextProp != null ? leftArrowButtonTextProp : localeText.openPreviousView;\n const rightArrowButtonText = rightArrowButtonTextProp != null ? rightArrowButtonTextProp : localeText.openNextView;\n const getClockLabelText = getClockLabelTextProp != null ? getClockLabelTextProp : localeText.clockLabelText;\n const getHoursClockNumberText = getHoursClockNumberTextProp != null ? getHoursClockNumberTextProp : localeText.hoursClockNumberText;\n const getMinutesClockNumberText = getMinutesClockNumberTextProp != null ? getMinutesClockNumberTextProp : localeText.minutesClockNumberText;\n const getSecondsClockNumberText = getSecondsClockNumberTextProp != null ? getSecondsClockNumberTextProp : localeText.secondsClockNumberText;\n const {\n openView,\n setOpenView,\n nextView,\n previousView,\n handleChangeAndOpenNext\n } = useViews({\n view,\n views,\n openTo,\n onViewChange,\n onChange\n });\n const now = useNow();\n const utils = useUtils();\n const dateOrMidnight = React.useMemo(() => date || utils.setSeconds(utils.setMinutes(utils.setHours(now, 0), 0), 0), [date, now, utils]);\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(dateOrMidnight, ampm, handleChangeAndOpenNext);\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n\n const containsValidTime = ({\n start,\n end\n }) => {\n if (minTime && isAfter(minTime, end)) {\n return false;\n }\n\n if (maxTime && isAfter(start, maxTime)) {\n return false;\n }\n\n return true;\n };\n\n const isValidValue = (value, step = 1) => {\n if (value % step !== 0) {\n return false;\n }\n\n if (shouldDisableTime) {\n return !shouldDisableTime(value, viewType);\n }\n\n return true;\n };\n\n switch (viewType) {\n case 'hours':\n {\n const value = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n const dateWithNewHours = utils.setHours(dateOrMidnight, value);\n const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);\n const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(value);\n }\n\n case 'minutes':\n {\n const dateWithNewMinutes = utils.setMinutes(dateOrMidnight, rawValue);\n const start = utils.setSeconds(dateWithNewMinutes, 0);\n const end = utils.setSeconds(dateWithNewMinutes, 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue, minutesStep);\n }\n\n case 'seconds':\n {\n const dateWithNewSeconds = utils.setSeconds(dateOrMidnight, rawValue);\n const start = dateWithNewSeconds;\n const end = dateWithNewSeconds;\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue);\n }\n\n default:\n throw new Error('not supported');\n }\n }, [ampm, dateOrMidnight, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils]);\n const selectedId = useId();\n const viewProps = React.useMemo(() => {\n switch (openView) {\n case 'hours':\n {\n const handleHoursChange = (value, isFinish) => {\n const valueWithMeridiem = convertValueToMeridiem(value, meridiemMode, ampm);\n handleChangeAndOpenNext(utils.setHours(dateOrMidnight, valueWithMeridiem), isFinish);\n };\n\n return {\n onChange: handleHoursChange,\n value: utils.getHours(dateOrMidnight),\n children: getHourNumbers({\n date,\n utils,\n ampm,\n onChange: handleHoursChange,\n getClockNumberText: getHoursClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'hours'),\n selectedId\n })\n };\n }\n\n case 'minutes':\n {\n const minutesValue = utils.getMinutes(dateOrMidnight);\n\n const handleMinutesChange = (value, isFinish) => {\n handleChangeAndOpenNext(utils.setMinutes(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: minutesValue,\n onChange: handleMinutesChange,\n children: getMinutesNumbers({\n utils,\n value: minutesValue,\n onChange: handleMinutesChange,\n getClockNumberText: getMinutesClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'minutes'),\n selectedId\n })\n };\n }\n\n case 'seconds':\n {\n const secondsValue = utils.getSeconds(dateOrMidnight);\n\n const handleSecondsChange = (value, isFinish) => {\n handleChangeAndOpenNext(utils.setSeconds(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: secondsValue,\n onChange: handleSecondsChange,\n children: getMinutesNumbers({\n utils,\n value: secondsValue,\n onChange: handleSecondsChange,\n getClockNumberText: getSecondsClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'seconds'),\n selectedId\n })\n };\n }\n\n default:\n throw new Error('You must provide the type for ClockView');\n }\n }, [openView, utils, date, ampm, getHoursClockNumberText, getMinutesClockNumberText, getSecondsClockNumberText, meridiemMode, handleChangeAndOpenNext, dateOrMidnight, isTimeDisabled, selectedId, disabled]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(ClockPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [showViewSwitcher && /*#__PURE__*/_jsx(ClockPickerArrowSwitcher, {\n className: classes.arrowSwitcher,\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: () => setOpenView(previousView),\n onRightClick: () => setOpenView(nextView),\n isLeftDisabled: !previousView,\n isRightDisabled: !nextView,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(Clock, _extends({\n autoFocus: autoFocus,\n date: date,\n ampmInClock: ampmInClock,\n type: openView,\n ampm: ampm,\n getClockLabelText: getClockLabelText,\n minutesStep: minutesStep,\n isTimeDisabled: isTimeDisabled,\n meridiemMode: meridiemMode,\n handleMeridiemChange: handleMeridiemChange,\n selectedId: selectedId,\n disabled: disabled,\n readOnly: readOnly\n }, viewProps))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ClockPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * 12h/24h view for hour selection clock.\n * @default false\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * Set to `true` if focus should be moved to clock picker.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Selected date @DateIOType.\n */\n date: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get clock number aria-text for hours.\n * @param {string} hours The hours to format.\n * @returns {string} the formatted hours text.\n * @default (hours: string) => `${hours} hours`\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getHoursClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for minutes.\n * @param {string} minutes The minutes to format.\n * @returns {string} the formatted minutes text.\n * @default (minutes: string) => `${minutes} minutes`\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getMinutesClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for seconds.\n * @param {string} seconds The seconds to format.\n * @returns {string} the formatted seconds text.\n * @default (seconds: string) => `${seconds} seconds`\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getSecondsClockNumberText: PropTypes.func,\n\n /**\n * Left arrow icon aria-label text.\n * @default 'open previous view'\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * On change callback @DateIOType.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Initially open view.\n * @default 'hours'\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Right arrow icon aria-label text.\n * @default 'open next view'\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n showViewSwitcher: PropTypes.bool,\n\n /**\n * Controlled open view.\n */\n view: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Views for calendar picker.\n * @default ['hours', 'minutes']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { parsePickerInputValue } from '../internals/utils/date-utils';\nexport const isYearOnlyView = views => views.length === 1 && views[0] === 'year';\nexport const isYearAndMonthViews = views => views.length === 2 && views.indexOf('month') !== -1 && views.indexOf('year') !== -1;\n\nconst getFormatAndMaskByViews = (views, utils) => {\n if (isYearOnlyView(views)) {\n return {\n inputFormat: utils.formats.year\n };\n }\n\n if (isYearAndMonthViews(views)) {\n return {\n disableMaskedInput: true,\n inputFormat: utils.formats.monthAndYear\n };\n }\n\n return {\n inputFormat: utils.formats.keyboardDate\n };\n};\n\nexport function useDatePickerDefaultizedProps(props, name) {\n var _themeProps$views;\n\n const utils = useUtils();\n const defaultDates = useDefaultDates(); // This is technically unsound if the type parameters appear in optional props.\n // Optional props can be filled by `useThemeProps` with types that don't match the type parameters.\n\n const themeProps = useThemeProps({\n props,\n name\n });\n const views = (_themeProps$views = themeProps.views) != null ? _themeProps$views : ['year', 'day'];\n return _extends({\n openTo: 'day',\n minDate: defaultDates.minDate,\n maxDate: defaultDates.maxDate\n }, getFormatAndMaskByViews(views, utils), themeProps, {\n views\n });\n}\nexport const datePickerValueManager = {\n emptyValue: null,\n getTodayValue: utils => utils.date(),\n parseInput: parsePickerInputValue,\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b)\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport IconButton from '@mui/material/IconButton';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { Pen, Calendar, Clock } from './icons';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const pickersToolbarClasses = generateUtilityClasses('MuiPickersToolbar', ['root', 'content', 'penIconButton', 'penIconButtonLandscape']);\nconst PickersToolbarRoot = styled('div', {\n name: 'MuiPickersToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3)\n}, ownerState.isLandscape && {\n height: 'auto',\n maxWidth: 160,\n padding: 16,\n justifyContent: 'flex-start',\n flexWrap: 'wrap'\n}));\nconst PickersToolbarContent = styled(Grid, {\n name: 'MuiPickersToolbar',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: 1\n});\nconst PickersToolbarPenIconButton = styled(IconButton, {\n name: 'MuiPickersToolbar',\n slot: 'PenIconButton',\n overridesResolver: (props, styles) => styles.penIconButton\n})({});\n\nconst getViewTypeIcon = viewType => viewType === 'clock' ? /*#__PURE__*/_jsx(Clock, {\n color: \"inherit\"\n}) : /*#__PURE__*/_jsx(Calendar, {\n color: \"inherit\"\n});\n\nfunction defaultGetKeyboardInputSwitchingButtonText(isKeyboardInputOpen, viewType) {\n return isKeyboardInputOpen ? `text input view is open, go to ${viewType} view` : `${viewType} view is open, go to text input view`;\n}\n\nexport const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(props, ref) {\n const {\n children,\n className,\n getMobileKeyboardInputViewButtonText = defaultGetKeyboardInputSwitchingButtonText,\n isLandscape,\n isMobileKeyboardViewOpen,\n landscapeDirection = 'column',\n toggleMobileKeyboardView,\n toolbarTitle,\n viewType = 'calendar'\n } = props;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersToolbarRoot, {\n ref: ref,\n className: clsx(pickersToolbarClasses.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n variant: \"overline\",\n children: toolbarTitle\n }), /*#__PURE__*/_jsxs(PickersToolbarContent, {\n container: true,\n justifyContent: \"space-between\",\n className: pickersToolbarClasses.content,\n ownerState: ownerState,\n direction: isLandscape ? landscapeDirection : 'row',\n alignItems: isLandscape ? 'flex-start' : 'flex-end',\n children: [children, /*#__PURE__*/_jsx(PickersToolbarPenIconButton, {\n onClick: toggleMobileKeyboardView,\n className: clsx(pickersToolbarClasses.penIconButton, isLandscape && pickersToolbarClasses.penIconButtonLandscape),\n ownerState: ownerState,\n color: \"inherit\",\n \"aria-label\": getMobileKeyboardInputViewButtonText(isMobileKeyboardViewOpen, viewType),\n children: isMobileKeyboardViewOpen ? getViewTypeIcon(viewType) : /*#__PURE__*/_jsx(Pen, {\n color: \"inherit\"\n })\n })]\n })]\n });\n});","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"parsedValue\", \"isLandscape\", \"isMobileKeyboardViewOpen\", \"onChange\", \"toggleMobileKeyboardView\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { PickersToolbar, pickersToolbarClasses } from '../internals/components/PickersToolbar';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { isYearAndMonthViews, isYearOnlyView } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const datePickerToolbarClasses = generateUtilityClasses('MuiDatePickerToolbar', ['root', 'title']);\nconst DatePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDatePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n [`& .${pickersToolbarClasses.penIconButton}`]: {\n position: 'relative',\n top: 4\n }\n});\nconst DatePickerToolbarTitle = styled(Typography, {\n name: 'MuiDatePickerToolbar',\n slot: 'Title',\n overridesResolver: (props, styles) => styles.title\n})(({\n ownerState\n}) => _extends({}, ownerState.isLandscape && {\n margin: 'auto 16px auto auto'\n}));\n\n/**\n * @ignore - internal component.\n */\nexport const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePickerToolbar(props, ref) {\n const {\n parsedValue,\n isLandscape,\n isMobileKeyboardViewOpen,\n toggleMobileKeyboardView,\n toolbarFormat,\n toolbarPlaceholder = '––',\n toolbarTitle = 'Select date',\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const dateText = React.useMemo(() => {\n if (!parsedValue) {\n return toolbarPlaceholder;\n }\n\n if (toolbarFormat) {\n return utils.formatByString(parsedValue, toolbarFormat);\n }\n\n if (isYearOnlyView(views)) {\n return utils.format(parsedValue, 'year');\n }\n\n if (isYearAndMonthViews(views)) {\n return utils.format(parsedValue, 'month');\n } // Little localization hack (Google is doing the same for android native pickers):\n // For english localization it is convenient to include weekday into the date \"Mon, Jun 1\".\n // For other locales using strings like \"June 1\", without weekday.\n\n\n return /en/.test(utils.getCurrentLocaleCode()) ? utils.format(parsedValue, 'normalDateWithWeekday') : utils.format(parsedValue, 'normalDate');\n }, [parsedValue, toolbarFormat, toolbarPlaceholder, utils, views]);\n const ownerState = props;\n return /*#__PURE__*/_jsx(DatePickerToolbarRoot, _extends({\n ref: ref,\n toolbarTitle: toolbarTitle,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n isLandscape: isLandscape,\n ownerState: ownerState,\n className: datePickerToolbarClasses.root\n }, other, {\n children: /*#__PURE__*/_jsx(DatePickerToolbarTitle, {\n variant: \"h4\",\n align: isLandscape ? 'left' : 'center',\n ownerState: ownerState,\n className: datePickerToolbarClasses.title,\n children: dateText\n })\n }));\n});","import * as React from 'react';\nimport Button from '@mui/material/Button';\nimport DialogActions from '@mui/material/DialogActions';\nimport { useLocaleText } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const PickersActionBar = props => {\n const {\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n actions\n } = props;\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const localeText = useLocaleText();\n const actionsArray = typeof actions === 'function' ? actions(wrapperVariant) : actions;\n\n if (actionsArray == null || actionsArray.length === 0) {\n return null;\n }\n\n const buttons = actionsArray == null ? void 0 : actionsArray.map(actionType => {\n switch (actionType) {\n case 'clear':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onClear,\n children: localeText.clearButtonLabel\n }, actionType);\n\n case 'cancel':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onCancel,\n children: localeText.cancelButtonLabel\n }, actionType);\n\n case 'accept':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onAccept,\n children: localeText.okButtonLabel\n }, actionType);\n\n case 'today':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onSetToday,\n children: localeText.todayButtonLabel\n }, actionType);\n\n default:\n return null;\n }\n });\n return /*#__PURE__*/_jsx(DialogActions, {\n children: buttons\n });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"onClick\", \"onTouchStart\"];\nimport * as React from 'react';\nimport Grow from '@mui/material/Grow';\nimport Paper from '@mui/material/Paper';\nimport Popper from '@mui/material/Popper';\nimport TrapFocus from '@mui/material/Unstable_TrapFocus';\nimport { useForkRef, useEventCallback, ownerDocument } from '@mui/material/utils';\nimport { styled } from '@mui/material/styles';\nimport { PickersActionBar } from '../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersPopperRoot = styled(Popper)(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal\n}));\nconst PickersPopperPaper = styled(Paper)(({\n ownerState\n}) => _extends({\n transformOrigin: 'top center',\n outline: 0\n}, ownerState.placement === 'top' && {\n transformOrigin: 'bottom center'\n}));\n\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\n/**\n * Based on @mui/material/ClickAwayListener without the customization.\n * We can probably strip away even more since children won't be portaled.\n * @param {boolean} active Only listen to clicks when the popper is opened.\n * @param {(event: MouseEvent | TouchEvent) => void} onClickAway The callback to call when clicking outside the popper.\n * @returns {Array} The ref and event handler to listen to the outside clicks.\n */\nfunction useClickAwayListener(active, onClickAway) {\n const movedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n React.useEffect(() => {\n if (!active) {\n return undefined;\n } // Ensure that this hook is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n\n\n function armClickAwayListener() {\n activatedRef.current = true;\n }\n\n document.addEventListener('mousedown', armClickAwayListener, true);\n document.addEventListener('touchstart', armClickAwayListener, true);\n return () => {\n document.removeEventListener('mousedown', armClickAwayListener, true);\n document.removeEventListener('touchstart', armClickAwayListener, true);\n activatedRef.current = false;\n };\n }, [active]); // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n const handleClickAway = useEventCallback(event => {\n if (!activatedRef.current) {\n return;\n } // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n\n\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current); // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!nodeRef.current || // is a TouchEvent?\n 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n let insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n }\n\n if (!insideDOM && !insideReactTree) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n const handleSynthetic = () => {\n syntheticEventRef.current = true;\n };\n\n React.useEffect(() => {\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n\n doc.addEventListener('touchstart', handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener('touchstart', handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n React.useEffect(() => {\n // TODO This behavior is not tested automatically\n // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).\n // Or if this is a timing related issues due to different Transition components\n // Once we get rid of all the manual scheduling (e.g. setTimeout(update, 0)) we can revisit this code+test.\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener('click', handleClickAway);\n return () => {\n doc.removeEventListener('click', handleClickAway); // cleanup `handleClickAway`\n\n syntheticEventRef.current = false;\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n return [nodeRef, handleSynthetic, handleSynthetic];\n}\n\nexport const PickersPopper = props => {\n var _components$ActionBar;\n\n const {\n anchorEl,\n children,\n containerRef = null,\n onBlur,\n onClose,\n onClear,\n onAccept,\n onCancel,\n onSetToday,\n open,\n PopperProps,\n role,\n TransitionComponent = Grow,\n TrapFocusProps,\n PaperProps = {},\n components,\n componentsProps\n } = props;\n React.useEffect(() => {\n function handleKeyDown(nativeEvent) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (open && (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc')) {\n onClose();\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onClose, open]);\n const lastFocusedElementRef = React.useRef(null);\n React.useEffect(() => {\n if (role === 'tooltip') {\n return;\n }\n\n if (open) {\n lastFocusedElementRef.current = document.activeElement;\n } else if (lastFocusedElementRef.current && lastFocusedElementRef.current instanceof HTMLElement) {\n lastFocusedElementRef.current.focus();\n }\n }, [open, role]);\n const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur != null ? onBlur : onClose);\n const paperRef = React.useRef(null);\n const handleRef = useForkRef(paperRef, containerRef);\n const handlePaperRef = useForkRef(handleRef, clickAwayRef);\n const ownerState = props;\n\n const {\n onClick: onPaperClickProp,\n onTouchStart: onPaperTouchStartProp\n } = PaperProps,\n otherPaperProps = _objectWithoutPropertiesLoose(PaperProps, _excluded);\n\n const handleKeyDown = event => {\n if (event.key === 'Escape') {\n // stop the propagation to avoid closing parent modal\n event.stopPropagation();\n onClose();\n }\n };\n\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsx(PickersPopperRoot, _extends({\n transition: true,\n role: role,\n open: open,\n anchorEl: anchorEl,\n ownerState: ownerState,\n onKeyDown: handleKeyDown\n }, PopperProps, {\n children: ({\n TransitionProps,\n placement\n }) => /*#__PURE__*/_jsx(TrapFocus, _extends({\n open: open,\n disableAutoFocus: true,\n disableEnforceFocus: role === 'tooltip',\n isEnabled: () => true\n }, TrapFocusProps, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({}, TransitionProps, {\n children: /*#__PURE__*/_jsxs(PickersPopperPaper, _extends({\n tabIndex: -1,\n elevation: 8,\n ref: handlePaperRef,\n onClick: event => {\n onPaperClick(event);\n\n if (onPaperClickProp) {\n onPaperClickProp(event);\n }\n },\n onTouchStart: event => {\n onPaperTouchStart(event);\n\n if (onPaperTouchStartProp) {\n onPaperTouchStartProp(event);\n }\n },\n ownerState: _extends({}, ownerState, {\n placement\n })\n }, otherPaperProps, {\n children: [children, /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: []\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }))\n }))\n }))\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useForkRef } from '@mui/material/utils';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport { PickersPopper } from '../PickersPopper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function DesktopWrapper(props) {\n const {\n children,\n DateInputProps,\n KeyboardDateInputComponent,\n onClear,\n onDismiss,\n onCancel,\n onAccept,\n onSetToday,\n open,\n PopperProps,\n PaperProps,\n TransitionComponent,\n components,\n componentsProps\n } = props;\n const ownInputRef = React.useRef(null);\n const inputRef = useForkRef(DateInputProps.inputRef, ownInputRef);\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"desktop\",\n children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {\n inputRef: inputRef\n })), /*#__PURE__*/_jsx(PickersPopper, {\n role: \"dialog\",\n open: open,\n anchorEl: ownInputRef.current,\n TransitionComponent: TransitionComponent,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n onClose: onDismiss,\n onCancel: onCancel,\n onClear: onClear,\n onAccept: onAccept,\n onSetToday: onSetToday,\n components: components,\n componentsProps: componentsProps,\n children: children\n })]\n });\n}","import { useReducer, useRef, useLayoutEffect, useEffect } from 'react';\n\nconst useRifm = props => {\n const [, refresh] = useReducer(c => c + 1, 0);\n const valueRef = useRef(null);\n const {\n replace,\n append\n } = props;\n const userValue = replace ? replace(props.format(props.value)) : props.format(props.value); // state of delete button see comments below about inputType support\n\n const isDeleleteButtonDownRef = useRef(false);\n\n const onChange = evt => {\n if (process.env.NODE_ENV !== 'production') {\n if (evt.target.type === 'number') {\n console.error('Rifm does not support input type=number, use type=tel instead.');\n return;\n }\n\n if (evt.target.type === 'date') {\n console.error('Rifm does not support input type=date.');\n return;\n }\n }\n\n const eventValue = evt.target.value;\n valueRef.current = [eventValue, // eventValue\n evt.target, // input\n eventValue.length > userValue.length, // isSizeIncreaseOperation\n isDeleleteButtonDownRef.current, // isDeleleteButtonDown\n userValue === props.format(eventValue) // isNoOperation\n ];\n\n if (process.env.NODE_ENV !== 'production') {\n const formattedEventValue = props.format(eventValue);\n\n if (eventValue !== formattedEventValue && eventValue.toLowerCase() === formattedEventValue.toLowerCase()) {\n console.warn('Case enforcement does not work with format. Please use replace={value => value.toLowerCase()} instead');\n }\n } // The main trick is to update underlying input with non formatted value (= eventValue)\n // that allows us to calculate right cursor position after formatting (see getCursorPosition)\n // then we format new value and call props.onChange with masked/formatted value\n // and finally we are able to set cursor position into right place\n\n\n refresh();\n }; // React prints warn on server in non production mode about useLayoutEffect usage\n // in both cases it's noop\n\n\n if (process.env.NODE_ENV === 'production' || typeof window !== 'undefined') {\n useLayoutEffect(() => {\n if (valueRef.current == null) return;\n let [eventValue, input, isSizeIncreaseOperation, isDeleleteButtonDown, // No operation means that value itself hasn't been changed, BTW cursor, selection etc can be changed\n isNoOperation] = valueRef.current;\n valueRef.current = null; // this usually occurs on deleting special symbols like ' here 123'123.00\n // in case of isDeleleteButtonDown cursor should move differently vs backspace\n\n const deleteWasNoOp = isDeleleteButtonDown && isNoOperation;\n const valueAfterSelectionStart = eventValue.slice(input.selectionStart);\n const acceptedCharIndexAfterDelete = valueAfterSelectionStart.search(props.accept || /\\d/g);\n const charsToSkipAfterDelete = acceptedCharIndexAfterDelete !== -1 ? acceptedCharIndexAfterDelete : 0; // Create string from only accepted symbols\n\n const clean = str => (str.match(props.accept || /\\d/g) || []).join('');\n\n const valueBeforeSelectionStart = clean(eventValue.substr(0, input.selectionStart)); // trying to find cursor position in formatted value having knowledge about valueBeforeSelectionStart\n // This works because we assume that format doesn't change the order of accepted symbols.\n // Imagine we have formatter which adds ' symbol between numbers, and by default we refuse all non numeric symbols\n // for example we had input = 1'2|'4 (| means cursor position) then user entered '3' symbol\n // inputValue = 1'23'|4 so valueBeforeSelectionStart = 123 and formatted value = 1'2'3'4\n // calling getCursorPosition(\"1'2'3'4\") will give us position after 3, 1'2'3|'4\n // so for formatting just this function to determine cursor position after formatting is enough\n // with masking we need to do some additional checks see `mask` below\n\n const getCursorPosition = val => {\n let start = 0;\n let cleanPos = 0;\n\n for (let i = 0; i !== valueBeforeSelectionStart.length; ++i) {\n let newPos = val.indexOf(valueBeforeSelectionStart[i], start) + 1;\n let newCleanPos = clean(val).indexOf(valueBeforeSelectionStart[i], cleanPos) + 1; // this skips position change if accepted symbols order was broken\n // For example fixes edge case with fixed point numbers:\n // You have '0|.00', then press 1, it becomes 01|.00 and after format 1.00, this breaks our assumption\n // that order of accepted symbols is not changed after format,\n // so here we don't update start position if other accepted symbols was inbetween current and new position\n\n if (newCleanPos - cleanPos > 1) {\n newPos = start;\n newCleanPos = cleanPos;\n }\n\n cleanPos = Math.max(newCleanPos, cleanPos);\n start = Math.max(start, newPos);\n }\n\n return start;\n }; // Masking part, for masks if size of mask is above some value\n // we need to replace symbols instead of do nothing as like in format\n\n\n if (props.mask === true && isSizeIncreaseOperation && !isNoOperation) {\n let start = getCursorPosition(eventValue);\n const c = clean(eventValue.substr(start))[0];\n start = eventValue.indexOf(c, start);\n eventValue = `${eventValue.substr(0, start)}${eventValue.substr(start + 1)}`;\n }\n\n let formattedValue = props.format(eventValue);\n\n if (append != null && // cursor at the end\n input.selectionStart === eventValue.length && !isNoOperation) {\n if (isSizeIncreaseOperation) {\n formattedValue = append(formattedValue);\n } else {\n // If after delete last char is special character and we use append\n // delete it too\n // was: \"12-3|\" backspace pressed, then should be \"12|\"\n if (clean(formattedValue.slice(-1)) === '') {\n formattedValue = formattedValue.slice(0, -1);\n }\n }\n }\n\n const replacedValue = replace ? replace(formattedValue) : formattedValue;\n\n if (userValue === replacedValue) {\n // if nothing changed for formatted value, just refresh so userValue will be used at render\n refresh();\n } else {\n props.onChange(replacedValue);\n }\n\n return () => {\n let start = getCursorPosition(formattedValue); // Visually improves working with masked values,\n // like cursor jumping over refused symbols\n // as an example date mask: was \"5|1-24-3\" then user pressed \"6\"\n // it becomes \"56-|12-43\" with this code, and \"56|-12-43\" without\n\n if (props.mask != null && (isSizeIncreaseOperation || isDeleleteButtonDown && !deleteWasNoOp)) {\n while (formattedValue[start] && clean(formattedValue[start]) === '') {\n start += 1;\n }\n }\n\n input.selectionStart = input.selectionEnd = start + (deleteWasNoOp ? 1 + charsToSkipAfterDelete : 0);\n };\n });\n }\n\n useEffect(() => {\n // until https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/inputType will be supported\n // by all major browsers (now supported by: +chrome, +safari, ?edge, !firefox)\n // there is no way I found to distinguish in onChange\n // backspace or delete was called in some situations\n // firefox track https://bugzilla.mozilla.org/show_bug.cgi?id=1447239\n const handleKeyDown = evt => {\n if (evt.code === 'Delete') {\n isDeleleteButtonDownRef.current = true;\n }\n };\n\n const handleKeyUp = evt => {\n if (evt.code === 'Delete') {\n isDeleleteButtonDownRef.current = false;\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n return {\n value: valueRef.current != null ? valueRef.current[0] : userValue,\n onChange\n };\n};\nconst Rifm = props => {\n const renderProps = useRifm(props);\n return props.children(renderProps);\n};\n\nexport { Rifm, useRifm };\n","export const getDisplayDate = (utils, rawValue, inputFormat) => {\n const date = utils.date(rawValue);\n const isEmpty = rawValue === null;\n\n if (isEmpty) {\n return '';\n }\n\n return utils.isValid(date) ? utils.formatByString( // TODO: should `isValid` narrow `TDate | null` to `NonNullable`?\n // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.\n // Or we ensure `formatByString` is callable with `null`.\n date, inputFormat) : '';\n};\nconst MASK_USER_INPUT_SYMBOL = '_';\nconst staticDateWith2DigitTokens = '2019-11-21T22:30:00.000';\nconst staticDateWith1DigitTokens = '2019-01-01T09:00:00.000';\nexport function getMaskFromCurrentFormat(mask, format, acceptRegex, utils) {\n if (mask) {\n return mask;\n }\n\n const formattedDateWith1Digit = utils.formatByString(utils.date(staticDateWith1DigitTokens), format);\n const inferredFormatPatternWith1Digits = formattedDateWith1Digit.replace(acceptRegex, MASK_USER_INPUT_SYMBOL);\n const inferredFormatPatternWith2Digits = utils.formatByString(utils.date(staticDateWith2DigitTokens), format).replace(acceptRegex, '_');\n\n if (inferredFormatPatternWith1Digits === inferredFormatPatternWith2Digits) {\n return inferredFormatPatternWith1Digits;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.warn([`Mask does not support numbers with variable length such as 'M'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n }\n\n return '';\n}\nexport function checkMaskIsValidForCurrentFormat(mask, format, acceptRegex, utils) {\n if (!mask) {\n return false;\n }\n\n const formattedDateWith1Digit = utils.formatByString(utils.date(staticDateWith1DigitTokens), format);\n const inferredFormatPatternWith1Digits = formattedDateWith1Digit.replace(acceptRegex, MASK_USER_INPUT_SYMBOL);\n const inferredFormatPatternWith2Digits = utils.formatByString(utils.date(staticDateWith2DigitTokens), format).replace(acceptRegex, '_');\n const isMaskValid = inferredFormatPatternWith2Digits === inferredFormatPatternWith1Digits && mask === inferredFormatPatternWith2Digits;\n\n if (!isMaskValid && utils.lib !== 'luxon' && process.env.NODE_ENV !== 'production') {\n if (format.includes('MMM')) {\n console.warn([`Mask does not support literals such as 'MMM'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n } else if (inferredFormatPatternWith2Digits && inferredFormatPatternWith2Digits !== inferredFormatPatternWith1Digits) {\n console.warn([`Mask does not support numbers with variable length such as 'M'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n } else if (mask) {\n console.warn([`The mask \"${mask}\" you passed is not valid for the format used ${format}.`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n }\n }\n\n return isMaskValid;\n}\nexport const maskedDateFormatter = (mask, acceptRegexp) => value => {\n let outputCharIndex = 0;\n return value.split('').map((char, inputCharIndex) => {\n acceptRegexp.lastIndex = 0;\n\n if (outputCharIndex > mask.length - 1) {\n return '';\n }\n\n const maskChar = mask[outputCharIndex];\n const nextMaskChar = mask[outputCharIndex + 1];\n const acceptedChar = acceptRegexp.test(char) ? char : '';\n const formattedChar = maskChar === MASK_USER_INPUT_SYMBOL ? acceptedChar : maskChar + acceptedChar;\n outputCharIndex += formattedChar.length;\n const isLastCharacter = inputCharIndex === value.length - 1;\n\n if (isLastCharacter && nextMaskChar && nextMaskChar !== MASK_USER_INPUT_SYMBOL) {\n // when cursor at the end of mask part (e.g. month) prerender next symbol \"21\" -> \"21/\"\n return formattedChar ? formattedChar + nextMaskChar : '';\n }\n\n return formattedChar;\n }).join('');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useRifm } from 'rifm';\nimport { useUtils } from './useUtils';\nimport { maskedDateFormatter, getDisplayDate, checkMaskIsValidForCurrentFormat, getMaskFromCurrentFormat } from '../utils/text-field-helper';\nexport const useMaskedInput = ({\n acceptRegex = /[\\d]/gi,\n disabled,\n disableMaskedInput,\n ignoreInvalidInputs,\n inputFormat,\n inputProps,\n label,\n mask,\n onChange,\n rawValue,\n readOnly,\n rifmFormatter,\n TextFieldProps,\n validationError\n}) => {\n const utils = useUtils();\n const formatHelperText = utils.getFormatHelperText(inputFormat);\n const {\n shouldUseMaskedInput,\n maskToUse\n } = React.useMemo(() => {\n // formatting of dates is a quite slow thing, so do not make useless .format calls\n if (disableMaskedInput) {\n return {\n shouldUseMaskedInput: false,\n maskToUse: ''\n };\n }\n\n const computedMaskToUse = getMaskFromCurrentFormat(mask, inputFormat, acceptRegex, utils);\n return {\n shouldUseMaskedInput: checkMaskIsValidForCurrentFormat(computedMaskToUse, inputFormat, acceptRegex, utils),\n maskToUse: computedMaskToUse\n };\n }, [acceptRegex, disableMaskedInput, inputFormat, mask, utils]);\n const formatter = React.useMemo(() => shouldUseMaskedInput && maskToUse ? maskedDateFormatter(maskToUse, acceptRegex) : st => st, [acceptRegex, maskToUse, shouldUseMaskedInput]); // TODO: Implement with controlled vs uncontrolled `rawValue`\n\n const parsedValue = rawValue === null ? null : utils.date(rawValue); // Track the value of the input\n\n const [innerInputValue, setInnerInputValue] = React.useState(parsedValue); // control the input text\n\n const [innerDisplayedInputValue, setInnerDisplayedInputValue] = React.useState(getDisplayDate(utils, rawValue, inputFormat));\n const isAcceptedValue = rawValue === null || utils.isValid(parsedValue);\n\n if (isAcceptedValue && !utils.isEqual(innerInputValue, parsedValue)) {\n // When dev set a new valid value, we trust them\n const newDisplayDate = getDisplayDate(utils, rawValue, inputFormat);\n setInnerInputValue(parsedValue);\n setInnerDisplayedInputValue(newDisplayDate);\n }\n\n const handleChange = text => {\n const finalString = text === '' || text === mask ? '' : text;\n setInnerDisplayedInputValue(finalString);\n const date = finalString === null ? null : utils.parse(finalString, inputFormat);\n\n if (ignoreInvalidInputs && !utils.isValid(date)) {\n return;\n }\n\n setInnerInputValue(date);\n onChange(date, finalString || undefined);\n };\n\n const rifmProps = useRifm({\n value: innerDisplayedInputValue,\n onChange: handleChange,\n format: rifmFormatter || formatter\n });\n const inputStateArgs = shouldUseMaskedInput ? rifmProps : {\n value: innerDisplayedInputValue,\n onChange: event => {\n handleChange(event.currentTarget.value);\n }\n };\n return _extends({\n label,\n disabled,\n error: validationError,\n inputProps: _extends({}, inputStateArgs, {\n disabled,\n placeholder: formatHelperText,\n readOnly,\n type: shouldUseMaskedInput ? 'tel' : 'text'\n }, inputProps)\n }, TextFieldProps);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"components\", \"disableOpenPicker\", \"getOpenDialogAriaText\", \"InputAdornmentProps\", \"InputProps\", \"inputRef\", \"openPicker\", \"OpenPickerButtonProps\", \"renderInput\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { useLocaleText, useUtils } from '../hooks/useUtils';\nimport { Calendar } from './icons';\nimport { useMaskedInput } from '../hooks/useMaskedInput';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const KeyboardDateInput = /*#__PURE__*/React.forwardRef(function KeyboardDateInput(props, ref) {\n const {\n components = {},\n disableOpenPicker,\n getOpenDialogAriaText: getOpenDialogAriaTextProp,\n InputAdornmentProps,\n InputProps,\n inputRef,\n openPicker,\n OpenPickerButtonProps,\n renderInput\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const localeText = useLocaleText();\n const getOpenDialogAriaText = getOpenDialogAriaTextProp != null ? getOpenDialogAriaTextProp : localeText.openDatePickerDialogue;\n const utils = useUtils();\n const textFieldProps = useMaskedInput(other);\n const adornmentPosition = (InputAdornmentProps == null ? void 0 : InputAdornmentProps.position) || 'end';\n const OpenPickerIcon = components.OpenPickerIcon || Calendar;\n return renderInput(_extends({\n ref,\n inputRef\n }, textFieldProps, {\n InputProps: _extends({}, InputProps, {\n [`${adornmentPosition}Adornment`]: disableOpenPicker ? undefined : /*#__PURE__*/_jsx(InputAdornment, _extends({\n position: adornmentPosition\n }, InputAdornmentProps, {\n children: /*#__PURE__*/_jsx(IconButton, _extends({\n edge: adornmentPosition,\n disabled: other.disabled || other.readOnly,\n \"aria-label\": getOpenDialogAriaText(other.rawValue, utils)\n }, OpenPickerButtonProps, {\n onClick: openPicker,\n children: /*#__PURE__*/_jsx(OpenPickerIcon, {})\n }))\n }))\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? KeyboardDateInput.propTypes = {\n acceptRegex: PropTypes.instanceOf(RegExp),\n getOpenDialogAriaText: PropTypes.func,\n mask: PropTypes.string,\n OpenPickerButtonProps: PropTypes.object,\n renderInput: PropTypes.func.isRequired,\n rifmFormatter: PropTypes.func\n} : void 0;","import * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { arrayIncludes } from '../utils/utils';\n\nfunction getOrientation() {\n if (typeof window === 'undefined') {\n return 'portrait';\n }\n\n if (window.screen && window.screen.orientation && window.screen.orientation.angle) {\n return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';\n } // Support IOS safari\n\n\n if (window.orientation) {\n return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';\n }\n\n return 'portrait';\n}\n\nexport const useIsLandscape = (views, customOrientation) => {\n const [orientation, setOrientation] = React.useState(getOrientation);\n useEnhancedEffect(() => {\n const eventHandler = () => {\n setOrientation(getOrientation());\n };\n\n window.addEventListener('orientationchange', eventHandler);\n return () => {\n window.removeEventListener('orientationchange', eventHandler);\n };\n }, []);\n\n if (arrayIncludes(views, ['hours', 'minutes', 'seconds'])) {\n // could not display 13:34:44 in landscape mode\n return false;\n }\n\n const orientationToUse = customOrientation || orientation;\n return orientationToUse === 'landscape';\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"parsedValue\", \"DateInputProps\", \"isMobileKeyboardViewOpen\", \"onDateChange\", \"onViewChange\", \"openTo\", \"orientation\", \"showToolbar\", \"toggleMobileKeyboardView\", \"ToolbarComponent\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { useViews } from '../../hooks/useViews';\nimport { ClockPicker } from '../../../ClockPicker/ClockPicker';\nimport { CalendarPicker } from '../../../CalendarPicker/CalendarPicker';\nimport { KeyboardDateInput } from '../KeyboardDateInput';\nimport { useIsLandscape } from '../../hooks/useIsLandscape';\nimport { WrapperVariantContext } from '../wrappers/WrapperVariantContext';\nimport { PickerViewRoot } from '../PickerViewRoot';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const MobileKeyboardInputView = styled('div')({\n padding: '16px 24px'\n});\nconst PickerRoot = styled('div')(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column'\n}, ownerState.isLandscape && {\n flexDirection: 'row'\n}));\nconst MobileKeyboardTextFieldProps = {\n fullWidth: true\n};\n\nconst isDatePickerView = view => view === 'year' || view === 'month' || view === 'day';\n\nconst isTimePickerView = view => view === 'hours' || view === 'minutes' || view === 'seconds';\n\nexport function CalendarOrClockPicker(props) {\n const {\n autoFocus,\n parsedValue,\n DateInputProps,\n isMobileKeyboardViewOpen,\n onDateChange,\n onViewChange,\n openTo,\n orientation,\n showToolbar,\n toggleMobileKeyboardView,\n ToolbarComponent = () => null,\n toolbarFormat,\n toolbarPlaceholder,\n toolbarTitle,\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isLandscape = useIsLandscape(views, orientation);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const toShowToolbar = showToolbar != null ? showToolbar : wrapperVariant !== 'desktop';\n const handleDateChange = React.useCallback((newDate, selectionState) => {\n onDateChange(newDate, wrapperVariant, selectionState);\n }, [onDateChange, wrapperVariant]);\n const handleViewChange = React.useCallback(newView => {\n if (isMobileKeyboardViewOpen) {\n toggleMobileKeyboardView();\n }\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [isMobileKeyboardViewOpen, onViewChange, toggleMobileKeyboardView]);\n const {\n openView,\n setOpenView,\n handleChangeAndOpenNext\n } = useViews({\n view: undefined,\n views,\n openTo,\n onChange: handleDateChange,\n onViewChange: handleViewChange\n });\n return /*#__PURE__*/_jsxs(PickerRoot, {\n ownerState: {\n isLandscape\n },\n children: [toShowToolbar && /*#__PURE__*/_jsx(ToolbarComponent, _extends({}, other, {\n views: views,\n isLandscape: isLandscape,\n parsedValue: parsedValue,\n onChange: handleDateChange,\n setOpenView: setOpenView,\n openView: openView,\n toolbarTitle: toolbarTitle,\n toolbarFormat: toolbarFormat,\n toolbarPlaceholder: toolbarPlaceholder,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView\n })), /*#__PURE__*/_jsx(PickerViewRoot, {\n children: isMobileKeyboardViewOpen ? /*#__PURE__*/_jsx(MobileKeyboardInputView, {\n children: /*#__PURE__*/_jsx(KeyboardDateInput, _extends({}, DateInputProps, {\n ignoreInvalidInputs: true,\n disableOpenPicker: true,\n TextFieldProps: MobileKeyboardTextFieldProps\n }))\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [isDatePickerView(openView) && /*#__PURE__*/_jsx(CalendarPicker, _extends({\n autoFocus: autoFocus,\n date: parsedValue,\n onViewChange: setOpenView,\n onChange: handleChangeAndOpenNext,\n view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type\n ,\n views: views.filter(isDatePickerView)\n }, other)), isTimePickerView(openView) && /*#__PURE__*/_jsx(ClockPicker, _extends({}, other, {\n autoFocus: autoFocus,\n date: parsedValue,\n view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type\n ,\n views: views.filter(isTimePickerView),\n onChange: handleChangeAndOpenNext,\n onViewChange: setOpenView,\n showViewSwitcher: wrapperVariant === 'desktop'\n }))]\n })\n })]\n });\n}","import * as React from 'react';\nexport const useOpenState = ({\n open,\n onOpen,\n onClose\n}) => {\n const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;\n const [openState, setIsOpenState] = React.useState(false); // It is required to update inner state in useEffect in order to avoid situation when\n // Our component is not mounted yet, but `open` state is set to `true` (e.g. initially opened)\n\n React.useEffect(() => {\n if (isControllingOpenProp) {\n if (typeof open !== 'boolean') {\n throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');\n }\n\n setIsOpenState(open);\n }\n }, [isControllingOpenProp, open]);\n const setIsOpen = React.useCallback(newIsOpen => {\n if (!isControllingOpenProp) {\n setIsOpenState(newIsOpen);\n }\n\n if (newIsOpen && onOpen) {\n onOpen();\n }\n\n if (!newIsOpen && onClose) {\n onClose();\n }\n }, [isControllingOpenProp, onOpen, onClose]);\n return {\n isOpen: openState,\n setIsOpen\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useOpenState } from './useOpenState';\nimport { useUtils } from './useUtils';\nexport const usePickerState = (props, valueManager) => {\n const {\n onAccept,\n onChange,\n value,\n closeOnSelect\n } = props;\n const utils = useUtils();\n const {\n isOpen,\n setIsOpen\n } = useOpenState(props);\n const parsedDateValue = React.useMemo(() => valueManager.parseInput(utils, value), [valueManager, utils, value]);\n const [lastValidDateValue, setLastValidDateValue] = React.useState(parsedDateValue);\n const [dateState, setDateState] = React.useState(() => ({\n committed: parsedDateValue,\n draft: parsedDateValue,\n resetFallback: parsedDateValue\n }));\n const setDate = React.useCallback(params => {\n setDateState(prev => {\n switch (params.action) {\n case 'setAll':\n case 'acceptAndClose':\n {\n return {\n draft: params.value,\n committed: params.value,\n resetFallback: params.value\n };\n }\n\n case 'setCommitted':\n {\n return _extends({}, prev, {\n draft: params.value,\n committed: params.value\n });\n }\n\n case 'setDraft':\n {\n return _extends({}, prev, {\n draft: params.value\n });\n }\n\n default:\n {\n return prev;\n }\n }\n });\n\n if (!params.skipOnChangeCall && !valueManager.areValuesEqual(utils, dateState.committed, params.value)) {\n onChange(params.value);\n }\n\n if (params.action === 'acceptAndClose') {\n setIsOpen(false);\n\n if (onAccept && !valueManager.areValuesEqual(utils, dateState.resetFallback, params.value)) {\n onAccept(params.value);\n }\n }\n }, [onAccept, onChange, setIsOpen, dateState, utils, valueManager]);\n React.useEffect(() => {\n if (utils.isValid(parsedDateValue)) {\n setLastValidDateValue(parsedDateValue);\n }\n }, [utils, parsedDateValue]);\n React.useEffect(() => {\n if (isOpen) {\n // Update all dates in state to equal the current prop value\n setDate({\n action: 'setAll',\n value: parsedDateValue,\n skipOnChangeCall: true\n });\n }\n }, [isOpen]); // eslint-disable-line react-hooks/exhaustive-deps\n // Set the draft and committed date to equal the new prop value.\n\n if (!valueManager.areValuesEqual(utils, dateState.committed, parsedDateValue)) {\n setDate({\n action: 'setCommitted',\n value: parsedDateValue,\n skipOnChangeCall: true\n });\n }\n\n const wrapperProps = React.useMemo(() => ({\n open: isOpen,\n onClear: () => {\n // Reset all date in state to the empty value and close picker.\n setDate({\n value: valueManager.emptyValue,\n action: 'acceptAndClose'\n });\n },\n onAccept: () => {\n // Set all date in state to equal the current draft value and close picker.\n setDate({\n value: dateState.draft,\n action: 'acceptAndClose'\n });\n },\n onDismiss: () => {\n // Set all dates in state to equal the last committed date.\n // e.g. Reset the state to the last committed value.\n setDate({\n value: dateState.committed,\n action: 'acceptAndClose'\n });\n },\n onCancel: () => {\n // Set all dates in state to equal the last accepted date and close picker.\n // e.g. Reset the state to the last accepted value\n setDate({\n value: dateState.resetFallback,\n action: 'acceptAndClose'\n });\n },\n onSetToday: () => {\n // Set all dates in state to equal today and close picker.\n setDate({\n value: valueManager.getTodayValue(utils),\n action: 'acceptAndClose'\n });\n }\n }), [setDate, isOpen, utils, dateState, valueManager]); // Mobile keyboard view is a special case.\n // When it's open picker should work like closed, because we are just showing text field\n\n const [isMobileKeyboardViewOpen, setMobileKeyboardViewOpen] = React.useState(false);\n const pickerProps = React.useMemo(() => ({\n parsedValue: dateState.draft,\n isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: () => setMobileKeyboardViewOpen(!isMobileKeyboardViewOpen),\n onDateChange: (newDate, wrapperVariant, selectionState = 'partial') => {\n switch (selectionState) {\n case 'shallow':\n {\n // Update the `draft` state but do not fire `onChange`\n return setDate({\n action: 'setDraft',\n value: newDate,\n skipOnChangeCall: true\n });\n }\n\n case 'partial':\n {\n // Update the `draft` state and fire `onChange`\n return setDate({\n action: 'setDraft',\n value: newDate\n });\n }\n\n case 'finish':\n {\n if (closeOnSelect != null ? closeOnSelect : wrapperVariant === 'desktop') {\n // Set all dates in state to equal the new date and close picker.\n return setDate({\n value: newDate,\n action: 'acceptAndClose'\n });\n } // Updates the `committed` state and fire `onChange`\n\n\n return setDate({\n value: newDate,\n action: 'setCommitted'\n });\n }\n\n default:\n {\n throw new Error('MUI: Invalid selectionState passed to `onDateChange`');\n }\n }\n }\n }), [setDate, isMobileKeyboardViewOpen, dateState.draft, closeOnSelect]);\n const handleInputChange = React.useCallback((newParsedValue, keyboardInputValue) => {\n const cleanParsedValue = valueManager.valueReducer ? valueManager.valueReducer(utils, lastValidDateValue, newParsedValue) : newParsedValue;\n onChange(cleanParsedValue, keyboardInputValue);\n }, [onChange, valueManager, lastValidDateValue, utils]);\n const inputProps = React.useMemo(() => ({\n onChange: handleInputChange,\n open: isOpen,\n rawValue: value,\n openPicker: () => setIsOpen(true)\n }), [handleInputChange, isOpen, value, setIsOpen]);\n const pickerState = {\n pickerProps,\n inputProps,\n wrapperProps\n };\n React.useDebugValue(pickerState, () => ({\n MuiPickerState: {\n dateState,\n other: pickerState\n }\n }));\n return pickerState;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PopperProps\", \"PaperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { DesktopWrapper } from '../internals/components/wrappers/DesktopWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { KeyboardDateInput } from '../internals/components/KeyboardDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)\n */\nexport const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiDesktopDatePicker');\n const validationError = useDateValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager);\n\n const {\n PopperProps,\n PaperProps,\n ToolbarComponent = DatePickerToolbar,\n TransitionComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const AllDateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: AllDateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n TransitionComponent: TransitionComponent,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: AllDateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DialogContent from '@mui/material/DialogContent';\nimport Dialog, { dialogClasses } from '@mui/material/Dialog';\nimport { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH } from '../constants/dimensions';\nimport { PickersActionBar } from '../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersModalDialogRoot = styled(Dialog)({\n [`& .${dialogClasses.container}`]: {\n outline: 0\n },\n [`& .${dialogClasses.paper}`]: {\n outline: 0,\n minWidth: DIALOG_WIDTH\n }\n});\nconst PickersModalDialogContent = styled(DialogContent)({\n '&:first-of-type': {\n padding: 0\n }\n});\nexport const PickersModalDialog = props => {\n var _components$ActionBar;\n\n const {\n children,\n DialogProps = {},\n onAccept,\n onClear,\n onDismiss,\n onCancel,\n onSetToday,\n open,\n components,\n componentsProps\n } = props;\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsxs(PickersModalDialogRoot, _extends({\n open: open,\n onClose: onDismiss\n }, DialogProps, {\n children: [/*#__PURE__*/_jsx(PickersModalDialogContent, {\n children: children\n }), /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: ['cancel', 'accept']\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"DateInputProps\", \"DialogProps\", \"onAccept\", \"onClear\", \"onDismiss\", \"onCancel\", \"onSetToday\", \"open\", \"PureDateInputComponent\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport { PickersModalDialog } from '../PickersModalDialog';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function MobileWrapper(props) {\n const {\n children,\n DateInputProps,\n DialogProps,\n onAccept,\n onClear,\n onDismiss,\n onCancel,\n onSetToday,\n open,\n PureDateInputComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"mobile\",\n children: [/*#__PURE__*/_jsx(PureDateInputComponent, _extends({\n components: components\n }, other, DateInputProps)), /*#__PURE__*/_jsx(PickersModalDialog, {\n DialogProps: DialogProps,\n onAccept: onAccept,\n onClear: onClear,\n onDismiss: onDismiss,\n onCancel: onCancel,\n onSetToday: onSetToday,\n open: open,\n components: components,\n componentsProps: componentsProps,\n children: children\n })]\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { onSpaceOrEnter } from '../utils/utils';\nimport { useLocaleText, useUtils } from '../hooks/useUtils';\nimport { getDisplayDate } from '../utils/text-field-helper';\n// TODO: why is this called \"Pure*\" when it's not memoized? Does \"Pure\" mean \"readonly\"?\nexport const PureDateInput = /*#__PURE__*/React.forwardRef(function PureDateInput(props, ref) {\n const {\n disabled,\n getOpenDialogAriaText: getOpenDialogAriaTextProp,\n inputFormat,\n InputProps,\n inputRef,\n label,\n openPicker: onOpen,\n rawValue,\n renderInput,\n TextFieldProps = {},\n validationError\n } = props;\n const localeText = useLocaleText(); // The prop can not be deprecated\n // Default is \"Choose date, ...\", but time pickers override it with \"Choose time, ...\"\n\n const getOpenDialogAriaText = getOpenDialogAriaTextProp != null ? getOpenDialogAriaTextProp : localeText.openDatePickerDialogue;\n const utils = useUtils();\n const PureDateInputProps = React.useMemo(() => _extends({}, InputProps, {\n readOnly: true\n }), [InputProps]);\n const inputValue = getDisplayDate(utils, rawValue, inputFormat);\n return renderInput(_extends({\n label,\n disabled,\n ref,\n inputRef,\n error: validationError,\n InputProps: PureDateInputProps,\n inputProps: _extends({\n disabled,\n readOnly: true,\n 'aria-readonly': true,\n 'aria-label': getOpenDialogAriaText(rawValue, utils),\n value: inputValue\n }, !props.readOnly && {\n onClick: onOpen\n }, {\n onKeyDown: onSpaceOrEnter(onOpen)\n })\n }, TextFieldProps));\n});\nPureDateInput.propTypes = {\n getOpenDialogAriaText: PropTypes.func,\n renderInput: PropTypes.func.isRequired\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { MobileWrapper } from '../internals/components/wrappers/MobileWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { PureDateInput } from '../internals/components/PureDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)\n */\nexport const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiMobileDatePicker');\n const validationError = useDateValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = DatePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\", \"DialogProps\", \"PopperProps\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport PropTypes from 'prop-types';\nimport { DesktopDatePicker } from '../DesktopDatePicker';\nimport { MobileDatePicker } from '../MobileDatePicker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Pickers](https://mui.com/x/react-date-pickers/)\n *\n * API:\n *\n * - [DatePicker API](https://mui.com/x/api/date-pickers/date-picker/)\n */\nexport const DatePicker = /*#__PURE__*/React.forwardRef(function DatePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDatePicker'\n });\n\n const {\n desktopModeMediaQuery = '@media (pointer: fine)',\n DialogProps,\n PopperProps,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDesktop = useMediaQuery(desktopModeMediaQuery);\n\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDatePicker, _extends({\n ref: ref,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent\n }, other));\n }\n\n return /*#__PURE__*/_jsx(MobileDatePicker, _extends({\n ref: ref,\n DialogProps: DialogProps\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { parsePickerInputValue } from '../internals/utils/date-utils';\nexport function useDateTimePickerDefaultizedProps(props, name) {\n var _themeProps$ampm, _ref, _themeProps$minDateTi, _ref2, _themeProps$maxDateTi, _themeProps$minDateTi2, _themeProps$maxDateTi2;\n\n // This is technically unsound if the type parameters appear in optional props.\n // Optional props can be filled by `useThemeProps` with types that don't match the type parameters.\n const themeProps = useThemeProps({\n props,\n name\n });\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const ampm = (_themeProps$ampm = themeProps.ampm) != null ? _themeProps$ampm : utils.is12HourCycleInCurrentLocale();\n\n if (themeProps.orientation != null && themeProps.orientation !== 'portrait') {\n throw new Error('We are not supporting custom orientation for DateTimePicker yet :(');\n }\n\n return _extends({\n ampm,\n orientation: 'portrait',\n openTo: 'day',\n views: ['year', 'day', 'hours', 'minutes'],\n ampmInClock: true,\n acceptRegex: ampm ? /[\\dap]/gi : /\\d/gi,\n disableMaskedInput: false,\n inputFormat: ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h,\n disableIgnoringDatePartForTimeValidation: Boolean(themeProps.minDateTime || themeProps.maxDateTime)\n }, themeProps, {\n minDate: (_ref = (_themeProps$minDateTi = themeProps.minDateTime) != null ? _themeProps$minDateTi : themeProps.minDate) != null ? _ref : defaultDates.minDate,\n maxDate: (_ref2 = (_themeProps$maxDateTi = themeProps.maxDateTime) != null ? _themeProps$maxDateTi : themeProps.maxDate) != null ? _ref2 : defaultDates.maxDate,\n minTime: (_themeProps$minDateTi2 = themeProps.minDateTime) != null ? _themeProps$minDateTi2 : themeProps.minTime,\n maxTime: (_themeProps$maxDateTi2 = themeProps.maxDateTime) != null ? _themeProps$maxDateTi2 : themeProps.maxTime\n });\n}\nexport const dateTimePickerValueManager = {\n emptyValue: null,\n getTodayValue: utils => utils.date(),\n parseInput: parsePickerInputValue,\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b)\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersToolbarText', ['selected']);\nconst PickersToolbarTextRoot = styled(Typography)(({\n theme\n}) => ({\n transition: theme.transitions.create('color'),\n color: theme.palette.text.secondary,\n [`&.${classes.selected}`]: {\n color: theme.palette.text.primary\n }\n}));\nexport const PickersToolbarText = /*#__PURE__*/React.forwardRef(function PickersToolbarText(props, ref) {\n const {\n className,\n selected,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsx(PickersToolbarTextRoot, _extends({\n ref: ref,\n className: clsx(className, selected && classes.selected),\n component: \"span\"\n }, other, {\n children: value\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"align\", \"className\", \"selected\", \"typographyClassName\", \"value\", \"variant\"];\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport { PickersToolbarText } from './PickersToolbarText';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PickersToolbarButtonRoot = styled(Button)({\n padding: 0,\n minWidth: 16,\n textTransform: 'none'\n});\nexport const PickersToolbarButton = /*#__PURE__*/React.forwardRef(function PickersToolbarButton(props, ref) {\n const {\n align,\n className,\n selected,\n typographyClassName,\n value,\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsx(PickersToolbarButtonRoot, _extends({\n variant: \"text\",\n ref: ref,\n className: className\n }, other, {\n children: /*#__PURE__*/_jsx(PickersToolbarText, {\n align: align,\n className: typographyClassName,\n variant: variant,\n value: value,\n selected: selected\n })\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tab from '@mui/material/Tab';\nimport Tabs, { tabsClasses } from '@mui/material/Tabs';\nimport { styled } from '@mui/material/styles';\nimport { Time, DateRange } from '../internals/components/icons';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { useLocaleText } from '../internals/hooks/useUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst viewToTab = openView => {\n if (['day', 'month', 'year'].includes(openView)) {\n return 'date';\n }\n\n return 'time';\n};\n\nconst tabToView = tab => {\n if (tab === 'date') {\n return 'day';\n }\n\n return 'hours';\n};\n\nconst DateTimePickerTabsRoot = styled(Tabs)(({\n ownerState,\n theme\n}) => _extends({\n boxShadow: `0 -1px 0 0 inset ${theme.palette.divider}`\n}, ownerState.wrapperVariant === 'desktop' && {\n order: 1,\n boxShadow: `0 1px 0 0 inset ${theme.palette.divider}`,\n [`& .${tabsClasses.indicator}`]: {\n bottom: 'auto',\n top: 0\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport const DateTimePickerTabs = props => {\n const {\n dateRangeIcon = /*#__PURE__*/_jsx(DateRange, {}),\n onChange,\n timeIcon = /*#__PURE__*/_jsx(Time, {}),\n view\n } = props;\n const localeText = useLocaleText();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n\n const ownerState = _extends({}, props, {\n wrapperVariant\n });\n\n const handleChange = (event, value) => {\n onChange(tabToView(value));\n };\n\n return /*#__PURE__*/_jsxs(DateTimePickerTabsRoot, {\n ownerState: ownerState,\n variant: \"fullWidth\",\n value: viewToTab(view),\n onChange: handleChange,\n children: [/*#__PURE__*/_jsx(Tab, {\n value: \"date\",\n \"aria-label\": localeText.dateTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: dateRangeIcon\n })\n }), /*#__PURE__*/_jsx(Tab, {\n value: \"time\",\n \"aria-label\": localeText.timeTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: timeIcon\n })\n })]\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"parsedValue\", \"dateRangeIcon\", \"hideTabs\", \"isMobileKeyboardViewOpen\", \"onChange\", \"openView\", \"setOpenView\", \"timeIcon\", \"toggleMobileKeyboardView\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { PickersToolbarText } from '../internals/components/PickersToolbarText';\nimport { PickersToolbar, pickersToolbarClasses } from '../internals/components/PickersToolbar';\nimport { PickersToolbarButton } from '../internals/components/PickersToolbarButton';\nimport { DateTimePickerTabs } from './DateTimePickerTabs';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const dateTimePickerToolbarClasses = generateUtilityClasses('MuiDateTimePickerToolbar', ['root', 'dateContainer', 'timeContainer', 'separator']);\nconst DateTimePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n paddingLeft: 16,\n paddingRight: 16,\n justifyContent: 'space-around',\n [`& .${pickersToolbarClasses.penIconButton}`]: {\n position: 'absolute',\n top: 8,\n right: 8\n }\n});\nconst DateTimePickerToolbarDateContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'DateContainer',\n overridesResolver: (props, styles) => styles.dateContainer\n})({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n});\nconst DateTimePickerToolbarTimeContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'TimeContainer',\n overridesResolver: (props, styles) => styles.timeContainer\n})({\n display: 'flex'\n});\nconst DateTimePickerToolbarSeparator = styled(PickersToolbarText, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})({\n margin: '0 4px 0 2px',\n cursor: 'default'\n});\n/**\n * @ignore - internal component.\n */\n\nexport const DateTimePickerToolbar = props => {\n const {\n ampm,\n parsedValue,\n dateRangeIcon,\n hideTabs,\n isMobileKeyboardViewOpen,\n openView,\n setOpenView,\n timeIcon,\n toggleMobileKeyboardView,\n toolbarFormat,\n toolbarPlaceholder = '––',\n toolbarTitle = 'Select date & time',\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const showTabs = wrapperVariant === 'desktop' ? true : !hideTabs && typeof window !== 'undefined' && window.innerHeight > 667;\n\n const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');\n\n const dateText = React.useMemo(() => {\n if (!parsedValue) {\n return toolbarPlaceholder;\n }\n\n if (toolbarFormat) {\n return utils.formatByString(parsedValue, toolbarFormat);\n }\n\n return utils.format(parsedValue, 'shortDate');\n }, [parsedValue, toolbarFormat, toolbarPlaceholder, utils]);\n const ownerState = props;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [wrapperVariant !== 'desktop' && /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({\n toolbarTitle: toolbarTitle,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n className: dateTimePickerToolbarClasses.root\n }, other, {\n isLandscape: false,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarDateContainer, {\n className: dateTimePickerToolbarClasses.dateContainer,\n ownerState: ownerState,\n children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"subtitle1\",\n onClick: () => setOpenView('year'),\n selected: openView === 'year',\n value: parsedValue ? utils.format(parsedValue, 'year') : '–'\n }), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h4\",\n onClick: () => setOpenView('day'),\n selected: openView === 'day',\n value: dateText\n })]\n }), /*#__PURE__*/_jsxs(DateTimePickerToolbarTimeContainer, {\n className: dateTimePickerToolbarClasses.timeContainer,\n ownerState: ownerState,\n children: [views.includes('hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('hours'),\n selected: openView === 'hours',\n value: parsedValue ? formatHours(parsedValue) : '--'\n }), views.includes('minutes') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: \"h3\",\n value: \":\",\n className: dateTimePickerToolbarClasses.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('minutes'),\n selected: openView === 'minutes',\n value: parsedValue ? utils.format(parsedValue, 'minutes') : '--'\n })]\n }), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: \"h3\",\n value: \":\",\n className: dateTimePickerToolbarClasses.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('seconds'),\n selected: openView === 'seconds',\n value: parsedValue ? utils.format(parsedValue, 'seconds') : '--'\n })]\n })]\n })]\n })), showTabs && /*#__PURE__*/_jsx(DateTimePickerTabs, {\n dateRangeIcon: dateRangeIcon,\n timeIcon: timeIcon,\n view: openView,\n onChange: setOpenView\n })]\n });\n};","import { createIsAfterIgnoreDatePart } from '../../utils/time-utils';\nimport { useValidation } from './useValidation';\nexport const validateTime = ({\n adapter,\n value,\n props\n}) => {\n const {\n minTime,\n maxTime,\n minutesStep,\n shouldDisableTime,\n disableIgnoringDatePartForTimeValidation\n } = props;\n const date = adapter.utils.date(value);\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, adapter.utils);\n\n if (value === null) {\n return null;\n }\n\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n\n case Boolean(minTime && isAfter(minTime, date)):\n return 'minTime';\n\n case Boolean(maxTime && isAfter(date, maxTime)):\n return 'maxTime';\n\n case Boolean(shouldDisableTime && shouldDisableTime(adapter.utils.getHours(date), 'hours')):\n return 'shouldDisableTime-hours';\n\n case Boolean(shouldDisableTime && shouldDisableTime(adapter.utils.getMinutes(date), 'minutes')):\n return 'shouldDisableTime-minutes';\n\n case Boolean(shouldDisableTime && shouldDisableTime(adapter.utils.getSeconds(date), 'seconds')):\n return 'shouldDisableTime-seconds';\n\n case Boolean(minutesStep && adapter.utils.getMinutes(date) % minutesStep !== 0):\n return 'minutesStep';\n\n default:\n return null;\n }\n};\n\nconst isSameTimeError = (a, b) => a === b;\n\nexport const useTimeValidation = props => useValidation(props, validateTime, isSameTimeError);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"minDate\", \"maxDate\", \"disableFuture\", \"shouldDisableDate\", \"disablePast\"];\nimport { useValidation } from './useValidation';\nimport { validateDate } from './useDateValidation';\nimport { validateTime } from './useTimeValidation';\nexport const validateDateTime = ({\n props,\n value,\n adapter\n}) => {\n const {\n minDate,\n maxDate,\n disableFuture,\n shouldDisableDate,\n disablePast\n } = props,\n timeValidationProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n const dateValidationResult = validateDate({\n adapter,\n value,\n props: {\n minDate,\n maxDate,\n disableFuture,\n shouldDisableDate,\n disablePast\n }\n });\n\n if (dateValidationResult !== null) {\n return dateValidationResult;\n }\n\n return validateTime({\n adapter,\n value,\n props: timeValidationProps\n });\n};\n\nconst isSameDateTimeError = (a, b) => a === b;\n\nexport function useDateTimeValidation(props) {\n return useValidation(props, validateDateTime, isSameDateTimeError);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PaperProps\", \"PopperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDateTimePickerDefaultizedProps, dateTimePickerValueManager } from '../DateTimePicker/shared';\nimport { DateTimePickerToolbar } from '../DateTimePicker/DateTimePickerToolbar';\nimport { DesktopWrapper } from '../internals/components/wrappers/DesktopWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateTimeValidation } from '../internals/hooks/validation/useDateTimeValidation';\nimport { KeyboardDateInput } from '../internals/components/KeyboardDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n *\n * API:\n *\n * - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)\n */\nexport const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {\n const props = useDateTimePickerDefaultizedProps(inProps, 'MuiDesktopDateTimePicker');\n const validationError = useDateTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, dateTimePickerValueManager);\n\n const {\n PaperProps,\n PopperProps,\n ToolbarComponent = DateTimePickerToolbar,\n TransitionComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const AllDateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: AllDateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n TransitionComponent: TransitionComponent,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: AllDateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDateTimePickerDefaultizedProps, dateTimePickerValueManager } from '../DateTimePicker/shared';\nimport { DateTimePickerToolbar } from '../DateTimePicker/DateTimePickerToolbar';\nimport { MobileWrapper } from '../internals/components/wrappers/MobileWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateTimeValidation } from '../internals/hooks/validation/useDateTimeValidation';\nimport { PureDateInput } from '../internals/components/PureDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n *\n * API:\n *\n * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)\n */\nexport const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {\n const props = useDateTimePickerDefaultizedProps(inProps, 'MuiMobileDateTimePicker');\n const validationError = useDateTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, dateTimePickerValueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = DateTimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\", \"DialogProps\", \"PopperProps\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { DesktopDateTimePicker } from '../DesktopDateTimePicker';\nimport { MobileDateTimePicker } from '../MobileDateTimePicker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Pickers](https://mui.com/x/react-date-pickers/)\n *\n * API:\n *\n * - [DateTimePicker API](https://mui.com/x/api/date-pickers/date-time-picker/)\n */\nconst DateTimePicker = /*#__PURE__*/React.forwardRef(function DateTimePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePicker'\n });\n\n const {\n desktopModeMediaQuery = '@media (pointer: fine)',\n DialogProps,\n PopperProps,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDesktop = useMediaQuery(desktopModeMediaQuery);\n\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDateTimePicker, _extends({\n ref: ref,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent\n }, other));\n }\n\n return /*#__PURE__*/_jsx(MobileDateTimePicker, _extends({\n ref: ref,\n DialogProps: DialogProps\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;\nexport { DateTimePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useThemeProps } from '@mui/material/styles';\nimport { Clock } from '../internals/components/icons';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { parsePickerInputValue } from '../internals/utils/date-utils';\nexport function useTimePickerDefaultizedProps(props, name) {\n var _themeProps$ampm;\n\n // This is technically unsound if the type parameters appear in optional props.\n // Optional props can be filled by `useThemeProps` with types that don't match the type parameters.\n const themeProps = useThemeProps({\n props,\n name\n });\n const utils = useUtils();\n const ampm = (_themeProps$ampm = themeProps.ampm) != null ? _themeProps$ampm : utils.is12HourCycleInCurrentLocale();\n const localeText = useLocaleText();\n const getOpenDialogAriaText = localeText.openTimePickerDialogue;\n return _extends({\n ampm,\n openTo: 'hours',\n views: ['hours', 'minutes'],\n acceptRegex: ampm ? /[\\dapAP]/gi : /\\d/gi,\n disableMaskedInput: false,\n getOpenDialogAriaText,\n inputFormat: ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h\n }, themeProps, {\n components: _extends({\n OpenPickerIcon: Clock\n }, themeProps.components)\n });\n}\nexport const timePickerValueManager = {\n emptyValue: null,\n parseInput: parsePickerInputValue,\n getTodayValue: utils => utils.date(),\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b),\n valueReducer: (utils, lastValidValue, newValue) => {\n if (!lastValidValue || !utils.isValid(newValue)) {\n return newValue;\n }\n\n return utils.mergeDateAndTime(lastValidValue, newValue);\n }\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getTimePickerToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiTimePickerToolbar', slot);\n}\nexport const timePickerToolbarClasses = generateUtilityClasses('MuiTimePickerToolbar', ['root', 'separator', 'hourMinuteLabel', 'hourMinuteLabelLandscape', 'hourMinuteLabelReverse', 'ampmSelection', 'ampmLandscape', 'ampmLabel']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"ampm\", \"ampmInClock\", \"parsedValue\", \"isLandscape\", \"isMobileKeyboardViewOpen\", \"onChange\", \"openView\", \"setOpenView\", \"toggleMobileKeyboardView\", \"toolbarTitle\", \"views\", \"disabled\", \"readOnly\"];\nimport * as React from 'react';\nimport { useTheme, styled } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { PickersToolbarText } from '../internals/components/PickersToolbarText';\nimport { PickersToolbarButton } from '../internals/components/PickersToolbarButton';\nimport { PickersToolbar, pickersToolbarClasses } from '../internals/components/PickersToolbar';\nimport { arrayIncludes } from '../internals/utils/utils';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { getTimePickerToolbarUtilityClass, timePickerToolbarClasses } from './timePickerToolbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n theme,\n isLandscape,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n separator: ['separator'],\n hourMinuteLabel: ['hourMinuteLabel', isLandscape && 'hourMinuteLabelLandscape', theme.direction === 'rtl' && 'hourMinuteLabelReverse'],\n ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],\n ampmLabel: ['ampmLabel']\n };\n return composeClasses(slots, getTimePickerToolbarUtilityClass, classes);\n};\n\nconst TimePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiTimePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n [`& .${pickersToolbarClasses.penIconButtonLandscape}`]: {\n marginTop: 'auto'\n }\n});\nconst TimePickerToolbarSeparator = styled(PickersToolbarText, {\n name: 'MuiTimePickerToolbar',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})({\n outline: 0,\n margin: '0 4px 0 2px',\n cursor: 'default'\n});\nconst TimePickerToolbarHourMinuteLabel = styled('div', {\n name: 'MuiTimePickerToolbar',\n slot: 'HourMinuteLabel',\n overridesResolver: (props, styles) => styles.hourMinuteLabel\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'flex-end'\n}, ownerState.isLandscape && {\n marginTop: 'auto'\n}, theme.direction === 'rtl' && {\n flexDirection: 'row-reverse'\n}));\nconst TimePickerToolbarAmPmSelection = styled('div', {\n name: 'MuiTimePickerToolbar',\n slot: 'AmPmSelection',\n overridesResolver: (props, styles) => styles.ampmSelection\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n marginLeft: 12\n}, ownerState.isLandscape && {\n margin: '4px 0 auto',\n flexDirection: 'row',\n justifyContent: 'space-around',\n flexBasis: '100%'\n}, {\n [`& .${timePickerToolbarClasses.ampmLabel}`]: {\n fontSize: 17\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport const TimePickerToolbar = props => {\n const {\n ampm,\n ampmInClock,\n parsedValue,\n isLandscape,\n isMobileKeyboardViewOpen,\n onChange,\n openView,\n setOpenView,\n toggleMobileKeyboardView,\n toolbarTitle = 'Select time',\n views,\n disabled,\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const theme = useTheme();\n const showAmPmControl = Boolean(ampm && !ampmInClock);\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(parsedValue, ampm, onChange);\n\n const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');\n\n const ownerState = props;\n const classes = useUtilityClasses(_extends({}, ownerState, {\n theme\n }));\n\n const separator = /*#__PURE__*/_jsx(TimePickerToolbarSeparator, {\n tabIndex: -1,\n value: \":\",\n variant: \"h3\",\n selected: false,\n className: classes.separator\n });\n\n return /*#__PURE__*/_jsxs(TimePickerToolbarRoot, _extends({\n viewType: \"clock\",\n landscapeDirection: \"row\",\n toolbarTitle: toolbarTitle,\n isLandscape: isLandscape,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n ownerState: ownerState,\n className: classes.root\n }, other, {\n children: [/*#__PURE__*/_jsxs(TimePickerToolbarHourMinuteLabel, {\n className: classes.hourMinuteLabel,\n ownerState: ownerState,\n children: [arrayIncludes(views, 'hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h3\",\n onClick: () => setOpenView('hours'),\n selected: openView === 'hours',\n value: parsedValue ? formatHours(parsedValue) : '--'\n }), arrayIncludes(views, ['hours', 'minutes']) && separator, arrayIncludes(views, 'minutes') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h3\",\n onClick: () => setOpenView('minutes'),\n selected: openView === 'minutes',\n value: parsedValue ? utils.format(parsedValue, 'minutes') : '--'\n }), arrayIncludes(views, ['minutes', 'seconds']) && separator, arrayIncludes(views, 'seconds') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('seconds'),\n selected: openView === 'seconds',\n value: parsedValue ? utils.format(parsedValue, 'seconds') : '--'\n })]\n }), showAmPmControl && /*#__PURE__*/_jsxs(TimePickerToolbarAmPmSelection, {\n className: classes.ampmSelection,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersToolbarButton, {\n disableRipple: true,\n variant: \"subtitle2\",\n selected: meridiemMode === 'am',\n typographyClassName: classes.ampmLabel,\n value: utils.getMeridiemText('am'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n disableRipple: true,\n variant: \"subtitle2\",\n selected: meridiemMode === 'pm',\n typographyClassName: classes.ampmLabel,\n value: utils.getMeridiemText('pm'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n disabled: disabled\n })]\n })]\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PaperProps\", \"PopperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps, timePickerValueManager } from '../TimePicker/shared';\nimport { TimePickerToolbar } from '../TimePicker/TimePickerToolbar';\nimport { DesktopWrapper } from '../internals/components/wrappers/DesktopWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useTimeValidation } from '../internals/hooks/validation/useTimeValidation';\nimport { KeyboardDateInput } from '../internals/components/KeyboardDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)\n */\nexport const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {\n const props = useTimePickerDefaultizedProps(inProps, 'MuiDesktopTimePicker');\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, timePickerValueManager);\n\n const {\n PaperProps,\n PopperProps,\n ToolbarComponent = TimePickerToolbar,\n TransitionComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: DateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n TransitionComponent: TransitionComponent,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps, timePickerValueManager } from '../TimePicker/shared';\nimport { TimePickerToolbar } from '../TimePicker/TimePickerToolbar';\nimport { MobileWrapper } from '../internals/components/wrappers/MobileWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useTimeValidation } from '../internals/hooks/validation/useTimeValidation';\nimport { PureDateInput } from '../internals/components/PureDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)\n */\nexport const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {\n const props = useTimePickerDefaultizedProps(inProps, 'MuiMobileTimePicker');\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, timePickerValueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = TimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getStaticWrapperUtilityClass(slot) {\n return generateUtilityClass('MuiPickerStaticWrapper', slot);\n}\nexport const pickerStaticWrapperClasses = generateUtilityClasses('MuiPickerStaticWrapper', ['root', 'content']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"displayStaticWrapperAs\", \"onAccept\", \"onClear\", \"onCancel\", \"onDismiss\", \"onSetToday\", \"open\", \"children\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { DIALOG_WIDTH } from '../../constants/dimensions';\nimport { WrapperVariantContext } from '../wrappers/WrapperVariantContext';\nimport { getStaticWrapperUtilityClass } from './pickerStaticWrapperClasses';\nimport { PickersActionBar } from '../../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n content: ['content']\n };\n return composeClasses(slots, getStaticWrapperUtilityClass, classes);\n};\n\nconst PickerStaticWrapperRoot = styled('div', {\n name: 'MuiPickerStaticWrapper',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst PickerStaticWrapperContent = styled('div', {\n name: 'MuiPickerStaticWrapper',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(({\n theme\n}) => ({\n overflow: 'hidden',\n minWidth: DIALOG_WIDTH,\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.background.paper\n}));\n\nfunction PickerStaticWrapper(inProps) {\n var _components$ActionBar;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickerStaticWrapper'\n });\n\n const {\n displayStaticWrapperAs,\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n children,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const classes = useUtilityClasses(props);\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsx(WrapperVariantContext.Provider, {\n value: displayStaticWrapperAs,\n children: /*#__PURE__*/_jsxs(PickerStaticWrapperRoot, _extends({\n className: classes.root\n }, other, {\n children: [/*#__PURE__*/_jsx(PickerStaticWrapperContent, {\n className: classes.content,\n children: children\n }), /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: displayStaticWrapperAs === 'desktop' ? [] : ['cancel', 'accept']\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }))\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? PickerStaticWrapper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']).isRequired,\n onAccept: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n onDismiss: PropTypes.func.isRequired,\n onSetToday: PropTypes.func.isRequired,\n open: PropTypes.bool.isRequired\n} : void 0;\nexport { PickerStaticWrapper };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"displayStaticWrapperAs\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { PickerStaticWrapper } from '../internals/components/PickerStaticWrapper/PickerStaticWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [StaticDatePicker API](https://mui.com/x/api/date-pickers/static-date-picker/)\n */\nexport const StaticDatePicker = /*#__PURE__*/React.forwardRef(function StaticDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiStaticDatePicker'); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = DatePickerToolbar,\n displayStaticWrapperAs = 'mobile',\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager);\n const validationError = useDateValidation(props) !== null;\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError,\n components\n });\n\n return /*#__PURE__*/_jsx(PickerStaticWrapper, _extends({\n displayStaticWrapperAs: displayStaticWrapperAs,\n components: components,\n componentsProps: componentsProps\n }, wrapperProps, {\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StaticDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n * @default 'mobile'\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']),\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"displayStaticWrapperAs\", \"onChange\", \"ToolbarComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDateTimePickerDefaultizedProps, dateTimePickerValueManager } from '../DateTimePicker/shared';\nimport { DateTimePickerToolbar } from '../DateTimePicker/DateTimePickerToolbar';\nimport { PickerStaticWrapper } from '../internals/components/PickerStaticWrapper/PickerStaticWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateTimeValidation } from '../internals/hooks/validation/useDateTimeValidation';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n *\n * API:\n *\n * - [StaticDateTimePicker API](https://mui.com/x/api/date-pickers/static-date-time-picker/)\n */\nexport const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTimePicker(inProps, ref) {\n const props = useDateTimePickerDefaultizedProps(inProps, 'MuiStaticDateTimePicker'); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n displayStaticWrapperAs = 'mobile',\n ToolbarComponent = DateTimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, dateTimePickerValueManager);\n const validationError = useDateTimeValidation(props) !== null;\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError,\n components,\n componentsProps\n });\n\n return /*#__PURE__*/_jsx(PickerStaticWrapper, _extends({\n displayStaticWrapperAs: displayStaticWrapperAs,\n components: components,\n componentsProps: componentsProps\n }, wrapperProps, {\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StaticDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n * @default 'mobile'\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']),\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"displayStaticWrapperAs\", \"onChange\", \"ToolbarComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps, timePickerValueManager } from '../TimePicker/shared';\nimport { TimePickerToolbar } from '../TimePicker/TimePickerToolbar';\nimport { PickerStaticWrapper } from '../internals/components/PickerStaticWrapper/PickerStaticWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useTimeValidation } from '../internals/hooks/validation/useTimeValidation';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [StaticTimePicker API](https://mui.com/x/api/date-pickers/static-time-picker/)\n */\nexport const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker(inProps, ref) {\n const props = useTimePickerDefaultizedProps(inProps, 'MuiStaticTimePicker');\n\n const {\n displayStaticWrapperAs = 'mobile',\n ToolbarComponent = TimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, timePickerValueManager);\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError,\n components,\n componentsProps\n });\n\n return /*#__PURE__*/_jsx(PickerStaticWrapper, _extends({\n displayStaticWrapperAs: displayStaticWrapperAs,\n components: components,\n componentsProps: componentsProps\n }, wrapperProps, {\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StaticTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n */\n components: PropTypes.any,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n * @default 'mobile'\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']),\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\", \"DialogProps\", \"PopperProps\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport PropTypes from 'prop-types';\nimport { DesktopTimePicker } from '../DesktopTimePicker';\nimport { MobileTimePicker } from '../MobileTimePicker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Pickers](https://mui.com/x/react-date-pickers/)\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [TimePicker API](https://mui.com/x/api/date-pickers/time-picker/)\n */\nexport const TimePicker = /*#__PURE__*/React.forwardRef(function TimePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTimePicker'\n });\n\n const {\n desktopModeMediaQuery = '@media (pointer: fine)',\n DialogProps,\n PopperProps,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDesktop = useMediaQuery(desktopModeMediaQuery);\n\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopTimePicker, _extends({\n ref: ref,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent\n }, other));\n }\n\n return /*#__PURE__*/_jsx(MobileTimePicker, _extends({\n ref: ref,\n DialogProps: DialogProps\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import { getPickersLocalization } from './utils/getPickersLocalization';\nconst nlNLPickers = {\n // Calendar navigation\n previousMonth: 'Vorige maand',\n nextMonth: 'Volgende maand',\n // View navigation\n openPreviousView: 'open vorige view',\n openNextView: 'open volgende view',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'jaarweergave is geopend, schakel over naar kalenderweergave' : 'kalenderweergave is geopend, switch naar jaarweergave',\n // DateRange placeholders\n start: 'Start',\n end: 'Einde',\n // Action bar\n cancelButtonLabel: 'Annuleren',\n clearButtonLabel: 'Resetten',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Vandaag',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Selecteer ${view}. ${time === null ? 'Geen tijd geselecteerd' : `Geselecteerde tijd is ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} uren`,\n minutesClockNumberText: minutes => `${minutes} minuten`,\n secondsClockNumberText: seconds => `${seconds} seconden`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Kies datum, geselecteerde datum is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Kies datum',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Kies tijd, geselecteerde tijd is ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Kies tijd',\n // Table labels\n timeTableLabel: 'kies tijd',\n dateTableLabel: 'kies datum'\n};\nexport const nlNL = getPickersLocalization(nlNLPickers);","import { getPickersLocalization } from './utils/getPickersLocalization';\nconst ptBRPickers = {\n // Calendar navigation\n previousMonth: 'Mês anterior',\n nextMonth: 'Próximo mês',\n // View navigation\n openPreviousView: 'Abrir próxima seleção',\n openNextView: 'Abrir seleção anterior',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'Seleção de ano está aberta, alternando para seleção de calendário' : 'Seleção de calendários está aberta, alternando para seleção de ano',\n // DateRange placeholders\n start: 'Início',\n end: 'Fim',\n // Action bar\n cancelButtonLabel: 'Cancelar',\n clearButtonLabel: 'Limpar',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Hoje',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Selecione ${view}. ${time === null ? 'Hora não selecionada' : `Selecionado a hora ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} horas`,\n minutesClockNumberText: minutes => `${minutes} minutos`,\n secondsClockNumberText: seconds => `${seconds} segundos`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Escolha uma data, data selecionada ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Escolha uma data',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Escolha uma hora, hora selecionada ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Escolha uma hora',\n // Table labels\n timeTableLabel: 'escolha uma hora',\n dateTableLabel: 'escolha uma data'\n};\nexport const ptBR = getPickersLocalization(ptBRPickers);","import { getPickersLocalization } from './utils/getPickersLocalization'; // import { CalendarPickerView } from '../internals/models';\n// This object is not Partial because it is the default values\n\nconst trTRPickers = {\n // Calendar navigation\n previousMonth: 'Önceki ay',\n nextMonth: 'Sonraki ay',\n // View navigation\n openPreviousView: 'sonraki görünüm',\n openNextView: 'önceki görünüm',\n // calendarViewSwitchingButtonAriaLabel: (view: CalendarPickerView) => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Başlangıç',\n end: 'Bitiş',\n // Action bar\n cancelButtonLabel: 'iptal',\n clearButtonLabel: 'Temizle',\n okButtonLabel: 'Tamam',\n todayButtonLabel: 'Bugün' // Clock labels\n // clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n // hoursClockNumberText: hours => `${hours} hours`,\n // minutesClockNumberText: minutes => `${minutes} minutes`,\n // secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n // openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue)!, 'fullDate')}` : 'Choose date',\n // openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue)!, 'fullTime')}` : 'Choose time',\n // Table labels\n // timeTableLabel: 'pick time',\n // dateTableLabel: 'pick date',\n\n};\nexport const trTR = getPickersLocalization(trTRPickers);","import { getPickersLocalization } from './utils/getPickersLocalization'; // import { CalendarPickerView } from '../internals/models';\n\nconst deDEPickers = {\n // Calendar navigation\n previousMonth: 'Letzter Monat',\n nextMonth: 'Nächster Monat',\n // View navigation\n openPreviousView: 'Letzte Ansicht öffnen',\n openNextView: 'Nächste Ansicht öffnen',\n // calendarViewSwitchingButtonAriaLabel: (view: CalendarPickerView) => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Beginn',\n end: 'Ende',\n // Action bar\n cancelButtonLabel: 'Abbrechen',\n clearButtonLabel: 'Löschen',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Heute' // Clock labels\n // clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n // hoursClockNumberText: hours => `${hours} hours`,\n // minutesClockNumberText: minutes => `${minutes} minutes`,\n // secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n // openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue)!, 'fullDate')}` : 'Choose date',\n // openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue)!, 'fullTime')}` : 'Choose time',\n // Table labels\n // timeTableLabel: 'pick time',\n // dateTableLabel: 'pick date',\n\n};\nexport const deDE = getPickersLocalization(deDEPickers);","import { getPickersLocalization } from './utils/getPickersLocalization'; // import { CalendarPickerView } from '../internals/models';\n\nconst frFRPickers = {\n // Calendar navigation\n previousMonth: 'Mois précédent',\n nextMonth: 'Mois suivant',\n // View navigation\n openPreviousView: 'Ouvrir la vue précédente',\n openNextView: 'Ouvrir la vue suivante',\n // calendarViewSwitchingButtonAriaLabel: (view: CalendarPickerView) => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Début',\n end: 'Fin',\n // Action bar\n cancelButtonLabel: 'Annuler',\n clearButtonLabel: 'Vider',\n okButtonLabel: 'OK',\n todayButtonLabel: \"Aujourd'hui\" // Clock labels\n // clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n // hoursClockNumberText: hours => `${hours} hours`,\n // minutesClockNumberText: minutes => `${minutes} minutes`,\n // secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n // openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue)!, 'fullDate')}` : 'Choose date',\n // openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue)!, 'fullTime')}` : 'Choose time',\n // Table labels\n // timeTableLabel: 'pick time',\n // dateTableLabel: 'pick date',\n\n};\nexport const frFR = getPickersLocalization(frFRPickers);","import { getPickersLocalization } from './utils/getPickersLocalization';\nconst svSEPickers = {\n // Calendar navigation\n previousMonth: 'Föregående månad',\n nextMonth: 'Nästa månad',\n // View navigation\n openPreviousView: 'öppna föregående vy',\n openNextView: 'öppna nästa vy',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'årsvyn är öppen, byt till kalendervy' : 'kalendervyn är öppen, byt till årsvy',\n // DateRange placeholders\n start: 'Start',\n end: 'Slut',\n // Action bar\n cancelButtonLabel: 'Avbryt',\n clearButtonLabel: 'Rensa',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Idag',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'Ingen tid vald' : `Vald tid är ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} timmar`,\n minutesClockNumberText: minutes => `${minutes} minuter`,\n secondsClockNumberText: seconds => `${seconds} sekunder`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Välj datum, valt datum är ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Välj datum',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Välj tid, vald tid är ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Välj tid',\n // Table labels\n timeTableLabel: 'välj tid',\n dateTableLabel: 'välj datum'\n};\nexport const svSE = getPickersLocalization(svSEPickers);","/** @license MUI v5.0.0-alpha.7\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport * from './CalendarPicker';\nexport * from './CalendarPickerSkeleton';\nexport * from './ClockPicker';\nexport * from './DatePicker';\nexport * from './DateTimePicker';\nexport * from './DesktopDatePicker';\nexport * from './DesktopDateTimePicker';\nexport * from './DesktopTimePicker';\nexport * from './LocalizationProvider';\nexport * from './MobileDatePicker';\nexport * from './MobileDateTimePicker';\nexport * from './MobileTimePicker';\nexport * from './MonthPicker';\nexport * from './PickersDay';\nexport * from './StaticDatePicker';\nexport * from './StaticDateTimePicker';\nexport * from './StaticTimePicker';\nexport * from './TimePicker';\nexport * from './YearPicker';\nexport * from './locales';\nexport { PickerStaticWrapper } from './internals/components/PickerStaticWrapper';","ace.define(\"ace/snippets\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\",\"ace/lib/oop\",\"ace/lib/event_emitter\",\"ace/lib/lang\",\"ace/range\",\"ace/range_list\",\"ace/keyboard/hash_handler\",\"ace/tokenizer\",\"ace/clipboard\",\"ace/editor\"], function(require, exports, module) {\n\"use strict\";\nvar dom = require(\"./lib/dom\");\nvar oop = require(\"./lib/oop\");\nvar EventEmitter = require(\"./lib/event_emitter\").EventEmitter;\nvar lang = require(\"./lib/lang\");\nvar Range = require(\"./range\").Range;\nvar RangeList = require(\"./range_list\").RangeList;\nvar HashHandler = require(\"./keyboard/hash_handler\").HashHandler;\nvar Tokenizer = require(\"./tokenizer\").Tokenizer;\nvar clipboard = require(\"./clipboard\");\n\nvar VARIABLES = {\n CURRENT_WORD: function(editor) {\n return editor.session.getTextRange(editor.session.getWordRange());\n },\n SELECTION: function(editor, name, indentation) {\n var text = editor.session.getTextRange();\n if (indentation)\n return text.replace(/\\n\\r?([ \\t]*\\S)/g, \"\\n\" + indentation + \"$1\");\n return text;\n },\n CURRENT_LINE: function(editor) {\n return editor.session.getLine(editor.getCursorPosition().row);\n },\n PREV_LINE: function(editor) {\n return editor.session.getLine(editor.getCursorPosition().row - 1);\n },\n LINE_INDEX: function(editor) {\n return editor.getCursorPosition().row;\n },\n LINE_NUMBER: function(editor) {\n return editor.getCursorPosition().row + 1;\n },\n SOFT_TABS: function(editor) {\n return editor.session.getUseSoftTabs() ? \"YES\" : \"NO\";\n },\n TAB_SIZE: function(editor) {\n return editor.session.getTabSize();\n },\n CLIPBOARD: function(editor) {\n return clipboard.getText && clipboard.getText();\n },\n FILENAME: function(editor) {\n return /[^/\\\\]*$/.exec(this.FILEPATH(editor))[0];\n },\n FILENAME_BASE: function(editor) {\n return /[^/\\\\]*$/.exec(this.FILEPATH(editor))[0].replace(/\\.[^.]*$/, \"\");\n },\n DIRECTORY: function(editor) {\n return this.FILEPATH(editor).replace(/[^/\\\\]*$/, \"\");\n },\n FILEPATH: function(editor) { return \"/not implemented.txt\"; },\n WORKSPACE_NAME: function() { return \"Unknown\"; },\n FULLNAME: function() { return \"Unknown\"; },\n BLOCK_COMMENT_START: function(editor) {\n var mode = editor.session.$mode || {};\n return mode.blockComment && mode.blockComment.start || \"\";\n },\n BLOCK_COMMENT_END: function(editor) {\n var mode = editor.session.$mode || {};\n return mode.blockComment && mode.blockComment.end || \"\";\n },\n LINE_COMMENT: function(editor) {\n var mode = editor.session.$mode || {};\n return mode.lineCommentStart || \"\";\n },\n CURRENT_YEAR: date.bind(null, {year: \"numeric\"}),\n CURRENT_YEAR_SHORT: date.bind(null, {year: \"2-digit\"}),\n CURRENT_MONTH: date.bind(null, {month: \"numeric\"}),\n CURRENT_MONTH_NAME: date.bind(null, {month: \"long\"}),\n CURRENT_MONTH_NAME_SHORT: date.bind(null, {month: \"short\"}),\n CURRENT_DATE: date.bind(null, {day: \"2-digit\"}),\n CURRENT_DAY_NAME: date.bind(null, {weekday: \"long\"}),\n CURRENT_DAY_NAME_SHORT: date.bind(null, {weekday: \"short\"}),\n CURRENT_HOUR: date.bind(null, {hour: \"2-digit\", hour12: false}),\n CURRENT_MINUTE: date.bind(null, {minute: \"2-digit\"}),\n CURRENT_SECOND: date.bind(null, {second: \"2-digit\"})\n};\n\nVARIABLES.SELECTED_TEXT = VARIABLES.SELECTION;\n\nfunction date(dateFormat) {\n var str = new Date().toLocaleString(\"en-us\", dateFormat);\n return str.length == 1 ? \"0\" + str : str;\n}\n\nvar SnippetManager = function() {\n this.snippetMap = {};\n this.snippetNameMap = {};\n};\n\n(function() {\n oop.implement(this, EventEmitter);\n \n this.getTokenizer = function() {\n return SnippetManager.$tokenizer || this.createTokenizer();\n };\n \n this.createTokenizer = function() {\n function TabstopToken(str) {\n str = str.substr(1);\n if (/^\\d+$/.test(str))\n return [{tabstopId: parseInt(str, 10)}];\n return [{text: str}];\n }\n function escape(ch) {\n return \"(?:[^\\\\\\\\\" + ch + \"]|\\\\\\\\.)\";\n }\n var formatMatcher = {\n regex: \"/(\" + escape(\"/\") + \"+)/\", \n onMatch: function(val, state, stack) {\n var ts = stack[0];\n ts.fmtString = true;\n ts.guard = val.slice(1, -1);\n ts.flag = \"\";\n return \"\";\n },\n next: \"formatString\"\n };\n \n SnippetManager.$tokenizer = new Tokenizer({\n start: [\n {regex: /\\\\./, onMatch: function(val, state, stack) {\n var ch = val[1];\n if (ch == \"}\" && stack.length) {\n val = ch;\n } else if (\"`$\\\\\".indexOf(ch) != -1) {\n val = ch;\n }\n return [val];\n }},\n {regex: /}/, onMatch: function(val, state, stack) {\n return [stack.length ? stack.shift() : val];\n }},\n {regex: /\\$(?:\\d+|\\w+)/, onMatch: TabstopToken},\n {regex: /\\$\\{[\\dA-Z_a-z]+/, onMatch: function(str, state, stack) {\n var t = TabstopToken(str.substr(1));\n stack.unshift(t[0]);\n return t;\n }, next: \"snippetVar\"},\n {regex: /\\n/, token: \"newline\", merge: false}\n ],\n snippetVar: [\n {regex: \"\\\\|\" + escape(\"\\\\|\") + \"*\\\\|\", onMatch: function(val, state, stack) {\n var choices = val.slice(1, -1).replace(/\\\\[,|\\\\]|,/g, function(operator) {\n return operator.length == 2 ? operator[1] : \"\\x00\";\n }).split(\"\\x00\").map(function(value){\n return {value: value};\n });\n stack[0].choices = choices;\n return [choices[0]];\n }, next: \"start\"},\n formatMatcher,\n {regex: \"([^:}\\\\\\\\]|\\\\\\\\.)*:?\", token: \"\", next: \"start\"}\n ],\n formatString: [\n {regex: /:/, onMatch: function(val, state, stack) {\n if (stack.length && stack[0].expectElse) {\n stack[0].expectElse = false;\n stack[0].ifEnd = {elseEnd: stack[0]};\n return [stack[0].ifEnd];\n }\n return \":\";\n }},\n {regex: /\\\\./, onMatch: function(val, state, stack) {\n var ch = val[1];\n if (ch == \"}\" && stack.length)\n val = ch;\n else if (\"`$\\\\\".indexOf(ch) != -1)\n val = ch;\n else if (ch == \"n\")\n val = \"\\n\";\n else if (ch == \"t\")\n val = \"\\t\";\n else if (\"ulULE\".indexOf(ch) != -1)\n val = {changeCase: ch, local: ch > \"a\"};\n return [val];\n }},\n {regex: \"/\\\\w*}\", onMatch: function(val, state, stack) {\n var next = stack.shift();\n if (next)\n next.flag = val.slice(1, -1);\n this.next = next && next.tabstopId ? \"start\" : \"\";\n return [next || val];\n }, next: \"start\"},\n {regex: /\\$(?:\\d+|\\w+)/, onMatch: function(val, state, stack) {\n return [{text: val.slice(1)}];\n }},\n {regex: /\\${\\w+/, onMatch: function(val, state, stack) {\n var token = {text: val.slice(2)};\n stack.unshift(token);\n return [token];\n }, next: \"formatStringVar\"},\n {regex: /\\n/, token: \"newline\", merge: false},\n {regex: /}/, onMatch: function(val, state, stack) {\n var next = stack.shift();\n this.next = next && next.tabstopId ? \"start\" : \"\";\n return [next || val];\n }, next: \"start\"}\n ],\n formatStringVar: [\n {regex: /:\\/\\w+}/, onMatch: function(val, state, stack) {\n var ts = stack[0];\n ts.formatFunction = val.slice(2, -1);\n return [stack.shift()];\n }, next: \"formatString\"},\n formatMatcher,\n {regex: /:[\\?\\-+]?/, onMatch: function(val, state, stack) {\n if (val[1] == \"+\")\n stack[0].ifEnd = stack[0];\n if (val[1] == \"?\")\n stack[0].expectElse = true;\n }, next: \"formatString\"},\n {regex: \"([^:}\\\\\\\\]|\\\\\\\\.)*:?\", token: \"\", next: \"formatString\"}\n ]\n });\n return SnippetManager.$tokenizer;\n };\n\n this.tokenizeTmSnippet = function(str, startState) {\n return this.getTokenizer().getLineTokens(str, startState).tokens.map(function(x) {\n return x.value || x;\n });\n };\n \n this.getVariableValue = function(editor, name, indentation) {\n if (/^\\d+$/.test(name))\n return (this.variables.__ || {})[name] || \"\";\n if (/^[A-Z]\\d+$/.test(name))\n return (this.variables[name[0] + \"__\"] || {})[name.substr(1)] || \"\";\n \n name = name.replace(/^TM_/, \"\");\n if (!this.variables.hasOwnProperty(name))\n return \"\";\n var value = this.variables[name];\n if (typeof value == \"function\")\n value = this.variables[name](editor, name, indentation);\n return value == null ? \"\" : value;\n };\n \n this.variables = VARIABLES;\n this.tmStrFormat = function(str, ch, editor) {\n if (!ch.fmt) return str;\n var flag = ch.flag || \"\";\n var re = ch.guard;\n re = new RegExp(re, flag.replace(/[^gim]/g, \"\"));\n var fmtTokens = typeof ch.fmt == \"string\" ? this.tokenizeTmSnippet(ch.fmt, \"formatString\") : ch.fmt;\n var _self = this;\n var formatted = str.replace(re, function() {\n var oldArgs = _self.variables.__;\n _self.variables.__ = [].slice.call(arguments);\n var fmtParts = _self.resolveVariables(fmtTokens, editor);\n var gChangeCase = \"E\";\n for (var i = 0; i < fmtParts.length; i++) {\n var ch = fmtParts[i];\n if (typeof ch == \"object\") {\n fmtParts[i] = \"\";\n if (ch.changeCase && ch.local) {\n var next = fmtParts[i + 1];\n if (next && typeof next == \"string\") {\n if (ch.changeCase == \"u\")\n fmtParts[i] = next[0].toUpperCase();\n else\n fmtParts[i] = next[0].toLowerCase();\n fmtParts[i + 1] = next.substr(1);\n }\n } else if (ch.changeCase) {\n gChangeCase = ch.changeCase;\n }\n } else if (gChangeCase == \"U\") {\n fmtParts[i] = ch.toUpperCase();\n } else if (gChangeCase == \"L\") {\n fmtParts[i] = ch.toLowerCase();\n }\n }\n _self.variables.__ = oldArgs;\n return fmtParts.join(\"\");\n });\n return formatted;\n };\n \n this.tmFormatFunction = function(str, ch, editor) {\n if (ch.formatFunction == \"upcase\")\n return str.toUpperCase();\n if (ch.formatFunction == \"downcase\")\n return str.toLowerCase();\n return str;\n };\n\n this.resolveVariables = function(snippet, editor) {\n var result = [];\n var indentation = \"\";\n var afterNewLine = true;\n for (var i = 0; i < snippet.length; i++) {\n var ch = snippet[i];\n if (typeof ch == \"string\") {\n result.push(ch);\n if (ch == \"\\n\") {\n afterNewLine = true;\n indentation = \"\";\n }\n else if (afterNewLine) {\n indentation = /^\\t*/.exec(ch)[0];\n afterNewLine = /\\S/.test(ch);\n }\n continue;\n }\n if (!ch) continue;\n afterNewLine = false;\n \n if (ch.fmtString) {\n var j = snippet.indexOf(ch, i + 1);\n if (j == -1) j = snippet.length;\n ch.fmt = snippet.slice(i + 1, j);\n i = j;\n }\n \n if (ch.text) {\n var value = this.getVariableValue(editor, ch.text, indentation) + \"\";\n if (ch.fmtString)\n value = this.tmStrFormat(value, ch, editor);\n if (ch.formatFunction)\n value = this.tmFormatFunction(value, ch, editor);\n \n if (value && !ch.ifEnd) {\n result.push(value);\n gotoNext(ch);\n } else if (!value && ch.ifEnd) {\n gotoNext(ch.ifEnd);\n }\n } else if (ch.elseEnd) {\n gotoNext(ch.elseEnd);\n } else if (ch.tabstopId != null) {\n result.push(ch);\n } else if (ch.changeCase != null) {\n result.push(ch);\n }\n }\n function gotoNext(ch) {\n var i1 = snippet.indexOf(ch, i + 1);\n if (i1 != -1)\n i = i1;\n }\n return result;\n };\n\n this.insertSnippetForSelection = function(editor, snippetText) {\n var cursor = editor.getCursorPosition();\n var line = editor.session.getLine(cursor.row);\n var tabString = editor.session.getTabString();\n var indentString = line.match(/^\\s*/)[0];\n \n if (cursor.column < indentString.length)\n indentString = indentString.slice(0, cursor.column);\n\n snippetText = snippetText.replace(/\\r/g, \"\");\n var tokens = this.tokenizeTmSnippet(snippetText);\n tokens = this.resolveVariables(tokens, editor);\n tokens = tokens.map(function(x) {\n if (x == \"\\n\")\n return x + indentString;\n if (typeof x == \"string\")\n return x.replace(/\\t/g, tabString);\n return x;\n });\n var tabstops = [];\n tokens.forEach(function(p, i) {\n if (typeof p != \"object\")\n return;\n var id = p.tabstopId;\n var ts = tabstops[id];\n if (!ts) {\n ts = tabstops[id] = [];\n ts.index = id;\n ts.value = \"\";\n ts.parents = {};\n }\n if (ts.indexOf(p) !== -1)\n return;\n if (p.choices && !ts.choices)\n ts.choices = p.choices;\n ts.push(p);\n var i1 = tokens.indexOf(p, i + 1);\n if (i1 === -1)\n return;\n\n var value = tokens.slice(i + 1, i1);\n var isNested = value.some(function(t) {return typeof t === \"object\";});\n if (isNested && !ts.value) {\n ts.value = value;\n } else if (value.length && (!ts.value || typeof ts.value !== \"string\")) {\n ts.value = value.join(\"\");\n }\n });\n tabstops.forEach(function(ts) {ts.length = 0;});\n var expanding = {};\n function copyValue(val) {\n var copy = [];\n for (var i = 0; i < val.length; i++) {\n var p = val[i];\n if (typeof p == \"object\") {\n if (expanding[p.tabstopId])\n continue;\n var j = val.lastIndexOf(p, i - 1);\n p = copy[j] || {tabstopId: p.tabstopId};\n }\n copy[i] = p;\n }\n return copy;\n }\n for (var i = 0; i < tokens.length; i++) {\n var p = tokens[i];\n if (typeof p != \"object\")\n continue;\n var id = p.tabstopId;\n var ts = tabstops[id];\n var i1 = tokens.indexOf(p, i + 1);\n if (expanding[id]) {\n if (expanding[id] === p) {\n delete expanding[id];\n Object.keys(expanding).forEach(function(parentId) {\n ts.parents[parentId] = true;\n });\n }\n continue;\n }\n expanding[id] = p;\n var value = ts.value;\n if (typeof value !== \"string\")\n value = copyValue(value);\n else if (p.fmt)\n value = this.tmStrFormat(value, p, editor);\n tokens.splice.apply(tokens, [i + 1, Math.max(0, i1 - i)].concat(value, p));\n\n if (ts.indexOf(p) === -1)\n ts.push(p);\n }\n var row = 0, column = 0;\n var text = \"\";\n tokens.forEach(function(t) {\n if (typeof t === \"string\") {\n var lines = t.split(\"\\n\");\n if (lines.length > 1){\n column = lines[lines.length - 1].length;\n row += lines.length - 1;\n } else\n column += t.length;\n text += t;\n } else if (t) {\n if (!t.start)\n t.start = {row: row, column: column};\n else\n t.end = {row: row, column: column};\n }\n });\n var range = editor.getSelectionRange();\n var end = editor.session.replace(range, text);\n\n var tabstopManager = new TabstopManager(editor);\n var selectionId = editor.inVirtualSelectionMode && editor.selection.index;\n tabstopManager.addTabstops(tabstops, range.start, end, selectionId);\n };\n \n this.insertSnippet = function(editor, snippetText) {\n var self = this;\n if (editor.inVirtualSelectionMode)\n return self.insertSnippetForSelection(editor, snippetText);\n \n editor.forEachSelection(function() {\n self.insertSnippetForSelection(editor, snippetText);\n }, null, {keepOrder: true});\n \n if (editor.tabstopManager)\n editor.tabstopManager.tabNext();\n };\n\n this.$getScope = function(editor) {\n var scope = editor.session.$mode.$id || \"\";\n scope = scope.split(\"/\").pop();\n if (scope === \"html\" || scope === \"php\") {\n if (scope === \"php\" && !editor.session.$mode.inlinePhp) \n scope = \"html\";\n var c = editor.getCursorPosition();\n var state = editor.session.getState(c.row);\n if (typeof state === \"object\") {\n state = state[0];\n }\n if (state.substring) {\n if (state.substring(0, 3) == \"js-\")\n scope = \"javascript\";\n else if (state.substring(0, 4) == \"css-\")\n scope = \"css\";\n else if (state.substring(0, 4) == \"php-\")\n scope = \"php\";\n }\n }\n \n return scope;\n };\n\n this.getActiveScopes = function(editor) {\n var scope = this.$getScope(editor);\n var scopes = [scope];\n var snippetMap = this.snippetMap;\n if (snippetMap[scope] && snippetMap[scope].includeScopes) {\n scopes.push.apply(scopes, snippetMap[scope].includeScopes);\n }\n scopes.push(\"_\");\n return scopes;\n };\n\n this.expandWithTab = function(editor, options) {\n var self = this;\n var result = editor.forEachSelection(function() {\n return self.expandSnippetForSelection(editor, options);\n }, null, {keepOrder: true});\n if (result && editor.tabstopManager)\n editor.tabstopManager.tabNext();\n return result;\n };\n \n this.expandSnippetForSelection = function(editor, options) {\n var cursor = editor.getCursorPosition();\n var line = editor.session.getLine(cursor.row);\n var before = line.substring(0, cursor.column);\n var after = line.substr(cursor.column);\n\n var snippetMap = this.snippetMap;\n var snippet;\n this.getActiveScopes(editor).some(function(scope) {\n var snippets = snippetMap[scope];\n if (snippets)\n snippet = this.findMatchingSnippet(snippets, before, after);\n return !!snippet;\n }, this);\n if (!snippet)\n return false;\n if (options && options.dryRun)\n return true;\n editor.session.doc.removeInLine(cursor.row,\n cursor.column - snippet.replaceBefore.length,\n cursor.column + snippet.replaceAfter.length\n );\n\n this.variables.M__ = snippet.matchBefore;\n this.variables.T__ = snippet.matchAfter;\n this.insertSnippetForSelection(editor, snippet.content);\n\n this.variables.M__ = this.variables.T__ = null;\n return true;\n };\n\n this.findMatchingSnippet = function(snippetList, before, after) {\n for (var i = snippetList.length; i--;) {\n var s = snippetList[i];\n if (s.startRe && !s.startRe.test(before))\n continue;\n if (s.endRe && !s.endRe.test(after))\n continue;\n if (!s.startRe && !s.endRe)\n continue;\n\n s.matchBefore = s.startRe ? s.startRe.exec(before) : [\"\"];\n s.matchAfter = s.endRe ? s.endRe.exec(after) : [\"\"];\n s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : \"\";\n s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : \"\";\n return s;\n }\n };\n\n this.snippetMap = {};\n this.snippetNameMap = {};\n this.register = function(snippets, scope) {\n var snippetMap = this.snippetMap;\n var snippetNameMap = this.snippetNameMap;\n var self = this;\n \n if (!snippets) \n snippets = [];\n \n function wrapRegexp(src) {\n if (src && !/^\\^?\\(.*\\)\\$?$|^\\\\b$/.test(src))\n src = \"(?:\" + src + \")\";\n\n return src || \"\";\n }\n function guardedRegexp(re, guard, opening) {\n re = wrapRegexp(re);\n guard = wrapRegexp(guard);\n if (opening) {\n re = guard + re;\n if (re && re[re.length - 1] != \"$\")\n re = re + \"$\";\n } else {\n re = re + guard;\n if (re && re[0] != \"^\")\n re = \"^\" + re;\n }\n return new RegExp(re);\n }\n\n function addSnippet(s) {\n if (!s.scope)\n s.scope = scope || \"_\";\n scope = s.scope;\n if (!snippetMap[scope]) {\n snippetMap[scope] = [];\n snippetNameMap[scope] = {};\n }\n\n var map = snippetNameMap[scope];\n if (s.name) {\n var old = map[s.name];\n if (old)\n self.unregister(old);\n map[s.name] = s;\n }\n snippetMap[scope].push(s);\n\n if (s.prefix)\n s.tabTrigger = s.prefix;\n\n if (!s.content && s.body)\n s.content = Array.isArray(s.body) ? s.body.join(\"\\n\") : s.body;\n\n if (s.tabTrigger && !s.trigger) {\n if (!s.guard && /^\\w/.test(s.tabTrigger))\n s.guard = \"\\\\b\";\n s.trigger = lang.escapeRegExp(s.tabTrigger);\n }\n \n if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard)\n return;\n \n s.startRe = guardedRegexp(s.trigger, s.guard, true);\n s.triggerRe = new RegExp(s.trigger);\n\n s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true);\n s.endTriggerRe = new RegExp(s.endTrigger);\n }\n\n if (Array.isArray(snippets)) {\n snippets.forEach(addSnippet);\n } else {\n Object.keys(snippets).forEach(function(key) {\n addSnippet(snippets[key]);\n });\n }\n \n this._signal(\"registerSnippets\", {scope: scope});\n };\n this.unregister = function(snippets, scope) {\n var snippetMap = this.snippetMap;\n var snippetNameMap = this.snippetNameMap;\n\n function removeSnippet(s) {\n var nameMap = snippetNameMap[s.scope||scope];\n if (nameMap && nameMap[s.name]) {\n delete nameMap[s.name];\n var map = snippetMap[s.scope||scope];\n var i = map && map.indexOf(s);\n if (i >= 0)\n map.splice(i, 1);\n }\n }\n if (snippets.content)\n removeSnippet(snippets);\n else if (Array.isArray(snippets))\n snippets.forEach(removeSnippet);\n };\n this.parseSnippetFile = function(str) {\n str = str.replace(/\\r/g, \"\");\n var list = [], snippet = {};\n var re = /^#.*|^({[\\s\\S]*})\\s*$|^(\\S+) (.*)$|^((?:\\n*\\t.*)+)/gm;\n var m;\n while (m = re.exec(str)) {\n if (m[1]) {\n try {\n snippet = JSON.parse(m[1]);\n list.push(snippet);\n } catch (e) {}\n } if (m[4]) {\n snippet.content = m[4].replace(/^\\t/gm, \"\");\n list.push(snippet);\n snippet = {};\n } else {\n var key = m[2], val = m[3];\n if (key == \"regex\") {\n var guardRe = /\\/((?:[^\\/\\\\]|\\\\.)*)|$/g;\n snippet.guard = guardRe.exec(val)[1];\n snippet.trigger = guardRe.exec(val)[1];\n snippet.endTrigger = guardRe.exec(val)[1];\n snippet.endGuard = guardRe.exec(val)[1];\n } else if (key == \"snippet\") {\n snippet.tabTrigger = val.match(/^\\S*/)[0];\n if (!snippet.name)\n snippet.name = val;\n } else if (key) {\n snippet[key] = val;\n }\n }\n }\n return list;\n };\n this.getSnippetByName = function(name, editor) {\n var snippetMap = this.snippetNameMap;\n var snippet;\n this.getActiveScopes(editor).some(function(scope) {\n var snippets = snippetMap[scope];\n if (snippets)\n snippet = snippets[name];\n return !!snippet;\n }, this);\n return snippet;\n };\n\n}).call(SnippetManager.prototype);\n\n\nvar TabstopManager = function(editor) {\n if (editor.tabstopManager)\n return editor.tabstopManager;\n editor.tabstopManager = this;\n this.$onChange = this.onChange.bind(this);\n this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule;\n this.$onChangeSession = this.onChangeSession.bind(this);\n this.$onAfterExec = this.onAfterExec.bind(this);\n this.attach(editor);\n};\n(function() {\n this.attach = function(editor) {\n this.index = 0;\n this.ranges = [];\n this.tabstops = [];\n this.$openTabstops = null;\n this.selectedTabstop = null;\n\n this.editor = editor;\n this.editor.on(\"change\", this.$onChange);\n this.editor.on(\"changeSelection\", this.$onChangeSelection);\n this.editor.on(\"changeSession\", this.$onChangeSession);\n this.editor.commands.on(\"afterExec\", this.$onAfterExec);\n this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n };\n this.detach = function() {\n this.tabstops.forEach(this.removeTabstopMarkers, this);\n this.ranges = null;\n this.tabstops = null;\n this.selectedTabstop = null;\n this.editor.removeListener(\"change\", this.$onChange);\n this.editor.removeListener(\"changeSelection\", this.$onChangeSelection);\n this.editor.removeListener(\"changeSession\", this.$onChangeSession);\n this.editor.commands.removeListener(\"afterExec\", this.$onAfterExec);\n this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);\n this.editor.tabstopManager = null;\n this.editor = null;\n };\n\n this.onChange = function(delta) {\n var isRemove = delta.action[0] == \"r\";\n var selectedTabstop = this.selectedTabstop || {};\n var parents = selectedTabstop.parents || {};\n var tabstops = (this.tabstops || []).slice();\n for (var i = 0; i < tabstops.length; i++) {\n var ts = tabstops[i];\n var active = ts == selectedTabstop || parents[ts.index];\n ts.rangeList.$bias = active ? 0 : 1;\n \n if (delta.action == \"remove\" && ts !== selectedTabstop) {\n var parentActive = ts.parents && ts.parents[selectedTabstop.index];\n var startIndex = ts.rangeList.pointIndex(delta.start, parentActive);\n startIndex = startIndex < 0 ? -startIndex - 1 : startIndex + 1;\n var endIndex = ts.rangeList.pointIndex(delta.end, parentActive);\n endIndex = endIndex < 0 ? -endIndex - 1 : endIndex - 1;\n var toRemove = ts.rangeList.ranges.slice(startIndex, endIndex);\n for (var j = 0; j < toRemove.length; j++)\n this.removeRange(toRemove[j]);\n }\n ts.rangeList.$onChange(delta);\n }\n var session = this.editor.session;\n if (!this.$inChange && isRemove && session.getLength() == 1 && !session.getValue())\n this.detach();\n };\n this.updateLinkedFields = function() {\n var ts = this.selectedTabstop;\n if (!ts || !ts.hasLinkedRanges || !ts.firstNonLinked)\n return;\n this.$inChange = true;\n var session = this.editor.session;\n var text = session.getTextRange(ts.firstNonLinked);\n for (var i = 0; i < ts.length; i++) {\n var range = ts[i];\n if (!range.linked)\n continue;\n var original = range.original;\n var fmt = exports.snippetManager.tmStrFormat(text, original, this.editor);\n session.replace(range, fmt);\n }\n this.$inChange = false;\n };\n this.onAfterExec = function(e) {\n if (e.command && !e.command.readOnly)\n this.updateLinkedFields();\n };\n this.onChangeSelection = function() {\n if (!this.editor)\n return;\n var lead = this.editor.selection.lead;\n var anchor = this.editor.selection.anchor;\n var isEmpty = this.editor.selection.isEmpty();\n for (var i = 0; i < this.ranges.length; i++) {\n if (this.ranges[i].linked)\n continue;\n var containsLead = this.ranges[i].contains(lead.row, lead.column);\n var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column);\n if (containsLead && containsAnchor)\n return;\n }\n this.detach();\n };\n this.onChangeSession = function() {\n this.detach();\n };\n this.tabNext = function(dir) {\n var max = this.tabstops.length;\n var index = this.index + (dir || 1);\n index = Math.min(Math.max(index, 1), max);\n if (index == max)\n index = 0;\n this.selectTabstop(index);\n if (index === 0)\n this.detach();\n };\n this.selectTabstop = function(index) {\n this.$openTabstops = null;\n var ts = this.tabstops[this.index];\n if (ts)\n this.addTabstopMarkers(ts);\n this.index = index;\n ts = this.tabstops[this.index];\n if (!ts || !ts.length)\n return;\n \n this.selectedTabstop = ts;\n var range = ts.firstNonLinked || ts;\n if (ts.choices) range.cursor = range.start;\n if (!this.editor.inVirtualSelectionMode) {\n var sel = this.editor.multiSelect;\n sel.toSingleRange(range);\n for (var i = 0; i < ts.length; i++) {\n if (ts.hasLinkedRanges && ts[i].linked)\n continue;\n sel.addRange(ts[i].clone(), true);\n }\n } else {\n this.editor.selection.fromOrientedRange(range);\n }\n \n this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n if (this.selectedTabstop && this.selectedTabstop.choices)\n this.editor.execCommand(\"startAutocomplete\", {matches: this.selectedTabstop.choices});\n };\n this.addTabstops = function(tabstops, start, end) {\n var useLink = this.useLink || !this.editor.getOption(\"enableMultiselect\");\n \n if (!this.$openTabstops)\n this.$openTabstops = [];\n if (!tabstops[0]) {\n var p = Range.fromPoints(end, end);\n moveRelative(p.start, start);\n moveRelative(p.end, start);\n tabstops[0] = [p];\n tabstops[0].index = 0;\n }\n\n var i = this.index;\n var arg = [i + 1, 0];\n var ranges = this.ranges;\n tabstops.forEach(function(ts, index) {\n var dest = this.$openTabstops[index] || ts;\n \n for (var i = 0; i < ts.length; i++) {\n var p = ts[i];\n var range = Range.fromPoints(p.start, p.end || p.start);\n movePoint(range.start, start);\n movePoint(range.end, start);\n range.original = p;\n range.tabstop = dest;\n ranges.push(range);\n if (dest != ts)\n dest.unshift(range);\n else\n dest[i] = range;\n if (p.fmtString || (dest.firstNonLinked && useLink)) {\n range.linked = true;\n dest.hasLinkedRanges = true;\n } else if (!dest.firstNonLinked)\n dest.firstNonLinked = range;\n }\n if (!dest.firstNonLinked)\n dest.hasLinkedRanges = false;\n if (dest === ts) {\n arg.push(dest);\n this.$openTabstops[index] = dest;\n }\n this.addTabstopMarkers(dest);\n dest.rangeList = dest.rangeList || new RangeList();\n dest.rangeList.$bias = 0;\n dest.rangeList.addList(dest);\n }, this);\n \n if (arg.length > 2) {\n if (this.tabstops.length)\n arg.push(arg.splice(2, 1)[0]);\n this.tabstops.splice.apply(this.tabstops, arg);\n }\n };\n\n this.addTabstopMarkers = function(ts) {\n var session = this.editor.session;\n ts.forEach(function(range) {\n if (!range.markerId)\n range.markerId = session.addMarker(range, \"ace_snippet-marker\", \"text\");\n });\n };\n this.removeTabstopMarkers = function(ts) {\n var session = this.editor.session;\n ts.forEach(function(range) {\n session.removeMarker(range.markerId);\n range.markerId = null;\n });\n };\n this.removeRange = function(range) {\n var i = range.tabstop.indexOf(range);\n if (i != -1) range.tabstop.splice(i, 1);\n i = this.ranges.indexOf(range);\n if (i != -1) this.ranges.splice(i, 1);\n i = range.tabstop.rangeList.ranges.indexOf(range);\n if (i != -1) range.tabstop.splice(i, 1);\n this.editor.session.removeMarker(range.markerId);\n if (!range.tabstop.length) {\n i = this.tabstops.indexOf(range.tabstop);\n if (i != -1)\n this.tabstops.splice(i, 1);\n if (!this.tabstops.length)\n this.detach();\n }\n };\n\n this.keyboardHandler = new HashHandler();\n this.keyboardHandler.bindKeys({\n \"Tab\": function(editor) {\n if (exports.snippetManager && exports.snippetManager.expandWithTab(editor))\n return;\n editor.tabstopManager.tabNext(1);\n editor.renderer.scrollCursorIntoView();\n },\n \"Shift-Tab\": function(editor) {\n editor.tabstopManager.tabNext(-1);\n editor.renderer.scrollCursorIntoView();\n },\n \"Esc\": function(editor) {\n editor.tabstopManager.detach();\n }\n });\n}).call(TabstopManager.prototype);\n\n\n\nvar movePoint = function(point, diff) {\n if (point.row == 0)\n point.column += diff.column;\n point.row += diff.row;\n};\n\nvar moveRelative = function(point, start) {\n if (point.row == start.row)\n point.column -= start.column;\n point.row -= start.row;\n};\n\n\ndom.importCssString(\"\\\n.ace_snippet-marker {\\\n -moz-box-sizing: border-box;\\\n box-sizing: border-box;\\\n background: rgba(194, 193, 208, 0.09);\\\n border: 1px dotted rgba(211, 208, 235, 0.62);\\\n position: absolute;\\\n}\", \"snippets.css\", false);\n\nexports.snippetManager = new SnippetManager();\n\n\nvar Editor = require(\"./editor\").Editor;\n(function() {\n this.insertSnippet = function(content, options) {\n return exports.snippetManager.insertSnippet(this, content, options);\n };\n this.expandSnippet = function(options) {\n return exports.snippetManager.expandWithTab(this, options);\n };\n}).call(Editor.prototype);\n\n});\n\nace.define(\"ace/autocomplete/popup\",[\"require\",\"exports\",\"module\",\"ace/virtual_renderer\",\"ace/editor\",\"ace/range\",\"ace/lib/event\",\"ace/lib/lang\",\"ace/lib/dom\"], function(require, exports, module) {\n\"use strict\";\n\nvar Renderer = require(\"../virtual_renderer\").VirtualRenderer;\nvar Editor = require(\"../editor\").Editor;\nvar Range = require(\"../range\").Range;\nvar event = require(\"../lib/event\");\nvar lang = require(\"../lib/lang\");\nvar dom = require(\"../lib/dom\");\n\nvar $singleLineEditor = function(el) {\n var renderer = new Renderer(el);\n\n renderer.$maxLines = 4;\n\n var editor = new Editor(renderer);\n\n editor.setHighlightActiveLine(false);\n editor.setShowPrintMargin(false);\n editor.renderer.setShowGutter(false);\n editor.renderer.setHighlightGutterLine(false);\n\n editor.$mouseHandler.$focusTimeout = 0;\n editor.$highlightTagPending = true;\n\n return editor;\n};\n\nvar AcePopup = function(parentNode) {\n var el = dom.createElement(\"div\");\n var popup = new $singleLineEditor(el);\n\n if (parentNode)\n parentNode.appendChild(el);\n el.style.display = \"none\";\n popup.renderer.content.style.cursor = \"default\";\n popup.renderer.setStyle(\"ace_autocomplete\");\n\n popup.setOption(\"displayIndentGuides\", false);\n popup.setOption(\"dragDelay\", 150);\n\n var noop = function(){};\n\n popup.focus = noop;\n popup.$isFocused = true;\n\n popup.renderer.$cursorLayer.restartTimer = noop;\n popup.renderer.$cursorLayer.element.style.opacity = 0;\n\n popup.renderer.$maxLines = 8;\n popup.renderer.$keepTextAreaAtCursor = false;\n\n popup.setHighlightActiveLine(false);\n popup.session.highlight(\"\");\n popup.session.$searchHighlight.clazz = \"ace_highlight-marker\";\n\n popup.on(\"mousedown\", function(e) {\n var pos = e.getDocumentPosition();\n popup.selection.moveToPosition(pos);\n selectionMarker.start.row = selectionMarker.end.row = pos.row;\n e.stop();\n });\n\n var lastMouseEvent;\n var hoverMarker = new Range(-1,0,-1,Infinity);\n var selectionMarker = new Range(-1,0,-1,Infinity);\n selectionMarker.id = popup.session.addMarker(selectionMarker, \"ace_active-line\", \"fullLine\");\n popup.setSelectOnHover = function(val) {\n if (!val) {\n hoverMarker.id = popup.session.addMarker(hoverMarker, \"ace_line-hover\", \"fullLine\");\n } else if (hoverMarker.id) {\n popup.session.removeMarker(hoverMarker.id);\n hoverMarker.id = null;\n }\n };\n popup.setSelectOnHover(false);\n popup.on(\"mousemove\", function(e) {\n if (!lastMouseEvent) {\n lastMouseEvent = e;\n return;\n }\n if (lastMouseEvent.x == e.x && lastMouseEvent.y == e.y) {\n return;\n }\n lastMouseEvent = e;\n lastMouseEvent.scrollTop = popup.renderer.scrollTop;\n var row = lastMouseEvent.getDocumentPosition().row;\n if (hoverMarker.start.row != row) {\n if (!hoverMarker.id)\n popup.setRow(row);\n setHoverMarker(row);\n }\n });\n popup.renderer.on(\"beforeRender\", function() {\n if (lastMouseEvent && hoverMarker.start.row != -1) {\n lastMouseEvent.$pos = null;\n var row = lastMouseEvent.getDocumentPosition().row;\n if (!hoverMarker.id)\n popup.setRow(row);\n setHoverMarker(row, true);\n }\n });\n popup.renderer.on(\"afterRender\", function() {\n var row = popup.getRow();\n var t = popup.renderer.$textLayer;\n var selected = t.element.childNodes[row - t.config.firstRow];\n if (selected !== t.selectedNode && t.selectedNode)\n dom.removeCssClass(t.selectedNode, \"ace_selected\");\n t.selectedNode = selected;\n if (selected)\n dom.addCssClass(selected, \"ace_selected\");\n });\n var hideHoverMarker = function() { setHoverMarker(-1); };\n var setHoverMarker = function(row, suppressRedraw) {\n if (row !== hoverMarker.start.row) {\n hoverMarker.start.row = hoverMarker.end.row = row;\n if (!suppressRedraw)\n popup.session._emit(\"changeBackMarker\");\n popup._emit(\"changeHoverMarker\");\n }\n };\n popup.getHoveredRow = function() {\n return hoverMarker.start.row;\n };\n\n event.addListener(popup.container, \"mouseout\", hideHoverMarker);\n popup.on(\"hide\", hideHoverMarker);\n popup.on(\"changeSelection\", hideHoverMarker);\n\n popup.session.doc.getLength = function() {\n return popup.data.length;\n };\n popup.session.doc.getLine = function(i) {\n var data = popup.data[i];\n if (typeof data == \"string\")\n return data;\n return (data && data.value) || \"\";\n };\n\n var bgTokenizer = popup.session.bgTokenizer;\n bgTokenizer.$tokenizeRow = function(row) {\n var data = popup.data[row];\n var tokens = [];\n if (!data)\n return tokens;\n if (typeof data == \"string\")\n data = {value: data};\n var caption = data.caption || data.value || data.name;\n\n function addToken(value, className) {\n value && tokens.push({\n type: (data.className || \"\") + (className || \"\"), \n value: value\n });\n }\n \n var lower = caption.toLowerCase();\n var filterText = (popup.filterText || \"\").toLowerCase();\n var lastIndex = 0;\n var lastI = 0;\n for (var i = 0; i <= filterText.length; i++) {\n if (i != lastI && (data.matchMask & (1 << i) || i == filterText.length)) {\n var sub = filterText.slice(lastI, i);\n lastI = i;\n var index = lower.indexOf(sub, lastIndex);\n if (index == -1) continue;\n addToken(caption.slice(lastIndex, index), \"\");\n lastIndex = index + sub.length;\n addToken(caption.slice(index, lastIndex), \"completion-highlight\");\n }\n }\n addToken(caption.slice(lastIndex, caption.length), \"\");\n \n if (data.meta)\n tokens.push({type: \"completion-meta\", value: data.meta});\n if (data.message)\n tokens.push({type: \"completion-message\", value: data.message});\n\n return tokens;\n };\n bgTokenizer.$updateOnChange = noop;\n bgTokenizer.start = noop;\n\n popup.session.$computeWidth = function() {\n return this.screenWidth = 0;\n };\n popup.isOpen = false;\n popup.isTopdown = false;\n popup.autoSelect = true;\n popup.filterText = \"\";\n\n popup.data = [];\n popup.setData = function(list, filterText) {\n popup.filterText = filterText || \"\";\n popup.setValue(lang.stringRepeat(\"\\n\", list.length), -1);\n popup.data = list || [];\n popup.setRow(0);\n };\n popup.getData = function(row) {\n return popup.data[row];\n };\n\n popup.getRow = function() {\n return selectionMarker.start.row;\n };\n popup.setRow = function(line) {\n line = Math.max(this.autoSelect ? 0 : -1, Math.min(this.data.length, line));\n if (selectionMarker.start.row != line) {\n popup.selection.clearSelection();\n selectionMarker.start.row = selectionMarker.end.row = line || 0;\n popup.session._emit(\"changeBackMarker\");\n popup.moveCursorTo(line || 0, 0);\n if (popup.isOpen)\n popup._signal(\"select\");\n }\n };\n\n popup.on(\"changeSelection\", function() {\n if (popup.isOpen)\n popup.setRow(popup.selection.lead.row);\n popup.renderer.scrollCursorIntoView();\n });\n\n popup.hide = function() {\n this.container.style.display = \"none\";\n this._signal(\"hide\");\n popup.isOpen = false;\n };\n popup.show = function(pos, lineHeight, topdownOnly) {\n var el = this.container;\n var screenHeight = window.innerHeight;\n var screenWidth = window.innerWidth;\n var renderer = this.renderer;\n var maxH = renderer.$maxLines * lineHeight * 1.4;\n var top = pos.top + this.$borderSize;\n var allowTopdown = top > screenHeight / 2 && !topdownOnly;\n if (allowTopdown && top + lineHeight + maxH > screenHeight) {\n renderer.$maxPixelHeight = top - 2 * this.$borderSize;\n el.style.top = \"\";\n el.style.bottom = screenHeight - top + \"px\";\n popup.isTopdown = false;\n } else {\n top += lineHeight;\n renderer.$maxPixelHeight = screenHeight - top - 0.2 * lineHeight;\n el.style.top = top + \"px\";\n el.style.bottom = \"\";\n popup.isTopdown = true;\n }\n\n el.style.display = \"\";\n\n var left = pos.left;\n if (left + el.offsetWidth > screenWidth)\n left = screenWidth - el.offsetWidth;\n\n el.style.left = left + \"px\";\n\n this._signal(\"show\");\n lastMouseEvent = null;\n popup.isOpen = true;\n };\n\n popup.goTo = function(where) {\n var row = this.getRow();\n var max = this.session.getLength() - 1;\n\n switch(where) {\n case \"up\": row = row <= 0 ? max : row - 1; break;\n case \"down\": row = row >= max ? -1 : row + 1; break;\n case \"start\": row = 0; break;\n case \"end\": row = max; break;\n }\n\n this.setRow(row);\n };\n\n\n popup.getTextLeftOffset = function() {\n return this.$borderSize + this.renderer.$padding + this.$imageSize;\n };\n\n popup.$imageSize = 0;\n popup.$borderSize = 1;\n\n return popup;\n};\n\ndom.importCssString(\"\\\n.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\\\n background-color: #CAD6FA;\\\n z-index: 1;\\\n}\\\n.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\\\n background-color: #3a674e;\\\n}\\\n.ace_editor.ace_autocomplete .ace_line-hover {\\\n border: 1px solid #abbffe;\\\n margin-top: -1px;\\\n background: rgba(233,233,253,0.4);\\\n position: absolute;\\\n z-index: 2;\\\n}\\\n.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\\\n border: 1px solid rgba(109, 150, 13, 0.8);\\\n background: rgba(58, 103, 78, 0.62);\\\n}\\\n.ace_completion-meta {\\\n opacity: 0.5;\\\n margin: 0.9em;\\\n}\\\n.ace_editor.ace_autocomplete .ace_completion-highlight{\\\n color: #2d69c7;\\\n}\\\n.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\\\n color: #93ca12;\\\n}\\\n.ace_autocomplete.ace-tm .ace_marker-layer .ace_active-line {\\\n background-color: #CAD6FA;\\\n z-index: 1;\\\n}\\\n.ace_autocomplete.ace-tm .ace_line-hover {\\\n border: 1px solid #abbffe;\\\n margin-top: -1px;\\\n background: rgba(233,233,253,0.4);\\\n}\\\n.ace_autocomplete .ace_line-hover {\\\n position: absolute;\\\n z-index: 2;\\\n}\\\n.ace_autocomplete .ace_scroller {\\\n background: none;\\\n border: none;\\\n box-shadow: none;\\\n}\\\n.ace_rightAlignedText {\\\n color: gray;\\\n display: inline-block;\\\n position: absolute;\\\n right: 4px;\\\n text-align: right;\\\n z-index: -1;\\\n}\\\n.ace_completion-message {\\\n color: blue;\\\n}\\\n.ace_autocomplete .ace_completion-highlight{\\\n text-shadow: 0 0 0.01em;\\\n}\\\n.ace_autocomplete {\\\n width: 280px;\\\n z-index: 200000;\\\n background: #fbfbfb;\\\n color: #444;\\\n border: 1px lightgray solid;\\\n position: fixed;\\\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\\\n line-height: 1.4;\\\n background: #fefefe;\\\n color: #111;\\\n}\\\n.ace_dark.ace_editor.ace_autocomplete {\\\n border: 1px #484747 solid;\\\n box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\\\n line-height: 1.4;\\\n background: #25282c;\\\n color: #c1c1c1;\\\n}\", \"autocompletion.css\", false);\n\nexports.AcePopup = AcePopup;\nexports.$singleLineEditor = $singleLineEditor;\n});\n\nace.define(\"ace/autocomplete/util\",[\"require\",\"exports\",\"module\"], function(require, exports, module) {\n\"use strict\";\n\nexports.parForEach = function(array, fn, callback) {\n var completed = 0;\n var arLength = array.length;\n if (arLength === 0)\n callback();\n for (var i = 0; i < arLength; i++) {\n fn(array[i], function(result, err) {\n completed++;\n if (completed === arLength)\n callback(result, err);\n });\n }\n};\n\nvar ID_REGEX = /[a-zA-Z_0-9\\$\\-\\u00A2-\\u2000\\u2070-\\uFFFF]/;\n\nexports.retrievePrecedingIdentifier = function(text, pos, regex) {\n regex = regex || ID_REGEX;\n var buf = [];\n for (var i = pos-1; i >= 0; i--) {\n if (regex.test(text[i]))\n buf.push(text[i]);\n else\n break;\n }\n return buf.reverse().join(\"\");\n};\n\nexports.retrieveFollowingIdentifier = function(text, pos, regex) {\n regex = regex || ID_REGEX;\n var buf = [];\n for (var i = pos; i < text.length; i++) {\n if (regex.test(text[i]))\n buf.push(text[i]);\n else\n break;\n }\n return buf;\n};\n\nexports.getCompletionPrefix = function (editor) {\n var pos = editor.getCursorPosition();\n var line = editor.session.getLine(pos.row);\n var prefix;\n editor.completers.forEach(function(completer) {\n if (completer.identifierRegexps) {\n completer.identifierRegexps.forEach(function(identifierRegex) {\n if (!prefix && identifierRegex)\n prefix = this.retrievePrecedingIdentifier(line, pos.column, identifierRegex);\n }.bind(this));\n }\n }.bind(this));\n return prefix || this.retrievePrecedingIdentifier(line, pos.column);\n};\n\n});\n\nace.define(\"ace/autocomplete\",[\"require\",\"exports\",\"module\",\"ace/keyboard/hash_handler\",\"ace/autocomplete/popup\",\"ace/autocomplete/util\",\"ace/lib/lang\",\"ace/lib/dom\",\"ace/snippets\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar HashHandler = require(\"./keyboard/hash_handler\").HashHandler;\nvar AcePopup = require(\"./autocomplete/popup\").AcePopup;\nvar util = require(\"./autocomplete/util\");\nvar lang = require(\"./lib/lang\");\nvar dom = require(\"./lib/dom\");\nvar snippetManager = require(\"./snippets\").snippetManager;\nvar config = require(\"./config\");\n\nvar Autocomplete = function() {\n this.autoInsert = false;\n this.autoSelect = true;\n this.exactMatch = false;\n this.gatherCompletionsId = 0;\n this.keyboardHandler = new HashHandler();\n this.keyboardHandler.bindKeys(this.commands);\n\n this.blurListener = this.blurListener.bind(this);\n this.changeListener = this.changeListener.bind(this);\n this.mousedownListener = this.mousedownListener.bind(this);\n this.mousewheelListener = this.mousewheelListener.bind(this);\n\n this.changeTimer = lang.delayedCall(function() {\n this.updateCompletions(true);\n }.bind(this));\n\n this.tooltipTimer = lang.delayedCall(this.updateDocTooltip.bind(this), 50);\n};\n\n(function() {\n\n this.$init = function() {\n this.popup = new AcePopup(document.body || document.documentElement);\n this.popup.on(\"click\", function(e) {\n this.insertMatch();\n e.stop();\n }.bind(this));\n this.popup.focus = this.editor.focus.bind(this.editor);\n this.popup.on(\"show\", this.tooltipTimer.bind(null, null));\n this.popup.on(\"select\", this.tooltipTimer.bind(null, null));\n this.popup.on(\"changeHoverMarker\", this.tooltipTimer.bind(null, null));\n return this.popup;\n };\n\n this.getPopup = function() {\n return this.popup || this.$init();\n };\n\n this.openPopup = function(editor, prefix, keepPopupPosition) {\n if (!this.popup)\n this.$init();\n\n this.popup.autoSelect = this.autoSelect;\n\n this.popup.setData(this.completions.filtered, this.completions.filterText);\n\n editor.keyBinding.addKeyboardHandler(this.keyboardHandler);\n \n var renderer = editor.renderer;\n this.popup.setRow(this.autoSelect ? 0 : -1);\n if (!keepPopupPosition) {\n this.popup.setTheme(editor.getTheme());\n this.popup.setFontSize(editor.getFontSize());\n\n var lineHeight = renderer.layerConfig.lineHeight;\n\n var pos = renderer.$cursorLayer.getPixelPosition(this.base, true);\n pos.left -= this.popup.getTextLeftOffset();\n\n var rect = editor.container.getBoundingClientRect();\n pos.top += rect.top - renderer.layerConfig.offset;\n pos.left += rect.left - editor.renderer.scrollLeft;\n pos.left += renderer.gutterWidth;\n\n this.popup.show(pos, lineHeight);\n } else if (keepPopupPosition && !prefix) {\n this.detach();\n }\n this.changeTimer.cancel();\n };\n\n this.detach = function() {\n this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler);\n this.editor.off(\"changeSelection\", this.changeListener);\n this.editor.off(\"blur\", this.blurListener);\n this.editor.off(\"mousedown\", this.mousedownListener);\n this.editor.off(\"mousewheel\", this.mousewheelListener);\n this.changeTimer.cancel();\n this.hideDocTooltip();\n\n this.gatherCompletionsId += 1;\n if (this.popup && this.popup.isOpen)\n this.popup.hide();\n\n if (this.base)\n this.base.detach();\n this.activated = false;\n this.completions = this.base = null;\n };\n\n this.changeListener = function(e) {\n var cursor = this.editor.selection.lead;\n if (cursor.row != this.base.row || cursor.column < this.base.column) {\n this.detach();\n }\n if (this.activated)\n this.changeTimer.schedule();\n else\n this.detach();\n };\n\n this.blurListener = function(e) {\n var el = document.activeElement;\n var text = this.editor.textInput.getElement();\n var fromTooltip = e.relatedTarget && this.tooltipNode && this.tooltipNode.contains(e.relatedTarget);\n var container = this.popup && this.popup.container;\n if (el != text && el.parentNode != container && !fromTooltip\n && el != this.tooltipNode && e.relatedTarget != text\n ) {\n this.detach();\n }\n };\n\n this.mousedownListener = function(e) {\n this.detach();\n };\n\n this.mousewheelListener = function(e) {\n this.detach();\n };\n\n this.goTo = function(where) {\n this.popup.goTo(where);\n };\n\n this.insertMatch = function(data, options) {\n if (!data)\n data = this.popup.getData(this.popup.getRow());\n if (!data)\n return false;\n\n var completions = this.completions;\n this.editor.startOperation({command: {name: \"insertMatch\"}});\n if (data.completer && data.completer.insertMatch) {\n data.completer.insertMatch(this.editor, data);\n } else {\n if (completions.filterText) {\n var ranges = this.editor.selection.getAllRanges();\n for (var i = 0, range; range = ranges[i]; i++) {\n range.start.column -= completions.filterText.length;\n this.editor.session.remove(range);\n }\n }\n if (data.snippet)\n snippetManager.insertSnippet(this.editor, data.snippet);\n else\n this.editor.execCommand(\"insertstring\", data.value || data);\n }\n if (this.completions == completions)\n this.detach();\n this.editor.endOperation();\n };\n\n\n this.commands = {\n \"Up\": function(editor) { editor.completer.goTo(\"up\"); },\n \"Down\": function(editor) { editor.completer.goTo(\"down\"); },\n \"Ctrl-Up|Ctrl-Home\": function(editor) { editor.completer.goTo(\"start\"); },\n \"Ctrl-Down|Ctrl-End\": function(editor) { editor.completer.goTo(\"end\"); },\n\n \"Esc\": function(editor) { editor.completer.detach(); },\n \"Return\": function(editor) { return editor.completer.insertMatch(); },\n \"Shift-Return\": function(editor) { editor.completer.insertMatch(null, {deleteSuffix: true}); },\n \"Tab\": function(editor) {\n var result = editor.completer.insertMatch();\n if (!result && !editor.tabstopManager)\n editor.completer.goTo(\"down\");\n else\n return result;\n },\n\n \"PageUp\": function(editor) { editor.completer.popup.gotoPageUp(); },\n \"PageDown\": function(editor) { editor.completer.popup.gotoPageDown(); }\n };\n\n this.gatherCompletions = function(editor, callback) {\n var session = editor.getSession();\n var pos = editor.getCursorPosition();\n\n var prefix = util.getCompletionPrefix(editor);\n\n this.base = session.doc.createAnchor(pos.row, pos.column - prefix.length);\n this.base.$insertRight = true;\n\n var matches = [];\n var total = editor.completers.length;\n editor.completers.forEach(function(completer, i) {\n completer.getCompletions(editor, session, pos, prefix, function(err, results) {\n if (!err && results)\n matches = matches.concat(results);\n callback(null, {\n prefix: util.getCompletionPrefix(editor),\n matches: matches,\n finished: (--total === 0)\n });\n });\n });\n return true;\n };\n\n this.showPopup = function(editor, options) {\n if (this.editor)\n this.detach();\n\n this.activated = true;\n\n this.editor = editor;\n if (editor.completer != this) {\n if (editor.completer)\n editor.completer.detach();\n editor.completer = this;\n }\n\n editor.on(\"changeSelection\", this.changeListener);\n editor.on(\"blur\", this.blurListener);\n editor.on(\"mousedown\", this.mousedownListener);\n editor.on(\"mousewheel\", this.mousewheelListener);\n\n this.updateCompletions(false, options);\n };\n\n this.updateCompletions = function(keepPopupPosition, options) {\n if (keepPopupPosition && this.base && this.completions) {\n var pos = this.editor.getCursorPosition();\n var prefix = this.editor.session.getTextRange({start: this.base, end: pos});\n if (prefix == this.completions.filterText)\n return;\n this.completions.setFilter(prefix);\n if (!this.completions.filtered.length)\n return this.detach();\n if (this.completions.filtered.length == 1\n && this.completions.filtered[0].value == prefix\n && !this.completions.filtered[0].snippet)\n return this.detach();\n this.openPopup(this.editor, prefix, keepPopupPosition);\n return;\n }\n \n if (options && options.matches) {\n var pos = this.editor.getSelectionRange().start;\n this.base = this.editor.session.doc.createAnchor(pos.row, pos.column);\n this.base.$insertRight = true;\n this.completions = new FilteredList(options.matches);\n return this.openPopup(this.editor, \"\", keepPopupPosition);\n }\n var _id = this.gatherCompletionsId;\n var detachIfFinished = function(results) {\n if (!results.finished) return;\n return this.detach();\n }.bind(this);\n\n var processResults = function(results) {\n var prefix = results.prefix;\n var matches = results.matches;\n\n this.completions = new FilteredList(matches);\n\n if (this.exactMatch)\n this.completions.exactMatch = true;\n\n this.completions.setFilter(prefix);\n var filtered = this.completions.filtered;\n if (!filtered.length)\n return detachIfFinished(results);\n if (filtered.length == 1 && filtered[0].value == prefix && !filtered[0].snippet)\n return detachIfFinished(results);\n if (this.autoInsert && filtered.length == 1 && results.finished)\n return this.insertMatch(filtered[0]);\n\n this.openPopup(this.editor, prefix, keepPopupPosition);\n }.bind(this);\n\n var isImmediate = true;\n var immediateResults = null;\n this.gatherCompletions(this.editor, function(err, results) {\n var prefix = results.prefix;\n var matches = results && results.matches;\n\n if (!matches || !matches.length)\n return detachIfFinished(results);\n if (prefix.indexOf(results.prefix) !== 0 || _id != this.gatherCompletionsId)\n return;\n if (isImmediate) {\n immediateResults = results;\n return;\n }\n\n processResults(results);\n }.bind(this));\n \n isImmediate = false;\n if (immediateResults) {\n var results = immediateResults;\n immediateResults = null;\n processResults(results);\n }\n };\n\n this.cancelContextMenu = function() {\n this.editor.$mouseHandler.cancelContextMenu();\n };\n\n this.updateDocTooltip = function() {\n var popup = this.popup;\n var all = popup.data;\n var selected = all && (all[popup.getHoveredRow()] || all[popup.getRow()]);\n var doc = null;\n if (!selected || !this.editor || !this.popup.isOpen)\n return this.hideDocTooltip();\n this.editor.completers.some(function(completer) {\n if (completer.getDocTooltip)\n doc = completer.getDocTooltip(selected);\n return doc;\n });\n if (!doc && typeof selected != \"string\")\n doc = selected;\n\n if (typeof doc == \"string\")\n doc = {docText: doc};\n if (!doc || !(doc.docHTML || doc.docText))\n return this.hideDocTooltip();\n this.showDocTooltip(doc);\n };\n\n this.showDocTooltip = function(item) {\n if (!this.tooltipNode) {\n this.tooltipNode = dom.createElement(\"div\");\n this.tooltipNode.className = \"ace_tooltip ace_doc-tooltip\";\n this.tooltipNode.style.margin = 0;\n this.tooltipNode.style.pointerEvents = \"auto\";\n this.tooltipNode.tabIndex = -1;\n this.tooltipNode.onblur = this.blurListener.bind(this);\n this.tooltipNode.onclick = this.onTooltipClick.bind(this);\n }\n\n var tooltipNode = this.tooltipNode;\n if (item.docHTML) {\n tooltipNode.innerHTML = item.docHTML;\n } else if (item.docText) {\n tooltipNode.textContent = item.docText;\n }\n\n if (!tooltipNode.parentNode)\n document.body.appendChild(tooltipNode);\n var popup = this.popup;\n var rect = popup.container.getBoundingClientRect();\n tooltipNode.style.top = popup.container.style.top;\n tooltipNode.style.bottom = popup.container.style.bottom;\n\n tooltipNode.style.display = \"block\";\n if (window.innerWidth - rect.right < 320) {\n if (rect.left < 320) {\n if(popup.isTopdown) {\n tooltipNode.style.top = rect.bottom + \"px\";\n tooltipNode.style.left = rect.left + \"px\";\n tooltipNode.style.right = \"\";\n tooltipNode.style.bottom = \"\";\n } else {\n tooltipNode.style.top = popup.container.offsetTop - tooltipNode.offsetHeight + \"px\";\n tooltipNode.style.left = rect.left + \"px\";\n tooltipNode.style.right = \"\";\n tooltipNode.style.bottom = \"\";\n }\n } else {\n tooltipNode.style.right = window.innerWidth - rect.left + \"px\";\n tooltipNode.style.left = \"\";\n }\n } else {\n tooltipNode.style.left = (rect.right + 1) + \"px\";\n tooltipNode.style.right = \"\";\n }\n };\n\n this.hideDocTooltip = function() {\n this.tooltipTimer.cancel();\n if (!this.tooltipNode) return;\n var el = this.tooltipNode;\n if (!this.editor.isFocused() && document.activeElement == el)\n this.editor.focus();\n this.tooltipNode = null;\n if (el.parentNode)\n el.parentNode.removeChild(el);\n };\n \n this.onTooltipClick = function(e) {\n var a = e.target;\n while (a && a != this.tooltipNode) {\n if (a.nodeName == \"A\" && a.href) {\n a.rel = \"noreferrer\";\n a.target = \"_blank\";\n break;\n }\n a = a.parentNode;\n }\n };\n\n this.destroy = function() {\n this.detach();\n if (this.popup) {\n this.popup.destroy();\n var el = this.popup.container;\n if (el && el.parentNode)\n el.parentNode.removeChild(el);\n }\n if (this.editor && this.editor.completer == this)\n this.editor.completer == null;\n this.popup = null;\n };\n\n}).call(Autocomplete.prototype);\n\n\nAutocomplete.for = function(editor) {\n if (editor.completer) {\n return editor.completer;\n }\n if (config.get(\"sharedPopups\")) {\n if (!Autocomplete.$shared)\n Autocomplete.$sharedInstance = new Autocomplete();\n editor.completer = Autocomplete.$sharedInstance;\n } else {\n editor.completer = new Autocomplete();\n editor.once(\"destroy\", function(e, editor) {\n editor.completer.destroy();\n });\n }\n return editor.completer;\n};\n\nAutocomplete.startCommand = {\n name: \"startAutocomplete\",\n exec: function(editor, options) {\n var completer = Autocomplete.for(editor);\n completer.autoInsert = false;\n completer.autoSelect = true;\n completer.showPopup(editor, options);\n completer.cancelContextMenu();\n },\n bindKey: \"Ctrl-Space|Ctrl-Shift-Space|Alt-Space\"\n};\n\nvar FilteredList = function(array, filterText) {\n this.all = array;\n this.filtered = array;\n this.filterText = filterText || \"\";\n this.exactMatch = false;\n};\n(function(){\n this.setFilter = function(str) {\n if (str.length > this.filterText && str.lastIndexOf(this.filterText, 0) === 0)\n var matches = this.filtered;\n else\n var matches = this.all;\n\n this.filterText = str;\n matches = this.filterCompletions(matches, this.filterText);\n matches = matches.sort(function(a, b) {\n return b.exactMatch - a.exactMatch || b.$score - a.$score \n || (a.caption || a.value).localeCompare(b.caption || b.value);\n });\n var prev = null;\n matches = matches.filter(function(item){\n var caption = item.snippet || item.caption || item.value;\n if (caption === prev) return false;\n prev = caption;\n return true;\n });\n\n this.filtered = matches;\n };\n this.filterCompletions = function(items, needle) {\n var results = [];\n var upper = needle.toUpperCase();\n var lower = needle.toLowerCase();\n loop: for (var i = 0, item; item = items[i]; i++) {\n var caption = item.caption || item.value || item.snippet;\n if (!caption) continue;\n var lastIndex = -1;\n var matchMask = 0;\n var penalty = 0;\n var index, distance;\n\n if (this.exactMatch) {\n if (needle !== caption.substr(0, needle.length))\n continue loop;\n } else {\n var fullMatchIndex = caption.toLowerCase().indexOf(lower);\n if (fullMatchIndex > -1) {\n penalty = fullMatchIndex;\n } else {\n for (var j = 0; j < needle.length; j++) {\n var i1 = caption.indexOf(lower[j], lastIndex + 1);\n var i2 = caption.indexOf(upper[j], lastIndex + 1);\n index = (i1 >= 0) ? ((i2 < 0 || i1 < i2) ? i1 : i2) : i2;\n if (index < 0)\n continue loop;\n distance = index - lastIndex - 1;\n if (distance > 0) {\n if (lastIndex === -1)\n penalty += 10;\n penalty += distance;\n matchMask = matchMask | (1 << j);\n }\n lastIndex = index;\n }\n }\n }\n item.matchMask = matchMask;\n item.exactMatch = penalty ? 0 : 1;\n item.$score = (item.score || 0) - penalty;\n results.push(item);\n }\n return results;\n };\n}).call(FilteredList.prototype);\n\nexports.Autocomplete = Autocomplete;\nexports.FilteredList = FilteredList;\n\n});\n\nace.define(\"ace/autocomplete/text_completer\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n var Range = require(\"../range\").Range;\n \n var splitRegex = /[^a-zA-Z_0-9\\$\\-\\u00C0-\\u1FFF\\u2C00-\\uD7FF\\w]+/;\n\n function getWordIndex(doc, pos) {\n var textBefore = doc.getTextRange(Range.fromPoints({row: 0, column:0}, pos));\n return textBefore.split(splitRegex).length - 1;\n }\n function wordDistance(doc, pos) {\n var prefixPos = getWordIndex(doc, pos);\n var words = doc.getValue().split(splitRegex);\n var wordScores = Object.create(null);\n \n var currentWord = words[prefixPos];\n\n words.forEach(function(word, idx) {\n if (!word || word === currentWord) return;\n\n var distance = Math.abs(prefixPos - idx);\n var score = words.length - distance;\n if (wordScores[word]) {\n wordScores[word] = Math.max(score, wordScores[word]);\n } else {\n wordScores[word] = score;\n }\n });\n return wordScores;\n }\n\n exports.getCompletions = function(editor, session, pos, prefix, callback) {\n var wordScore = wordDistance(session, pos);\n var wordList = Object.keys(wordScore);\n callback(null, wordList.map(function(word) {\n return {\n caption: word,\n value: word,\n score: wordScore[word],\n meta: \"local\"\n };\n }));\n };\n});\n\nace.define(\"ace/ext/language_tools\",[\"require\",\"exports\",\"module\",\"ace/snippets\",\"ace/autocomplete\",\"ace/config\",\"ace/lib/lang\",\"ace/autocomplete/util\",\"ace/autocomplete/text_completer\",\"ace/editor\",\"ace/config\"], function(require, exports, module) {\n\"use strict\";\n\nvar snippetManager = require(\"../snippets\").snippetManager;\nvar Autocomplete = require(\"../autocomplete\").Autocomplete;\nvar config = require(\"../config\");\nvar lang = require(\"../lib/lang\");\nvar util = require(\"../autocomplete/util\");\n\nvar textCompleter = require(\"../autocomplete/text_completer\");\nvar keyWordCompleter = {\n getCompletions: function(editor, session, pos, prefix, callback) {\n if (session.$mode.completer) {\n return session.$mode.completer.getCompletions(editor, session, pos, prefix, callback);\n }\n var state = editor.session.getState(pos.row);\n var completions = session.$mode.getCompletions(state, session, pos, prefix);\n callback(null, completions);\n }\n};\n\nvar transformSnippetTooltip = function(str) {\n var record = {};\n return str.replace(/\\${(\\d+)(:(.*?))?}/g, function(_, p1, p2, p3) {\n return (record[p1] = p3 || '');\n }).replace(/\\$(\\d+?)/g, function (_, p1) {\n return record[p1];\n });\n};\n\nvar snippetCompleter = {\n getCompletions: function(editor, session, pos, prefix, callback) {\n var scopes = [];\n var token = session.getTokenAt(pos.row, pos.column);\n if (token && token.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\\.xml$/))\n scopes.push('html-tag');\n else\n scopes = snippetManager.getActiveScopes(editor);\n\n var snippetMap = snippetManager.snippetMap;\n var completions = [];\n scopes.forEach(function(scope) {\n var snippets = snippetMap[scope] || [];\n for (var i = snippets.length; i--;) {\n var s = snippets[i];\n var caption = s.name || s.tabTrigger;\n if (!caption)\n continue;\n completions.push({\n caption: caption,\n snippet: s.content,\n meta: s.tabTrigger && !s.name ? s.tabTrigger + \"\\u21E5 \" : \"snippet\",\n type: \"snippet\"\n });\n }\n }, this);\n callback(null, completions);\n },\n getDocTooltip: function(item) {\n if (item.type == \"snippet\" && !item.docHTML) {\n item.docHTML = [\n \"\", lang.escapeHTML(item.caption), \"\", \"
\",\n lang.escapeHTML(transformSnippetTooltip(item.snippet))\n ].join(\"\");\n }\n }\n};\n\nvar completers = [snippetCompleter, textCompleter, keyWordCompleter];\nexports.setCompleters = function(val) {\n completers.length = 0;\n if (val) completers.push.apply(completers, val);\n};\nexports.addCompleter = function(completer) {\n completers.push(completer);\n};\nexports.textCompleter = textCompleter;\nexports.keyWordCompleter = keyWordCompleter;\nexports.snippetCompleter = snippetCompleter;\n\nvar expandSnippet = {\n name: \"expandSnippet\",\n exec: function(editor) {\n return snippetManager.expandWithTab(editor);\n },\n bindKey: \"Tab\"\n};\n\nvar onChangeMode = function(e, editor) {\n loadSnippetsForMode(editor.session.$mode);\n};\n\nvar loadSnippetsForMode = function(mode) {\n if (typeof mode == \"string\")\n mode = config.$modes[mode];\n if (!mode)\n return;\n if (!snippetManager.files)\n snippetManager.files = {};\n \n loadSnippetFile(mode.$id, mode.snippetFileId);\n if (mode.modes)\n mode.modes.forEach(loadSnippetsForMode);\n};\n\nvar loadSnippetFile = function(id, snippetFilePath) {\n if (!snippetFilePath || !id || snippetManager.files[id])\n return;\n snippetManager.files[id] = {};\n config.loadModule(snippetFilePath, function(m) {\n if (!m) return;\n snippetManager.files[id] = m;\n if (!m.snippets && m.snippetText)\n m.snippets = snippetManager.parseSnippetFile(m.snippetText);\n snippetManager.register(m.snippets || [], m.scope);\n if (m.includeScopes) {\n snippetManager.snippetMap[m.scope].includeScopes = m.includeScopes;\n m.includeScopes.forEach(function(x) {\n loadSnippetsForMode(\"ace/mode/\" + x);\n });\n }\n });\n};\n\nvar doLiveAutocomplete = function(e) {\n var editor = e.editor;\n var hasCompleter = editor.completer && editor.completer.activated;\n if (e.command.name === \"backspace\") {\n if (hasCompleter && !util.getCompletionPrefix(editor))\n editor.completer.detach();\n }\n else if (e.command.name === \"insertstring\") {\n var prefix = util.getCompletionPrefix(editor);\n if (prefix && !hasCompleter) {\n var completer = Autocomplete.for(editor);\n completer.autoInsert = false;\n completer.showPopup(editor);\n }\n }\n};\n\nvar Editor = require(\"../editor\").Editor;\nrequire(\"../config\").defineOptions(Editor.prototype, \"editor\", {\n enableBasicAutocompletion: {\n set: function(val) {\n if (val) {\n if (!this.completers)\n this.completers = Array.isArray(val)? val: completers;\n this.commands.addCommand(Autocomplete.startCommand);\n } else {\n this.commands.removeCommand(Autocomplete.startCommand);\n }\n },\n value: false\n },\n enableLiveAutocompletion: {\n set: function(val) {\n if (val) {\n if (!this.completers)\n this.completers = Array.isArray(val)? val: completers;\n this.commands.on('afterExec', doLiveAutocomplete);\n } else {\n this.commands.removeListener('afterExec', doLiveAutocomplete);\n }\n },\n value: false\n },\n enableSnippets: {\n set: function(val) {\n if (val) {\n this.commands.addCommand(expandSnippet);\n this.on(\"changeMode\", onChangeMode);\n onChangeMode(null, this);\n } else {\n this.commands.removeCommand(expandSnippet);\n this.off(\"changeMode\", onChangeMode);\n }\n },\n value: false\n }\n});\n}); (function() {\n ace.require([\"ace/ext/language_tools\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/mode/json_highlight_rules\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text_highlight_rules\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextHighlightRules = require(\"./text_highlight_rules\").TextHighlightRules;\n\nvar JsonHighlightRules = function() {\n this.$rules = {\n \"start\" : [\n {\n token : \"variable\", // single line\n regex : '[\"](?:(?:\\\\\\\\.)|(?:[^\"\\\\\\\\]))*?[\"]\\\\s*(?=:)'\n }, {\n token : \"string\", // single line\n regex : '\"',\n next : \"string\"\n }, {\n token : \"constant.numeric\", // hex\n regex : \"0[xX][0-9a-fA-F]+\\\\b\"\n }, {\n token : \"constant.numeric\", // float\n regex : \"[+-]?\\\\d+(?:(?:\\\\.\\\\d*)?(?:[eE][+-]?\\\\d+)?)?\\\\b\"\n }, {\n token : \"constant.language.boolean\",\n regex : \"(?:true|false)\\\\b\"\n }, {\n token : \"text\", // single quoted strings are not allowed\n regex : \"['](?:(?:\\\\\\\\.)|(?:[^'\\\\\\\\]))*?[']\"\n }, {\n token : \"comment\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\/.*$\"\n }, {\n token : \"comment.start\", // comments are not allowed, but who cares?\n regex : \"\\\\/\\\\*\",\n next : \"comment\"\n }, {\n token : \"paren.lparen\",\n regex : \"[[({]\"\n }, {\n token : \"paren.rparen\",\n regex : \"[\\\\])}]\"\n }, {\n token : \"punctuation.operator\",\n regex : /[,]/\n }, {\n token : \"text\",\n regex : \"\\\\s+\"\n }\n ],\n \"string\" : [\n {\n token : \"constant.language.escape\",\n regex : /\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[\"\\\\\\/bfnrt])/\n }, {\n token : \"string\",\n regex : '\"|$',\n next : \"start\"\n }, {\n defaultToken : \"string\"\n }\n ],\n \"comment\" : [\n {\n token : \"comment.end\", // comments are not allowed, but who cares?\n regex : \"\\\\*\\\\/\",\n next : \"start\"\n }, {\n defaultToken: \"comment\"\n }\n ]\n };\n \n};\n\noop.inherits(JsonHighlightRules, TextHighlightRules);\n\nexports.JsonHighlightRules = JsonHighlightRules;\n});\n\nace.define(\"ace/mode/matching_brace_outdent\",[\"require\",\"exports\",\"module\",\"ace/range\"], function(require, exports, module) {\n\"use strict\";\n\nvar Range = require(\"../range\").Range;\n\nvar MatchingBraceOutdent = function() {};\n\n(function() {\n\n this.checkOutdent = function(line, input) {\n if (! /^\\s+$/.test(line))\n return false;\n\n return /^\\s*\\}/.test(input);\n };\n\n this.autoOutdent = function(doc, row) {\n var line = doc.getLine(row);\n var match = line.match(/^(\\s*\\})/);\n\n if (!match) return 0;\n\n var column = match[1].length;\n var openBracePos = doc.findMatchingBracket({row: row, column: column});\n\n if (!openBracePos || openBracePos.row == row) return 0;\n\n var indent = this.$getIndent(doc.getLine(openBracePos.row));\n doc.replace(new Range(row, 0, row, column-1), indent);\n };\n\n this.$getIndent = function(line) {\n return line.match(/^\\s*/)[0];\n };\n\n}).call(MatchingBraceOutdent.prototype);\n\nexports.MatchingBraceOutdent = MatchingBraceOutdent;\n});\n\nace.define(\"ace/mode/folding/cstyle\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/range\",\"ace/mode/folding/fold_mode\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../../lib/oop\");\nvar Range = require(\"../../range\").Range;\nvar BaseFoldMode = require(\"./fold_mode\").FoldMode;\n\nvar FoldMode = exports.FoldMode = function(commentRegex) {\n if (commentRegex) {\n this.foldingStartMarker = new RegExp(\n this.foldingStartMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.start)\n );\n this.foldingStopMarker = new RegExp(\n this.foldingStopMarker.source.replace(/\\|[^|]*?$/, \"|\" + commentRegex.end)\n );\n }\n};\noop.inherits(FoldMode, BaseFoldMode);\n\n(function() {\n \n this.foldingStartMarker = /([\\{\\[\\(])[^\\}\\]\\)]*$|^\\s*(\\/\\*)/;\n this.foldingStopMarker = /^[^\\[\\{\\(]*([\\}\\]\\)])|^[\\s\\*]*(\\*\\/)/;\n this.singleLineBlockCommentRe= /^\\s*(\\/\\*).*\\*\\/\\s*$/;\n this.tripleStarBlockCommentRe = /^\\s*(\\/\\*\\*\\*).*\\*\\/\\s*$/;\n this.startRegionRe = /^\\s*(\\/\\*|\\/\\/)#?region\\b/;\n this._getFoldWidgetBase = this.getFoldWidget;\n this.getFoldWidget = function(session, foldStyle, row) {\n var line = session.getLine(row);\n \n if (this.singleLineBlockCommentRe.test(line)) {\n if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line))\n return \"\";\n }\n \n var fw = this._getFoldWidgetBase(session, foldStyle, row);\n \n if (!fw && this.startRegionRe.test(line))\n return \"start\"; // lineCommentRegionStart\n \n return fw;\n };\n\n this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) {\n var line = session.getLine(row);\n \n if (this.startRegionRe.test(line))\n return this.getCommentRegionBlock(session, line, row);\n \n var match = line.match(this.foldingStartMarker);\n if (match) {\n var i = match.index;\n\n if (match[1])\n return this.openingBracketBlock(session, match[1], row, i);\n \n var range = session.getCommentFoldRange(row, i + match[0].length, 1);\n \n if (range && !range.isMultiLine()) {\n if (forceMultiline) {\n range = this.getSectionRange(session, row);\n } else if (foldStyle != \"all\")\n range = null;\n }\n \n return range;\n }\n\n if (foldStyle === \"markbegin\")\n return;\n\n var match = line.match(this.foldingStopMarker);\n if (match) {\n var i = match.index + match[0].length;\n\n if (match[1])\n return this.closingBracketBlock(session, match[1], row, i);\n\n return session.getCommentFoldRange(row, i, -1);\n }\n };\n \n this.getSectionRange = function(session, row) {\n var line = session.getLine(row);\n var startIndent = line.search(/\\S/);\n var startRow = row;\n var startColumn = line.length;\n row = row + 1;\n var endRow = row;\n var maxRow = session.getLength();\n while (++row < maxRow) {\n line = session.getLine(row);\n var indent = line.search(/\\S/);\n if (indent === -1)\n continue;\n if (startIndent > indent)\n break;\n var subRange = this.getFoldWidgetRange(session, \"all\", row);\n \n if (subRange) {\n if (subRange.start.row <= startRow) {\n break;\n } else if (subRange.isMultiLine()) {\n row = subRange.end.row;\n } else if (startIndent == indent) {\n break;\n }\n }\n endRow = row;\n }\n \n return new Range(startRow, startColumn, endRow, session.getLine(endRow).length);\n };\n this.getCommentRegionBlock = function(session, line, row) {\n var startColumn = line.search(/\\s*$/);\n var maxRow = session.getLength();\n var startRow = row;\n \n var re = /^\\s*(?:\\/\\*|\\/\\/|--)#?(end)?region\\b/;\n var depth = 1;\n while (++row < maxRow) {\n line = session.getLine(row);\n var m = re.exec(line);\n if (!m) continue;\n if (m[1]) depth--;\n else depth++;\n\n if (!depth) break;\n }\n\n var endRow = row;\n if (endRow > startRow) {\n return new Range(startRow, startColumn, endRow, line.length);\n }\n };\n\n}).call(FoldMode.prototype);\n\n});\n\nace.define(\"ace/mode/json\",[\"require\",\"exports\",\"module\",\"ace/lib/oop\",\"ace/mode/text\",\"ace/mode/json_highlight_rules\",\"ace/mode/matching_brace_outdent\",\"ace/mode/behaviour/cstyle\",\"ace/mode/folding/cstyle\",\"ace/worker/worker_client\"], function(require, exports, module) {\n\"use strict\";\n\nvar oop = require(\"../lib/oop\");\nvar TextMode = require(\"./text\").Mode;\nvar HighlightRules = require(\"./json_highlight_rules\").JsonHighlightRules;\nvar MatchingBraceOutdent = require(\"./matching_brace_outdent\").MatchingBraceOutdent;\nvar CstyleBehaviour = require(\"./behaviour/cstyle\").CstyleBehaviour;\nvar CStyleFoldMode = require(\"./folding/cstyle\").FoldMode;\nvar WorkerClient = require(\"../worker/worker_client\").WorkerClient;\n\nvar Mode = function() {\n this.HighlightRules = HighlightRules;\n this.$outdent = new MatchingBraceOutdent();\n this.$behaviour = new CstyleBehaviour();\n this.foldingRules = new CStyleFoldMode();\n};\noop.inherits(Mode, TextMode);\n\n(function() {\n\n this.lineCommentStart = \"//\";\n this.blockComment = {start: \"/*\", end: \"*/\"};\n \n this.getNextLineIndent = function(state, line, tab) {\n var indent = this.$getIndent(line);\n\n if (state == \"start\") {\n var match = line.match(/^.*[\\{\\(\\[]\\s*$/);\n if (match) {\n indent += tab;\n }\n }\n\n return indent;\n };\n\n this.checkOutdent = function(state, line, input) {\n return this.$outdent.checkOutdent(line, input);\n };\n\n this.autoOutdent = function(state, doc, row) {\n this.$outdent.autoOutdent(doc, row);\n };\n\n this.createWorker = function(session) {\n var worker = new WorkerClient([\"ace\"], \"ace/mode/json_worker\", \"JsonWorker\");\n worker.attachToDocument(session.getDocument());\n\n worker.on(\"annotate\", function(e) {\n session.setAnnotations(e.data);\n });\n\n worker.on(\"terminate\", function() {\n session.clearAnnotations();\n });\n\n return worker;\n };\n\n\n this.$id = \"ace/mode/json\";\n}).call(Mode.prototype);\n\nexports.Mode = Mode;\n}); (function() {\n ace.require([\"ace/mode/json\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/chrome\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = false;\nexports.cssClass = \"ace-chrome\";\nexports.cssText = \".ace-chrome .ace_gutter {\\\nbackground: #ebebeb;\\\ncolor: #333;\\\noverflow : hidden;\\\n}\\\n.ace-chrome .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #e8e8e8;\\\n}\\\n.ace-chrome {\\\nbackground-color: #FFFFFF;\\\ncolor: black;\\\n}\\\n.ace-chrome .ace_cursor {\\\ncolor: black;\\\n}\\\n.ace-chrome .ace_invisible {\\\ncolor: rgb(191, 191, 191);\\\n}\\\n.ace-chrome .ace_constant.ace_buildin {\\\ncolor: rgb(88, 72, 246);\\\n}\\\n.ace-chrome .ace_constant.ace_language {\\\ncolor: rgb(88, 92, 246);\\\n}\\\n.ace-chrome .ace_constant.ace_library {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-chrome .ace_invalid {\\\nbackground-color: rgb(153, 0, 0);\\\ncolor: white;\\\n}\\\n.ace-chrome .ace_fold {\\\n}\\\n.ace-chrome .ace_support.ace_function {\\\ncolor: rgb(60, 76, 114);\\\n}\\\n.ace-chrome .ace_support.ace_constant {\\\ncolor: rgb(6, 150, 14);\\\n}\\\n.ace-chrome .ace_support.ace_type,\\\n.ace-chrome .ace_support.ace_class\\\n.ace-chrome .ace_support.ace_other {\\\ncolor: rgb(109, 121, 222);\\\n}\\\n.ace-chrome .ace_variable.ace_parameter {\\\nfont-style:italic;\\\ncolor:#FD971F;\\\n}\\\n.ace-chrome .ace_keyword.ace_operator {\\\ncolor: rgb(104, 118, 135);\\\n}\\\n.ace-chrome .ace_comment {\\\ncolor: #236e24;\\\n}\\\n.ace-chrome .ace_comment.ace_doc {\\\ncolor: #236e24;\\\n}\\\n.ace-chrome .ace_comment.ace_doc.ace_tag {\\\ncolor: #236e24;\\\n}\\\n.ace-chrome .ace_constant.ace_numeric {\\\ncolor: rgb(0, 0, 205);\\\n}\\\n.ace-chrome .ace_variable {\\\ncolor: rgb(49, 132, 149);\\\n}\\\n.ace-chrome .ace_xml-pe {\\\ncolor: rgb(104, 104, 91);\\\n}\\\n.ace-chrome .ace_entity.ace_name.ace_function {\\\ncolor: #0000A2;\\\n}\\\n.ace-chrome .ace_heading {\\\ncolor: rgb(12, 7, 255);\\\n}\\\n.ace-chrome .ace_list {\\\ncolor:rgb(185, 6, 144);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_selection {\\\nbackground: rgb(181, 213, 255);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_step {\\\nbackground: rgb(252, 255, 0);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_stack {\\\nbackground: rgb(164, 229, 101);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid rgb(192, 192, 192);\\\n}\\\n.ace-chrome .ace_marker-layer .ace_active-line {\\\nbackground: rgba(0, 0, 0, 0.07);\\\n}\\\n.ace-chrome .ace_gutter-active-line {\\\nbackground-color : #dcdcdc;\\\n}\\\n.ace-chrome .ace_marker-layer .ace_selected-word {\\\nbackground: rgb(250, 250, 255);\\\nborder: 1px solid rgb(200, 200, 250);\\\n}\\\n.ace-chrome .ace_storage,\\\n.ace-chrome .ace_keyword,\\\n.ace-chrome .ace_meta.ace_tag {\\\ncolor: rgb(147, 15, 128);\\\n}\\\n.ace-chrome .ace_string.ace_regex {\\\ncolor: rgb(255, 0, 0)\\\n}\\\n.ace-chrome .ace_string {\\\ncolor: #1A1AA6;\\\n}\\\n.ace-chrome .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #994409;\\\n}\\\n.ace-chrome .ace_indent-guide {\\\nbackground: url(\\\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\\\") right repeat-y;\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n}); (function() {\n ace.require([\"ace/theme/chrome\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","ace.define(\"ace/theme/clouds_midnight\",[\"require\",\"exports\",\"module\",\"ace/lib/dom\"], function(require, exports, module) {\n\nexports.isDark = true;\nexports.cssClass = \"ace-clouds-midnight\";\nexports.cssText = \".ace-clouds-midnight .ace_gutter {\\\nbackground: #232323;\\\ncolor: #929292\\\n}\\\n.ace-clouds-midnight .ace_print-margin {\\\nwidth: 1px;\\\nbackground: #232323\\\n}\\\n.ace-clouds-midnight {\\\nbackground-color: #191919;\\\ncolor: #929292\\\n}\\\n.ace-clouds-midnight .ace_cursor {\\\ncolor: #7DA5DC\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_selection {\\\nbackground: #000000\\\n}\\\n.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {\\\nbox-shadow: 0 0 3px 0px #191919;\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_step {\\\nbackground: rgb(102, 82, 0)\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_bracket {\\\nmargin: -1px 0 0 -1px;\\\nborder: 1px solid #BFBFBF\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_active-line {\\\nbackground: rgba(215, 215, 215, 0.031)\\\n}\\\n.ace-clouds-midnight .ace_gutter-active-line {\\\nbackground-color: rgba(215, 215, 215, 0.031)\\\n}\\\n.ace-clouds-midnight .ace_marker-layer .ace_selected-word {\\\nborder: 1px solid #000000\\\n}\\\n.ace-clouds-midnight .ace_invisible {\\\ncolor: #666\\\n}\\\n.ace-clouds-midnight .ace_keyword,\\\n.ace-clouds-midnight .ace_meta,\\\n.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {\\\ncolor: #927C5D\\\n}\\\n.ace-clouds-midnight .ace_keyword.ace_operator {\\\ncolor: #4B4B4B\\\n}\\\n.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {\\\ncolor: #366F1A\\\n}\\\n.ace-clouds-midnight .ace_constant.ace_language {\\\ncolor: #39946A\\\n}\\\n.ace-clouds-midnight .ace_constant.ace_numeric {\\\ncolor: #46A609\\\n}\\\n.ace-clouds-midnight .ace_constant.ace_character.ace_entity {\\\ncolor: #A165AC\\\n}\\\n.ace-clouds-midnight .ace_invalid {\\\ncolor: #FFFFFF;\\\nbackground-color: #E92E2E\\\n}\\\n.ace-clouds-midnight .ace_fold {\\\nbackground-color: #927C5D;\\\nborder-color: #929292\\\n}\\\n.ace-clouds-midnight .ace_storage,\\\n.ace-clouds-midnight .ace_support.ace_class,\\\n.ace-clouds-midnight .ace_support.ace_function,\\\n.ace-clouds-midnight .ace_support.ace_other,\\\n.ace-clouds-midnight .ace_support.ace_type {\\\ncolor: #E92E2E\\\n}\\\n.ace-clouds-midnight .ace_string {\\\ncolor: #5D90CD\\\n}\\\n.ace-clouds-midnight .ace_comment {\\\ncolor: #3C403B\\\n}\\\n.ace-clouds-midnight .ace_entity.ace_name.ace_tag,\\\n.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\\\ncolor: #606060\\\n}\\\n.ace-clouds-midnight .ace_indent-guide {\\\nbackground: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\\\n}\";\n\nvar dom = require(\"../lib/dom\");\ndom.importCssString(exports.cssText, exports.cssClass, false);\n}); (function() {\n ace.require([\"ace/theme/clouds_midnight\"], function(m) {\n if (typeof module == \"object\" && typeof exports == \"object\" && module) {\n module.exports = m;\n }\n });\n })();\n ","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:17.411Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cropper = factory());\n}(this, (function () { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'cropper'; // Actions\n\n var ACTION_ALL = 'all';\n var ACTION_CROP = 'crop';\n var ACTION_MOVE = 'move';\n var ACTION_ZOOM = 'zoom';\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw'; // Classes\n\n var CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\n var CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\n var CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\"); // Data keys\n\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n var DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\"); // Drag modes\n\n var DRAG_MODE_CROP = 'crop';\n var DRAG_MODE_MOVE = 'move';\n var DRAG_MODE_NONE = 'none'; // Events\n\n var EVENT_CROP = 'crop';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_READY = 'ready';\n var EVENT_RESIZE = 'resize';\n var EVENT_WHEEL = 'wheel';\n var EVENT_ZOOM = 'zoom'; // Mime types\n\n var MIME_TYPE_JPEG = 'image/jpeg'; // RegExps\n\n var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\n var REGEXP_TAG_NAME = /^img|canvas$/i; // Misc\n // Inspired by the default width and height of a canvas element.\n\n var MIN_CONTAINER_WIDTH = 200;\n var MIN_CONTAINER_HEIGHT = 100;\n\n var DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n };\n\n var TEMPLATE = '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '
';\n\n /**\n * Check if the given value is not a number.\n */\n\n var isNaN = Number.isNaN || WINDOW.isNaN;\n /**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n\n function isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n }\n /**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n /**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n /**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n\n function isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n }\n /**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n\n function isFunction(value) {\n return typeof value === 'function';\n }\n var slice = Array.prototype.slice;\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n /**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n\n function forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length)\n /* array-like */\n ) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n\n return data;\n }\n /**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\n\n var assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n\n return target;\n };\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n var REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n /**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n\n function setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n\n style[property] = value;\n });\n }\n /**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n\n function hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n /**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n\n function addClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n\n var className = element.className.trim();\n\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n }\n /**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n\n function removeClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n /**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n\n function toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n } // IE10-11 doesn't support the second parameter of `classList.toggle`\n\n\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n var REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n /**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n\n function toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n }\n /**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n\n function getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n\n if (element.dataset) {\n return element.dataset[name];\n }\n\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n }\n /**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n\n function setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n }\n /**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\n\n function removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n }\n var REGEXP_SPACES = /\\s\\s*/;\n\n var onceSupported = function () {\n var supported = false;\n\n if (IS_BROWSER) {\n var once = false;\n\n var listener = function listener() {};\n\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n\n return supported;\n }();\n /**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n\n function removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n\n element.removeEventListener(event, handler, options);\n });\n }\n /**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n function addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n listener.apply(element, args);\n };\n\n if (!listeners[event]) {\n listeners[event] = {};\n }\n\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n\n element.addEventListener(event, _handler, options);\n });\n }\n /**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n\n function dispatchEvent(element, type, data) {\n var event; // Event and CustomEvent on IE9-11 are global objects, not constructors\n\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n\n return element.dispatchEvent(event);\n }\n /**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n\n function getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n }\n var location = WINDOW.location;\n var REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n /**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\n\n function isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n }\n /**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\n\n function addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n }\n /**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n\n function getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n } // Rotate should come first before scale to match orientation transform\n\n\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n /**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n\n function getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n }\n /**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n\n function getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n }\n /**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n /**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n\n function getAdjustedSizes(_ref4) // or 'cover'\n {\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n\n return {\n width: width,\n height: height\n };\n }\n /**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\n\n function getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n }\n /**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\n\n function getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n }\n var fromCharCode = String.fromCharCode;\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n\n return str;\n }\n var REGEXP_DATA_URL_HEAD = /^data:.*,/;\n /**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\n\n function dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n }\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = []; // Chunk Typed Array for better performance (#435)\n\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation; // Ignores range error when the image does not have correct Exif information\n\n try {\n var littleEndian;\n var app1Start;\n var ifdStart; // Only handle JPEG image (start by 0xFFD8)\n\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n\n offset += 1;\n }\n }\n\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D\n /* bigEndian */\n ) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n\n var _offset;\n\n var i;\n\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n\n if (dataView.getUint16(_offset, littleEndian) === 0x0112\n /* Orientation */\n ) {\n // 8 is the offset of the current tag's value\n _offset += 8; // Get the original orientation value\n\n orientation = dataView.getUint16(_offset, littleEndian); // Override the orientation with its default value\n\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n\n return orientation;\n }\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n // Rotate left 180°\n\n case 3:\n rotate = -180;\n break;\n // Flip vertical\n\n case 4:\n scaleY = -1;\n break;\n // Flip vertical and rotate right 90°\n\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n // Rotate right 90°\n\n case 6:\n rotate = 90;\n break;\n // Flip horizontal and rotate right 90°\n\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n // Rotate left 90°\n\n case 8:\n rotate = -90;\n break;\n }\n\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n var render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true); // Initialize auto crop area\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); // The width/height of auto crop area must large than \"minWidth/Height\"\n\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height; // The min/maxCropBoxWidth/Height must be less than container's width/height\n\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n } // The minWidth/Height must be less than maxWidth/Height\n\n\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n };\n\n var preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n\n if (!preview) {\n return;\n }\n\n var previews = preview;\n\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img'); // Save the original size for recover\n\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.src = url;\n img.alt = alt;\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n\n if (!this.cropped || this.disabled) {\n return;\n }\n\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n };\n\n var events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n };\n\n var handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY; // Resize when width changed or height changed\n\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n\n this.render();\n\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n\n if (this.disabled) {\n return;\n }\n\n event.preventDefault(); // Limit wheel speed to prevent zoom too fast (#21)\n\n if (this.wheeling) {\n return;\n }\n\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n\n if (this.disabled // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && ( // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu\n || event.ctrlKey)) {\n return;\n }\n\n var options = this.options,\n pointers = this.pointers;\n var action;\n\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n } // This line is required for preventing page zooming in iOS browsers\n\n\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n\n if (this.disabled || !action) {\n return;\n }\n\n var pointers = this.pointers;\n event.preventDefault();\n\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n\n var action = this.action,\n pointers = this.pointers;\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n\n if (!action) {\n return;\n }\n\n event.preventDefault();\n\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n };\n\n var change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset; // Locking aspect ratio in \"free mode\" by holding shift key\n\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n\n break;\n\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n\n break;\n\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n\n break;\n }\n };\n\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n // Resize crop box\n\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_SOUTH);\n height += range.y;\n\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n // Move canvas\n\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n // Zoom canvas\n\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n // Create crop box\n\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n\n if (range.y < 0) {\n top -= height;\n } // Show the crop box if is hidden\n\n\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n\n break;\n }\n\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n } // Override\n\n\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n };\n\n var methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true); // Render canvas after crop box rendered\n\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n\n return this;\n },\n\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n\n if (!element[NAMESPACE]) {\n return this;\n }\n\n element[NAMESPACE] = undefined;\n\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n\n this.uncreate();\n return this;\n },\n\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n\n if (changed) {\n this.renderCanvas(true);\n }\n }\n\n return this;\n },\n\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n }; // Zoom from the triggering point of the event\n\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n\n return this;\n },\n\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n\n return this;\n },\n\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n\n return data;\n },\n\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n\n var ratio = imageData.width / imageData.naturalWidth;\n\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n\n this.setCropBoxData(cropBoxData);\n }\n\n return this;\n },\n\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n\n return data;\n },\n\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n\n return data || {};\n },\n\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.renderCropBox();\n }\n\n return this;\n },\n\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options); // Returns the source canvas if it is not cropped.\n\n if (!this.cropped) {\n return source;\n }\n\n var _this$getData = this.getData(),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n } // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n\n\n var sourceWidth = source.width;\n var sourceHeight = source.height; // Source canvas parameters\n\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight; // Destination canvas parameters\n\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n\n var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid \"IndexSizeError\"\n\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n } // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n\n\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n\n if (this.ready) {\n this.initCropBox();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n\n return this;\n },\n\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n\n return this;\n }\n };\n\n var AnotherCropper = WINDOW.Cropper;\n\n var Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Cropper);\n\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an or element.');\n }\n\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n\n _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n\n if (element[NAMESPACE]) {\n return;\n }\n\n element[NAMESPACE] = this;\n\n if (tagName === 'img') {\n this.isImg = true; // e.g.: \"img/picture.jpg\"\n\n url = element.getAttribute('src') || '';\n this.originalUrl = url; // Stop when it's a blank image\n\n if (!url) {\n return;\n } // e.g.: \"https://example.com/img/picture.jpg\"\n\n\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n\n if (!url) {\n return;\n }\n\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n } // Only IE10+ supports Typed Arrays\n\n\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n } // Detect the mime type of the image directly if it is a Data URL\n\n\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n\n return;\n } // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n\n\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr; // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n }; // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n\n\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n } // The third parameter is required for avoiding side-effect (#682)\n\n\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData; // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n\n var _parseOrientation = parseOrientation(orientation);\n\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n } // Bust cache when there is not a \"crossOrigin\" property (#519)\n\n\n crossOriginUrl = addTimestamp(url);\n }\n\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true; // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n\n _this2.build();\n }; // Most modern browsers (excepts iOS WebKit)\n\n\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n\n sizingImage.src = image.src; // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n\n var element = this.element,\n options = this.options,\n image = this.image; // Create cropper elements\n\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image); // Hide the original image\n\n addClass(element, CLASS_HIDDEN); // Inserts the cropper after to the current image\n\n container.insertBefore(cropper, element.nextSibling); // Show the image if is hidden\n\n if (!this.isImg) {\n removeClass(image, CLASS_HIDE);\n }\n\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n\n if (options.autoCrop) {\n this.crop();\n }\n\n this.setData(options.data);\n\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n\n this.ready = false;\n this.unbind();\n this.resetPreview();\n this.cropper.parentNode.removeChild(this.cropper);\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n\n return Cropper;\n }();\n\n assign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\n return Cropper;\n\n})));\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var checkboardCache = {};\n\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\n\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = reactCSS({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return isValidElement(children) ? React.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : React.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexport default Checkboard;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\n\nimport Checkboard from './Checkboard';\n\nexport var Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = reactCSS({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(\n 'div',\n { style: styles.checkboard },\n React.createElement(Checkboard, { renderers: this.props.renderers })\n ),\n React.createElement('div', { style: styles.gradient }),\n React.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(PureComponent || Component);\n\nexport default Alpha;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nexport var EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? React.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(PureComponent || Component);\n\nexport default EditableInput;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\n\nexport var Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = reactCSS({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(PureComponent || Component);\n\nexport default Hue;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nexport var Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = reactCSS(merge({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('div', { style: styles.bg }),\n React.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: PropTypes.string,\n zDepth: PropTypes.oneOf([0, 1, 2, 3, 4, 5]),\n radius: PropTypes.number,\n styles: PropTypes.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexport default Raised;","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash-es/throttle';\nimport * as saturation from '../../helpers/saturation';\n\nexport var Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = reactCSS({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return React.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n React.createElement('div', { style: styles.black, className: 'saturation-black' }),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(PureComponent || Component);\n\nexport default Saturation;","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import each from 'lodash-es/each';\nimport tinycolor from 'tinycolor2';\n\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nexport var toState = function toState(data, oldHue) {\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\n\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nexport var red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return tinycolor(type + ' (' + stringWithoutDegree + ')')._ok;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport * as color from '../../helpers/color';\n\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(PureComponent || Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexport default ColorWrap;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable no-invalid-this */\nimport React from 'react';\n\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(React.Component);\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\n\nimport Checkboard from './Checkboard';\n\nvar ENTER = 13;\n\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return React.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexport default handleFocus(Swatch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default AlphaPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { ColorWrap, Alpha } from '../common';\nimport AlphaPointer from './AlphaPointer';\n\nexport var AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n React.createElement(Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: AlphaPointer\n};\n\nexport default ColorWrap(AlphaPicker);","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport { Swatch } from '../common';\n\nexport var BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n map(colors, function (c) {\n return React.createElement(Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default BlockSwatches;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Checkboard } from '../common';\nimport BlockSwatches from './BlockSwatches';\n\nexport var Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.head },\n transparent && React.createElement(Checkboard, { borderRadius: '6px 6px 0 0' }),\n React.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(BlockSwatches, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n React.createElement(EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['top', 'hide']),\n styles: PropTypes.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexport default ColorWrap(Block);","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexport default handleHover(CircleSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap } from '../common';\nimport CircleSwatch from './CircleSwatch';\n\nexport var Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n map(colors, function (c) {\n return React.createElement(CircleSwatch, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n circleSize: PropTypes.number,\n circleSpacing: PropTypes.number,\n styles: PropTypes.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexport default ColorWrap(Circle);","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport isUndefined from 'lodash-es/isUndefined';\n\nimport { EditableInput } from '../common';\nimport UnfoldMoreHorizontalIcon from '@icons/material/UnfoldMoreHorizontalIcon';\n\nexport var ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!isUndefined(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!isUndefined(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n React.createElement(\n 'div',\n { style: styles.toggle },\n React.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n React.createElement(UnfoldMoreHorizontalIcon, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(React.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexport default ChromeFields;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointer = function ChromePointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointerCircle = function ChromePointerCircle() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointerCircle;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport ChromeFields from './ChromeFields';\nimport ChromePointer from './ChromePointer';\nimport ChromePointerCircle from './ChromePointerCircle';\n\nexport var Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: ChromePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement('div', { style: styles.active }),\n React.createElement(Checkboard, { renderers: renderers })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.toggles },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: ChromePointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: ChromePointer,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n React.createElement(ChromeFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disableAlpha: PropTypes.bool,\n styles: PropTypes.object,\n defaultView: PropTypes.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexport default ColorWrap(Chrome);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\n\nexport var CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return React.createElement(\n Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement('div', { style: styles.dot })\n );\n};\n\nexport default CompactColor;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { EditableInput } from '../common';\n\nexport var CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement('div', { style: styles.active }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexport default CompactFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, Raised } from '../common';\nimport CompactColor from './CompactColor';\nimport CompactFields from './CompactFields';\n\nexport var Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return React.createElement(\n Raised,\n { style: styles.Compact, styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n React.createElement(\n 'div',\n null,\n map(colors, function (c) {\n return React.createElement(CompactColor, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n ),\n React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexport default ColorWrap(Compact);","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexport default handleHover(GithubSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap } from '../common';\nimport GithubSwatch from './GithubSwatch';\n\nexport var Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n map(colors, function (c) {\n return React.createElement(GithubSwatch, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: PropTypes.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Github);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport HuePointer from './HuePointer';\n\nexport var HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n React.createElement(Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: PropTypes.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: HuePointer,\n styles: {}\n};\n\nexport default ColorWrap(HuePicker);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Raised } from '../common';\n\nexport var Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n Raised,\n { styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default ColorWrap(Material);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.fieldSymbols },\n React.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexport default PhotoshopPicker;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = reactCSS({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.pointer },\n React.createElement(\n 'div',\n { style: styles.left },\n React.createElement('div', { style: styles.leftInside })\n ),\n React.createElement(\n 'div',\n { style: styles.right },\n React.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return React.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexport default PhotoshopButton;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement('div', { style: styles.new }),\n React.createElement('div', { style: styles.current })\n ),\n React.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexport default PhotoshopPreviews;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport PhotoshopFields from './PhotoshopFields';\nimport PhotoshopPointerCircle from './PhotoshopPointerCircle';\nimport PhotoshopPointer from './PhotoshopPointer';\nimport PhotoshopButton from './PhotoshopButton';\nimport PhotoshopPreviews from './PhotoshopPreviews';\n\nexport var Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n React.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: PhotoshopPointerCircle,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: PhotoshopPointer,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls },\n React.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.previews },\n React.createElement(PhotoshopPreviews, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n React.createElement(\n 'div',\n { style: styles.actions },\n React.createElement(PhotoshopButton, { label: 'OK', onClick: this.props.onAccept, active: true }),\n React.createElement(PhotoshopButton, { label: 'Cancel', onClick: this.props.onCancel }),\n React.createElement(PhotoshopFields, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(React.Component);\n\nPhotoshop.propTypes = {\n header: PropTypes.string,\n styles: PropTypes.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexport default ColorWrap(Photoshop);","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexport default SketchFields;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return React.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n React.createElement(Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n title: PropTypes.string\n })])).isRequired\n};\n\nexport default SketchPresetColors;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\n\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.sliders },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(Checkboard, null),\n React.createElement('div', { style: styles.activeColor })\n )\n ),\n React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexport default ColorWrap(Sketch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return React.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexport default SliderSwatch;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport SliderSwatch from './SliderSwatch';\n\nexport var SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default SliderSwatches;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport SliderSwatches from './SliderSwatches';\nimport SliderPointer from './SliderPointer';\n\nexport var Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(SliderSwatches, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: PropTypes.object\n};\nSlider.defaultProps = {\n pointer: SliderPointer,\n styles: {}\n};\n\nexport default ColorWrap(Slider);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\nimport CheckIcon from '@icons/material/CheckIcon';\n\nexport var SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return React.createElement(\n Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement(\n 'div',\n { style: styles.check },\n React.createElement(CheckIcon, null)\n )\n );\n};\n\nexport default SwatchesColor;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport SwatchesColor from './SwatchesColor';\n\nexport var SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.group },\n map(group, function (color, i) {\n return React.createElement(SwatchesColor, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexport default SwatchesGroup;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap, Raised } from '../common';\nimport SwatchesGroup from './SwatchesGroup';\n\nexport var Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n React.createElement(\n Raised,\n null,\n React.createElement(\n 'div',\n { style: styles.overflow },\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (group) {\n return React.createElement(SwatchesGroup, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n styles: PropTypes.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexport default ColorWrap(Swatches);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Swatch } from '../common';\n\nexport var Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (c, i) {\n return React.createElement(Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n React.createElement(EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right']),\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Twitter);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointer = function GooglePointer(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\n\nexport var GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.column },\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default GoogleFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport GooglePointerCircle from './GooglePointerCircle';\nimport GooglePointer from './GooglePointer';\nimport GoogleFields from './GoogleFields';\n\nexport var Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n React.createElement('div', { style: styles.swatch }),\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: GooglePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: GooglePointer,\n onChange: onChange\n })\n )\n ),\n React.createElement(GoogleFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object,\n header: PropTypes.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexport default ColorWrap(Google);","import { useRef } from \"react\";\n\n// Saves incoming handler to the ref in order to avoid \"useCallback hell\"\nexport function useEventCallback(handler?: (value: T) => void): (value: T) => void {\n const callbackRef = useRef(handler);\n const fn = useRef((value: T) => {\n callbackRef.current && callbackRef.current(value);\n });\n callbackRef.current = handler;\n\n return fn.current;\n}\n","// Clamps a value between an upper and lower bound.\n// We use ternary operators because it makes the minified code\n// 2 times shorter then `Math.min(Math.max(a,b),c)`\nexport const clamp = (number: number, min = 0, max = 1): number => {\n return number > max ? max : number < min ? min : number;\n};\n","import React, { useRef, useMemo, useEffect } from \"react\";\n\nimport { useEventCallback } from \"../../hooks/useEventCallback\";\nimport { clamp } from \"../../utils/clamp\";\n\nexport interface Interaction {\n left: number;\n top: number;\n}\n\n// Check if an event was triggered by touch\nconst isTouch = (event: MouseEvent | TouchEvent): event is TouchEvent => \"touches\" in event;\n\n// Finds a proper touch point by its identifier\nconst getTouchPoint = (touches: TouchList, touchId: null | number): Touch => {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i].identifier === touchId) return touches[i];\n }\n return touches[0];\n};\n\n// Finds the proper window object to fix iframe embedding issues\nconst getParentWindow = (node?: HTMLDivElement | null): Window => {\n return (node && node.ownerDocument.defaultView) || self;\n};\n\n// Returns a relative position of the pointer inside the node's bounding box\nconst getRelativePosition = (\n node: HTMLDivElement,\n event: MouseEvent | TouchEvent,\n touchId: null | number\n): Interaction => {\n const rect = node.getBoundingClientRect();\n\n // Get user's pointer position from `touches` array if it's a `TouchEvent`\n const pointer = isTouch(event) ? getTouchPoint(event.touches, touchId) : (event as MouseEvent);\n\n return {\n left: clamp((pointer.pageX - (rect.left + getParentWindow(node).pageXOffset)) / rect.width),\n top: clamp((pointer.pageY - (rect.top + getParentWindow(node).pageYOffset)) / rect.height),\n };\n};\n\n// Browsers introduced an intervention, making touch events passive by default.\n// This workaround removes `preventDefault` call from the touch handlers.\n// https://github.com/facebook/react/issues/19651\nconst preventDefaultMove = (event: MouseEvent | TouchEvent): void => {\n !isTouch(event) && event.preventDefault();\n};\n\n// Prevent mobile browsers from handling mouse events (conflicting with touch ones).\n// If we detected a touch interaction before, we prefer reacting to touch events only.\nconst isInvalid = (event: MouseEvent | TouchEvent, hasTouch: boolean): boolean => {\n return hasTouch && !isTouch(event);\n};\n\ninterface Props {\n onMove: (interaction: Interaction) => void;\n onKey: (offset: Interaction) => void;\n children: React.ReactNode;\n}\n\nconst InteractiveBase = ({ onMove, onKey, ...rest }: Props) => {\n const container = useRef(null);\n const onMoveCallback = useEventCallback(onMove);\n const onKeyCallback = useEventCallback(onKey);\n const touchId = useRef(null);\n const hasTouch = useRef(false);\n\n const [handleMoveStart, handleKeyDown, toggleDocumentEvents] = useMemo(() => {\n const handleMoveStart = ({ nativeEvent }: React.MouseEvent | React.TouchEvent) => {\n const el = container.current;\n if (!el) return;\n\n // Prevent text selection\n preventDefaultMove(nativeEvent);\n\n if (isInvalid(nativeEvent, hasTouch.current) || !el) return;\n\n if (isTouch(nativeEvent)) {\n hasTouch.current = true;\n const changedTouches = nativeEvent.changedTouches || [];\n if (changedTouches.length) touchId.current = changedTouches[0].identifier;\n }\n\n el.focus();\n onMoveCallback(getRelativePosition(el, nativeEvent, touchId.current));\n toggleDocumentEvents(true);\n };\n\n const handleMove = (event: MouseEvent | TouchEvent) => {\n // Prevent text selection\n preventDefaultMove(event);\n\n // If user moves the pointer outside of the window or iframe bounds and release it there,\n // `mouseup`/`touchend` won't be fired. In order to stop the picker from following the cursor\n // after the user has moved the mouse/finger back to the document, we check `event.buttons`\n // and `event.touches`. It allows us to detect that the user is just moving his pointer\n // without pressing it down\n const isDown = isTouch(event) ? event.touches.length > 0 : event.buttons > 0;\n\n if (isDown && container.current) {\n onMoveCallback(getRelativePosition(container.current, event, touchId.current));\n } else {\n toggleDocumentEvents(false);\n }\n };\n\n const handleMoveEnd = () => toggleDocumentEvents(false);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n\n // Ignore all keys except arrow ones\n if (keyCode < 37 || keyCode > 40) return;\n // Do not scroll page by arrow keys when document is focused on the element\n event.preventDefault();\n // Send relative offset to the parent component.\n // We use codes (37←, 38↑, 39→, 40↓) instead of keys ('ArrowRight', 'ArrowDown', etc)\n // to reduce the size of the library\n onKeyCallback({\n left: keyCode === 39 ? 0.05 : keyCode === 37 ? -0.05 : 0,\n top: keyCode === 40 ? 0.05 : keyCode === 38 ? -0.05 : 0,\n });\n };\n\n function toggleDocumentEvents(state?: boolean) {\n const touch = hasTouch.current;\n const el = container.current;\n const parentWindow = getParentWindow(el);\n\n // Add or remove additional pointer event listeners\n const toggleEvent = state ? parentWindow.addEventListener : parentWindow.removeEventListener;\n toggleEvent(touch ? \"touchmove\" : \"mousemove\", handleMove);\n toggleEvent(touch ? \"touchend\" : \"mouseup\", handleMoveEnd);\n }\n\n return [handleMoveStart, handleKeyDown, toggleDocumentEvents];\n }, [onKeyCallback, onMoveCallback]);\n\n // Remove window event listeners before unmounting\n useEffect(() => toggleDocumentEvents, [toggleDocumentEvents]);\n\n return (\n \n );\n};\n\nexport const Interactive = React.memo(InteractiveBase);\n","export const formatClassName = (names: unknown[]): string => names.filter(Boolean).join(\" \");\n","import React from \"react\";\nimport { formatClassName } from \"../../utils/format\";\n\ninterface Props {\n className?: string;\n top?: number;\n left: number;\n color: string;\n}\n\nexport const Pointer = ({ className, color, left, top = 0.5 }: Props): JSX.Element => {\n const nodeClassName = formatClassName([\"react-colorful__pointer\", className]);\n\n const style = {\n top: `${top * 100}%`,\n left: `${left * 100}%`,\n };\n\n return (\n
\n
\n
\n );\n};\n","export const round = (number: number, digits = 0, base = Math.pow(10, digits)): number => {\n return Math.round(base * number) / base;\n};\n","import { round } from \"./round\";\nimport { RgbaColor, RgbColor, HslaColor, HslColor, HsvaColor, HsvColor } from \"../types\";\n\n/**\n * Valid CSS units.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/angle\n */\nconst angleUnits: Record = {\n grad: 360 / 400,\n turn: 360,\n rad: 360 / (Math.PI * 2),\n};\n\nexport const hexToHsva = (hex: string): HsvaColor => rgbaToHsva(hexToRgba(hex));\n\nexport const hexToRgba = (hex: string): RgbaColor => {\n if (hex[0] === \"#\") hex = hex.substr(1);\n\n if (hex.length < 6) {\n return {\n r: parseInt(hex[0] + hex[0], 16),\n g: parseInt(hex[1] + hex[1], 16),\n b: parseInt(hex[2] + hex[2], 16),\n a: 1,\n };\n }\n\n return {\n r: parseInt(hex.substr(0, 2), 16),\n g: parseInt(hex.substr(2, 2), 16),\n b: parseInt(hex.substr(4, 2), 16),\n a: 1,\n };\n};\n\nexport const parseHue = (value: string, unit = \"deg\"): number => {\n return Number(value) * (angleUnits[unit] || 1);\n};\n\nexport const hslaStringToHsva = (hslString: string): HsvaColor => {\n const matcher = /hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n const match = matcher.exec(hslString);\n\n if (!match) return { h: 0, s: 0, v: 0, a: 1 };\n\n return hslaToHsva({\n h: parseHue(match[1], match[2]),\n s: Number(match[3]),\n l: Number(match[4]),\n a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1),\n });\n};\n\nexport const hslStringToHsva = hslaStringToHsva;\n\nexport const hslaToHsva = ({ h, s, l, a }: HslaColor): HsvaColor => {\n s *= (l < 50 ? l : 100 - l) / 100;\n\n return {\n h: h,\n s: s > 0 ? ((2 * s) / (l + s)) * 100 : 0,\n v: l + s,\n a,\n };\n};\n\nexport const hsvaToHex = (hsva: HsvaColor): string => rgbaToHex(hsvaToRgba(hsva));\n\nexport const hsvaToHsla = ({ h, s, v, a }: HsvaColor): HslaColor => {\n const hh = ((200 - s) * v) / 100;\n\n return {\n h: round(h),\n s: round(hh > 0 && hh < 200 ? ((s * v) / 100 / (hh <= 100 ? hh : 200 - hh)) * 100 : 0),\n l: round(hh / 2),\n a: round(a, 2),\n };\n};\n\nexport const hsvaToHslString = (hsva: HsvaColor): string => {\n const { h, s, l } = hsvaToHsla(hsva);\n return `hsl(${h}, ${s}%, ${l}%)`;\n};\n\nexport const hsvaToHsvString = (hsva: HsvaColor): string => {\n const { h, s, v } = roundHsva(hsva);\n return `hsv(${h}, ${s}%, ${v}%)`;\n};\n\nexport const hsvaToHsvaString = (hsva: HsvaColor): string => {\n const { h, s, v, a } = roundHsva(hsva);\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\n};\n\nexport const hsvaToHslaString = (hsva: HsvaColor): string => {\n const { h, s, l, a } = hsvaToHsla(hsva);\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\n};\n\nexport const hsvaToRgba = ({ h, s, v, a }: HsvaColor): RgbaColor => {\n h = (h / 360) * 6;\n s = s / 100;\n v = v / 100;\n\n const hh = Math.floor(h),\n b = v * (1 - s),\n c = v * (1 - (h - hh) * s),\n d = v * (1 - (1 - h + hh) * s),\n module = hh % 6;\n\n return {\n r: round([v, c, b, b, d, v][module] * 255),\n g: round([d, v, v, c, b, b][module] * 255),\n b: round([b, b, d, v, v, c][module] * 255),\n a: round(a, 2),\n };\n};\n\nexport const hsvaToRgbString = (hsva: HsvaColor): string => {\n const { r, g, b } = hsvaToRgba(hsva);\n return `rgb(${r}, ${g}, ${b})`;\n};\n\nexport const hsvaToRgbaString = (hsva: HsvaColor): string => {\n const { r, g, b, a } = hsvaToRgba(hsva);\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n};\n\nexport const hsvaStringToHsva = (hsvString: string): HsvaColor => {\n const matcher = /hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n const match = matcher.exec(hsvString);\n\n if (!match) return { h: 0, s: 0, v: 0, a: 1 };\n\n return roundHsva({\n h: parseHue(match[1], match[2]),\n s: Number(match[3]),\n v: Number(match[4]),\n a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1),\n });\n};\n\nexport const hsvStringToHsva = hsvaStringToHsva;\n\nexport const rgbaStringToHsva = (rgbaString: string): HsvaColor => {\n const matcher = /rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n const match = matcher.exec(rgbaString);\n\n if (!match) return { h: 0, s: 0, v: 0, a: 1 };\n\n return rgbaToHsva({\n r: Number(match[1]) / (match[2] ? 100 / 255 : 1),\n g: Number(match[3]) / (match[4] ? 100 / 255 : 1),\n b: Number(match[5]) / (match[6] ? 100 / 255 : 1),\n a: match[7] === undefined ? 1 : Number(match[7]) / (match[8] ? 100 : 1),\n });\n};\n\nexport const rgbStringToHsva = rgbaStringToHsva;\n\nconst format = (number: number) => {\n const hex = number.toString(16);\n return hex.length < 2 ? \"0\" + hex : hex;\n};\n\nexport const rgbaToHex = ({ r, g, b }: RgbaColor): string => {\n return \"#\" + format(r) + format(g) + format(b);\n};\n\nexport const rgbaToHsva = ({ r, g, b, a }: RgbaColor): HsvaColor => {\n const max = Math.max(r, g, b);\n const delta = max - Math.min(r, g, b);\n\n // prettier-ignore\n const hh = delta\n ? max === r\n ? (g - b) / delta\n : max === g\n ? 2 + (b - r) / delta\n : 4 + (r - g) / delta\n : 0;\n\n return {\n h: round(60 * (hh < 0 ? hh + 6 : hh)),\n s: round(max ? (delta / max) * 100 : 0),\n v: round((max / 255) * 100),\n a,\n };\n};\n\nexport const roundHsva = (hsva: HsvaColor): HsvaColor => ({\n h: round(hsva.h),\n s: round(hsva.s),\n v: round(hsva.v),\n a: round(hsva.a, 2),\n});\n\nexport const rgbaToRgb = ({ r, g, b }: RgbaColor): RgbColor => ({ r, g, b });\n\nexport const hslaToHsl = ({ h, s, l }: HslaColor): HslColor => ({ h, s, l });\n\nexport const hsvaToHsv = (hsva: HsvaColor): HsvColor => {\n const { h, s, v } = roundHsva(hsva);\n return { h, s, v };\n};\n","import React from \"react\";\n\nimport { Interactive, Interaction } from \"./Interactive\";\nimport { Pointer } from \"./Pointer\";\n\nimport { hsvaToHslString } from \"../../utils/convert\";\nimport { formatClassName } from \"../../utils/format\";\nimport { clamp } from \"../../utils/clamp\";\nimport { round } from \"../../utils/round\";\n\ninterface Props {\n className?: string;\n hue: number;\n onChange: (newHue: { h: number }) => void;\n}\n\nconst HueBase = ({ className, hue, onChange }: Props) => {\n const handleMove = (interaction: Interaction) => {\n onChange({ h: 360 * interaction.left });\n };\n\n const handleKey = (offset: Interaction) => {\n // Hue measured in degrees of the color circle ranging from 0 to 360\n onChange({\n h: clamp(hue + offset.left * 360, 0, 360),\n });\n };\n\n const nodeClassName = formatClassName([\"react-colorful__hue\", className]);\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport const Hue = React.memo(HueBase);\n","import React from \"react\";\nimport { Interactive, Interaction } from \"./Interactive\";\nimport { Pointer } from \"./Pointer\";\nimport { HsvaColor } from \"../../types\";\nimport { hsvaToHslString } from \"../../utils/convert\";\nimport { clamp } from \"../../utils/clamp\";\nimport { round } from \"../../utils/round\";\n\ninterface Props {\n hsva: HsvaColor;\n onChange: (newColor: { s: number; v: number }) => void;\n}\n\nconst SaturationBase = ({ hsva, onChange }: Props) => {\n const handleMove = (interaction: Interaction) => {\n onChange({\n s: interaction.left * 100,\n v: 100 - interaction.top * 100,\n });\n };\n\n const handleKey = (offset: Interaction) => {\n // Saturation and brightness always fit into [0, 100] range\n onChange({\n s: clamp(hsva.s + offset.left * 100, 0, 100),\n v: clamp(hsva.v - offset.top * 100, 0, 100),\n });\n };\n\n const containerStyle = {\n backgroundColor: hsvaToHslString({ h: hsva.h, s: 100, v: 100, a: 1 }),\n };\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport const Saturation = React.memo(SaturationBase);\n","import { hexToRgba } from \"./convert\";\nimport { ObjectColor } from \"../types\";\n\nexport const equalColorObjects = (first: ObjectColor, second: ObjectColor): boolean => {\n if (first === second) return true;\n\n for (const prop in first) {\n // The following allows for a type-safe calling of this function (first & second have to be HSL, HSV, or RGB)\n // with type-unsafe iterating over object keys. TS does not allow this without an index (`[key: string]: number`)\n // on an object to define how iteration is normally done. To ensure extra keys are not allowed on our types,\n // we must cast our object to unknown (as RGB demands `r` be a key, while `Record` does not care if\n // there is or not), and then as a type TS can iterate over.\n if (\n ((first as unknown) as Record)[prop] !==\n ((second as unknown) as Record)[prop]\n )\n return false;\n }\n\n return true;\n};\n\nexport const equalColorString = (first: string, second: string): boolean => {\n return first.replace(/\\s/g, \"\") === second.replace(/\\s/g, \"\");\n};\n\nexport const equalHex = (first: string, second: string): boolean => {\n if (first.toLowerCase() === second.toLowerCase()) return true;\n\n // To compare colors like `#FFF` and `ffffff` we convert them into RGB objects\n return equalColorObjects(hexToRgba(first), hexToRgba(second));\n};\n","import { useState, useEffect, useCallback, useRef } from \"react\";\nimport { ColorModel, AnyColor, HsvaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { useEventCallback } from \"./useEventCallback\";\n\nexport function useColorManipulation(\n colorModel: ColorModel,\n color: T,\n onChange?: (color: T) => void\n): [HsvaColor, (color: Partial) => void] {\n // Save onChange callback in the ref for avoiding \"useCallback hell\"\n const onChangeCallback = useEventCallback(onChange);\n\n // No matter which color model is used (HEX, RGB(A) or HSL(A)),\n // all internal calculations are based on HSVA model\n const [hsva, updateHsva] = useState(() => colorModel.toHsva(color));\n\n // By using this ref we're able to prevent extra updates\n // and the effects recursion during the color conversion\n const cache = useRef({ color, hsva });\n\n // Update local HSVA-value if `color` property value is changed,\n // but only if that's not the same color that we just sent to the parent\n useEffect(() => {\n if (!colorModel.equal(color, cache.current.color)) {\n const newHsva = colorModel.toHsva(color);\n cache.current = { hsva: newHsva, color };\n updateHsva(newHsva);\n }\n }, [color, colorModel]);\n\n // Trigger `onChange` callback only if an updated color is different from cached one;\n // save the new color to the ref to prevent unnecessary updates\n useEffect(() => {\n let newColor;\n if (\n !equalColorObjects(hsva, cache.current.hsva) &&\n !colorModel.equal((newColor = colorModel.fromHsva(hsva)), cache.current.color)\n ) {\n cache.current = { hsva, color: newColor };\n onChangeCallback(newColor);\n }\n }, [hsva, colorModel, onChangeCallback]);\n\n // Merge the current HSVA color object with updated params.\n // For example, when a child component sends `h` or `s` only\n const handleChange = useCallback((params: Partial) => {\n updateHsva((current) => Object.assign({}, current, params));\n }, []);\n\n return [hsva, handleChange];\n}\n","declare const __webpack_nonce__: string | undefined;\nlet nonce: string | undefined;\n\n/**\n * Returns a nonce hash included by Webpack or the one defined manually by developer.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce\n * https://webpack.js.org/guides/csp/\n */\nexport const getNonce = (): string | undefined => {\n if (nonce) return nonce;\n if (typeof __webpack_nonce__ !== \"undefined\") return __webpack_nonce__;\n return undefined;\n};\n\n/**\n * Signs the style tag with a base64-encoded string (nonce) to conforms to Content Security Policies.\n * This function has to be invoked before any picker is rendered if you aren't using Webpack for CSP.\n */\nexport const setNonce = (hash: string): void => {\n nonce = hash;\n};\n","import { useLayoutEffect, useEffect } from \"react\";\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nexport const useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n","import { RefObject } from \"react\";\n\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { getNonce } from \"../utils/nonce\";\n\n// Bundler is configured to load this as a processed minified CSS-string\nimport styles from \"../css/styles.css\";\n\nconst styleElementMap: Map = new Map();\n\n/**\n * Injects CSS code into the document's \n */\nexport const useStyleSheet = (nodeRef: RefObject): void => {\n useIsomorphicLayoutEffect(() => {\n const parentDocument = nodeRef.current ? nodeRef.current.ownerDocument : document;\n\n if (typeof parentDocument !== \"undefined\" && !styleElementMap.has(parentDocument)) {\n const styleElement = parentDocument.createElement(\"style\");\n styleElement.innerHTML = styles;\n styleElementMap.set(parentDocument, styleElement);\n\n // Conform to CSP rules by setting `nonce` attribute to the inline styles\n const nonce = getNonce();\n if (nonce) styleElement.setAttribute(\"nonce\", nonce);\n\n parentDocument.head.appendChild(styleElement);\n }\n }, []);\n};\n","import React, { useRef } from \"react\";\n\nimport { Hue } from \"./Hue\";\nimport { Saturation } from \"./Saturation\";\n\nimport { ColorModel, ColorPickerBaseProps, AnyColor } from \"../../types\";\nimport { useColorManipulation } from \"../../hooks/useColorManipulation\";\nimport { useStyleSheet } from \"../../hooks/useStyleSheet\";\nimport { formatClassName } from \"../../utils/format\";\n\ninterface Props extends Partial> {\n colorModel: ColorModel;\n}\n\nexport const ColorPicker = ({\n className,\n colorModel,\n color = colorModel.defaultColor,\n onChange,\n ...rest\n}: Props): JSX.Element => {\n const nodeRef = useRef(null);\n useStyleSheet(nodeRef);\n\n const [hsva, updateHsva] = useColorManipulation(colorModel, color, onChange);\n\n const nodeClassName = formatClassName([\"react-colorful\", className]);\n\n return (\n
\n \n \n
\n );\n};\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalHex } from \"../utils/compare\";\nimport { hexToHsva, hsvaToHex } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"000\",\n toHsva: hexToHsva,\n fromHsva: hsvaToHex,\n equal: equalHex,\n};\n\nexport const HexColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { Interactive, Interaction } from \"./Interactive\";\nimport { Pointer } from \"./Pointer\";\n\nimport { hsvaToHslaString } from \"../../utils/convert\";\nimport { formatClassName } from \"../../utils/format\";\nimport { clamp } from \"../../utils/clamp\";\nimport { round } from \"../../utils/round\";\nimport { HsvaColor } from \"../../types\";\n\ninterface Props {\n className?: string;\n hsva: HsvaColor;\n onChange: (newAlpha: { a: number }) => void;\n}\n\nexport const Alpha = ({ className, hsva, onChange }: Props): JSX.Element => {\n const handleMove = (interaction: Interaction) => {\n onChange({ a: interaction.left });\n };\n\n const handleKey = (offset: Interaction) => {\n // Alpha always fit into [0, 1] range\n onChange({ a: clamp(hsva.a + offset.left) });\n };\n\n // We use `Object.assign` instead of the spread operator\n // to prevent adding the polyfill (about 150 bytes gzipped)\n const colorFrom = hsvaToHslaString(Object.assign({}, hsva, { a: 0 }));\n const colorTo = hsvaToHslaString(Object.assign({}, hsva, { a: 1 }));\n\n const gradientStyle = {\n backgroundImage: `linear-gradient(90deg, ${colorFrom}, ${colorTo})`,\n };\n\n const nodeClassName = formatClassName([\"react-colorful__alpha\", className]);\n\n return (\n
\n
\n \n \n \n
\n );\n};\n","import React, { useRef } from \"react\";\n\nimport { Hue } from \"./Hue\";\nimport { Saturation } from \"./Saturation\";\nimport { Alpha } from \"./Alpha\";\n\nimport { ColorModel, ColorPickerBaseProps, AnyColor } from \"../../types\";\nimport { useColorManipulation } from \"../../hooks/useColorManipulation\";\nimport { useStyleSheet } from \"../../hooks/useStyleSheet\";\nimport { formatClassName } from \"../../utils/format\";\n\ninterface Props extends Partial> {\n colorModel: ColorModel;\n}\n\nexport const AlphaColorPicker = ({\n className,\n colorModel,\n color = colorModel.defaultColor,\n onChange,\n ...rest\n}: Props): JSX.Element => {\n const nodeRef = useRef(null);\n useStyleSheet(nodeRef);\n\n const [hsva, updateHsva] = useColorManipulation(colorModel, color, onChange);\n\n const nodeClassName = formatClassName([\"react-colorful\", className]);\n\n return (\n
\n \n \n \n
\n );\n};\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HslaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { hslaToHsva, hsvaToHsla } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, l: 0, a: 1 },\n toHsva: hslaToHsva,\n fromHsva: hsvaToHsla,\n equal: equalColorObjects,\n};\n\nexport const HslaColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hslaStringToHsva, hsvaToHslaString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsla(0, 0%, 0%, 1)\",\n toHsva: hslaStringToHsva,\n fromHsva: hsvaToHslaString,\n equal: equalColorString,\n};\n\nexport const HslaStringColorPicker = (\n props: Partial>\n): JSX.Element => ;\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HslColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { hslaToHsva, hsvaToHsla, hslaToHsl } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, l: 0 },\n toHsva: ({ h, s, l }) => hslaToHsva({ h, s, l, a: 1 }),\n fromHsva: (hsva) => hslaToHsl(hsvaToHsla(hsva)),\n equal: equalColorObjects,\n};\n\nexport const HslColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hslStringToHsva, hsvaToHslString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsl(0, 0%, 0%)\",\n toHsva: hslStringToHsva,\n fromHsva: hsvaToHslString,\n equal: equalColorString,\n};\n\nexport const HslStringColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HsvaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { roundHsva } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, v: 0, a: 1 },\n toHsva: (hsva) => hsva,\n fromHsva: roundHsva,\n equal: equalColorObjects,\n};\n\nexport const HsvaColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hsvaStringToHsva, hsvaToHsvaString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsva(0, 0%, 0%, 1)\",\n toHsva: hsvaStringToHsva,\n fromHsva: hsvaToHsvaString,\n equal: equalColorString,\n};\n\nexport const HsvaStringColorPicker = (\n props: Partial>\n): JSX.Element => ;\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HsvColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { hsvaToHsv } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, v: 0 },\n toHsva: ({ h, s, v }) => ({ h, s, v, a: 1 }),\n fromHsva: hsvaToHsv,\n equal: equalColorObjects,\n};\n\nexport const HsvColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hsvStringToHsva, hsvaToHsvString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsv(0, 0%, 0%)\",\n toHsva: hsvStringToHsva,\n fromHsva: hsvaToHsvString,\n equal: equalColorString,\n};\n\nexport const HsvStringColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, RgbaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { rgbaToHsva, hsvaToRgba } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { r: 0, g: 0, b: 0, a: 1 },\n toHsva: rgbaToHsva,\n fromHsva: hsvaToRgba,\n equal: equalColorObjects,\n};\n\nexport const RgbaColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { rgbaStringToHsva, hsvaToRgbaString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"rgba(0, 0, 0, 1)\",\n toHsva: rgbaStringToHsva,\n fromHsva: hsvaToRgbaString,\n equal: equalColorString,\n};\n\nexport const RgbaStringColorPicker = (\n props: Partial>\n): JSX.Element => ;\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, RgbColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { rgbaToHsva, hsvaToRgba, rgbaToRgb } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { r: 0, g: 0, b: 0 },\n toHsva: ({ r, g, b }) => rgbaToHsva({ r, g, b, a: 1 }),\n fromHsva: (hsva) => rgbaToRgb(hsvaToRgba(hsva)),\n equal: equalColorObjects,\n};\n\nexport const RgbColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { rgbStringToHsva, hsvaToRgbString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"rgb(0, 0, 0)\",\n toHsva: rgbStringToHsva,\n fromHsva: hsvaToRgbString,\n equal: equalColorString,\n};\n\nexport const RgbStringColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","const matcher = /^#?([0-9A-F]{3,8})$/i;\n\nexport const validHex = (value: string, alpha?: boolean): boolean => {\n const match = matcher.exec(value);\n const length = match ? match[1].length : 0;\n\n return (\n length === 3 || // '#rgb' format\n length === 6 || // '#rrggbb' format\n (!!alpha && length === 4) || // '#rgba' format\n (!!alpha && length === 8) // '#rrggbbaa' format\n );\n};\n","import React, { useState, useEffect, useCallback } from \"react\";\n\nimport { useEventCallback } from \"../../hooks/useEventCallback\";\nimport { ColorInputBaseProps } from \"../../types\";\n\ninterface Props extends ColorInputBaseProps {\n /** Blocks typing invalid characters and limits string length */\n escape: (value: string) => string;\n /** Checks that value is valid color string */\n validate: (value: string) => boolean;\n /** Processes value before displaying it in the input */\n format?: (value: string) => string;\n /** Processes value before sending it in `onChange` */\n process?: (value: string) => string;\n}\n\nexport const ColorInput = (props: Props): JSX.Element => {\n const { color = \"\", onChange, onBlur, escape, validate, format, process, ...rest } = props;\n const [value, setValue] = useState(() => escape(color));\n const onChangeCallback = useEventCallback(onChange);\n const onBlurCallback = useEventCallback>(onBlur);\n\n // Trigger `onChange` handler only if the input value is a valid color\n const handleChange = useCallback(\n (e: React.ChangeEvent) => {\n const inputValue = escape(e.target.value);\n setValue(inputValue);\n if (validate(inputValue)) onChangeCallback(process ? process(inputValue) : inputValue);\n },\n [escape, process, validate, onChangeCallback]\n );\n\n // Take the color from props if the last typed color (in local state) is not valid\n const handleBlur = useCallback(\n (e: React.FocusEvent) => {\n if (!validate(e.target.value)) setValue(escape(color));\n onBlurCallback(e);\n },\n [color, escape, validate, onBlurCallback]\n );\n\n // Update the local state when `color` property value is changed\n useEffect(() => {\n setValue(escape(color));\n }, [color, escape]);\n\n return (\n \n );\n};\n","import React, { useCallback } from \"react\";\nimport { ColorInputBaseProps } from \"../types\";\n\nimport { validHex } from \"../utils/validate\";\nimport { ColorInput } from \"./common/ColorInput\";\n\ninterface HexColorInputProps extends ColorInputBaseProps {\n /** Enables `#` prefix displaying */\n prefixed?: boolean;\n /** Allows `#rgba` and `#rrggbbaa` color formats */\n alpha?: boolean;\n}\n\n/** Adds \"#\" symbol to the beginning of the string */\nconst prefix = (value: string) => \"#\" + value;\n\nexport const HexColorInput = (props: HexColorInputProps): JSX.Element => {\n const { prefixed, alpha, ...rest } = props;\n\n /** Escapes all non-hexadecimal characters including \"#\" */\n const escape = useCallback(\n (value: string) => value.replace(/([^0-9A-F]+)/gi, \"\").substr(0, alpha ? 8 : 6),\n [alpha]\n );\n\n /** Validates hexadecimal strings */\n const validate = useCallback((value: string) => validHex(value, alpha), [alpha]);\n\n return (\n \n );\n};\n","import React, { useRef, useEffect } from 'react';\nimport Cropper from 'cropperjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar applyDefaultOptions = function (cropper, options) {\r\n if (options === void 0) { options = {}; }\r\n var _a = options.enable, enable = _a === void 0 ? true : _a, _b = options.scaleX, scaleX = _b === void 0 ? 1 : _b, _c = options.scaleY, scaleY = _c === void 0 ? 1 : _c, _d = options.zoomTo, zoomTo = _d === void 0 ? 0 : _d, rotateTo = options.rotateTo;\r\n enable ? cropper.enable() : cropper.disable();\r\n cropper.scaleX(scaleX);\r\n cropper.scaleY(scaleY);\r\n rotateTo !== undefined && cropper.rotateTo(rotateTo);\r\n zoomTo > 0 && cropper.zoomTo(zoomTo);\r\n};\r\n/**\r\n * sourced from: https://itnext.io/reusing-the-ref-from-forwardref-with-react-hooks-4ce9df693dd\r\n */\r\nvar useCombinedRefs = function () {\r\n var refs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n refs[_i] = arguments[_i];\r\n }\r\n var targetRef = useRef(null);\r\n React.useEffect(function () {\r\n refs.forEach(function (ref) {\r\n if (!ref)\r\n return;\r\n if (typeof ref === 'function') {\r\n ref(targetRef.current);\r\n }\r\n else {\r\n ref.current = targetRef.current;\r\n }\r\n });\r\n }, [refs]);\r\n return targetRef;\r\n};\r\nvar ReactCropper = React.forwardRef(function (_a, ref) {\r\n var props = __rest(_a, []);\r\n var _b = props.dragMode, dragMode = _b === void 0 ? 'crop' : _b, src = props.src, style = props.style, className = props.className, crossOrigin = props.crossOrigin, scaleX = props.scaleX, scaleY = props.scaleY, enable = props.enable, zoomTo = props.zoomTo, rotateTo = props.rotateTo, _c = props.alt, alt = _c === void 0 ? 'picture' : _c, ready = props.ready, onInitialized = props.onInitialized, rest = __rest(props, [\"dragMode\", \"src\", \"style\", \"className\", \"crossOrigin\", \"scaleX\", \"scaleY\", \"enable\", \"zoomTo\", \"rotateTo\", \"alt\", \"ready\", \"onInitialized\"]);\r\n var defaultOptions = { scaleY: scaleY, scaleX: scaleX, enable: enable, zoomTo: zoomTo, rotateTo: rotateTo };\r\n var innerRef = useRef(null);\r\n var combinedRef = useCombinedRefs(ref, innerRef);\r\n /**\r\n * Invoke zoomTo method when cropper is set and zoomTo prop changes\r\n */\r\n useEffect(function () {\r\n var _a;\r\n if (((_a = combinedRef.current) === null || _a === void 0 ? void 0 : _a.cropper) && typeof zoomTo === 'number') {\r\n combinedRef.current.cropper.zoomTo(zoomTo);\r\n }\r\n }, [props.zoomTo]);\r\n /**\r\n * re-render when src changes\r\n */\r\n useEffect(function () {\r\n var _a;\r\n if (((_a = combinedRef.current) === null || _a === void 0 ? void 0 : _a.cropper) && typeof src !== 'undefined') {\r\n combinedRef.current.cropper.reset().clear().replace(src);\r\n }\r\n }, [src]);\r\n useEffect(function () {\r\n if (combinedRef.current !== null) {\r\n var cropper = new Cropper(combinedRef.current, __assign(__assign({ dragMode: dragMode }, rest), { ready: function (e) {\r\n if (e.currentTarget !== null) {\r\n applyDefaultOptions(e.currentTarget.cropper, defaultOptions);\r\n }\r\n ready && ready(e);\r\n } }));\r\n onInitialized && onInitialized(cropper);\r\n }\r\n /**\r\n * destroy cropper on un-mount\r\n */\r\n return function () {\r\n var _a, _b;\r\n (_b = (_a = combinedRef.current) === null || _a === void 0 ? void 0 : _a.cropper) === null || _b === void 0 ? void 0 : _b.destroy();\r\n };\r\n }, [combinedRef]);\r\n return (React.createElement(\"div\", { style: style, className: className },\r\n React.createElement(\"img\", { crossOrigin: crossOrigin, src: src, alt: alt, style: { opacity: 0, maxWidth: '100%' }, ref: combinedRef })));\r\n});\n\nexport default ReactCropper;\nexport { ReactCropper as Cropper };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/admin/static/js/178.f52a4814.chunk.js b/admin/static/js/178.f52a4814.chunk.js new file mode 100644 index 000000000..bb41c0724 --- /dev/null +++ b/admin/static/js/178.f52a4814.chunk.js @@ -0,0 +1,473 @@ +var el=Math.pow;(self.webpackChunkjs=self.webpackChunkjs||[]).push([[178],{68551:function(l,r,e){var t=e(22858),a=e(46860),o=e(60379),h=e(80521);function E(T){return t(T)||a(T)||o(T)||h()}l.exports=E,l.exports.__esModule=!0,l.exports.default=l.exports},21112:function(l,r,e){"use strict";var t;t={value:!0};var a=Object.assign||function(i){for(var f=1;f=0||!Object.prototype.hasOwnProperty.call(i,b)||(u[b]=i[b]);return u}var g=24;r.Z=function(i){var f=i.fill,u=f===void 0?"currentColor":f,b=i.width,M=b===void 0?g:b,D=i.height,F=D===void 0?g:D,oe=i.style,J=oe===void 0?{}:oe,R=T(i,["fill","width","height","style"]);return h.default.createElement("svg",a({viewBox:"0 0 "+g+" "+g,style:a({fill:u,width:M,height:F},J)},R),h.default.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))}},47327:function(l,r,e){"use strict";var t;t={value:!0};var a=Object.assign||function(i){for(var f=1;f=0||!Object.prototype.hasOwnProperty.call(i,b)||(u[b]=i[b]);return u}var g=24;r.Z=function(i){var f=i.fill,u=f===void 0?"currentColor":f,b=i.width,M=b===void 0?g:b,D=i.height,F=D===void 0?g:D,oe=i.style,J=oe===void 0?{}:oe,R=T(i,["fill","width","height","style"]);return h.default.createElement("svg",a({viewBox:"0 0 "+g+" "+g,style:a({fill:u,width:M,height:F},J)},R),h.default.createElement("path",{d:"M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z"}))}},49021:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(50008)),o=t(e(34575)),h=t(e(93913)),E=t(e(81506)),T=t(e(2205)),g=t(e(78585)),i=t(e(29754)),f=t(e(59713)),u=t(e(4819)),b=e(49246),M=t(e(15854)),D=t(e(42390)),F=t(e(61318)),oe=t(e(72952)),J=t(e(91495));function R(L){var G=ae();return function(){var I=(0,i.default)(L),y;if(G){var P=(0,i.default)(this).constructor;y=Reflect.construct(I,arguments,P)}else y=I.apply(this,arguments);return(0,g.default)(this,y)}}function ae(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(L){return!1}}var _=function(G){return{color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{marginTop:16,padding:5,background:"#fff",borderRadius:1,boxShadow:"0 0 0 1px rgba(0,0,0,.1)",display:"inline-block",cursor:"pointer",verticalAlign:"middle"},swatchDisabled:{opacity:.5,cursor:"default"},popover:{position:"absolute",zIndex:2},cover:{position:"fixed",top:0,right:0,bottom:0,left:0},textDense:{marginTop:0,marginBottom:0}}},X=function(L){(0,T.default)(W,L);var G=R(W);function W(I){var y;return(0,o.default)(this,W),y=G.call(this,I),(0,f.default)((0,E.default)(y),"handleClick",function(){y.setState({displayColorPicker:!y.state.displayColorPicker})}),(0,f.default)((0,E.default)(y),"handleClose",function(){y.setState({displayColorPicker:!1})}),(0,f.default)((0,E.default)(y),"handleChange",function(P){y.setState({color:P}),y.props.onChange&&y.props.onChange(W.getColor(P))}),y.state={displayColorPicker:!1,color:y.props.value||y.props.color},y}return(0,h.default)(W,[{key:"render",value:function(){var y=this,P=W.getColor(this.state.color),S={};return this.state.displayColorPicker&&this.props.openAbove&&(S={top:-241}),u.default.createElement("div",{style:Object.assign({},this.props.style||{},{position:"relative"}),className:this.props.className||""},u.default.createElement(F.default,{disabled:this.props.disabled,variant:"standard",id:"name",style:P?{width:"calc(100% - 80px)"}:{width:"calc(100% - 54px)",marginRight:8},label:this.props.name||"color",value:P,margin:"dense",classes:{root:this.props.classes.textDense},onChange:function(p){return y.handleChange(p.target.value)}}),P?u.default.createElement(oe.default,{disabled:this.props.disabled,onClick:function(){return y.handleChange("")},size:"small",className:this.props.classes.delButton,style:P?{}:{opacity:0,cursor:"default"}},u.default.createElement(J.default,null)):null,u.default.createElement("div",{className:"".concat(this.props.classes.swatch).concat(this.props.disabled?" "+this.props.classes.swatchDisabled:""),onClick:function(){return!y.props.disabled&&y.handleClick()}},u.default.createElement("div",{className:this.props.classes.color,style:{background:P}})),this.state.displayColorPicker&&!this.props.disabled?u.default.createElement("div",{className:this.props.classes.popover,style:S},u.default.createElement("div",{className:this.props.classes.cover,onClick:function(){return y.handleClose()}}),u.default.createElement(b.ChromePicker,{color:this.state.color,onChangeComplete:function(p){return y.handleChange(p)}})):null)}}],[{key:"getDerivedStateFromProps",value:function(y,P){var S=W.getColor(y.value||y.color),k=W.getColor(P.color);return S!==k?{color:y.value||y.color}:null}},{key:"getColor",value:function(y,P){return y&&(0,a.default)(y)==="object"?y.rgb?P?"#"+y.rgb.r.toString(16).padStart(2,"0")+y.rgb.g.toString(16).padStart(2,"0")+y.rgb.b.toString(16).padStart(2,"0"):"rgba("+y.rgb.r+","+y.rgb.g+","+y.rgb.b+","+y.rgb.a+")":P?"#"+y.r.toString(16).padStart(2,"0")+y.g.toString(16).padStart(2,"0")+y.b.toString(16).padStart(2,"0"):"rgba("+y.r+","+y.g+","+y.b+","+y.a+")":P?W.rgb2hex(y||""):y||""}},{key:"rgb2hex",value:function(y){var P=y.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i);return P&&P.length===4?"#"+parseInt(P[1],10).toString(16).padStart(2,"0")+parseInt(P[2],10).toString(16).padStart(2,"0")+parseInt(P[3],10).toString(16).padStart(2,"0"):y}}]),W}(u.default.Component);X.propTypes={disabled:M.default.bool,value:M.default.string,onChange:M.default.func.isRequired,name:M.default.string,style:M.default.object,className:M.default.string,openAbove:M.default.bool};var K=(0,D.default)(_)(X),H=K;r.default=H},42550:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=t(e(63038)),h=J(e(4819)),E=t(e(15854)),T=t(e(23060)),g=t(e(73319)),i=e(94427),f=e(58503),u=t(e(26021)),b=t(e(62976)),M=t(e(79802)),D=t(e(33919)),F=t(e(55289));function oe(X){if(typeof WeakMap!="function")return null;var K=new WeakMap,H=new WeakMap;return(oe=function(G){return G?H:K})(X)}function J(X,K){if(!K&&X&&X.__esModule)return X;if(X===null||a(X)!=="object"&&typeof X!="function")return{default:X};var H=oe(K);if(H&&H.has(X))return H.get(X);var L={},G=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var W in X)if(W!=="default"&&Object.prototype.hasOwnProperty.call(X,W)){var I=G?Object.getOwnPropertyDescriptor(X,W):null;I&&(I.get||I.set)?Object.defineProperty(L,W,I):L[W]=X[W]}return L.default=X,H&&H.set(X,L),L}var R=function(K){return{modalDialog:{minWidth:400,maxWidth:800},overflowHidden:{display:"flex",overflow:"hidden"},titleIcon:{marginRight:5},content:{fontSize:16},languageButton:{position:"absolute",right:K.spacing(1),top:K.spacing(1)},languageButtonActive:{color:K.palette.primary.main}}},ae=function(K){var H=K.toggleTranslation,L=K.noTranslation,G=K.title,W=K.fullWidth,I=K.help,y=K.maxWidth,P=K.progress,S=K.icon,k=K.applyDisabled,p=K.applyButton,O=K.classes,d=K.open,w=K.onClose,U=K.children,Y=K.titleButtonApply,se=K.titleButtonClose,we=K.onApply,Te=K.textInput,Z=K.defaultValue,ie=K.overflowHidden,Ae=(0,h.useState)(Z),le=(0,o.default)(Ae,2),Ee=le[0],Se=le[1];(0,h.useEffect)(function(){Se(Z)},[Z]);var Le=null;return S&&(Le=S),h.default.createElement(i.Dialog,{open:d,maxWidth:y||"md",fullWidth:!!W,disableEscapeKeyDown:!1,onClose:w,classes:{paper:O.modalDialog}},G&&h.default.createElement(i.DialogTitle,null,S?h.default.createElement(Le,{className:O.titleIcon}):null,G,F.default.getLanguage()!=="en"&&H?h.default.createElement(i.IconButton,{size:"large",className:D.default.clsx(O.languageButton,L&&O.languageButtonActive),onClick:function(){return H()},title:F.default.t("Disable/Enable translation")},h.default.createElement(M.default,null)):null),h.default.createElement(i.DialogContent,{className:(0,T.default)(ie?O.overflowHidden:null,O.content),style:{paddingTop:8}},Te&&h.default.createElement(i.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:Ee,onChange:function(Xe){return Se(Xe.target.value)}}),U,I?h.default.createElement("div",null,I):null),h.default.createElement(i.DialogActions,null,p&&h.default.createElement(g.default,{startIcon:h.default.createElement(u.default,null),disabled:P||k&&Z===Ee,onClick:function(){return we(Te?Ee:"")},variant:"contained",color:"primary"},F.default.t(Y)),h.default.createElement(g.default,{color:"grey",onClick:w,disabled:P,variant:"contained",startIcon:h.default.createElement(b.default,null)},F.default.t(se))))};ae.defaultProps={open:!1,onApply:function(){},onClose:function(){},applyButton:!0,applyDisabled:!1,titleButtonClose:"Cancel",titleButtonApply:"Ok",overflowHidden:!1,help:""},ae.propTypes={icon:E.default.object,open:E.default.bool,onClose:E.default.func,children:E.default.any,titleButtonClose:E.default.string,titleButtonApply:E.default.string,onApply:E.default.func,fullWidth:E.default.bool,maxWidth:E.default.string,help:E.default.string,noTranslation:E.default.bool,toggleTranslation:E.default.func};var _=(0,f.withStyles)(R)(ae);r.default=_},90010:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=t(e(67154)),h=t(e(50008)),E=t(e(319)),T=t(e(34575)),g=t(e(93913)),i=t(e(81506)),f=t(e(2205)),u=t(e(78585)),b=t(e(29754)),M=t(e(59713)),D=qe(e(4819)),F=e(58503),oe=t(e(15854)),J=t(e(23167)),R=t(e(23180)),ae=t(e(62428)),_=t(e(57585)),X=t(e(72952)),K=t(e(22238)),H=t(e(28020)),L=t(e(89676)),G=t(e(67730)),W=t(e(81602)),I=t(e(41818)),y=t(e(73319)),P=t(e(49521)),S=e(94427),k=t(e(99822)),p=t(e(33919)),O=t(e(93451)),d=qe(e(70043)),w=t(e(22675)),U=t(e(62976)),Y=t(e(29450)),se=t(e(55374)),we=t(e(9790)),Te=t(e(39323)),Z=t(e(41173)),ie=t(e(59954)),Ae=t(e(43820)),le=t(e(43760)),Ee=t(e(7264)),Se=t(e(84335)),Le=t(e(19110)),tt=t(e(94884)),Xe=t(e(21936)),it=t(e(28364)),N=t(e(91495)),q=t(e(77717)),V=t(e(94201)),he=t(e(37943)),ne=t(e(78444)),ce=t(e(32717)),Ie=t(e(70703));function We(te){if(typeof WeakMap!="function")return null;var ge=new WeakMap,Ke=new WeakMap;return(We=function(B){return B?Ke:ge})(te)}function qe(te,ge){if(!ge&&te&&te.__esModule)return te;if(te===null||a(te)!=="object"&&typeof te!="function")return{default:te};var Ke=We(ge);if(Ke&&Ke.has(te))return Ke.get(te);var Ge={},B=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var ee in te)if(ee!=="default"&&Object.prototype.hasOwnProperty.call(te,ee)){var Oe=B?Object.getOwnPropertyDescriptor(te,ee):null;Oe&&(Oe.get||Oe.set)?Object.defineProperty(Ge,ee,Oe):Ge[ee]=te[ee]}return Ge.default=te,Ke&&Ke.set(te,Ge),Ge}function ct(te){var ge=dt();return function(){var Ge=(0,b.default)(te),B;if(ge){var ee=(0,b.default)(this).constructor;B=Reflect.construct(Ge,arguments,ee)}else B=Ge.apply(this,arguments);return(0,u.default)(this,B)}}function dt(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(te){return!1}}var nt=32,mt=32,It=120,aa=64,ua="Not found",Et=function(ge){return{dialog:{height:"calc(100% - ".concat(ge.mixins.toolbar.minHeight,"px)")},root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - ".concat(ge.spacing(2),")"),overflowX:"hidden",overflowY:"auto",padding:ge.spacing(1)},filesDivTable:{height:"calc(100% - ".concat(48+parseInt(ge.spacing(1),10),"px)")},filesDivTile:{height:"calc(100% - ".concat(48*2+parseInt(ge.spacing(1),10),"px)"),display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:"0 0 ".concat(aa,"px")},itemTile:{position:"relative",userSelect:"none",cursor:"pointer",height:It,width:aa,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:4,"&:hover":{background:ge.palette.secondary.light,color:p.default.invertColor(ge.palette.secondary.main,!0)}},itemNameFolderTile:{fontWeight:"bold"},itemNameTile:{width:"100%",height:32,overflow:"hidden",textOverflow:"ellipsis",fontSize:12,textAlign:"center",wordBreak:"break-all"},itemFolderIconTile:{width:"100%",height:It-32-16-8,display:"block",paddingLeft:8,color:ge.palette.secondary.main||"#fbff7d"},itemFolderIconBack:{position:"absolute",top:22,left:18,zIndex:1,color:ge.palette.mode==="dark"?"#FFF":"#000"},itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:It-32-16-8,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:It-32-16-8,display:"block",objectFit:"contain"},itemSelected:{background:ge.palette.primary.main,color:p.default.invertColor(ge.palette.primary.main,!0)},itemTable:{userSelect:"none",cursor:"pointer",height:nt,display:"inline-flex",lineHeight:"".concat(nt,"px"),"&:hover":{background:ge.palette.secondary.light,color:p.default.invertColor(ge.palette.secondary.main,!0)}},itemNameTable:{display:"inline-block",paddingLeft:10,fontSize:"1rem",verticalAlign:"top",flexGrow:1},itemNameFolderTable:{fontWeight:"bold"},itemSizeTable:{display:"inline-block",width:60,verticalAlign:"top",textAlign:"right"},itemAccessTable:{verticalAlign:"top",width:60,textAlign:"right",paddingRight:5,display:"flex",justifyContent:"center"},itemImageTable:{display:"inline-block",width:30,marginTop:1,objectFit:"contain",maxHeight:30},itemIconTable:{display:"inline-block",marginTop:1,width:30,height:30},itemFolderTable:{},itemFolderTemp:{opacity:.4},itemFolderIconTable:{marginTop:1,marginLeft:ge.spacing(1),display:"inline-block",width:30,height:30,color:ge.palette.secondary.main||"#fbff7d"},itemDownloadButtonTable:{display:"inline-block",width:mt,height:nt,minWidth:mt,verticalAlign:"top",padding:0,"& span":{paddingTop:9},"& svg":{width:14,height:14,fontSize:"1rem"}},itemAclButtonTable:{width:mt,height:nt,minWidth:mt,verticalAlign:"top",padding:0,fontSize:12,display:"flex"},itemDeleteButtonTable:{display:"inline-block",width:mt,height:nt,minWidth:mt,verticalAlign:"top",padding:0,"& svg":{width:18,height:18,fontSize:"1.5rem"}},uploadDiv:{top:0,zIndex:1,bottom:0,left:0,right:0,position:"absolute",opacity:.9,textAlign:"center",background:"#FFFFFF"},uploadDivDragging:{opacity:1},uploadCenterDiv:{margin:20,border:"3px dashed grey",borderRadius:30,width:"calc(100% - 40px)",height:"calc(100% - 40px)",position:"relative",color:ge.palette.mode==="dark"?"#222":"#CCC",display:"flex",alignItems:"center",justifyContent:"center"},uploadCenterIcon:{width:"25%",height:"25%"},uploadCenterText:{fontSize:24,fontWeight:"bold"},uploadCloseButton:{zIndex:2,position:"absolute",top:30,right:30},uploadCenterTextAndIcon:{position:"absolute",top:"50%",left:"50%",height:"30%",width:"50%",margin:"-15% 0 0 -25%"},menuButtonExpertActive:{color:"#c00000"},pathDiv:{display:"flex",width:"calc(100% - ".concat(ge.spacing(2),")"),marginLeft:ge.spacing(1),marginRight:ge.spacing(1),textOverflow:"clip",overflow:"hidden",whiteSpace:"nowrap"},pathDivInput:{width:"100%"},pathDivBreadcrumb:{paddingTop:3,paddingBottom:2,borderBottom:"solid 1px"},pathDivBreadcrumbDir:{paddingLeft:4,paddingRight:4,paddingBottom:4,cursor:"pointer","&:hover":{background:ge.palette.mode==="dark"?"#333":"#CCC"}},pathDivBreadcrumbSlash:{paddingLeft:4,paddingRight:4,paddingBottom:4,opacity:.7},pathDivBreadcrumbFile:{cursor:"pointer",flexGrow:1},backgroundImageLight:{background:"white"},backgroundImageDark:{background:"black"},backgroundImageColored:{background:"silver"},"@media screen and (max-width: 500px)":{itemNameTable:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",textAlign:"end",direction:"rtl"}},specialFolder:{color:ge.palette.mode==="dark"?"#229b0f":"#5dd300"}}},ta="0_userdata.0";function ca(te,ge){return te.folder&&ge.folder?te.name>ge.name?1:te.namege.name?1:te.name10?this.browseList.length%10||this.setState({queueLength:this.browseList.length}):this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then(function(Oe){if(ee.browseList){var Me=ee.browseList.shift();if(Me){var He=Me.resolve;Me.resolve=null,Me.reject=null,Me.adapter=null,Me.relPath=null,He(Oe),ee.browseListRunning=!1,ee.browseList.length?B<5?ee.processBrowseList(B+1):setTimeout(function(){return ee.processBrowseList(0)},0):ee.setState({queueLength:0})}else ee.setState({queueLength:0})}}).catch(function(Oe){if(ee.browseList){var Me=ee.browseList.shift();if(Me){var He=Me.reject;Me.resolve=null,Me.reject=null,Me.adapter=null,Me.relPath=null,He(Oe),ee.browseListRunning=!1,ee.browseList.length?B<5?ee.processBrowseList(B+1):setTimeout(function(){return ee.processBrowseList(0)},0):ee.setState({queueLength:0})}else ee.setState({queueLength:0})}}))}},{key:"browseFolder",value:function(B,ee,Oe,Me){var He=this;if(typeof ee=="boolean"&&(Me=ee,ee=null),ee||(ee={},Object.keys(this.state.folders).forEach(function(zt){return ee[zt]=He.state.folders[zt]})),ee[B]&&!Me)return Oe?Promise.resolve(ee):new Promise(function(zt,Ot){return Promise.all(ee[B].filter(function(Ft){return Ft.folder}).map(function(Ft){return He.browseFolder(Ft.id,ee,!0).catch(function(Rt){})})).then(function(){return zt(ee)}).catch(function(Ft){return Ot(Ft)})});if(!B||B==="/")return this.props.socket.readMetaItems().then(function(zt){var Ot=[],Ft=null;He.state.expertMode||(zt=zt.filter(function(ht){return!ht._id.endsWith(".admin")}));var Rt=zt.findIndex(function(ht){return ht._id==="system.meta.uuid"});return Rt!==-1&&zt.splice(Rt,1),He.state.expertMode&&He.setState({allFoldersLoaded:!0,loadFolders:!1}),zt.forEach(function(ht){if(!(He.limitToObjectID&&He.limitToObjectID!==ht._id)){var Yt={id:ht._id,name:ht._id,title:ht.common&&ht.common.name||ht._id,meta:!0,from:ht.from,ts:ht.ts,color:ht.common&&ht.common.color,icon:ht.common&&ht.common.icon,folder:!0,acl:ht.acl,level:0};Yt.id===ta?Ft=Yt:Ot.push(Yt)}}),Ot.sort(function(ht,Yt){return ht.id>Yt.id?1:ht.idDate.now()?Oe.deleteItem(B.id):Oe.setState({deleteItem:B.id})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},D.default.createElement(N.default,{fontSize:"small"})):this.state.viewType===Qe&&this.props.allowDelete?D.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]}):null)}},{key:"renderBackFolder",value:function(){var B=this;return D.default.createElement("div",{key:this.state.currentDir,id:this.state.currentDir,onClick:function(Oe){return B.changeFolder(Oe)},title:this.props.t("ra_Back to %s",Lt(this.state.currentDir)),className:p.default.clsx("browserItem",this.props.classes["item".concat(this.state.viewType)],this.props.classes["itemFolder".concat(this.state.viewType)])},D.default.createElement(he.default,{className:this.props.classes["itemFolderIcon".concat(this.state.viewType)]}),D.default.createElement(it.default,{className:this.props.classes.itemFolderIconBack}),D.default.createElement("div",{className:p.default.clsx(this.props.classes["itemName".concat(this.state.viewType)],this.props.classes["itemNameFolder".concat(this.state.viewType)])},".."))}},{key:"formatSize",value:function(B){return D.default.createElement("div",{className:this.props.classes["itemSize".concat(this.state.viewType)]},B||B===0?p.default.formatBytes(B):"")}},{key:"formatAcl",value:function(B){var ee=this,Oe=B&&(B.permissions||B.file);return Oe&&(Oe=Oe.toString(16).padStart(3,"0")),D.default.createElement("div",{className:this.props.classes["itemAccess"+this.state.viewType]},D.default.createElement(X.default,{size:"large",onClick:function(){return ee.setState({modalEditOfAccess:!0})},className:this.props.classes["itemAclButton"+this.state.viewType]},Oe||"---"))}},{key:"getFileIcon",value:function(B){switch(B){case"json":return D.default.createElement(Y.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"css":return D.default.createElement(se.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"js":case"ts":return D.default.createElement(Z.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"html":case"md":return D.default.createElement(we.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return D.default.createElement(le.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});default:return D.default.createElement(ie.default,{className:this.props.classes["itemIcon".concat(this.state.viewType)]})}}},{key:"renderFile",value:function(B){var ee=this,Oe=this.state.viewType===Qe?B.level*this.levelPadding:0,Me=p.default.getFileExtension(B.name);return D.default.createElement("div",{key:B.id,id:B.id,onDoubleClick:function(){ee.props.onSelect?(!ee.props.filterFiles||ee.props.filterFiles.includes(B.ext))&&(!ee.props.filterByType||d.EXTENSIONS[ee.props.filterByType].includes(B.ext))&&ee.props.onSelect(B.id,!0,!!ee.state.folders[B.id]):ee.setState({viewer:ee.imagePrefix+B.id})},onClick:function(rt){return ee.select(B.id,rt)},style:this.state.viewType===Qe?{marginLeft:Oe,width:"calc(100% - ".concat(Oe,"px)")}:{},className:p.default.clsx("browserItem",this.props.classes["item".concat(this.state.viewType)],this.props.classes["itemFile".concat(this.state.viewType)],this.state.selected===B.id&&this.props.classes.itemSelected)},d.EXTENSIONS.images.includes(Me)?this.state.fileErrors.includes(B.id)?D.default.createElement(ce.default,{className:p.default.clsx(this.props.classes["itemImage"+this.state.viewType],this.getClassBackgroundImage())}):D.default.createElement("img",{onError:function(rt){rt.target.onerror=null;var bt=(0,E.default)(ee.state.fileErrors);bt.includes(B.id)||(bt.push(B.id),ee.setState({fileErrors:bt}))},className:p.default.clsx(this.props.classes["itemImage"+this.state.viewType],this.getClassBackgroundImage()),src:this.imagePrefix+B.id,alt:B.name}):this.getFileIcon(Me),D.default.createElement("div",{className:this.props.classes["itemName".concat(this.state.viewType)]},B.name),D.default.createElement(S.Hidden,{smDown:!0},this.formatSize(B.size)),D.default.createElement(S.Hidden,{smDown:!0},this.state.viewType===Qe?this.formatAcl(B.acl):null),D.default.createElement(S.Hidden,{smDown:!0},this.state.viewType===Qe&&this.props.expertMode&&Ke.getEditFile(Me)?D.default.createElement(X.default,{"aria-label":"edit",onClick:function(rt){rt.stopPropagation(),ee.props.onSelect?(!ee.props.filterFiles||ee.props.filterFiles.includes(B.ext))&&(!ee.props.filterByType||d.EXTENSIONS[ee.props.filterByType].includes(B.ext))&&ee.props.onSelect(B.id,!0,!!ee.state.folders[B.id]):ee.setState({viewer:ee.imagePrefix+B.id,formatEditFile:Me})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},D.default.createElement(Te.default,{fontSize:"small"})):D.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]})),this.state.viewType===Qe&&this.props.allowDownload?D.default.createElement(X.default,{download:!0,href:this.imagePrefix+B.id,className:this.props.classes["itemDownloadButton".concat(this.state.viewType)],onClick:function(rt){return rt.stopPropagation()},size:"large"},D.default.createElement(Ee.default,null)):null,this.state.viewType===Qe&&this.props.allowDelete&&B.id!=="vis.0/"&&B.id!==ta?D.default.createElement(X.default,{"aria-label":"delete",onClick:function(rt){rt.stopPropagation(),ee.suppressDeleteConfirm>Date.now()?ee.deleteItem(B.id):ee.setState({deleteItem:B.id})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},D.default.createElement(N.default,{fontSize:"small"})):this.state.viewType===Qe&&this.props.allowDelete?D.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]}):null)}},{key:"renderItems",value:function(B){var ee=this;if(this.state.folders&&this.state.folders[B]){if(this.state.viewType===qt){var Oe=[];return B&&B!=="/"&&Oe.push(this.renderBackFolder()),this.state.folders[B].forEach(function(Me){Me.folder?Oe.push(ee.renderFolder(Me)):(!ee.props.filterFiles||ee.props.filterFiles.includes(Me.ext))&&(!ee.props.filterByType||d.EXTENSIONS[ee.props.filterByType].includes(Me.ext))&&Oe.push(ee.renderFile(Me))}),Oe}return this.state.folders[B].map(function(Me){var He=[];if(Me.folder){var rt=ee.state.expanded.includes(Me.id);He.push(ee.renderFolder(Me,rt)),ee.state.folders[Me.id]&&rt&&He.push(ee.renderItems(Me.id))}else if((!ee.props.filterFiles||ee.props.filterFiles.includes(Me.ext))&&(!ee.props.filterByType||d.EXTENSIONS[ee.props.filterByType].includes(Me.ext)))He.push(ee.renderFile(Me));else return null;return He})}return D.default.createElement("div",{style:{position:"relative"}},D.default.createElement(ae.default,{key:B,color:"secondary",size:24}),D.default.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}},{key:"renderToolbar",value:function(){var B=this;return D.default.createElement(_.default,{key:"toolbar",variant:"dense"},this.props.showExpertButton?D.default.createElement(X.default,{edge:"start",title:this.props.t("ra_Toggle expert mode"),className:p.default.clsx(this.props.classes.menuButton,this.state.expertMode&&this.props.classes.menuButtonExpertActive),"aria-label":"expert mode",onClick:function(){return B.setState({expertMode:!B.state.expertMode})},size:"large"},D.default.createElement(V.default,null)):null,this.props.showViewTypeButton?D.default.createElement(X.default,{edge:"start",title:this.props.t("ra_Toggle view mode"),className:this.props.classes.menuButton,"aria-label":"view mode",onClick:function(){var Oe=B.state.viewType===Qe?qt:Qe;(window._localStorage||window.localStorage).setItem("files.viewType",Oe);var Me=B.state.selected;wt(Me)&&(Me=Lt(Me)),B.setState({viewType:Oe,currentDir:Me},function(){B.state.viewType===Qe&&B.scrollToSelected()})},size:"large"},this.state.viewType!==Qe?D.default.createElement(tt.default,null):D.default.createElement(Xe.default,null)):null,D.default.createElement(X.default,{edge:"start",title:this.props.t("ra_Hide empty folders"),className:this.props.classes.menuButton,color:this.state.filterEmpty?"secondary":"inherit","aria-label":"filter empty",onClick:function(){(window._localStorage||window.localStorage).setItem("file.empty",!B.state.filterEmpty),B.setState({filterEmpty:!B.state.filterEmpty})},size:"large"},D.default.createElement(Le.default,null)),D.default.createElement(X.default,{edge:"start",title:this.props.t("ra_Reload files"),className:this.props.classes.menuButton,color:"inherit","aria-label":"reload files",onClick:function(){return B.setState({folders:{}},function(){return B.loadFolders()})},size:"large"},D.default.createElement(w.default,null)),this.props.allowCreateFolder?D.default.createElement(X.default,{edge:"start",disabled:!this.state.selected||!this.state.folders[this.state.selected]||this.limitToPath&&!this.state.selected.startsWith(this.limitToPath+"/")&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Create folder"),className:this.props.classes.menuButton,color:"inherit","aria-label":"add folder",onClick:function(){return B.setState({addFolder:!0})},size:"large"},D.default.createElement(Se.default,null)):null,this.props.allowUpload?D.default.createElement(X.default,{edge:"start",disabled:!this.state.selected||!this.state.folders[this.state.selected]||this.limitToPath&&!this.state.selected.startsWith(this.limitToPath+"/")&&this.limitToPath!==this.state.selected,title:this.props.t("ra_Upload file"),className:this.props.classes.menuButton,color:"inherit","aria-label":"upload file",onClick:function(){return B.setState({uploadFile:!0})},size:"large"},D.default.createElement(Ae.default,null)):null,D.default.createElement(S.Tooltip,{title:this.props.t("ra_Background image")},D.default.createElement(X.default,{color:"inherit",edge:"start",className:this.props.classes.menuButton,onClick:this.setStateBackgroundImage,size:"large"},D.default.createElement(q.default,null))))}},{key:"findItem",value:function(B,ee){if(ee=ee||this.state.folders,!ee)return null;var Oe=B.split("/");Oe.pop();var Me=Oe.join("/")||"/";return ee[Me]?ee[Me].find(function(He){return He.id===B}):null}},{key:"renderInputDialog",value:function(){var B=this;if(this.state.addFolder){var ee=this.findFirstFolder(this.state.selected);return ee?D.default.createElement(O.default,{key:"inputDialog",applyText:this.props.t("ra_Create"),cancelText:this.props.t("ra_Cancel"),titleText:this.props.t("ra_Create new folder in %s",this.state.selected),promptText:this.props.t("ra_If no file will be created in the folder, it will disappear after the browser closed"),labelText:this.props.t("ra_Folder name"),verify:function(Me){return B.state.folders[ee].find(function(He){return He.name===Me})?"":B.props.t("ra_Duplicate name")},onClose:function(Me){if(Me){var He={};Object.keys(B.state.folders).forEach(function(gt){return He[gt]=B.state.folders[gt]});var rt=B.findItem(ee),bt="".concat(ee,"/").concat(Me);He[ee].push({id:bt,level:rt.level+1,name:Me,folder:!0,temp:!0}),He[ee].sort(ca),He[bt]=[];var ft=(0,E.default)(B.state.expanded);ft.includes(ee)||(ft.push(ee),ft.sort()),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(ft)),B.setState({addFolder:!1,folders:He,expanded:ft},function(){return B.select(bt)})}else B.setState({addFolder:!1})},replace:function(Me){return Me.replace(/[^-_\w\d]/,"_")}}):window.alert(this.props.t("ra_Invalid parent folder!"))}return null}},{key:"componentDidUpdate",value:function(){var B=this;this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout(function(){B.setOpacityTimer=null;for(var ee=window.document.getElementsByClassName("browserItem"),Oe=0;Oe=1){var rt=B.split("/"),bt=rt.shift();ee.props.socket.deleteFolder(bt,rt.join("/")).then(function(){var ft=JSON.parse(JSON.stringify(ee.state.folders));delete ft[Oe.id];var gt=Lt(Oe.id),zt=ft[gt];if(zt){var Ot=zt.indexOf(zt.find(function(Ft){return Ft.id===Oe.id}));Ot!==-1&&zt.splice(Ot,1),ee.select(gt,function(){return ee.setState({folders:ft})})}})}});var Me=B.split("/"),He=Me.shift();return Me.length?this.props.socket.deleteFile(He,Me.join("/")).catch(function(rt){return window.alert("Cannot delete file: ".concat(rt))}):Promise.resolve()}},{key:"deleteItem",value:function(B){var ee=this;B=B||this.state.deleteItem,this.setState({deleteItem:""},function(){return ee.deleteRecursive(B).then(function(){var Oe={},Me=ee.state.expanded.indexOf(B);if(Me!==-1){var He=(0,E.default)(ee.state.expanded);He.splice(Me,1),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(He)),Oe.expanded=He}if(ee.supportSubscribes)ee.setState(Oe);else{var rt=ee.findFirstFolder(B),bt={};Object.keys(ee.state.folders).forEach(function(ft){ft!==rt&&!ft.startsWith(rt+"/")&&(bt[ft]=ee.state.folders[ft])}),Oe.folders=bt,ee.setState(Oe,function(){return setTimeout(function(){return ee.browseFolders((0,E.default)(ee.state.expanded),bt).then(function(ft){return ee.setState({folders:ft})})},200)})}})})}},{key:"renderDeleteDialog",value:function(){var B=this;return this.state.deleteItem?D.default.createElement(H.default,{key:"deleteDialog",open:!0,onClose:function(){return B.setState({deleteItem:""})},"aria-labelledby":"form-dialog-title"},D.default.createElement(L.default,{id:"form-dialog-title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),D.default.createElement(G.default,null,D.default.createElement(W.default,null,this.props.t("ra_Are you sure?"))),D.default.createElement(I.default,null,D.default.createElement(y.default,{color:"grey",variant:"contained",onClick:function(){B.suppressDeleteConfirm=Date.now()+6e4*5,B.deleteItem()}},this.props.t("ra_Delete (no confirm for 5 mins)")),D.default.createElement(y.default,{variant:"contained",onClick:function(){return B.deleteItem()},color:"primary",autoFocus:!0},this.props.t("ra_Delete")),D.default.createElement(y.default,{variant:"contained",onClick:function(){return B.setState({deleteItem:""})},color:"grey"},this.props.t("ra_Cancel")))):!1}},{key:"renderViewDialog",value:function(){var B=this;return this.state.viewer?D.default.createElement(d.default,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeName:this.props.themeName,setStateBackgroundImage:this.setStateBackgroundImage,getClassBackgroundImage:this.getClassBackgroundImage,t:this.props.t,socket:this.props.socket,lang:this.props.lang,expertMode:this.state.expertMode,onClose:function(){return B.setState({viewer:"",formatEditFile:""})}}):null}},{key:"renderError",value:function(){var B=this;return this.state.errorText?D.default.createElement(k.default,{key:"errorDialog",text:this.state.errorText,onClose:function(){return B.setState({errorText:""})}}):null}},{key:"updateItemsAcl",value:function(B){var ee=this,Oe=JSON.parse(JSON.stringify(this.state.folders)),Me;B.forEach(function(He){var rt=ee.findItem(He.id,Oe);rt&&JSON.stringify(rt.acl)!==JSON.stringify(He.acl)&&(rt.acl=He.acl,Me=!0)}),Me&&this.setState({folders:Oe})}},{key:"changeToPath",value:function(){var B=this;setTimeout(function(){if(B.state.path!==B.state.selected&&(!B.lastSelect||Date.now()-B.lastSelect>100)){var ee=B.state.path;wt(B.state.path)&&(ee=Lt(B.state.path)),new Promise(function(Oe){return B.state.folders[ee]?Oe(!0):B.browseFolder(ee).then(function(Me){return B.setState({folders:Me},function(){return Oe(!0)})}).catch(function(Me){return B.setState({errorText:Me===ua?B.props.t('ra_Cannot find "%s"',ee):B.props.t('ra_Cannot read "%s"',ee)})})}).then(function(Oe){return Oe&&B.setState({selected:B.state.path,currentDir:ee,pathFocus:!1})})}else(!B.lastSelect||Date.now()-B.lastSelect>100)&&B.setState({pathFocus:!1})},100)}},{key:"renderBreadcrumb",value:function(){var B=this,ee=this.state.selected.startsWith("/")?this.state.selected.split("/"):"/".concat(this.state.selected).split("/"),Oe=[];return ee.map(function(Me,He){Me&&Oe.push(Me);var rt=Oe.join("/");return He")]:D.default.createElement("div",{key:"".concat(B.state.selected,"_").concat(He),className:B.props.classes.pathDivBreadcrumbFile,onClick:function(){return B.setState({pathFocus:!0})}},Me)})}},{key:"renderPath",value:function(){var B=this;return D.default.createElement("div",{key:"path",className:p.default.clsx(this.props.classes.pathDiv,!this.state.pathFocus&&this.props.classes.pathDivBreadcrumb)},this.state.pathFocus?D.default.createElement(P.default,{value:this.state.path,onKeyDown:function(Oe){return Oe.keyCode===13&&B.changeToPath()},onBlur:function(){return B.changeToPath()},onChange:function(Oe){return B.setState({path:Oe.target.value})},className:this.props.classes.pathDivInput}):this.renderBreadcrumb())}},{key:"render",value:function(){var B=this;return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout(function(){B.setState({loadAllFolders:!1,folders:{}},function(){B.foldersLoading=!1,B.loadFolders()})},300)),D.default.createElement("div",{style:this.props.style,className:p.default.clsx(this.props.classes.root,this.props.className)},this.props.showToolbar?this.renderToolbar():null,this.state.viewType===qt?this.renderPath():null,D.default.createElement("div",{className:p.default.clsx(this.props.classes.filesDiv,this.props.classes["filesDiv".concat(this.state.viewType)])},this.state.viewType===Qe?this.renderItems("/"):this.renderItems(this.state.currentDir||"/")),this.props.allowUpload?this.renderInputDialog():null,this.props.allowUpload?this.renderUpload():null,this.props.allowDelete?this.renderDeleteDialog():null,this.props.allowView?this.renderViewDialog():null,this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData),this.renderError())):D.default.createElement(R.default,null)}}],[{key:"getDerivedStateFromProps",value:function(B,ee){return B.expertMode!==void 0&&B.expertMode!==ee.expertMode?{expertMode:B.expertMode,loadAllFolders:!0}:null}},{key:"getEditFile",value:function(B){switch(B){case"json":case"js":case"html":case"txt":return!0;default:return!1}}}]),Ke}(D.Component);_t.defaultProps={modalEditOfAccessControl:function(){}},_t.propTypes={style:oe.default.object,className:oe.default.string,t:oe.default.func.isRequired,lang:oe.default.string.isRequired,socket:oe.default.object.isRequired,ready:oe.default.bool,expertMode:oe.default.bool,showToolbar:oe.default.bool,allowUpload:oe.default.bool,allowDownload:oe.default.bool,allowCreateFolder:oe.default.bool,allowDelete:oe.default.bool,allowView:oe.default.bool,imagePrefix:oe.default.string,showExpertButton:oe.default.bool,viewType:oe.default.string,showViewTypeButton:oe.default.bool,selected:oe.default.string,tileView:oe.default.bool,filterFiles:oe.default.array,filterByType:oe.default.string,onSelect:oe.default.func,modalEditOfAccessControl:oe.default.func};var pa=(0,Ie.default)()((0,F.withStyles)(Et)(_t)),Mt=pa;r.default=Mt},70043:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=r.EXTENSIONS=void 0;var o=t(e(34575)),h=t(e(93913)),E=t(e(81506)),T=t(e(2205)),g=t(e(78585)),i=t(e(29754)),f=t(e(59713)),u=P(e(4819)),b=e(58503),M=t(e(15854)),D=t(e(61318)),F=t(e(73319)),oe=t(e(28020)),J=t(e(41818)),R=t(e(67730)),ae=t(e(89676)),_=e(94427),X=t(e(32717)),K=t(e(70703)),H=t(e(33919)),L=e(42158),G=t(e(77717)),W=t(e(62976)),I=t(e(28027));function y(se){if(typeof WeakMap!="function")return null;var we=new WeakMap,Te=new WeakMap;return(y=function(ie){return ie?Te:we})(se)}function P(se,we){if(!we&&se&&se.__esModule)return se;if(se===null||a(se)!=="object"&&typeof se!="function")return{default:se};var Te=y(we);if(Te&&Te.has(se))return Te.get(se);var Z={},ie=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Ae in se)if(Ae!=="default"&&Object.prototype.hasOwnProperty.call(se,Ae)){var le=ie?Object.getOwnPropertyDescriptor(se,Ae):null;le&&(le.get||le.set)?Object.defineProperty(Z,Ae,le):Z[Ae]=se[Ae]}return Z.default=se,Te&&Te.set(se,Z),Z}function S(se){var we=k();return function(){var Z=(0,i.default)(se),ie;if(we){var Ae=(0,i.default)(this).constructor;ie=Reflect.construct(Z,arguments,Ae)}else ie=Z.apply(this,arguments);return(0,g.default)(this,ie)}}function k(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(se){return!1}}var p=function(we){return{dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center"},textarea:{width:"100%",height:"100%"},img:{width:"auto",height:"calc(100% - 5px)",objectFit:"contain"},dialogTitle:{justifyContent:"space-between",display:"flex"}}},O={images:["png","jpg","svg","jpeg","bmp"],code:["js","json","md"],txt:["log","txt","html","css","xml"],audio:["mp3","wav","ogg","acc"],video:["mp4","mov","avi"]};r.EXTENSIONS=O;function d(se){for(var we="",Te=new Uint8Array(se),Z=Te.byteLength,ie=0;ie0&&Z.setState({focusedChip:Ae-1});break;case O.RIGHT_ARROW:Ae!=null&&Ae=0||Z.props.newChipKeys.indexOf(ie.key)>=0)&&Z._keyPressed?Z.clearInput():Z.updateInput(ie.target.value),Z.props.onKeyUp&&Z.props.onKeyUp(ie)}),(0,b.default)((0,g.default)(Z),"handleKeyPress",function(ie){Z._keyPressed=!0,Z.props.onKeyPress&&Z.props.onKeyPress(ie)}),(0,b.default)((0,g.default)(Z),"handleUpdateInput",function(ie){Z.props.inputValue==null&&Z.updateInput(ie.target.value),Z.props.onUpdateInput&&Z.props.onUpdateInput(ie)}),(0,b.default)((0,g.default)(Z),"setActualInputRef",function(ie){Z.actualInput=ie,Z.props.inputRef&&Z.props.inputRef(ie)}),Te.defaultValue&&(Z.state.chips=Te.defaultValue),Z.labelRef=M.default.createRef(),Z.input=M.default.createRef(),Z}return(0,T.default)(we,[{key:"componentDidMount",value:function(){this.props.variant==="outlined"&&(this.labelNode=D.default.findDOMNode(this.labelRef.current),this.forceUpdate())}},{key:"componentWillUnmount",value:function(){clearTimeout(this.inputBlurTimeout)}},{key:"blur",value:function(){this.input&&this.actualInput.blur()}},{key:"handleAddChip",value:function(Z,ie){var Ae=this;if(this.props.onBeforeAdd&&!this.props.onBeforeAdd(Z))return this._preventChipCreation=!0,ie&&ie.clearInputOnFail&&this.clearInput(),!1;this.clearInput();var le=this.props.value||this.state.chips;if(this.props.dataSourceConfig){if(typeof Z=="string"){var Ee;Z=(Ee={},(0,b.default)(Ee,this.props.dataSourceConfig.text,Z),(0,b.default)(Ee,this.props.dataSourceConfig.value,Z),Ee)}return(this.props.allowDuplicates||!le.some(function(Se){return Se[Ae.props.dataSourceConfig.value]===Z[Ae.props.dataSourceConfig.value]}))&&(this.props.value&&this.props.onAdd?this.props.onAdd(Z):this.updateChips([].concat((0,h.default)(this.state.chips),[Z]))),!0}return Z.trim().length>0?((this.props.allowDuplicates||!le.includes(Z))&&(this.props.value&&this.props.onAdd?this.props.onAdd(Z):this.updateChips([].concat((0,h.default)(this.state.chips),[Z]))),!0):!1}},{key:"handleDeleteChip",value:function(Z,ie){if(this.props.value)this.props.onDelete&&this.props.onDelete(Z,ie);else{var Ae=this.state.chips.slice(),le=Ae.splice(ie,1);if(le){var Ee=this.state.focusedChip;this.state.focusedChip===ie?Ee=null:this.state.focusedChip>ie&&(Ee=this.state.focusedChip-1),this.updateChips(Ae,{focusedChip:Ee})}}}},{key:"updateChips",value:function(Z){var ie=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.setState(y({chips:Z,chipsUpdated:!0},ie)),this.props.onChange&&this.props.onChange(Z)}},{key:"clearInput",value:function(){this.updateInput("")}},{key:"updateInput",value:function(Z){this.setState({inputValue:Z})}},{key:"render",value:function(){var Z=this,ie=this.props,Ae=ie.allowDuplicates,le=ie.alwaysShowPlaceholder,Ee=ie.blurBehavior,Se=ie.children,Le=ie.chipRenderer,tt=Le===void 0?U:Le,Xe=ie.classes,it=ie.className,N=ie.clearInputValueOnChange,q=ie.dataSource,V=ie.dataSourceConfig,he=ie.defaultValue,ne=ie.delayBeforeAdd,ce=ie.disabled,Ie=ie.disableUnderline,We=ie.error,qe=ie.filter,ct=ie.FormHelperTextProps,dt=ie.fullWidth,nt=ie.fullWidthInput,mt=ie.helperText,It=ie.id,aa=ie.InputProps,ua=aa===void 0?{}:aa,Et=ie.inputRef,ta=ie.InputLabelProps,ca=ta===void 0?{}:ta,Lt=ie.inputValue,wt=ie.label,Qe=ie.newChipKeyCodes,qt=ie.newChipKeys,_t=ie.onBeforeAdd,pa=ie.onAdd,Mt=ie.onBlur,te=ie.onDelete,ge=ie.onChange,Ke=ie.onFocus,Ge=ie.onKeyDown,B=ie.onKeyPress,ee=ie.onKeyUp,Oe=ie.onUpdateInput,Me=ie.placeholder,He=ie.readOnly,rt=ie.required,bt=ie.rootRef,ft=ie.value,gt=ie.variant,zt=(0,o.default)(ie,W),Ot=ft||this.state.chips||[],Ft=Lt!=null?Lt:this.state.inputValue,Rt=(this.props.value||Ft).length||Ft.length,ht=ca.shrink!=null?ca.shrink:wt!=null&&(Rt||this.state.isFocused||Ot.length),Yt=Ot.map(function(Aa,Ba){var cn=V?Aa[V.value]:Aa;return tt({value:cn,text:V?Aa[V.text]:Aa,chip:Aa,isDisabled:!!ce,isReadOnly:He,isFocused:Z.state.focusedChip===Ba,handleClick:function(){return Z.setState({focusedChip:Ba})},handleDelete:function(){return Z.handleDeleteChip(Aa,Ba)},className:Xe.chip},Ba)}),xa={};gt==="outlined"&&(xa.notched=ht,xa.labelWidth=ht&&this.labelNode&&this.labelNode.offsetWidth||0),gt!=="standard"?xa.startAdornment=M.default.createElement(M.default.Fragment,null,Yt):ua.disableUnderline=!0;var Na=k[gt];return M.default.createElement(H.default,(0,a.default)({ref:bt,fullWidth:dt,className:G.default.clsx(it,Xe.root,zt.margin==="dense"&&Xe.marginDense),error:We,required:Ot.length>0?void 0:rt,onClick:this.focus,disabled:ce,variant:gt},zt),wt&&M.default.createElement(ae.default,(0,a.default)({htmlFor:It,classes:{root:G.default.clsx(Xe[gt],Xe.label),shrink:Xe.labelShrink},shrink:ht,focused:this.state.isFocused,variant:gt,ref:this.labelRef,required:rt},ca),wt),M.default.createElement("div",{className:G.default.clsx(Xe[gt],Xe.chipContainer,this.state.isFocused&&Xe.focused,!Ie&>==="standard"&&Xe.underline,ce&&Xe.disabled,wt&&Xe.labeled,We&&Xe.error)},gt==="standard"&&Yt,M.default.createElement(Na,(0,a.default)({ref:this.input,classes:{input:G.default.clsx(Xe.input,Xe[gt]),root:G.default.clsx(Xe.inputRoot,Xe[gt])},id:It,value:Ft,onChange:this.handleUpdateInput,onKeyDown:this.handleKeyDown,onKeyPress:this.handleKeyPress,onKeyUp:this.handleKeyUp,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,inputRef:this.setActualInputRef,disabled:ce,fullWidth:nt,placeholder:!Rt&&(ht||wt==null)||le?Me:null,readOnly:He},ua,xa))),mt&&M.default.createElement(L.default,(0,a.default)({},ct,{className:ct?G.default.clsx(ct.className,Xe.helperText):Xe.helperText}),mt))}}],[{key:"getDerivedStateFromProps",value:function(Z,ie){var Ae=null;return Z.value&&Z.value.length!==ie.prevPropsValue.length&&(Ae={prevPropsValue:Z.value},Z.clearInputValueOnChange&&(Ae.inputValue="")),Z.clearInputValueOnChange&&Z.value&&Z.value.length!==ie.prevPropsValue.length&&(Ae={prevPropsValue:Z.value,inputValue:""}),Z.disabled&&(Ae=y(y({},Ae),{},{focusedChip:null})),!ie.chipsUpdated&&Z.defaultValue&&(Ae=y(y({},Ae),{},{chips:Z.defaultValue})),Ae}}]),we}(M.default.Component);d.propTypes={allowDuplicates:F.default.bool,alwaysShowPlaceholder:F.default.bool,blurBehavior:F.default.oneOf(["clear","add","add-or-clear","ignore"]),chipRenderer:F.default.func,clearInputValueOnChange:F.default.bool,dataSource:F.default.array,dataSourceConfig:F.default.shape({text:F.default.string.isRequired,value:F.default.string.isRequired}),defaultValue:F.default.array,delayBeforeAdd:F.default.bool,disabled:F.default.bool,disableUnderline:F.default.bool,FormHelperTextProps:F.default.object,fullWidth:F.default.bool,fullWidthInput:F.default.bool,helperText:F.default.node,InputLabelProps:F.default.object,InputProps:F.default.object,inputRef:F.default.func,inputValue:F.default.string,label:F.default.node,newChipKeyCodes:F.default.arrayOf(F.default.number),newChipKeys:F.default.arrayOf(F.default.string),onAdd:F.default.func,onBeforeAdd:F.default.func,onChange:F.default.func,onDelete:F.default.func,onUpdateInput:F.default.func,placeholder:F.default.string,readOnly:F.default.bool,value:F.default.array,variant:F.default.oneOf(["outlined","standard","filled"])},d.defaultProps={allowDuplicates:!1,blurBehavior:"clear",clearInputValueOnChange:!1,delayBeforeAdd:!1,disableUnderline:!1,newChipKeyCodes:[13],newChipKeys:["Enter"],variant:"standard"};var w=(0,X.default)(p,{name:"WAMuiChipInput"})(d);r.default=w;var U=function(se,we){var Te=se.value,Z=se.text,ie=se.isFocused,Ae=se.isDisabled,le=se.isReadOnly,Ee=se.handleClick,Se=se.handleDelete,Le=se.className;return M.default.createElement(_.default,{key:we,className:Le,style:{pointerEvents:Ae||le?"none":void 0,backgroundColor:ie?K.default[300]:void 0},onClick:Ee,onDelete:Se,label:Z})};r.defaultChipRenderer=U},88327:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(92636)),M=t(e(55289)),D=t(e(33919));function F(_){var X=oe();return function(){var H=(0,g.default)(_),L;if(X){var G=(0,g.default)(this).constructor;L=Reflect.construct(H,arguments,G)}else L=H.apply(this,arguments);return(0,T.default)(this,L)}}function oe(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(_){return!1}}var J=function(X){return{root:{width:"100%"},notAlive:{color:"#a30000"}}},R=function(_){(0,E.default)(K,_);var X=F(K);function K(){return(0,a.default)(this,K),X.apply(this,arguments)}return(0,o.default)(K,[{key:"componentDidMount",value:function(){var L=this;(0,h.default)((0,g.default)(K.prototype),"componentDidMount",this).call(this);var G=this.getInstance();this.props.socket.getState(G+".alive").then(function(W){return L.setState({alive:!!(W&&W.val),instance:G})})}},{key:"getInstance",value:function(){var L=this.props.schema.instance||this.props.adapterName+"."+this.props.instance;return L.includes("${")&&(L=this.getPattern(L)),L&&!L.startsWith("system.adapter.")&&(L="system.adapter."+L),L}},{key:"renderItem",value:function(){var L=this;if(this.getInstance()!==this.state.instance&&setTimeout(function(){var W=L.getInstance();W?L.props.socket.getState(W+".alive").then(function(I){return L.setState({alive:!!(I&&I.val),instance:W})}):L.setState({alive:null,instance:W})},200),this.state.alive!==!1&&this.state.alive!==!0)return null;var G=this.state.instance.replace(/^system.adapter./,"");return i.default.createElement("div",{className:D.default.clsx(this.props.classes.root,!this.state.alive&&this.props.classes.notAlive)},this.state.alive?this.props.schema.textAlive!==void 0?this.props.schema.textAlive?M.default.t(this.props.schema.textAlive,G):"":M.default.t("ra_Instance %s is alive",G):this.props.schema.textNotAlive!==void 0?this.props.schema.textNotAlive?M.default.t(this.props.schema.textNotAlive,G):"":M.default.t("ra_Instance %s is not alive",G))}}]),K}(b.default);R.propTypes={socket:f.default.object.isRequired,data:f.default.object.isRequired,schema:f.default.object,adapterName:f.default.string,instance:f.default.number};var ae=(0,u.withStyles)(J)(R);r.default=ae},16226:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(67154)),o=t(e(50008)),h=t(e(319)),E=t(e(34575)),T=t(e(93913)),g=t(e(16525)),i=t(e(2205)),f=t(e(78585)),u=t(e(29754)),b=t(e(4819)),M=t(e(15854)),D=e(58503),F=e(94427),oe=t(e(55289)),J=t(e(92636));function R(H){var L=ae();return function(){var W=(0,u.default)(H),I;if(L){var y=(0,u.default)(this).constructor;I=Reflect.construct(W,arguments,y)}else I=W.apply(this,arguments);return(0,f.default)(this,I)}}function ae(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(H){return!1}}var _=function(L){return{fullWidth:{width:"100%"}}},X=function(H){(0,i.default)(G,H);var L=R(G);function G(){return(0,E.default)(this,G),L.apply(this,arguments)}return(0,T.default)(G,[{key:"componentDidMount",value:function(){(0,g.default)((0,u.default)(G.prototype),"componentDidMount",this).call(this);var I=J.default.getValue(this.props.data,this.props.attr),y=this.props.schema.options.map(function(P){return typeof P=="string"?{label:P,value:P}:JSON.parse(JSON.stringify(P))});Array.isArray(I)?(y.unshift({label:oe.default.t(J.default.DIFFERENT_LABEL),value:J.default.DIFFERENT_VALUE}),this.setState({value:J.default.DIFFERENT_VALUE,selectOptions:y})):this.setState({value:I,selectOptions:y})}},{key:"renderItem",value:function(I,y,P){var S=this;if(!this.state.selectOptions)return null;var k,p=JSON.parse(JSON.stringify(this.state.selectOptions)),O=Array.isArray(this.state.value)||this.state.value===J.default.DIFFERENT_VALUE;return O?((0,h.default)(this.state.value).filter(function(d){return!p.find(function(w){return w.value===d})}).forEach(function(d){return p.push({label:d.toString(),value:d})}),k={label:oe.default.t(J.default.DIFFERENT_LABEL),value:J.default.DIFFERENT_VALUE},p.unshift(k)):(k=this.state.value!==null&&this.state.value!==void 0&&p.find(function(d){return d.value==S.state.value}),this.state.value!==null&&this.state.value!==void 0&&!k&&(k={value:this.state.value,label:this.state.value},p.push(k))),b.default.createElement(F.Autocomplete,{className:this.props.classes.indeterminate,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,value:k,onInputChange:function(w){if(w){var U=w.target.value;U!==S.state.value&&S.setState({value:U},function(){return S.onChange(S.props.attr,U)})}},onChange:function(w,U){var Y=(0,o.default)(U)==="object"?U?U.value:"":U;Y!==S.state.value&&S.setState({value:Y},function(){return S.onChange(S.props.attr,Y)})},options:p,getOptionLabel:function(w){return w&&w.label||""},renderInput:function(w){return b.default.createElement(F.TextField,(0,a.default)({variant:"standard"},w,{error:!!I,placeholder:S.getText(S.props.schema.placeholder),label:S.getText(S.props.schema.label),helperText:S.renderHelp(S.props.schema.help,S.props.schema.helpLink,S.props.schema.noTranslation),disabled:!!y}))}})}}]),G}(J.default);X.propTypes={socket:M.default.object.isRequired,themeType:M.default.string,themeName:M.default.string,style:M.default.object,className:M.default.string,data:M.default.object.isRequired,schema:M.default.object,onError:M.default.func,onChange:M.default.func};var K=(0,D.withStyles)(_)(X);r.default=K},35815:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(67154)),o=t(e(50008)),h=t(e(319)),E=t(e(34575)),T=t(e(93913)),g=t(e(16525)),i=t(e(2205)),f=t(e(78585)),u=t(e(29754)),b=t(e(4819)),M=t(e(15854)),D=e(58503),F=e(94427),oe=t(e(55289)),J=t(e(92636));function R(H){var L=ae();return function(){var W=(0,u.default)(H),I;if(L){var y=(0,u.default)(this).constructor;I=Reflect.construct(W,arguments,y)}else I=W.apply(this,arguments);return(0,f.default)(this,I)}}function ae(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(H){return!1}}var _=function(L){return{fullWidth:{width:"100%"}}},X=function(H){(0,i.default)(G,H);var L=R(G);function G(){return(0,E.default)(this,G),L.apply(this,arguments)}return(0,T.default)(G,[{key:"componentDidMount",value:function(){(0,g.default)((0,u.default)(G.prototype),"componentDidMount",this).call(this),this.askInstance()}},{key:"askInstance",value:function(){var I=this,y=J.default.getValue(this.props.data,this.props.attr),P=this.props.schema.options?this.props.schema.options.map(function(k){return typeof k=="string"?{label:k,value:k}:JSON.parse(JSON.stringify(k))}):[];if(this.props.alive){var S=this.props.schema.data;if(S===void 0&&this.props.schema.jsonData){S=this.getPattern(this.props.schema.jsonData);try{S=JSON.parse(S)}catch(k){console.error("Cannot parse json data: "+S)}}S===void 0&&(S=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",S).then(function(k){k&&Array.isArray(k)&&k.forEach(function(p){return P.push(typeof p=="string"?{label:p,value:p}:JSON.parse(JSON.stringify(p)))}),Array.isArray(y)?(P.unshift({label:oe.default.t(J.default.DIFFERENT_LABEL),value:J.default.DIFFERENT_VALUE}),I.setState({value:J.default.DIFFERENT_VALUE,selectOptions:P,context:I.getContext()})):I.setState({value:y,selectOptions:P,context:I.getContext()})})}else Array.isArray(y)?(P.unshift({label:oe.default.t(J.default.DIFFERENT_LABEL),value:J.default.DIFFERENT_VALUE}),this.setState({value:J.default.DIFFERENT_VALUE,selectOptions:P})):this.setState({value:y,selectOptions:P})}},{key:"getContext",value:function(){var I=this,y={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(function(P){return y[P]=J.default.getValue(I.props.data,P)}),JSON.stringify(y)}},{key:"renderItem",value:function(I,y,P){var S=this;if(!this.state.selectOptions)return null;if(this.props.alive){var k=this.getContext();k!==this.state.context&&setTimeout(function(){return S.askInstance()},300)}var p,O=JSON.parse(JSON.stringify(this.state.selectOptions)),d=Array.isArray(this.state.value)||this.state.value===J.default.DIFFERENT_LABEL;return d?((0,h.default)(this.state.value).filter(function(w){return!O.find(function(U){return U.value===w})}).forEach(function(w){return O.push({label:w.toString(),value:w})}),p={label:oe.default.t(J.default.DIFFERENT_LABEL),value:J.default.DIFFERENT_VALUE},O.unshift(p)):(p=this.state.value!==null&&this.state.value!==void 0&&O.find(function(w){return w.value==S.state.value}),this.state.value!==null&&this.state.value!==void 0&&!p&&(p={value:this.state.value,label:this.state.value},O.push(p)),p=p||null),O.length?b.default.createElement(F.Autocomplete,{value:p,fullWidth:!0,freeSolo:!!this.props.schema.freeSolo,options:O,getOptionLabel:function(U){return U&&U.label||""},className:this.props.classes.indeterminate,onInputChange:function(U){if(U){var Y=U.target.value;Y!==S.state.value&&S.setState({value:Y},function(){return S.onChange(S.props.attr,Y)})}},onChange:function(U,Y){var se=(0,o.default)(Y)==="object"?Y?Y.value:"":Y;se!==S.state.value&&S.setState({value:se},function(){return S.onChange(S.props.attr,se)})},renderInput:function(U){return b.default.createElement(F.TextField,(0,a.default)({variant:"standard"},U,{error:!!I,placeholder:S.getText(S.props.schema.placeholder),label:S.getText(S.props.schema.label),helperText:S.renderHelp(S.props.schema.help,S.props.schema.helpLink,S.props.schema.noTranslation),disabled:!!y}))}}):b.default.createElement(F.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!I,disabled:!!y,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(U){var Y=U.target.value;S.setState({value:Y},function(){return S.onChange(S.props.attr,(Y||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),G}(J.default);X.propTypes={socket:M.default.object.isRequired,themeType:M.default.string,themeName:M.default.string,style:M.default.object,className:M.default.string,data:M.default.object.isRequired,schema:M.default.object,onError:M.default.func,onChange:M.default.func};var K=(0,D.withStyles)(_)(X);r.default=K},36587:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),o=t(e(48926)),h=t(e(34575)),E=t(e(93913)),T=t(e(16525)),g=t(e(2205)),i=t(e(78585)),f=t(e(29754)),u=t(e(4819)),b=t(e(15854)),M=e(58503),D=t(e(10391)),F=t(e(75197)),oe=e(94427),J=t(e(30472)),R=t(e(55289)),ae=t(e(92636));function _(G){var W=X();return function(){var y=(0,f.default)(G),P;if(W){var S=(0,f.default)(this).constructor;P=Reflect.construct(y,arguments,S)}else P=y.apply(this,arguments);return(0,i.default)(this,P)}}function X(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(G){return!1}}var K=function(W){return{fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}}},H=function(G){(0,g.default)(I,G);var W=_(I);function I(){return(0,h.default)(this,I),W.apply(this,arguments)}return(0,E.default)(I,[{key:"componentDidMount",value:function(){var y=(0,o.default)(a.default.mark(function S(){var k,p,O,d;return a.default.wrap(function(U){for(;;)switch(U.prev=U.next){case 0:(0,T.default)((0,f.default)(I.prototype),"componentDidMount",this).call(this),k=this.props,p=k.data,O=k.attr,d=ae.default.getValue(p,O)||"",this.setState({value:d});case 4:case"end":return U.stop()}},S,this)}));function P(){return y.apply(this,arguments)}return P}()},{key:"renderItem",value:function(P,S,k){var p=this,O=this.props,d=O.classes,w=O.schema,U=O.attr,Y=this.state,se=Y.value,we=Y.showDialog;return u.default.createElement(F.default,{className:d.fullWidth,variant:"standard"},u.default.createElement(D.default,{shrink:!0},this.getText(w.label)),u.default.createElement("div",{className:d.flex},u.default.createElement(oe.TextField,{variant:"standard",fullWidth:!0,value:se,error:!!P,disabled:S,placeholder:this.getText(w.placeholder),label:this.getText(w.label),helperText:this.renderHelp(w.help,w.helpLink,w.noTranslation),onChange:function(Z){var ie=Z.target.value;p.setState({value:ie},function(){return p.onChange(U,ie)})}}),u.default.createElement(oe.Button,{color:"grey",className:this.props.classes.button,size:"small",variant:"outlined",onClick:function(){return p.setState({showDialog:!0})}},"...")),we?u.default.createElement(J.default,{title:R.default.t("ra_Define schedule"),simple:w.simple,complex:w.complex,cron:se,language:R.default.getLanguage(),onClose:function(){return p.setState({showDialog:!1})},cancel:R.default.t("ra_Cancel"),ok:R.default.t("ra_Ok"),onOk:function(Z){return p.setState({showDialog:!1,value:Z},function(){return p.onChange(U,Z)})}}):null)}}]),I}(ae.default);H.propTypes={themeType:b.default.string,themeName:b.default.string,style:b.default.object,className:b.default.string,data:b.default.object.isRequired,schema:b.default.object,onError:b.default.func,onChange:b.default.func,dateFormat:b.default.string,isFloatComma:b.default.bool};var L=(0,M.withStyles)(K)(H);r.default=L},94249:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),o=t(e(48926)),h=t(e(34575)),E=t(e(93913)),T=t(e(16525)),g=t(e(2205)),i=t(e(78585)),f=t(e(29754)),u=t(e(4819)),b=t(e(15854)),M=e(58503),D=t(e(10391)),F=t(e(46881)),oe=t(e(93640)),J=t(e(75197)),R=t(e(96489)),ae=t(e(92636)),_=t(e(55289));function X(W){var I=K();return function(){var P=(0,f.default)(W),S;if(I){var k=(0,f.default)(this).constructor;S=Reflect.construct(P,arguments,k)}else S=P.apply(this,arguments);return(0,i.default)(this,S)}}function K(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(W){return!1}}var H=function(I){return{fullWidth:{width:"100%"}}},L=function(W){(0,g.default)(y,W);var I=X(y);function y(){return(0,h.default)(this,y),I.apply(this,arguments)}return(0,E.default)(y,[{key:"componentDidMount",value:function(){var P=(0,o.default)(a.default.mark(function k(){var p=this,O,d;return a.default.wrap(function(U){for(;;)switch(U.prev=U.next){case 0:return(0,T.default)((0,f.default)(y.prototype),"componentDidMount",this).call(this),O=ae.default.getValue(this.props.data,this.props.attr),U.next=4,this.props.socket.getCertificates();case 4:d=U.sent,d=d.filter(function(Y){var se=p.props.attr.toLowerCase();return se.includes(Y.type)||Y.type==="public"&&se.includes("cert")||Y.type==="private"&&(se.includes("priv")||se.includes("key"))?!0:!!(Y.type==="chained"&&(se.includes("chain")||se.includes("ca")))}).map(function(Y){return{label:Y.name,value:Y.name}}),d.unshift({label:_.default.t(ae.default.NONE_LABEL),value:ae.default.NONE_VALUE}),this.setState({value:O,selectOptions:d});case 8:case"end":return U.stop()}},k,this)}));function S(){return P.apply(this,arguments)}return S}()},{key:"renderItem",value:function(S,k,p){var O,d=this,w;if(!this.state.selectOptions)return null;var U=(O=this.state.selectOptions)===null||O===void 0?void 0:O.find(function(Y){return Y.value===d.state.value});return u.default.createElement(J.default,{className:this.props.classes.fullWidth,variant:"standard"},u.default.createElement(D.default,{shrink:!0},this.getText(this.props.schema.label)),u.default.createElement(R.default,{variant:"standard",error:!!S,displayEmpty:!0,disabled:!!k,value:this.state.value,renderValue:function(se){return d.getText(U==null?void 0:U.label,d.props.schema.noTranslation!==!1)},onChange:function(se){return d.setState({value:se.target.value},function(){return d.onChange(d.props.attr,d.state.value)})}},(w=this.state.selectOptions)===null||w===void 0?void 0:w.map(function(Y){return u.default.createElement(F.default,{key:Y.value,value:Y.value,style:Y.value===ae.default.NONE_VALUE?{opacity:.5}:{}},d.getText(Y.label,d.props.schema.noTranslation!==!1))})),this.props.schema.help?u.default.createElement(oe.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),y}(ae.default);L.propTypes={socket:b.default.object.isRequired,themeType:b.default.string,themeName:b.default.string,style:b.default.object,className:b.default.string,data:b.default.object.isRequired,schema:b.default.object,onError:b.default.func,onChange:b.default.func};var G=(0,M.withStyles)(H)(L);r.default=G},22638:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=t(e(11933)),b=t(e(23082)),M=t(e(93640)),D=t(e(75197)),F=t(e(92636)),oe=t(e(55289));function J(K){var H=R();return function(){var G=(0,T.default)(K),W;if(H){var I=(0,T.default)(this).constructor;W=Reflect.construct(G,arguments,I)}else W=G.apply(this,arguments);return(0,E.default)(this,W)}}function R(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(K){return!1}}var ae=function(H){return{error:{color:"red"}}},_=function(K){(0,h.default)(L,K);var H=J(L);function L(){return(0,a.default)(this,L),H.apply(this,arguments)}return(0,o.default)(L,[{key:"renderItem",value:function(W,I){var y=this,P=F.default.getValue(this.props.data,this.props.attr),S=Array.isArray(P);return g.default.createElement(D.default,{className:this.props.classes.fullWidth,variant:"standard"},g.default.createElement(u.default,{onClick:function(p){p.preventDefault(),p.stopPropagation(),y.onChange(y.props.attr,!P)},control:g.default.createElement(b.default,{indeterminate:S,checked:!!P,onChange:function(p){S?y.onChange(y.props.attr,!0):y.onChange(y.props.attr,p.target.checked)},disabled:!!I}),label:this.getText(this.props.schema.label)}),g.default.createElement(M.default,{className:this.props.classes.error},W?this.props.schema.validatorErrorText?oe.default.t(this.props.schema.validatorErrorText):oe.default.t("ra_Error"):null),this.props.schema.help?g.default.createElement(M.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),L}(F.default);_.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,schema:i.default.object,onError:i.default.func,onChange:i.default.func};var X=(0,f.withStyles)(ae)(_);r.default=X},82600:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(93640)),M=t(e(75197)),D=t(e(92636)),F=t(e(90291));function oe(X){var K=J();return function(){var L=(0,g.default)(X),G;if(K){var W=(0,g.default)(this).constructor;G=Reflect.construct(L,arguments,W)}else G=L.apply(this,arguments);return(0,T.default)(this,G)}}function J(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(X){return!1}}var R=function(K){return{fullWidth:{width:"100%"}}},ae=function(X){(0,E.default)(H,X);var K=oe(H);function H(){return(0,a.default)(this,H),K.apply(this,arguments)}return(0,o.default)(H,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(H.prototype),"componentDidMount",this).call(this);var G=this.props,W=G.data,I=G.attr,y=D.default.getValue(W,I);if(this.props.schema.delimiter&&typeof y=="string"){var P=y.split(this.props.schema.delimiter).map(function(S){return S.trim()}).filter(function(S){return S});this.setState({value:P})}else this.setState({value:y||[]})}},{key:"renderItem",value:function(G,W,I){var y=this,P=this.props,S=P.attr,k=P.schema,p=this.state.value;return i.default.createElement(M.default,{className:this.props.classes.fullWidth,variant:"standard"},i.default.createElement(F.default,{value:p,disabled:!!W,label:this.getText(k.label),error:!!G,onAdd:function(d){var w=JSON.parse(JSON.stringify(p));w.push(d),y.setState({value:w,prevValue:""},function(){y.props.schema.delimiter?y.onChange(S,w.join(y.props.schema.delimiter+" ")):y.onChange(S,w)})},onDelete:function(d,w){var U=JSON.parse(JSON.stringify(p));U.splice(w,1),y.setState({value:U,prevValue:""},function(){y.props.schema.delimiter?y.onChange(S,U.join(y.props.schema.delimiter+" ")):y.onChange(S,U)})}}),this.props.schema.help?i.default.createElement(b.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),H}(D.default);ae.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var _=(0,u.withStyles)(R)(ae);r.default=_},73689:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=e(49246),b=t(e(72952)),M=t(e(61318)),D=t(e(28020)),F=t(e(62976)),oe=t(e(33919)),J=t(e(49021)),R=t(e(92636));function ae(L){var G=_();return function(){var I=(0,T.default)(L),y;if(G){var P=(0,T.default)(this).constructor;y=Reflect.construct(I,arguments,P)}else y=I.apply(this,arguments);return(0,E.default)(this,y)}}function _(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(L){return!1}}var X=function(G){return{}},K=function(L){(0,h.default)(W,L);var G=ae(W);function W(){return(0,a.default)(this,W),G.apply(this,arguments)}return(0,o.default)(W,[{key:"renderColorDialog",value:function(){var y=this;return!!this.state.showColorDialog&&g.default.createElement(D.default,{onClose:function(){return y.setState({showColorDialog:!1})},open:this.state.showColorDialog},g.default.createElement(u.ChromePicker,{color:this.state.colorDialogValue,onChange:function(S){y.setState({colorDialogValue:S},function(){return y.onChange(y.props.attr,J.default.getColor(y.state.colorDialogValue,!0))})}}))}},{key:"renderItem",value:function(y,P,S){var k=this,p=R.default.getValue(this.props.data,this.props.attr),O=oe.default.isUseBright(p,null);return O===null&&(O=void 0),g.default.createElement(g.default.Fragment,null,this.renderColorDialog(),g.default.createElement(M.default,{variant:"standard",disabled:!!P,style:{minWidth:100,width:"calc(100% - 8px)"},label:this.getText(this.props.schema.label),value:p||"",onClick:function(){return k.setState({showColorDialog:!0,colorDialogValue:p})},onChange:function(w){var U=w.target.value;k.onChange(k.props.attr,U)},inputProps:{style:{backgroundColor:p,color:O?"#FFF":"#000"}},InputProps:{endAdornment:p?g.default.createElement(b.default,{disabled:!!this.props.onPaste,size:"small",onClick:function(w){w.stopPropagation(),k.onChange(k.props.attr,"")}},g.default.createElement(F.default,null)):void 0},InputLabelProps:{shrink:!0}}))}}]),W}(R.default);K.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,schema:i.default.object,onError:i.default.func,onChange:i.default.func};var H=(0,f.withStyles)(X)(K);r.default=H},95648:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(61318)),M=t(e(22238)),D=t(e(94719)),F=t(e(55289)),oe=t(e(92636));function J(K){var H=R();return function(){var G=(0,g.default)(K),W;if(H){var I=(0,g.default)(this).constructor;W=Reflect.construct(G,arguments,I)}else W=G.apply(this,arguments);return(0,T.default)(this,W)}}function R(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(K){return!1}}var ae=function(H){return{width:{width:"calc(100% - 40px)"}}},_=function(K){(0,E.default)(L,K);var H=J(L);function L(){return(0,a.default)(this,L),H.apply(this,arguments)}return(0,o.default)(L,[{key:"componentDidMount",value:function(){var W=this;(0,h.default)((0,g.default)(L.prototype),"componentDidMount",this).call(this);var I=oe.default.getValue(this.props.data,this.props.attr);!I&&this.props.schema.autoInit&&setTimeout(function(){return W.getCoordinates()},300)}},{key:"getSystemCoordinates",value:function(){var W=this;return this.props.socket.getSystemConfig().then(function(I){I&&I.common&&(I.common.longitude||I.common.latitude)?(window.alert(F.default.t("ra_Used system settings")),W.setState({value:I.common.latitude+(W.props.schema.divider||",")+I.common.longitude})):window.alert(F.default.t("ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser"))})}},{key:"getCoordinates",value:function(){var W=this;navigator.geolocation?navigator.geolocation.getCurrentPosition(function(I){I&&I.coords?W.setState({value:I.coords.latitude+(W.props.schema.divider||",")+I.coords.longitude}):W.getSystemCoordinates()},function(I){W.getSystemCoordinates()}):this.getSystemCoordinates()}},{key:"renderItem",value:function(W,I,y){var P=this;return i.default.createElement(i.default.Fragment,null,i.default.createElement(b.default,{variant:"standard",className:this.props.classes.width,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!W,disabled:!!I,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(k){var p=k.target.value;P.setState({value:p},function(){return P.onChange(P.props.attr,(p||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),i.default.createElement(M.default,{size:"small",onClick:function(){return P.getCoordinates()}},i.default.createElement(D.default,null)))}}]),L}(oe.default);_.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var X=(0,u.withStyles)(ae)(_);r.default=X},19329:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=t(e(87757)),h=t(e(68551)),E=t(e(50008)),T=t(e(34575)),g=t(e(93913)),i=t(e(2205)),f=t(e(78585)),u=t(e(29754)),b=t(e(48926)),M=ae(e(4819)),D=t(e(15854)),F=t(e(23180)),oe=t(e(61711)),J=t(e(55289));function R(W){if(typeof WeakMap!="function")return null;var I=new WeakMap,y=new WeakMap;return(R=function(S){return S?y:I})(W)}function ae(W,I){if(!I&&W&&W.__esModule)return W;if(W===null||a(W)!=="object"&&typeof W!="function")return{default:W};var y=R(I);if(y&&y.has(W))return y.get(W);var P={},S=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var k in W)if(k!=="default"&&Object.prototype.hasOwnProperty.call(W,k)){var p=S?Object.getOwnPropertyDescriptor(W,k):null;p&&(p.get||p.set)?Object.defineProperty(P,k,p):P[k]=W[k]}return P.default=W,y&&y.set(W,P),P}function _(W){var I=X();return function(){var P=(0,u.default)(W),S;if(I){var k=(0,u.default)(this).constructor;S=Reflect.construct(P,arguments,k)}else S=P.apply(this,arguments);return(0,f.default)(this,S)}}function X(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(W){return!1}}var K=function(I,y){var P=arguments.length>2&&arguments[2]!==void 0?arguments[2]:void 0;return new Promise(function(S,k){if(window[I])S(window[I]);else{var p=document.querySelector('script[data-webpack="'.concat(I,'"]')),O=function(){var U=(0,b.default)(o.default.mark(function Y(){return o.default.wrap(function(we){for(;;)switch(we.prev=we.next){case 0:if(!window[I]){we.next=12;break}if(window[I].__initialized){we.next=10;break}we.next=7;break;case 5:we.next=9;break;case 7:return we.next=9,window[I].init(e.S[y]);case 9:window[I].__initialized=!0;case 10:we.next=14;break;case 12:return console.error("Cannot load "+I),we.abrupt("return",k("Cannot load "+I));case 14:S(window[I]);case 15:case"end":return we.stop()}},Y)}));return function(){return U.apply(this,arguments)}}();if(p)p.onload=O,p.onerror=k;else if(P){var d=document,w=d.createElement("script");w.type="text/javascript",w.setAttribute("data-webpack","".concat(I)),w.async=!0,w.onerror=k,w.onload=O,w.src=P,d.getElementsByTagName("head")[0].appendChild(w)}else k("Cannot Find Remote ".concat(I," to inject"))}})},H=function(I,y,P,S){return(0,b.default)(o.default.mark(function k(){var p,O,d;return o.default.wrap(function(U){for(;;)switch(U.prev=U.next){case 0:return U.next=2,K(I,y,S);case 2:return p=U.sent,U.next=5,p.get(P);case 5:return O=U.sent,d=O(),U.abrupt("return",d);case 8:case"end":return U.stop()}},k)}))},L=function(W){(0,i.default)(y,W);var I=_(y);function y(P){var S;return(0,T.default)(this,y),S=I.call(this,P),S.state={Component:null,error:""},S}return(0,g.default)(y,[{key:"componentDidMount",value:function(){var P=(0,b.default)(o.default.mark(function k(){var p,O,d,w,U,Y,se,we,Te,Z,ie,Ae;return o.default.wrap(function(Ee){for(;;)switch(Ee.prev=Ee.next){case 0:if(this.props.schema.url){Ee.next=4;break}return console.error("URL is empty. Cannot load custom component!"),this.setState({error:"URL is empty. Cannot load custom component!"}),Ee.abrupt("return");case 4:if(this.props.schema.url.startsWith("http:")||this.props.schema.url.startsWith("https:")?p=this.props.schema.url:this.props.schema.url.startsWith("./")?p="".concat(window.location.protocol,"//").concat(window.location.host).concat(this.props.schema.url.replace(/^\./,"")):p="".concat(window.location.protocol,"//").concat(window.location.host,"/adapter/").concat(this.props.adapterName,"/").concat(this.props.schema.url),this.props.schema.i18n!==!0){Ee.next=14;break}return O=p.lastIndexOf("/"),O!==-1?d=p.substring(0,O):d=p,w=J.default.getLanguage(),U="".concat(d,"/i18n/").concat(w,".json"),Ee.next=12,fetch(U).then(function(Se){return Se.json()}).then(function(Se){return J.default.extendTranslations(Se,w)}).catch(function(Se){return console.log('Cannot load i18n "'.concat(U,'": ').concat(Se))});case 12:Ee.next=15;break;case 14:if(this.props.schema.i18n&&(0,E.default)(this.props.schema.i18n)==="object")try{J.default.extendTranslations(this.props.schema.i18n)}catch(Se){console.error("Cannot import i18n: ".concat(Se))}case 15:return Ee.prev=15,Y=this.props.schema.name.split("/"),se=(0,h.default)(Y),we=se[0],Te=se[1],Z=se.slice(2),console.log(we,Te,Z.join("/")),Ee.next=20,H(we,"default","./".concat(Te),p)();case 20:ie=Ee.sent.default,!ie||!ie||!ie[Z.join("/")]?(Ae=Object.keys(ie||{}),console.error("URL is empty. Cannot load custom component!"),this.setState({error:"Component ".concat(this.props.schema.name," not found in ").concat(this.props.schema.url,". Found: ").concat(Ae.join(", "))})):this.setState({Component:ie[Z.join("/")]}),Ee.next=27;break;case 24:Ee.prev=24,Ee.t0=Ee.catch(15),this.setState({error:"Cannot import from ".concat(this.props.schema.url,": ").concat(Ee.t0)});case 27:case"end":return Ee.stop()}},k,this,[[15,24]])}));function S(){return P.apply(this,arguments)}return S}()},{key:"render",value:function(){var S=this.state.Component;if(!S){if(this.state.error)return;var k=this.props.schema||{},p=M.default.createElement(oe.default,{item:!0,xs:k.xs||void 0,lg:k.lg||void 0,md:k.md||void 0,sm:k.sm||void 0,style:Object.assign({},{marginBottom:0,textAlign:"left",width:k.type==="divider"||k.type==="header"?k.width||"100%":void 0},k.style,this.props.themeType==="dark"?k.darkStyle:{})},this.state.error?M.default.createElement("div",null,this.state.error):M.default.createElement(F.default,null));return k.newLine?M.default.createElement(M.default.Fragment,null,M.default.createElement("div",{style:{flexBasis:"100%",height:0}}),p):p}return M.default.createElement(S,this.props)}}]),y}(M.Component);L.propTypes={socket:D.default.object,themeType:D.default.string,themeName:D.default.string,style:D.default.object,className:D.default.string,attr:D.default.string,data:D.default.object.isRequired,schema:D.default.object.isRequired,onError:D.default.func,onChange:D.default.func};var G=L;r.default=G},1154:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=e(4186),M=t(e(92636));function D(ae){var _=F();return function(){var K=(0,g.default)(ae),H;if(_){var L=(0,g.default)(this).constructor;H=Reflect.construct(K,arguments,L)}else H=K.apply(this,arguments);return(0,T.default)(this,H)}}function F(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(ae){return!1}}var oe=function(_){return{indeterminate:{opacity:.5}}},J=function(ae){(0,E.default)(X,ae);var _=D(X);function X(){return(0,a.default)(this,X),_.apply(this,arguments)}return(0,o.default)(X,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(X.prototype),"componentDidMount",this).call(this);var H=M.default.getValue(this.props.data,this.props.attr);this.setState({value:H})}},{key:"renderItem",value:function(H,L,G){var W=this;return i.default.createElement(b.DatePicker,{fullWidth:!0,margin:"normal",format:this.props.systemConfig.dateFormat.toLowerCase().replace("mm","MM"),error:!!H,disabled:!!L,value:this.state.value===null||this.state.value===void 0?new Date:this.state.value,KeyboardButtonProps:{"aria-label":"change date"},inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(y){W.setState({value:y},function(){return W.onChange(W.props.attr,y)})},InputLabelProps:{shrink:!0},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),X}(M.default);J.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var R=(0,u.withStyles)(oe)(J);r.default=R},19900:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(73319)),M=t(e(61318)),D=t(e(72952)),F=t(e(12660)),oe=t(e(32002)),J=t(e(41173)),R=t(e(37538)),ae=t(e(35956)),_=t(e(92636)),X=t(e(56045));function K(p){var O=H();return function(){var w=(0,g.default)(p),U;if(O){var Y=(0,g.default)(this).constructor;U=Reflect.construct(w,arguments,Y)}else U=w.apply(this,arguments);return(0,T.default)(this,U)}}function H(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(p){return!1}}var L=function(O){return{fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 69px)",marginRight:4},fullWidthIcon:{width:"calc(100% - 119px)",marginRight:4},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}}},G=["jpg","jpeg","svg","png","webp"],W=["mp3","ogg","wav","aac"],I=["avi","mp4","mov"],y=["txt","log","html","htm"],P=["json","js","ts"],S=function(p){(0,E.default)(d,p);var O=K(d);function d(){return(0,a.default)(this,d),O.apply(this,arguments)}return(0,o.default)(d,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(d.prototype),"componentDidMount",this).call(this);var U=_.default.getValue(this.props.data,this.props.attr);this.imagePrefix=this.props.imagePrefix===void 0?"./files":this.props.imagePrefix,this.setState({value:U})}},{key:"loadFile",value:function(){var U=this.state.value.indexOf("/");if(U!==-1){var Y=this.state.value.substring(0,U),se=this.state.value.substring(U+1);return this.props.socket.readFile(Y,se,!0)}}},{key:"play",value:function(){this.loadFile().then(function(U){if(typeof AudioContext!="undefined"){var Y=new AudioContext,se=X.default.base64ToArrayBuffer(U.file);Y.decodeAudioData(se,function(we){var Te=Y.createBufferSource();Te.buffer=we,Te.connect(Y.destination),Te.start(0)},function(we){return window.alert("Cannot play: "+we)})}})}},{key:"getIcon",value:function(){var U=this,Y=this.state.value.split(".").pop().toLowerCase();return G.includes(Y)?i.default.createElement("div",{className:this.props.classes.selectedImage,style:{backgroundImage:"url(".concat(this.imagePrefix,"/").concat(this.state.value,")"),backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):W.includes(Y)?i.default.createElement(D.default,{style:{color:"#00FF00"},onClick:function(){return U.play()}},i.default.createElement(R.default,null)):y.includes(Y)?i.default.createElement(F.default,null):I.includes(Y)?i.default.createElement(oe.default,null):P.includes(Y)?i.default.createElement(J.default,null):null}},{key:"renderFileBrowser",value:function(){var U=this;return this.state.showFileBrowser?i.default.createElement(ae.default,{imagePrefix:this.props.imagePrefix,socket:this.props.socket,selected:this.state.value,onClose:function(){return U.setState({showFileBrowser:!1})},onOk:function(se){U.setState({value:se},function(){return U.onChange(U.props.attr,U.props.schema.trim===!1?se:(se||"").trim())})},selectOnlyFolders:this.props.schema.selectOnlyFolders,allowUpload:this.props.schema.allowUpload,allowDownload:this.props.schema.allowDownload,allowCreateFolder:this.props.schema.allowCreateFolder,allowView:this.props.schema.allowView,showToolbar:this.props.schema.showToolbar,limitPath:this.props.schema.limitPath}):null}},{key:"renderItem",value:function(U,Y,se){var we=this,Te=this.getIcon();return i.default.createElement("div",{className:this.props.classes.fullWidth},Te,i.default.createElement(M.default,{variant:"standard",className:Te?this.props.classes.fullWidthIcon:this.props.classes.fullWidthOneButton,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!U,disabled:!!Y,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0,readOnly:!!this.props.schema.disableEdit},onChange:function(ie){var Ae=ie.target.value;we.setState({value:Ae},function(){return we.onChange(we.props.attr,we.props.schema.trim===!1?Ae:(Ae||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),i.default.createElement(b.default,{variant:"outlined",onClick:function(){return we.setState({showFileBrowser:!0})}},"..."),this.renderFileBrowser())}}],[{key:"getDerivedStateFromProps",value:function(U,Y){var se=_.default.getValue(U.data,U.attr);return se==null||se.toString().trim()!==(Y.value||"").toString().trim()?{value:se}:null}}]),d}(_.default);S.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func,imagePrefix:f.default.func};var k=(0,u.withStyles)(L)(S);r.default=k},56045:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),o=t(e(67154)),h=t(e(48926)),E=t(e(34575)),T=t(e(93913)),g=t(e(16525)),i=t(e(2205)),f=t(e(78585)),u=t(e(29754)),b=t(e(4819)),M=t(e(15854)),D=e(58503),F=t(e(23167)),oe=t(e(10391)),J=t(e(46881)),R=t(e(93640)),ae=t(e(75197)),_=t(e(96489)),X=t(e(72952)),K=t(e(60128)),H=t(e(58206)),L=t(e(22675)),G=t(e(72489)),W=t(e(91495)),I=t(e(37538)),y=t(e(43760)),P=t(e(32002)),S=t(e(12660)),k=t(e(41173)),p=e(42158),O=t(e(33919)),d=t(e(55289)),w=t(e(41728)),U=t(e(92636));function Y(Le){var tt=se();return function(){var it=(0,u.default)(Le),N;if(tt){var q=(0,u.default)(this).constructor;N=Reflect.construct(it,arguments,q)}else N=it.apply(this,arguments);return(0,f.default)(this,N)}}function se(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(Le){return!1}}var we=function(tt){return{fullWidth:{width:"100%"},fullWidthOneButton:{width:"calc(100% - 42px)"},fullWidthTwoButtons:{width:"calc(100% - 84px)"},fullWidthThreeButtons:{width:"calc(100% - 126x)"},dropZone:{width:"100%",height:"100%",position:"absolute"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"100%",height:"100%",position:"absolute",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},error:{border:"2px solid red"},deleteButton:{},selectedImage:{height:40,width:40,display:"inline-block",marginRight:8}}},Te=["jpg","jpeg","svg","png","webp"],Z=["mp3","ogg","wav","aac"],ie=["avi","mp4","mov"],Ae=["txt","log","html","htm"],le=["json","js","ts"],Ee=function(Le){(0,i.default)(Xe,Le);var tt=Y(Xe);function Xe(it){var N;return(0,E.default)(this,Xe),N=tt.call(this,it),N.dropzoneRef=b.default.createRef(),N.imagePrefix=N.props.imagePrefix===void 0?"./files":N.props.imagePrefix,N}return(0,T.default)(Xe,[{key:"componentDidMount",value:function(){var N=this;(0,g.default)((0,u.default)(Xe.prototype),"componentDidMount",this).call(this),this.objectID=(this.props.schema.objectID||"0_userdata.0").replace("%INSTANCE%",this.props.instance),this.path=this.props.schema.upload,this.path&&(this.path==="/"?this.path="":this.path.endsWith("/")||(this.path=this.path+"/")),this.updateFiles().then(function(){var q=U.default.getValue(N.props.data,N.props.attr);N.setState({value:q})})}},{key:"updateFiles",value:function(){var N=this;return this.readFiles(this.props.schema.pattern).then(function(q){return N.setState({files:q})})}},{key:"readFolder",value:function(){var it=(0,h.default)(a.default.mark(function q(V,he,ne){var ce,Ie,We,qe,ct;return a.default.wrap(function(nt){for(;;)switch(nt.prev=nt.next){case 0:return nt.prev=0,nt.next=3,this.props.socket.readDir(this.objectID,V.replace(/^\//,"")||null);case 3:ce=nt.sent,Ie=0;case 5:if(!(Iene)return window.alert(d.default.t("File is too big. Max %sk allowed. Try use SVG.",Math.round(ne/1024)));var Ie="data:".concat(ce,";base64,").concat(btoa(new Uint8Array(he.result).reduce(function(We,qe){return We+String.fromCharCode(qe)},"")));q.props.socket.writeFile64(q.objectID,q.path+V.name,Ie).then(function(){return q.updateFiles()}).catch(function(We){return window.alert("Cannot upload file: "+We)})},he.readAsArrayBuffer(V)}},{key:"renderDeleteDialog",value:function(){var N=this;return this.state.deleteFile?b.default.createElement(w.default,{title:d.default.t("ra_Are you sure?"),text:d.default.t("ra_File will be deleted"),ok:d.default.t("ra_Delete"),cancel:d.default.t("ra_Cancel"),onClose:function(V){var he=N.state.deleteFile;N.setState({deleteFile:!1},function(){V&&N.props.socket.deleteFile(N.objectID,he).then(function(){return N.updateFiles()}).catch(function(ne){return window.alert("Cannot delete file: "+ne)})})}}):null}},{key:"loadFile",value:function(){return this.props.socket.readFile(this.objectID,this.state.value,!0)}},{key:"play",value:function(){this.loadFile().then(function(N){if(typeof AudioContext!="undefined"){var q=new AudioContext,V=Xe.base64ToArrayBuffer(N.file);q.decodeAudioData(V,function(he){var ne=q.createBufferSource();ne.buffer=he,ne.connect(q.destination),ne.start(0)},function(he){return window.alert("Cannot play: "+he)})}})}},{key:"getIcon",value:function(N){return!N||!N.extension?null:Te.includes(N.extension)?b.default.createElement("div",{className:this.props.classes.selectedImage,style:{backgroundImage:"url(".concat(this.imagePrefix,"/").concat(this.objectID,"/").concat(N.value,")"),backgroundSize:"contain",backgroundRepeat:"no-repeat"}}):Z.includes(N.extension)?b.default.createElement(y.default,null):Ae.includes(N.extension)?b.default.createElement(S.default,null):ie.includes(N.extension)?b.default.createElement(P.default,null):le.includes(N.extension)?b.default.createElement(k.default,null):null}},{key:"renderItem",value:function(N,q,V){var he=this;if(!this.state.files)return null;var ne=[];this.props.schema.withFolder||this.state.files.forEach(function(mt){var It=mt.name.lastIndexOf("/");if(It===-1)ne.includes("/")||ne.push("/");else{var aa=mt.name.substring(0,It+1);ne.includes(aa)||ne.push(aa)}});var ce=this.state.files.map(function(mt){return{value:mt.name,label:!he.props.schema.withFolder&&ne.length===1?"".concat(mt.name.substring(ne[0].length)):"".concat(mt.name)+(he.props.schema.noSize?"":"(".concat(mt.size,")")),extension:mt.name.toLowerCase().split(".").pop()}});this.props.schema.noNone||ce.unshift({label:d.default.t("ra_none"),value:""});var Ie=ce.find(function(mt){return mt.value===he.state.value}),We=0;this.props.schema.upload&&We++,this.props.schema.refresh&&We++;var qe=this.state.value&&(this.state.value.endsWith(".mp3")||this.state.value.endsWith(".ogg")||this.state.value.endsWith(".wav"));qe&&We++;var ct=b.default.createElement("div",{className:this.props.classes.fullWidth},b.default.createElement(ae.default,{variant:"standard",style:{width:"calc(100% - ".concat(We*42,"px)")}},b.default.createElement(oe.default,null,this.getText(this.props.schema.label)),b.default.createElement(_.default,{variant:"standard",error:!!N,disabled:!!q,value:this.state.value||"_",renderValue:function(It){return b.default.createElement(b.default.Fragment,null,he.getIcon(Ie),b.default.createElement("span",null,(Ie==null?void 0:Ie.label)||""))},onChange:function(It){he.setState({value:It.target.value==="_"?"":It.target.value},function(){return he.onChange(he.props.attr,he.state.value)})}},ce.map(function(mt){return b.default.createElement(J.default,{key:mt.value,value:mt.value},b.default.createElement(H.default,null,he.getIcon(mt)),b.default.createElement(K.default,null,mt.label),he.props.schema.delete&&mt.value?b.default.createElement(X.default,{className:he.props.classes.deleteButton,size:"small",onClick:function(){return he.setState({deleteFile:mt.value})}},b.default.createElement(W.default,null)):null)})),this.props.schema.help?b.default.createElement(R.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null),this.props.schema.refresh&&b.default.createElement(X.default,{onClick:function(){return he.updateFiles()}},b.default.createElement(L.default,null)),this.props.schema.upload&&b.default.createElement(X.default,{onClick:function(){var It;return(It=he.dropzoneRef.current)===null||It===void 0?void 0:It.open()}},b.default.createElement(G.default,null)),qe&&b.default.createElement(X.default,{style:{color:"#00FF00"},onClick:function(){return he.play()}},b.default.createElement(I.default,null)));if(this.props.schema.upload){var dt={"*/*":[]};if(this.props.schema.pattern){var nt=this.props.schema.pattern.split("/").pop().toLowerCase().replace(/.*\./,"");nt==="png"||nt==="jpg"||nt==="svg"?dt={"image/*":[".png",".jpg",".svg"]}:nt==="mp3"||nt==="ogg"||nt==="wav"?dt={"audio/*":[".mp3",".ogg",".wav",".mp4"]}:nt==="ics"?dt={"text/calendar":[".mp3",".ogg",".wav",".mp4"]}:nt==="txt"?dt={"text/plain":[".txt"]}:nt==="pem"?dt={"text/plain":[".pem"]}:nt==="pem"&&(dt={"*/*":["."+nt]})}return b.default.createElement(F.default,{ref:this.dropzoneRef,multiple:!1,accept:dt,noKeyboard:!0,noClick:!0,maxSize:this.props.schema.maxSize||2*1024*1024,onDragEnter:function(){he.setState({uploadFile:"dragging"})},onDragLeave:function(){return he.setState({uploadFile:!0})},onDrop:function(It,aa){if(he.setState({uploadFile:!1}),!It.length)window.alert(aa&&aa[0]&&aa[0].errors&&aa[0].errors[0]&&aa[0].errors[0].message||d.default.t("Cannot upload"));else return he.onDrop(It)}},function(mt){var It=mt.getRootProps,aa=mt.getInputProps;return b.default.createElement("div",(0,o.default)({className:O.default.clsx(he.props.classes.uploadDiv,he.state.uploadFile==="dragging"&&he.props.classes.uploadDivDragging,q&&he.props.classes.disabledOpacity)},It()),b.default.createElement("input",aa()),he.state.uploadFile==="dragging"?b.default.createElement("div",{className:O.default.clsx(he.props.classes.uploadCenterDiv,he.state.uploadError&&he.props.classes.error)},b.default.createElement("div",{className:he.props.classes.uploadCenterTextAndIcon},b.default.createElement(p.FaFileUpload,{className:he.props.classes.uploadCenterIcon}),b.default.createElement("div",{className:he.props.classes.uploadCenterText},he.state.uploadFile==="dragging"?d.default.t("ra_Drop file here"):d.default.t("ra_Place your files here or click here to open the browse dialog")))):null,ct,he.renderDeleteDialog())})}else return b.default.createElement(b.default.Fragment,null,ct,this.renderDeleteDialog())}}],[{key:"base64ToArrayBuffer",value:function(N){for(var q=window.atob(N),V=q.length,he=new Uint8Array(V),ne=0;neAe.label?1:ie.labelSe.value?1:Ee.valuethis.props.schema.max&&(I=F.default.t("ra_Too big")));var O="number";(this.props.schema.min!==void 0&&this.props.schema.min<0||this.props.schema.max!==void 0&&this.props.schema.max<0)&&(O="text");var d=this.state._value!==null&&this.state._value!==void 0&&(typeof this.state._value=="number"||typeof this.state._value=="string"&&this.state._value.trim()===parseFloat(this.state._value).toString());return u.default.createElement(D.FormControl,{variant:"standard",className:this.props.classes.control},u.default.createElement(D.TextField,{variant:"standard",type:O,fullWidth:!0,inputProps:{min:this.props.schema.min,max:this.props.schema.max,step:this.props.schema.step},value:this.state._value===null||this.state._value===void 0?"":this.state._value,error:!!I,disabled:!!y,className:oe.default.clsx(O==="text"&&d&&this.props.classes.textWithArrows),onChange:function(U){var Y=U.target.value;isFinite(Y)?S.props.schema.min!==void 0&&parseFloat(Y)S.props.schema.max?S.onError(S.props.attr,F.default.t("ra_Too big")):Y==="-"||isNaN(parseFloat(Y))?S.onError(S.props.attr,F.default.t("ra_Not a number")):S.onError(S.props.attr):Y!==""?S.onError(S.props.attr,F.default.t("ra_Not a number")):S.onError(S.props.attr),S.setState({_value:Y},function(){Y.trim()===parseFloat(Y).toString()&&S.onChange(S.props.attr,parseFloat(Y)||0)})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:I&&typeof I=="string"?I:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}),O==="text"&&d?u.default.createElement("div",{className:this.props.classes.arrows},u.default.createElement("div",{className:this.props.classes.arrowUp,onClick:function(){var U=parseFloat(S.state._value)+1;S.props.schema.max!==void 0&&U<=S.props.schema.max&&S.setState({_value:U})}},"\u25B2"),u.default.createElement("div",{className:this.props.classes.arrowDown,onClick:function(){var U=parseFloat(S.state._value)-1;S.props.schema.min!==void 0&&U>=S.props.schema.min&&S.setState({_value:U})}},"\u25BC")):null)}}}],[{key:"getDerivedStateFromProps",value:function(I,y){if(I.schema.min!==void 0&&I.schema.min<0||I.schema.max!==void 0&&I.schema.max<0)return null;var P=J.default.getValue(I.data,I.attr);return P==null||P.toString()!==parseFloat(y._value).toString()?{_value:P}:null}}]),G}(J.default);X.propTypes={socket:b.default.object.isRequired,themeType:b.default.string,themeName:b.default.string,style:b.default.object,className:b.default.string,data:b.default.object.isRequired,schema:b.default.object,onError:b.default.func,onChange:b.default.func};var K=(0,M.withStyles)(_)(X);r.default=K},37350:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),o=t(e(48926)),h=t(e(34575)),E=t(e(93913)),T=t(e(16525)),g=t(e(2205)),i=t(e(78585)),f=t(e(29754)),u=t(e(4819)),b=t(e(15854)),M=e(58503),D=t(e(10391)),F=t(e(75197)),oe=e(94427),J=t(e(98735)),R=t(e(92636));function ae(L){var G=_();return function(){var I=(0,f.default)(L),y;if(G){var P=(0,f.default)(this).constructor;y=Reflect.construct(I,arguments,P)}else y=I.apply(this,arguments);return(0,i.default)(this,y)}}function _(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(L){return!1}}var X=function(G){return{fullWidth:{width:"100%"},flex:{display:"flex"},button:{height:48,marginLeft:4,minWidth:48}}},K=function(L){(0,g.default)(W,L);var G=ae(W);function W(){return(0,h.default)(this,W),G.apply(this,arguments)}return(0,E.default)(W,[{key:"componentDidMount",value:function(){var I=(0,o.default)(a.default.mark(function P(){var S,k,p,O;return a.default.wrap(function(w){for(;;)switch(w.prev=w.next){case 0:(0,T.default)((0,f.default)(W.prototype),"componentDidMount",this).call(this),S=this.props,k=S.data,p=S.attr,O=R.default.getValue(k,p)||"",this.setState({value:O,initialized:!0});case 4:case"end":return w.stop()}},P,this)}));function y(){return I.apply(this,arguments)}return y}()},{key:"renderItem",value:function(y,P,S){var k=this;if(!this.state.initialized)return null;var p=this.props,O=p.classes,d=p.schema,w=p.socket,U=p.attr,Y=this.state,se=Y.value,we=Y.showSelectId;return u.default.createElement(F.default,{className:O.fullWidth,variant:"standard"},u.default.createElement(D.default,{shrink:!0},this.getText(d.label)),u.default.createElement("div",{className:O.flex},u.default.createElement(oe.TextField,{variant:"standard",fullWidth:!0,value:se,error:!!y,disabled:P,placeholder:this.getText(d.placeholder),label:this.getText(d.label),helperText:this.renderHelp(d.help,d.helpLink,d.noTranslation),onChange:function(Z){var ie=Z.target.value;k.setState({value:ie},function(){return k.onChange(U,ie)})}}),u.default.createElement(oe.Button,{color:"grey",className:this.props.classes.button,size:"small",variant:"outlined",onClick:function(){return k.setState({showSelectId:!0})}},"...")),we?u.default.createElement(J.default,{imagePrefix:this.props.imagePrefix===void 0?"../..":this.props.imagePrefix,dateFormat:this.props.dateFormat,isFloatComma:this.props.isFloatComma,dialogName:"admin."+this.props.adapterName,themeType:this.props.themeType,socket:w,statesOnly:d.all===void 0?!0:d.all,selected:se,onClose:function(){return k.setState({showSelectId:!1})},onOk:function(Z){return k.setState({showSelectId:!1,value:Z},function(){return k.onChange(U,Z)})}}):null)}}]),W}(R.default);K.propTypes={socket:b.default.object.isRequired,themeType:b.default.string,themeName:b.default.string,style:b.default.object,className:b.default.string,data:b.default.object.isRequired,schema:b.default.object,onError:b.default.func,onChange:b.default.func,dateFormat:b.default.string,isFloatComma:b.default.bool,imagePrefix:b.default.string};var H=(0,M.withStyles)(X)(K);r.default=H},86442:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(23060)),M=t(e(61711)),D=t(e(32592)),F=t(e(17263)),oe=t(e(27376)),J=t(e(2475)),R=t(e(62664)),ae=t(e(92636)),_=t(e(88327)),X=t(e(16226)),K=t(e(35815)),H=t(e(36587)),L=t(e(94249)),G=t(e(22638)),W=t(e(82600)),I=t(e(73689)),y=t(e(95648)),P=t(e(19329)),S=t(e(1154)),k=t(e(19900)),p=t(e(56045)),O=t(e(19435)),d=t(e(31894)),w=t(e(58442)),U=t(e(59186)),Y=t(e(35390)),se=t(e(81313)),we=t(e(25803)),Te=t(e(37350)),Z=t(e(56617)),ie=t(e(38430)),Ae=t(e(93529)),le=t(e(51016)),Ee=t(e(36840)),Se=t(e(90374)),Le=t(e(8273)),tt=t(e(25747)),Xe=t(e(1121)),it=t(e(31297)),N=t(e(50971)),q=t(e(31590)),V=t(e(91008)),he=t(e(90957)),ne=t(e(59007)),ce=t(e(63365)),Ie=t(e(66678)),We=t(e(58176));function qe(ua){var Et=ct();return function(){var ca=(0,g.default)(ua),Lt;if(Et){var wt=(0,g.default)(this).constructor;Lt=Reflect.construct(ca,arguments,wt)}else Lt=ca.apply(this,arguments);return(0,T.default)(this,Lt)}}function ct(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(ua){return!1}}var dt={alive:_.default,autocomplete:X.default,autocompleteSendTo:K.default,certificate:L.default,checkbox:G.default,chip:W.default,chips:W.default,color:I.default,coordinates:y.default,cron:H.default,custom:P.default,datePicker:S.default,divider:Xe.default,file:k.default,fileSelector:p.default,func:O.default,header:it.default,image:w.default,instance:U.default,ip:d.default,jsonEditor:Y.default,language:se.default,number:we.default,objectId:Te.default,password:Z.default,pattern:ie.default,room:Ae.default,select:le.default,selectSendTo:Ee.default,sendTo:Se.default,setState:Le.default,slider:tt.default,staticImage:N.default,staticLink:q.default,staticText:q.default,table:V.default,text:he.default,textSendTo:ne.default,timePicker:ce.default,topic:Ie.default,user:We.default},nt=function(Et){return{fullWidth:{width:"100%"},paper:{margin:10,height:"calc(100vh - 235px) !important",width:"auto !important",overflowY:"auto",paddingBottom:Et.spacing(1)},padding:{padding:10},heading:{},primary:{backgroundColor:Et.palette.primary.main,color:Et.palette.mode==="dark"?"inherit":"#FFF"},secondary:{backgroundColor:Et.palette.secondary.main}}},mt=function(ua){(0,E.default)(ta,ua);var Et=qe(ta);function ta(){return(0,a.default)(this,ta),Et.apply(this,arguments)}return(0,o.default)(ta,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(ta.prototype),"componentDidMount",this).call(this),this.props.schema&&this.props.schema.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(this.props.adapterName+"."+this.props.attr)==="true"})}},{key:"renderItems",value:function(Lt,wt){var Qe=this,qt=this.props.classes||{};return Lt?Object.keys(Lt).map(function(_t){if(Qe.props.multiEdit&&Lt[_t].noMultiEdit)return null;var pa=Lt[_t].type||"panel",Mt;return pa==="custom"?Lt[_t].url?Mt=P.default:Qe.props.customs&&Qe.props.customs[Lt[_t].component]?Mt=Qe.props.customs[Lt[_t].component]:(console.error("Cannot find custom component: "+Lt[_t].component),Mt=ae.default):pa==="panel"?Mt=It:Mt=dt[pa]||ae.default,i.default.createElement(Mt,{key:_t+"_"+(Qe.props.index===void 0?"":Qe.props.index),index:Qe.props.index,arrayIndex:Qe.props.arrayIndex,globalData:Qe.props.globalData,onCommandRunning:Qe.props.onCommandRunning,commandRunning:Qe.props.commandRunning,className:qt.panel,socket:Qe.props.socket,adapterName:Qe.props.adapterName,instance:Qe.props.instance,common:Qe.props.common,customs:Qe.props.customs,alive:Qe.props.alive,themeType:Qe.props.themeType,themeName:Qe.props.themeName,data:Qe.props.data,originalData:Qe.props.originalData,systemConfig:Qe.props.systemConfig,onError:Qe.props.onError,onChange:Qe.props.onChange,multiEdit:Qe.props.multiEdit,dateFormat:Qe.props.dateFormat,isFloatComma:Qe.props.isFloatComma,disabled:wt,imagePrefix:Qe.props.imagePrefix,changeLanguage:Qe.props.changeLanguage,forceUpdate:Qe.props.forceUpdate,registerOnForceUpdate:Qe.props.registerOnForceUpdate,customObj:Qe.props.customObj,instanceObj:Qe.props.instanceObj,custom:Qe.props.custom,schema:Lt[_t],attr:_t})}):null}},{key:"render",value:function(){var Lt=this,wt=this.props.schema;if(!wt)return null;var Qe=this.calculate(wt),qt=Qe.disabled,_t=Qe.hidden,pa=this.props.schema.items,Mt=this.props.classes||{};if(_t)if(wt.hideOnlyControl){var te=i.default.createElement(M.default,{item:!0,xs:wt.xs||void 0,lg:wt.lg||void 0,md:wt.md||void 0,sm:wt.sm||void 0,style:Object.assign({},{marginBottom:0,textAlign:"left"},wt.style,this.props.themaType==="dark"?wt.darkStyle:{})});return wt.newLine?i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{style:{flexBasis:"100%",height:0}}),te):te}else return null;else{if(this.props.table)return this.renderItems(pa,qt);if(this.props.custom)return i.default.createElement(M.default,{key:this.props.attr+"_"+this.props.index,container:!0,className:Mt.fullWidth,spacing:2},this.renderItems(pa,qt));var ge;if(wt.collapsable?ge=i.default.createElement(D.default,{key:this.props.attr+"_"+this.props.index,className:Mt.fullWidth,expanded:!!this.state.expanded,onChange:function(){(window._localStorage||window.localStorage).setItem(Lt.props.adapterName+"."+Lt.props.attr,Lt.state.expanded?"false":"true"),Lt.setState({expanded:!Lt.state.expanded})}},i.default.createElement(F.default,{expandIcon:i.default.createElement(R.default,null),style:Object.assign({},wt.style,this.props.themeType?wt.darkStyle:{}),className:(0,b.default)(Mt.fullWidth,wt.color==="primary"&&Mt.primary,wt.color==="secondary"&&Mt.secondary)},i.default.createElement(J.default,{className:Mt.heading},this.getText(wt.label))),i.default.createElement(oe.default,null,i.default.createElement(M.default,{container:!0,className:Mt.fullWidth+" "+Mt.padding,spacing:2},this.renderItems(pa,qt)))):ge=i.default.createElement("div",{key:this.props.attr+"_"+this.props.index,className:(0,b.default)(this.props.className,this.props.isParentTab&&Mt.paper,Mt.fullWidth)},i.default.createElement(M.default,{container:!0,className:(0,b.default)(Mt.fullWidth,this.props.isParentTab&&Mt.padding),spacing:2},this.renderItems(pa,qt))),this.props.isParentTab)return ge;var Ke=i.default.createElement(M.default,{item:!0,title:this.getText(wt.tooltip),xs:wt.xs||void 0,lg:wt.lg||void 0,md:wt.md||void 0,sm:wt.sm||void 0,style:Object.assign({},{marginBottom:0,textAlign:"left"},wt.style)},ge);return wt.newLine?i.default.createElement(i.default.Fragment,null,i.default.createElement("div",{style:{flexBasis:"100%",height:0}}),Ke):Ke}}}]),ta}(ae.default);mt.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,originalData:f.default.object,schema:f.default.object,index:f.default.number,customs:f.default.object,alive:f.default.bool,systemConfig:f.default.object,adapterName:f.default.string,instance:f.default.number,commandRunning:f.default.bool,onCommandRunning:f.default.func,dateFormat:f.default.string,isFloatComma:f.default.bool,multiEdit:f.default.bool,isParentTab:f.default.bool,imagePrefix:f.default.string,changeLanguage:f.default.func,arrayIndex:f.default.number,globalData:f.default.object,customObj:f.default.object,instanceObj:f.default.object,custom:f.default.bool,forceUpdate:f.default.func,onError:f.default.func,onChange:f.default.func,registerOnForceUpdate:f.default.func};var It=(0,u.withStyles)(nt)(mt),aa=It;r.default=aa},56617:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(61318)),M=t(e(72952)),D=t(e(23357)),F=t(e(40173)),oe=t(e(16826)),J=t(e(55289)),R=t(e(92636));function ae(G){var W=_();return function(){var y=(0,g.default)(G),P;if(W){var S=(0,g.default)(this).constructor;P=Reflect.construct(y,arguments,S)}else P=y.apply(this,arguments);return(0,T.default)(this,P)}}function _(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(G){return!1}}var X=function(W){return{fullWidth:{width:"100%",display:"inline-block"},halfWidth1:{width:"calc(50% - ".concat(W.spacing(.5),")"),display:"inline-block",marginRight:W.spacing(1)},halfWidth2:{width:"calc(50% - ".concat(W.spacing(.5),")"),display:"inline-block"}}},K="____ppp____",H=function(G){(0,E.default)(I,G);var W=ae(I);function I(){return(0,a.default)(this,I),W.apply(this,arguments)}return(0,o.default)(I,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(I.prototype),"componentDidMount",this).call(this);var P=R.default.getValue(this.props.data,this.props.attr);this.setState({_repeat:P?K:"",_visible:!1,value:P?K:"",_notEqual:!1})}},{key:"onChangePassword",value:function(P,S){var k=this;P===void 0&&(P=this.state.value),S===void 0&&(S=this.state._repeat);var p=!!this.props.schema.repeat&&S!==P;this.setState({value:P,_repeat:S,_notEqual:p},function(){p?k.onError(k.props.attr,J.default.t("ra_Passwords are not equal!")):(k.onError(k.props.attr),k.onChange(k.props.attr,P))})}},{key:"renderItem",value:function(P,S,k){var p=this;if(this.state._notEqual===void 0)return null;var O=i.default.createElement(b.default,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state.value!==K?"text":"password",value:this.state.value,error:!!P||this.state._notEqual,disabled:!!S,onChange:function(U){return p.onChangePassword(U.target.value)},label:this.getText(this.props.schema.label),inputProps:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},helperText:this.state._notEqual?J.default.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),InputProps:{endAdornment:this.state.value&&this.state.value!==K&&this.props.schema.visible?i.default.createElement(D.default,{position:"end"},i.default.createElement(M.default,{size:"large",tabIndex:-1,onClick:function(U){U.preventDefault(),U.stopPropagation(),p.setState({_visible:!p.state._visible})},edge:"end"},this.state._visible?i.default.createElement(oe.default,null):i.default.createElement(F.default,null))):void 0}});if(this.props.schema.repeat){var d=i.default.createElement(b.default,{variant:"standard",fullWidth:!0,type:this.state._visible&&this.state._repeat!==K?"text":"password",value:this.state._repeat,error:!!P||this.state._notEqual,disabled:!!S,onChange:function(U){return p.onChangePassword(void 0,U.target.value)},label:"".concat(this.getText(this.props.schema.label)," (").concat(J.default.t("ra_repeat"),")"),inputProps:{autoComplete:"new-password",form:{autoComplete:"off"},maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},helperText:this.state._notEqual?J.default.t("ra_Passwords are not equal!"):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),InputProps:{endAdornment:this.state._repeat&&this.state._repeat!==K?i.default.createElement(D.default,{position:"end"},i.default.createElement(M.default,{size:"large",tabIndex:-1,onClick:function(U){U.preventDefault(),U.stopPropagation(),p.setState({_visible:!p.state._visible})},edge:"end"},this.state._visible?i.default.createElement(oe.default,null):i.default.createElement(F.default,null))):void 0}});return i.default.createElement("div",{className:this.props.classes.fullWidth},i.default.createElement("div",{className:this.props.classes.halfWidth1},O),i.default.createElement("div",{className:this.props.classes.halfWidth2},d))}else return O}}]),I}(R.default);H.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var L=(0,u.withStyles)(X)(H);r.default=L},38430:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=t(e(61318)),b=t(e(72952)),M=t(e(92636)),D=t(e(23962)),F=t(e(83358));function oe(X){var K=J();return function(){var L=(0,T.default)(X),G;if(K){var W=(0,T.default)(this).constructor;G=Reflect.construct(L,arguments,W)}else G=L.apply(this,arguments);return(0,E.default)(this,G)}}function J(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(X){return!1}}var R=function(K){return{}},ae=function(X){(0,h.default)(H,X);var K=oe(H);function H(){return(0,a.default)(this,H),K.apply(this,arguments)}return(0,o.default)(H,[{key:"renderItem",value:function(G,W){var I=this;return g.default.createElement(u.default,{variant:"standard",fullWidth:!0,disabled:!!W,InputProps:{endAdornment:this.props.schema.copyToClipboard?g.default.createElement(b.default,{size:"small",onClick:function(P){(0,D.default)(I.getPattern(I.props.schema.pattern)),window.alert("Copied")}},g.default.createElement(F.default,null)):void 0},value:this.getPattern(this.props.schema.pattern),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),H}(M.default);ae.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,schema:i.default.object,onError:i.default.func,onChange:i.default.func};var _=(0,f.withStyles)(R)(ae);r.default=_},93529:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(10391)),M=t(e(46881)),D=t(e(93640)),F=t(e(75197)),oe=t(e(96489)),J=t(e(64263)),R=t(e(55289)),ae=t(e(92636));function _(G){var W=X();return function(){var y=(0,g.default)(G),P;if(W){var S=(0,g.default)(this).constructor;P=Reflect.construct(y,arguments,S)}else P=y.apply(this,arguments);return(0,T.default)(this,P)}}function X(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(G){return!1}}var K=function(W){return{fullWidth:{width:"100%"}}},H=function(G){(0,E.default)(I,G);var W=_(I);function I(){return(0,a.default)(this,I),W.apply(this,arguments)}return(0,o.default)(I,[{key:"componentDidMount",value:function(){var P=this;(0,h.default)((0,g.default)(I.prototype),"componentDidMount",this).call(this);var S=ae.default.getValue(this.props.data,this.props.attr);this.props.socket.getEnums("rooms").then(function(k){var p=Object.keys(k).map(function(O){return{value:P.props.schema.short?O.replace("enum.rooms.",""):O,label:P.getText(k[O].common.name),obj:k[O]}});P.setState({value:S,selectOptions:p})})}},{key:"renderItem",value:function(P,S,k){var p=this;if(!this.state.selectOptions)return null;var O=this.state.selectOptions.find(function(d){return d.value===p.state.value});return i.default.createElement(F.default,{variant:"standard",className:this.props.classes.fullWidth},i.default.createElement(b.default,null,this.getText(this.props.schema.label)),i.default.createElement(oe.default,{variant:"standard",error:!!P,disabled:!!S,value:this.state.value||"_",renderValue:function(w){return O?i.default.createElement(J.default,{value:O.obj,themeType:p.props.themeType,lang:R.default.getLanguage()}):""},onChange:function(w){p.setState({value:w.target.value==="_"?"":w.target.value},function(){return p.onChange(p.props.attr,p.state.value)})}},this.state.selectOptions.map(function(d){return i.default.createElement(M.default,{key:d.value,value:d.value,style:d.value===ae.default.DIFFERENT_VALUE?{opacity:.5}:{}},i.default.createElement(J.default,{value:d.obj,themeType:p.props.themeType,lang:R.default.getLanguage()}))})),this.props.schema.help?i.default.createElement(D.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),I}(ae.default);H.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var L=(0,u.withStyles)(K)(H);r.default=L},51016:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(319)),o=t(e(34575)),h=t(e(93913)),E=t(e(16525)),T=t(e(2205)),g=t(e(78585)),i=t(e(29754)),f=t(e(4819)),u=t(e(15854)),b=e(58503),M=t(e(10391)),D=t(e(46881)),F=t(e(93640)),oe=t(e(75197)),J=t(e(96489)),R=t(e(55289)),ae=t(e(92636));function _(G){var W=X();return function(){var y=(0,i.default)(G),P;if(W){var S=(0,i.default)(this).constructor;P=Reflect.construct(y,arguments,S)}else P=y.apply(this,arguments);return(0,g.default)(this,P)}}function X(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(G){return!1}}var K=function(W){return{fullWidth:{width:"100%"}}},H=function(G){(0,T.default)(I,G);var W=_(I);function I(){return(0,o.default)(this,I),W.apply(this,arguments)}return(0,h.default)(I,[{key:"componentDidMount",value:function(){(0,E.default)((0,i.default)(I.prototype),"componentDidMount",this).call(this);var P=ae.default.getValue(this.props.data,this.props.attr),S=JSON.parse(JSON.stringify(this.props.schema.options));Array.isArray(P)?(this.initialValue=(0,a.default)(P),S.unshift({label:R.default.t(ae.default.DIFFERENT_LABEL),value:ae.default.DIFFERENT_VALUE}),this.setState({value:ae.default.DIFFERENT_VALUE,selectOptions:S})):this.setState({value:P,selectOptions:S})}},{key:"renderItem",value:function(P,S,k){var p=this;if(!this.state.selectOptions)return null;var O=(this.state.selectOptions||[]).filter(function(w){return w.hidden?p.props.custom?!p.executeCustom(w.hidden,p.props.data,p.props.customObj,p.props.instanceObj,p.props.arrayIndex,p.props.globalData):!p.execute(w.hidden,p.props.schema.default,p.props.data,p.props.arrayIndex,p.props.globalData):!0}),d=O.find(function(w){return w.value==p.state.value});return f.default.createElement(oe.default,{variant:"standard",className:this.props.classes.fullWidth,id:"jsonSelect_".concat(this.props.schema.attr,"_").concat(this.props.index||this.props.index===0?this.props.index:"")},f.default.createElement(M.default,null,this.getText(this.props.schema.label)),f.default.createElement(J.default,{variant:"standard",error:!!P,disabled:!!S,value:this.state.value||"_",renderValue:function(U){return p.getText(d==null?void 0:d.label,p.props.schema.noTranslation)},onChange:function(U){p.setState({value:U.target.value==="_"?"":U.target.value},function(){p.state.value===ae.default.DIFFERENT_VALUE?p.onChange(p.props.attr,p.initialValue):p.onChange(p.props.attr,p.state.value)})}},O.map(function(w){return f.default.createElement(D.default,{key:w.value,value:w.value,style:w.value===ae.default.DIFFERENT_VALUE?{opacity:.5}:{}},p.getText(w.label,p.props.schema.noTranslation))})),this.props.schema.help?f.default.createElement(F.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),I}(ae.default);H.propTypes={socket:u.default.object.isRequired,themeType:u.default.string,themeName:u.default.string,style:u.default.object,className:u.default.string,data:u.default.object.isRequired,schema:u.default.object,onError:u.default.func,onChange:u.default.func};var L=(0,b.withStyles)(K)(H);r.default=L},36840:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(10391)),M=t(e(46881)),D=t(e(93640)),F=t(e(75197)),oe=t(e(96489)),J=t(e(61318)),R=t(e(62428)),ae=t(e(60128)),_=t(e(23082)),X=t(e(27737)),K=t(e(50090)),H=t(e(55289)),L=t(e(92636));function G(S){var k=W();return function(){var O=(0,g.default)(S),d;if(k){var w=(0,g.default)(this).constructor;d=Reflect.construct(O,arguments,w)}else d=O.apply(this,arguments);return(0,T.default)(this,d)}}function W(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(S){return!1}}var I=function(k){return{fullWidth:{width:"100%"},menuPaper:{maxHeight:800}}},y=function(S){(0,E.default)(p,S);var k=G(p);function p(){return(0,a.default)(this,p),k.apply(this,arguments)}return(0,o.default)(p,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(p.prototype),"componentDidMount",this).call(this),this.askInstance()}},{key:"askInstance",value:function(){var d=this;if(this.props.alive){var w=this.props.schema.data;if(w===void 0&&this.props.schema.jsonData){w=this.getPattern(this.props.schema.jsonData,{},this.props.data);try{w=JSON.parse(w)}catch(Y){console.error("Cannot parse json data: "+w)}}w===void 0&&(w=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",w).then(function(Y){return d.setState({list:Y,context:d.getContext()})})}else{var U=L.default.getValue(this.props.data,this.props.attr);this.setState({value:U})}}},{key:"getContext",value:function(){var d=this,w={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(function(U){return w[U]=L.default.getValue(d.props.data,U)}),JSON.stringify(w)}},{key:"_getValue",value:function(){var d=this.state.value===null||this.state.value===void 0?L.default.getValue(this.props.data,this.props.attr):this.state.value;return this.props.schema.multiple&&(typeof d=="string"?d=[d]:d==null&&(d=[])),d}},{key:"renderItem",value:function(d,w,U){var Y=this;if(this.props.alive){var se=this.getContext();se!==this.state.context&&setTimeout(function(){return Y.askInstance()},300)}var we=this._getValue();if(this.props.alive)if(this.state.list){var Te=(this.state.list||[]).filter(function(ie){return ie.hidden?Y.props.custom?!Y.executeCustom(ie.hidden,Y.props.schema.default,Y.props.data,Y.props.instanceObj,Y.props.arrayIndex,Y.props.globalData):!Y.execute(ie.hidden,Y.props.schema.default,Y.props.data,Y.props.arrayIndex,Y.props.globalData):!0}),Z=Te.find(function(ie){return ie.value===we});return i.default.createElement(F.default,{variant:"standard",className:this.props.classes.fullWidth},i.default.createElement(b.default,null,this.getText(this.props.schema.label)),i.default.createElement(oe.default,{variant:"standard",error:!!d,multiple:this.props.schema.multiple,disabled:!!w,value:we,MenuProps:this.props.schema.multiple?{classes:{paper:this.props.classes.menuPaper}}:void 0,renderValue:function(Ae){return Y.props.schema.multiple?i.default.createElement(K.default,{sx:{display:"flex",flexWrap:"wrap",gap:.5}},Ae.map(function(le){var Ee=Te.find(function(Le){return Le.value===le});if(Ee||Y.props.schema.showAllValues!==!1){var Se=(Ee==null?void 0:Ee.label)||le;return i.default.createElement(X.default,{key:le,label:Se})}else return null})):(Z==null?void 0:Z.label)||Ae},onChange:function(Ae){Y.onChange(Y.props.attr,Ae.target.value)}},Te.map(function(ie,Ae){return i.default.createElement(M.default,{key:Ae,value:ie.value},Y.props.schema.multiple?i.default.createElement(_.default,{checked:we.includes(ie.value),onClick:function(){var Ee=JSON.parse(JSON.stringify(Y._getValue())),Se=we.indexOf(ie.value);Se!==-1?Ee.splice(Se,1):(Ee.push(ie.value),Ee.sort()),Y.setState({value:Ee},function(){return Y.onChange(Y.props.attr,Ee)})}}):null,i.default.createElement(ae.default,{primary:ie.label}))})),this.props.schema.help?i.default.createElement(D.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}else return i.default.createElement(R.default,{size:"small"});else return this.props.schema.multiple||this.props.schema.manual===!1?H.default.t("ra_Cannot retrieve options, as instance is offline"):i.default.createElement(J.default,{variant:"standard",fullWidth:!0,value:we,error:!!d,disabled:!!w,onChange:function(Ae){var le=Ae.target.value;Y.setState({value:le},function(){return Y.onChange(Y.props.attr,(le||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),p}(L.default);y.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,adapterName:f.default.string,alive:f.default.bool,instance:f.default.number,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var P=(0,u.withStyles)(I)(y);r.default=P},90374:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(50008)),o=t(e(34575)),h=t(e(93913)),E=t(e(16525)),T=t(e(2205)),g=t(e(78585)),i=t(e(29754)),f=t(e(4819)),u=t(e(15854)),b=e(58503),M=t(e(73319)),D=t(e(55289)),F=t(e(94475)),oe=t(e(99822)),J=t(e(8146)),R=t(e(41728)),ae=t(e(92636)),_=t(e(10186)),X=t(e(40314)),K=t(e(54198));function H(y){var P=L();return function(){var k=(0,i.default)(y),p;if(P){var O=(0,i.default)(this).constructor;p=Reflect.construct(k,arguments,O)}else p=k.apply(this,arguments);return(0,g.default)(this,p)}}function L(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(y){return!1}}var G=function(P){return{fullWidth:{width:"100%"},icon:{width:24,height:24,marginRight:4}}},W=function(y){(0,T.default)(S,y);var P=H(S);function S(){return(0,o.default)(this,S),P.apply(this,arguments)}return(0,h.default)(S,[{key:"componentDidMount",value:function(){(0,E.default)((0,i.default)(S.prototype),"componentDidMount",this).call(this),this.setState({_error:"",_message:""})}},{key:"renderErrorDialog",value:function(){var p=this;return this.state._error?f.default.createElement(oe.default,{text:this.state._error,classes:void 0,onClose:function(){return p.setState({_error:""})}}):null}},{key:"renderMessageDialog",value:function(){var p=this;return this.state._message?f.default.createElement(J.default,{text:this.state._message,classes:void 0,onClose:function(){return p.setState({_error:""})}}):null}},{key:"_onClick",value:function(){var p=this;this.props.onCommandRunning(!0);var O=this.props.schema.data;if(O===void 0&&this.props.schema.jsonData){O=this.getPattern(this.props.schema.jsonData,{},this.props.data);try{O=JSON.parse(O)}catch(d){console.error("Cannot parse json data: "+O)}}O===void 0&&(O=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",O).then(function(d){if(d!=null&&d.error)if(p.props.schema.error&&p.props.schema.error[d.error]){var w=p.getText(p.props.schema.error[d.error]);d.args&&d.args.forEach(function(Y){return w=w.replace("%s",Y)}),p.setState({_error:w})}else p.setState({_error:d.error?D.default.t(d.error):D.default.t("ra_Error")});else if(d!=null&&d.result&&p.props.schema.result&&p.props.schema.result[d.result]){var U=p.getText(p.props.schema.result[d.result]);d.args&&d.args.forEach(function(Y){return U=U.replace("%s",Y)}),window.alert(U)}else d!=null&&d.result?window.alert((0,a.default)(d.result)==="object"?JSON.stringify(d.result):d.result):window.alert(D.default.t("ra_Ok"))}).catch(function(d){p.props.schema.error&&p.props.schema.error[d.toString()]?p.setState({_error:p.getText(p.props.schema.error[d.toString()])}):p.setState({_error:D.default.t(d.toString())||D.default.t("ra_Error")})}).then(function(){return p.props.onCommandRunning(!1)})}},{key:"renderConfirmDialog",value:function(){var p=this;if(!this.state.confirmDialog)return null;var O=this.state.confirmData||this.props.schema.confirm,d=null;return O.type==="warning"?d=f.default.createElement(_.default,null):O.type==="error"?d=f.default.createElement(X.default,null):O.type==="info"&&(d=f.default.createElement(K.default,null)),f.default.createElement(R.default,{title:this.getText(O.title)||D.default.t("ra_Please confirm"),text:this.getText(O.text),ok:this.getText(O.ok)||D.default.t("ra_Ok"),cancel:this.getText(O.cancel)||D.default.t("ra_Cancel"),icon:d,onClose:function(U){return p.setState({confirmDialog:!1},function(){return U&&p._onClick()})}})}},{key:"renderItem",value:function(p,O,d){var w=this;return f.default.createElement("div",{className:this.props.classes.fullWidth},f.default.createElement(M.default,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",className:this.props.classes.fullWidth,disabled:O,onClick:function(){w.props.schema.confirm?w.setState({confirmDialog:!0}):w._onClick()}},this.props.schema.icon?f.default.createElement(F.default,{src:this.props.schema.icon,className:this.props.classes.icon}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation)),this.renderErrorDialog(),this.renderMessageDialog())}}]),S}(ae.default);W.propTypes={socket:u.default.object.isRequired,themeType:u.default.string,themeName:u.default.string,style:u.default.object,className:u.default.string,data:u.default.object.isRequired,schema:u.default.object,onError:u.default.func,onChange:u.default.func,adapterName:u.default.string,instance:u.default.number,commandRunning:u.default.bool,onCommandRunning:u.default.func};var I=(0,b.withStyles)(G)(W);r.default=I},8273:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(87757)),o=t(e(48926)),h=t(e(34575)),E=t(e(93913)),T=t(e(2205)),g=t(e(78585)),i=t(e(29754)),f=t(e(4819)),u=t(e(15854)),b=e(58503),M=t(e(73319)),D=t(e(55289)),F=t(e(94475)),oe=t(e(41728)),J=t(e(92636)),R=t(e(10186)),ae=t(e(40314)),_=t(e(54198));function X(W){var I=K();return function(){var P=(0,i.default)(W),S;if(I){var k=(0,i.default)(this).constructor;S=Reflect.construct(P,arguments,k)}else S=P.apply(this,arguments);return(0,g.default)(this,S)}}function K(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(W){return!1}}var H=function(I){return{fullWidth:{width:"100%"},icon:{width:24,height:24,marginRight:4}}},L=function(W){(0,T.default)(y,W);var I=X(y);function y(){return(0,h.default)(this,y),I.apply(this,arguments)}return(0,E.default)(y,[{key:"_onClick",value:function(){var P=(0,o.default)(a.default.mark(function k(){var p,O,d,w;return a.default.wrap(function(Y){for(;;)switch(Y.prev=Y.next){case 0:if(p=this.props.schema.val,!(typeof p=="string"&&p.includes("${"))){Y.next=7;break}return p=this.getPattern(p),Y.next=5,this.props.socket.getObject(this.props.schema.id);case 5:w=Y.sent,(w==null||(O=w.common)===null||O===void 0?void 0:O.type)==="number"?p=parseFloat(p):(w==null||(d=w.common)===null||d===void 0?void 0:d.type)==="boolean"&&(p=p==="true"||p===!0||p==="1"||p===1);case 7:return Y.prev=7,Y.next=10,this.props.socket.setState(this.props.schema.id,{val:p,ack:!!this.props.schema.ack});case 10:this.props.schema.okText&&window.alert(this.getText(this.props.schema.okText)),Y.next=16;break;case 13:Y.prev=13,Y.t0=Y.catch(7),this.props.schema.error&&this.props.schema.error[Y.t0.toString()]?window.alert(this.getText(this.props.schema.error[Y.t0.toString()])):window.alert(D.default.t(Y.t0.toString())||D.default.t("ra_Error"));case 16:case"end":return Y.stop()}},k,this,[[7,13]])}));function S(){return P.apply(this,arguments)}return S}()},{key:"renderConfirmDialog",value:function(){var S=this;if(!this.state.confirmDialog)return null;var k=this.state.confirmData||this.props.schema.confirm,p=null;return k.type==="warning"?p=f.default.createElement(R.default,null):k.type==="error"?p=f.default.createElement(ae.default,null):k.type==="info"&&(p=f.default.createElement(_.default,null)),f.default.createElement(oe.default,{title:this.getText(k.title)||D.default.t("ra_Please confirm"),text:this.getText(k.text),ok:this.getText(k.ok)||D.default.t("ra_Ok"),cancel:this.getText(k.cancel)||D.default.t("ra_Cancel"),icon:p,onClose:function(d){return S.setState({confirmDialog:!1},(0,o.default)(a.default.mark(function w(){return a.default.wrap(function(Y){for(;;)switch(Y.prev=Y.next){case 0:if(Y.t0=d,!Y.t0){Y.next=5;break}return Y.next=4,S._onClick();case 4:Y.t0=Y.sent;case 5:return Y.abrupt("return",Y.t0);case 6:case"end":return Y.stop()}},w)})))}})}},{key:"renderItem",value:function(S,k,p){var O=this;return f.default.createElement(M.default,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",className:this.props.classes.fullWidth,disabled:k,onClick:(0,o.default)(a.default.mark(function d(){return a.default.wrap(function(U){for(;;)switch(U.prev=U.next){case 0:if(!O.props.schema.confirm){U.next=4;break}O.setState({confirmDialog:!0}),U.next=6;break;case 4:return U.next=6,O._onClick();case 6:case"end":return U.stop()}},d)}))},this.props.schema.icon?f.default.createElement(F.default,{src:this.props.schema.icon,className:this.props.classes.icon}):null,this.getText(this.props.schema.label,this.props.schema.noTranslation))}}]),y}(J.default);L.propTypes={socket:u.default.object.isRequired,themeType:u.default.string,themeName:u.default.string,style:u.default.object,className:u.default.string,data:u.default.object.isRequired,schema:u.default.object,onError:u.default.func,onChange:u.default.func,adapterName:u.default.string,instance:u.default.number,commandRunning:u.default.bool,onCommandRunning:u.default.func};var G=(0,b.withStyles)(H)(L);r.default=G},25747:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=e(94427),M=t(e(92636));function D(ae){var _=F();return function(){var K=(0,g.default)(ae),H;if(_){var L=(0,g.default)(this).constructor;H=Reflect.construct(K,arguments,L)}else H=K.apply(this,arguments);return(0,T.default)(this,H)}}function F(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(ae){return!1}}var oe=function(_){return{fullWidth:{width:"100%"},slider:{marginLeft:10,marginRight:10,width:"calc(100% - 20px)"}}},J=function(ae){(0,E.default)(X,ae);var _=D(X);function X(){return(0,a.default)(this,X),_.apply(this,arguments)}return(0,o.default)(X,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(X.prototype),"componentDidMount",this).call(this);var H=M.default.getValue(this.props.data,this.props.attr);this.setState({_value:H})}},{key:"renderItem",value:function(H,L,G){var W=this,I=this.props.schema.min||0,y=this.props.schema.max||100,P=this.props.schema.unit||"",S=[{value:I,label:I+P},{value:y,label:y+P}];return i.default.createElement(b.Box,{className:this.props.classes.fullWidth},this.props.schema.label?i.default.createElement(b.Typography,{gutterBottom:!0},this.getText(this.props.schema.label)):null,i.default.createElement(b.Slider,{className:this.props.classes.slider,value:this.state._value,getAriaValueText:function(p){return p+P},step:this.props.schema.step||(y-I)/100,valueLabelDisplay:"auto",marks:S,disabled:!!L,error:H||"",onChange:function(p){var O=p.target.value;W.setState({_value:O},function(){return W.onChange(W.props.attr,O)})}}),this.props.schema.help?i.default.createElement(b.Typography,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}],[{key:"getDerivedStateFromProps",value:function(H,L){if(H.schema.min!==void 0&&H.schema.min<0||H.schema.max!==void 0&&H.schema.max<0)return null;var G=M.default.getValue(H.data,H.attr);return G==null||G.toString()!==parseFloat(L._value).toString()?{_value:G}:null}}]),X}(M.default);J.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var R=(0,u.withStyles)(oe)(J);r.default=R},1121:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=t(e(33919)),b=t(e(92636));function M(R){var ae=D();return function(){var X=(0,T.default)(R),K;if(ae){var H=(0,T.default)(this).constructor;K=Reflect.construct(X,arguments,H)}else K=X.apply(this,arguments);return(0,E.default)(this,K)}}function D(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(R){return!1}}var F=function(ae){return{fullWidth:{width:"100%",backgroundColor:ae.palette.mode==="dark"?"#FFF":"#000",borderStyle:"hidden"},primary:{backgroundColor:ae.palette.primary.main},secondary:{backgroundColor:ae.palette.secondary.main}}},oe=function(R){(0,h.default)(_,R);var ae=M(_);function _(){return(0,a.default)(this,_),ae.apply(this,arguments)}return(0,o.default)(_,[{key:"renderItem",value:function(){return g.default.createElement("hr",{className:u.default.clsx(this.props.classes.fullWidth,this.props.schema.color==="primary"&&this.props.classes.primary,this.props.schema.color==="secondary"&&this.props.classes.secondary),style:{height:this.props.schema.color?this.props.schema.height||2:this.props.schema.height||1,backgroundColor:this.props.schema.color!=="primary"&&this.props.schema.color!=="secondary"&&this.props.schema.color?this.props.schema.color:void 0}})}}]),_}(b.default);oe.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,schema:i.default.object,onError:i.default.func,onChange:i.default.func};var J=(0,f.withStyles)(F)(oe);r.default=J},31297:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=t(e(92636));function b(J){var R=M();return function(){var _=(0,T.default)(J),X;if(R){var K=(0,T.default)(this).constructor;X=Reflect.construct(_,arguments,K)}else X=_.apply(this,arguments);return(0,E.default)(this,X)}}function M(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(J){return!1}}var D=function(R){return{header:{width:"100%",background:R.palette.primary.main,color:R.palette.primary.contrastText,padding:"4px !important",borderRadius:3,marginBlockEnd:0,marginBlockStart:0}}},F=function(J){(0,h.default)(ae,J);var R=b(ae);function ae(){return(0,a.default)(this,ae),R.apply(this,arguments)}return(0,o.default)(ae,[{key:"renderItem",value:function(){switch((this.props.schema.size||5).toString()){case"1":return g.default.createElement("h1",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"2":return g.default.createElement("h2",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"3":return g.default.createElement("h3",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"4":return g.default.createElement("h4",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation));case"5":default:return g.default.createElement("h5",{className:this.props.classes.header},this.getText(this.props.schema.text,this.props.schema.noTranslation))}}}]),ae}(u.default);F.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,schema:i.default.object,onError:i.default.func,onChange:i.default.func};var oe=(0,f.withStyles)(D)(F);r.default=oe},50971:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=t(e(92636));function b(J){var R=M();return function(){var _=(0,T.default)(J),X;if(R){var K=(0,T.default)(this).constructor;X=Reflect.construct(_,arguments,K)}else X=_.apply(this,arguments);return(0,E.default)(this,X)}}function M(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(J){return!1}}var D=function(R){return{fullWidth:{height:"100%",width:"100%"}}},F=function(J){(0,h.default)(ae,J);var R=b(ae);function ae(){return(0,a.default)(this,ae),R.apply(this,arguments)}return(0,o.default)(ae,[{key:"renderItem",value:function(){var X=this,K=this.props.schema.src;return K&&!K.startsWith(".")&&!K.startsWith("http")&&!K.startsWith("adapter/".concat(this.props.adapterName,"/"))&&!K.startsWith("./adapter/".concat(this.props.adapterName,"/"))&&(K="adapter/".concat(this.props.adapterName,"/").concat(K)),g.default.createElement("img",{className:this.props.classes.fullWidth,src:K,onClick:this.props.schema.href?function(){return X.props.schema.href&&window.open(X.props.schema.href,"_blank")}:null,alt:""})}}]),ae}(u.default);F.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,schema:i.default.object,onError:i.default.func,onChange:i.default.func};var oe=(0,f.withStyles)(D)(F);r.default=oe},31590:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=t(e(73319)),b=t(e(94475)),M=t(e(92636));function D(ae){var _=F();return function(){var K=(0,T.default)(ae),H;if(_){var L=(0,T.default)(this).constructor;H=Reflect.construct(K,arguments,L)}else H=K.apply(this,arguments);return(0,E.default)(this,H)}}function F(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(ae){return!1}}var oe=function(_){return{fullWidth:{height:"100%",width:"100%"}}},J=function(ae){(0,h.default)(X,ae);var _=D(X);function X(){return(0,a.default)(this,X),_.apply(this,arguments)}return(0,o.default)(X,[{key:"renderItem",value:function(H,L){var G=this;return this.props.schema.button?g.default.createElement(u.default,{variant:this.props.schema.variant||void 0,color:this.props.schema.color||"grey",className:this.props.classes.fullWidth,disabled:L,onClick:this.props.schema.href?function(){var W=G.props.schema.href?G.getText(G.props.schema.href,!0):null;W&&window.open(W,"_blank")}:null},this.props.schema.icon?g.default.createElement(b.default,{src:this.props.schema.icon,className:this.props.classes.icon}):null,this.getText(this.props.schema.text||this.props.schema.label,this.props.schema.noTranslation)):g.default.createElement("span",{onClick:this.props.schema.href?function(){var W=G.props.schema.href?G.getText(G.props.schema.href,!0):null;W&&window.open(W,"_blank")}:null},this.getText(this.props.schema.text||this.props.schema.label))}}]),X}(M.default);J.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,schema:i.default.object,onError:i.default.func,onChange:i.default.func};var R=(0,f.withStyles)(oe)(J);r.default=R},91008:function(l,r,e){"use strict";var t=e(95318),a=e(50008);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=t(e(87757)),h=t(e(319)),E=t(e(48926)),T=t(e(34575)),g=t(e(93913)),i=t(e(81506)),f=t(e(16525)),u=t(e(2205)),b=t(e(78585)),M=t(e(29754)),D=t(e(59713)),F=p(e(4819)),oe=t(e(15854)),J=e(58503),R=t(e(23060)),ae=t(e(93640)),_=e(94427),X=t(e(17773)),K=t(e(91495)),H=t(e(62976)),L=t(e(16273)),G=t(e(57803)),W=t(e(40141)),I=t(e(55423)),y=t(e(55289)),P=t(e(92636)),S=t(e(86442));function k(Te){if(typeof WeakMap!="function")return null;var Z=new WeakMap,ie=new WeakMap;return(k=function(le){return le?ie:Z})(Te)}function p(Te,Z){if(!Z&&Te&&Te.__esModule)return Te;if(Te===null||a(Te)!=="object"&&typeof Te!="function")return{default:Te};var ie=k(Z);if(ie&&ie.has(Te))return ie.get(Te);var Ae={},le=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var Ee in Te)if(Ee!=="default"&&Object.prototype.hasOwnProperty.call(Te,Ee)){var Se=le?Object.getOwnPropertyDescriptor(Te,Ee):null;Se&&(Se.get||Se.set)?Object.defineProperty(Ae,Ee,Se):Ae[Ee]=Te[Ee]}return Ae.default=Te,ie&&ie.set(Te,Ae),Ae}function O(Te){var Z=d();return function(){var Ae=(0,M.default)(Te),le;if(Z){var Ee=(0,M.default)(this).constructor;le=Reflect.construct(Ae,arguments,Ee)}else le=Ae.apply(this,arguments);return(0,b.default)(this,le)}}function d(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(Te){return!1}}var w=function(Z){return{fullWidth:{width:"100%"},root:{width:"100%"},paper:{width:"100%",marginBottom:Z.spacing(2),backgroundColor:"rgba(255, 255, 255, 0.1)"},headerText:{width:"100%"},table:{minWidth:750},visuallyHidden:{border:0,clip:"rect(0 0 0 0)",height:1,margin:-1,overflow:"hidden",padding:0,position:"absolute",top:20,width:1},addIcon:{display:"flex",justifyContent:"space-between"},highlight:Z.palette.mode==="light"?{color:Z.palette.secondary.main}:{color:Z.palette.text.primary,backgroundColor:Z.palette.secondary.dark},title:{flex:"1 1 100%"},rootTool:{paddingLeft:Z.spacing(2),paddingRight:Z.spacing(1)},silver:{opacity:.2},flex:{display:"flex"},filteredOut:{padding:10,display:"flex",textAlign:"center"},buttonEmpty:{width:30,display:"inline-block"},buttonCell:{whiteSpace:"nowrap"}}};function U(Te,Z,ie){Z=Z||"key";var Ae=[];return Object.keys(Te).forEach(function(le){var Ee={};Ee[Z]=le,ie?(Ee[ie]=Te[le],Ae.push(Ee)):Ae.push(Object.assign(Ee,Te[le]))}),Ae}function Y(Te,Z,ie){Z=Z||"key";var Ae={};return Te.forEach(function(le){var Ee=le[Z];Ee==null&&(Ee=""),delete le[Z],ie?Ae[Ee]=le[ie]:Ae[Ee]=le}),Ae}var se=function(Te){(0,u.default)(ie,Te);var Z=O(ie);function ie(Ae){var le;return(0,T.default)(this,ie),le=Z.call(this,Ae),(0,D.default)((0,i.default)(le),"handleRequestSort",function(Ee){var Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,Le=le.state,tt=Le.order,Xe=Le.orderBy;if(Xe){var it=Xe===Ee&&tt==="asc",N=Se?tt:it?"desc":"asc",q=le.stableSort(N,Ee);le.setState({order:N,orderBy:Ee,iteration:le.state.iteration+1e4},function(){return le.applyFilter(!1,q)})}}),(0,D.default)((0,i.default)(le),"stableSort",function(Ee,Se){var Le=le.state.value,tt=ie.getComparator(Ee,Se),Xe=Le.map(function(it,N){return[it,N]});return Xe.sort(function(it,N){var q=tt(it[0],N[0]);return q!==0?q:it[1]-N[1]}),Xe.map(function(it){return it[0]})}),(0,D.default)((0,i.default)(le),"onDelete",function(Ee){return function(){var Se=JSON.parse(JSON.stringify(le.state.value)),Le=JSON.parse(JSON.stringify(le.state.visibleValue));Se.splice(Ee,1);var tt=Le.indexOf(Ee);tt!==-1&&(Le.splice(tt,1),Le=Le.map(function(Xe){return Xe>Ee?Xe-1:Xe})),le.setState({value:Se,visibleValue:Le,iteration:le.state.iteration+1e4},function(){return le.onChangeWrapper(Se)})}}),(0,D.default)((0,i.default)(le),"onChangeWrapper",function(Ee){var Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;le.typingTimer&&clearTimeout(le.typingTimer),le.typingTimer=setTimeout(function(Le,tt){if(le.typingTimer=null,le.props.schema.objKeyName){var Xe=Y(JSON.parse(JSON.stringify(Le)),le.props.schema.objKeyName,le.props.schema.objValueName);le.onChange(le.props.attr,Xe)}else le.onChange(le.props.attr,Le);tt&&(le.applyFilter(!1,Le),le.handleRequestSort(le.state.orderBy,!0))},300,Ee,Se)}),(0,D.default)((0,i.default)(le),"onAdd",function(){var Ee=le.props.schema,Se=JSON.parse(JSON.stringify(le.state.value)),Le=JSON.parse(JSON.stringify(le.state.visibleValue)),tt=Ee.items&&Ee.items.reduce(function(Xe,it){var N;return it.defaultFunc?le.props.custom?N=it.defaultFunc?le.executeCustom(it.defaultFunc,le.props.schema.default,le.props.data,le.props.instanceObj,Se.length,le.props.data):le.props.schema.default:N=it.defaultFunc?le.execute(it.defaultFunc,le.props.schema.default,le.props.data,Se.length,le.props.data):le.props.schema.default:N=it.default===void 0?null:it.default,Xe[it.attr]=N,Xe},{});Se.push(tt),Le.push(Se.length-1),le.setState({value:Se,visibleValue:Le},function(){return le.onChangeWrapper(Se)})}),(0,D.default)((0,i.default)(le),"applyFilter",function(){var Ee=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:le.state.value,Le=Se.map(function(tt,Xe){return Xe});Object.keys(le.filterRefs).forEach(function(tt){var Xe,it=(Xe=le.filterRefs[tt].current)===null||Xe===void 0?void 0:Xe.children[0].children[0].value;!Ee&&it?(it=it.toLowerCase(),Le=Le.filter(function(N){return Se[N]&&Se[N][tt]&&Se[N][tt].toLowerCase().includes(it)})):le.filterRefs[tt].current&&(le.filterRefs[tt].current.children[0].children[0].value="")}),JSON.stringify(Le)!==JSON.stringify(le.state.visibleValue)&&le.setState({visibleValue:Le})}),le.filterRefs={},le.props.schema.items=le.props.schema.items||[],le.props.schema.items.forEach(function(Ee){Ee.filter&&(le.filterRefs[Ee.attr]=(0,F.createRef)())}),le}return(0,g.default)(ie,[{key:"componentDidMount",value:function(){var Ae=(0,E.default)(o.default.mark(function Ee(){var Se,Le;return o.default.wrap(function(Xe){for(;;)switch(Xe.prev=Xe.next){case 0:(0,f.default)((0,M.default)(ie.prototype),"componentDidMount",this).call(this),Se=P.default.getValue(this.props.data,this.props.attr)||[],this.props.schema.objKeyName&&(Se=U(Se,this.props.schema.objKeyName,this.props.schema.objValueName)),Array.isArray(Se)||(Se=[]),Le=Se.map(function(it,N){return N}),this.setState({value:Se,visibleValue:Le,orderBy:"",order:"asc",iteration:0,filterOn:[]});case 6:case"end":return Xe.stop()}},Ee,this)}));function le(){return Ae.apply(this,arguments)}return le}()},{key:"componentWillUnmount",value:function(){this.typingTimer&&clearTimeout(this.typingTimer),this.typingTimer=null,(0,f.default)((0,M.default)(ie.prototype),"componentWillUnmount",this).call(this)}},{key:"itemTable",value:function(le,Ee,Se){var Le=this,tt=this.state,Xe=tt.value,it=tt.systemConfig,N=this.props.schema,q=N.items&&N.items.find(function(he){return he.attr===le});if(!q)return null;var V={items:(0,D.default)({},le,q)};return F.default.createElement(S.default,{index:Se+this.state.iteration,arrayIndex:Se,globalData:this.props.data,socket:this.props.socket,adapterName:this.props.adapterName,instance:this.props.instance,common:this.props.common,alive:this.props.alive,themeType:this.props.themeType,themeName:this.props.themeName,data:Ee,table:!0,custom:!0,schema:V,systemConfig:it,customs:this.props.customs,onChange:function(ne,ce){var Ie=JSON.parse(JSON.stringify(Xe));Ie[Se][ne]=ce,Le.setState({value:Ie},function(){return Le.onChangeWrapper(Ie,!0)})},onError:function(ne,ce){return Le.onError(ne,ce)}})}},{key:"enhancedTableHead",value:function(le){var Ee=this,Se=this.props,Le=Se.schema,tt=Se.classes,Xe=this.state,it=Xe.order,N=Xe.orderBy;return F.default.createElement(_.TableHead,null,F.default.createElement(_.TableRow,null,Le.items&&Le.items.map(function(q){var V,he,ne,ce;return F.default.createElement(_.TableCell,{style:{width:(typeof q.width=="string"&&q.width.endsWith("%"),q.width)},key:q.attr,align:"left",sortDirection:N===q.attr?it:!1},F.default.createElement("div",{className:tt.flex},q.sort&&F.default.createElement(_.TableSortLabel,{active:!0,className:(0,R.default)(N!==q.attr&&tt.silver),direction:N===q.attr?it:"asc",onClick:function(){return Ee.handleRequestSort(q.attr)}}),q.filter&&Ee.state.filterOn.includes(q.attr)?F.default.createElement(_.TextField,{variant:"standard",ref:Ee.filterRefs[q.attr],onChange:function(){return Ee.applyFilter()},title:y.default.t("ra_You can filter entries by entering here some text"),InputProps:{endAdornment:((V=Ee.filterRefs[q.attr])===null||V===void 0||(he=V.current)===null||he===void 0||(ne=he.children[0])===null||ne===void 0||(ce=ne.children[0])===null||ce===void 0?void 0:ce.value)&&F.default.createElement(_.InputAdornment,{position:"end"},F.default.createElement(_.IconButton,{size:"small",onClick:function(){Ee.filterRefs[q.attr].current.children[0].children[0].value="",Ee.applyFilter()}},F.default.createElement(H.default,null)))},fullWidth:!0,placeholder:Ee.getText(q.title)}):F.default.createElement("span",{className:Ee.props.classes.headerText},Ee.getText(q.title)),q.filter?F.default.createElement(_.IconButton,{title:y.default.t("ra_Show/hide filter input"),size:"small",onClick:function(){var We=(0,h.default)(Ee.state.filterOn),qe=Ee.state.filterOn.indexOf(q.attr);qe===-1?We.push(q.attr):We.splice(qe,1),Ee.setState({filterOn:We},function(){qe&&Ee.filterRefs[q.attr].current.children[0].children[0].value&&(Ee.filterRefs[q.attr].current.children[0].children[0].value="",Ee.applyFilter())})}},Ee.state.filterOn.includes(q.attr)?F.default.createElement(I.default,null):F.default.createElement(W.default,null)):null))}),!Le.noDelete&&F.default.createElement(_.TableCell,{style:{paddingLeft:20,paddingRight:20,width:le,textAlign:"right"},padding:"checkbox"},F.default.createElement(_.IconButton,{disabled:!0,size:"small"},F.default.createElement(K.default,null)))))}},{key:"isAnyFilterSet",value:function(){var le=this;return Object.keys(this.filterRefs).find(function(Ee){var Se;return(Se=le.filterRefs[Ee].current)===null||Se===void 0?void 0:Se.children[0].children[0].value})}},{key:"onMoveUp",value:function(le){var Ee=this,Se=JSON.parse(JSON.stringify(this.state.value)),Le=Se[le];Se.splice(le,1),Se.splice(le-1,0,Le),this.setState({value:Se,iteration:this.state.iteration+1e4},function(){return Ee.onChangeWrapper(Se)})}},{key:"onMoveDown",value:function(le){var Ee=this,Se=JSON.parse(JSON.stringify(this.state.value)),Le=Se[le];Se.splice(le,1),Se.splice(le+1,0,Le),this.setState({value:Se,iteration:this.state.iteration+1e4},function(){return Ee.onChangeWrapper(Se)})}},{key:"renderItem",value:function(le,Ee,Se){var Le=this,tt=this.props,Xe=tt.classes,it=tt.schema,N=this.state,q=N.value,V=N.visibleValue;if(!q)return null;var he=this.isAnyFilterSet();return F.default.createElement(_.Paper,{className:Xe.paper},F.default.createElement("div",{className:Xe.addIcon},it.label?F.default.createElement(_.Toolbar,{variant:"dense",className:Xe.rootTool},F.default.createElement(_.Typography,{className:Xe.title,variant:"h6",id:"tableTitle",component:"div"},this.getText(it.label))):null,it.noDelete?null:F.default.createElement(_.Tooltip,{title:he?y.default.t("ra_Cannot add items with set filter"):y.default.t("ra_Add row")},F.default.createElement("span",null,F.default.createElement(_.IconButton,{disabled:!!he&&!this.props.schema.allowAddByFilter,onClick:this.onAdd},F.default.createElement(X.default,null))))),F.default.createElement(_.TableContainer,null,F.default.createElement(_.Table,{className:Xe.table,size:"small"},this.enhancedTableHead(!he&&!this.state.orderBy?120:64),F.default.createElement(_.TableBody,null,V.map(function(ne,ce){return F.default.createElement(_.TableRow,{hover:!0,key:ne},it.items&&it.items.map(function(Ie){return F.default.createElement(_.TableCell,{key:Ie.attr+"_"+ne,align:"left"},Le.itemTable(Ie.attr,q[ne],ne))}),!it.noDelete&&F.default.createElement(_.TableCell,{align:"left",className:Xe.buttonCell},!he&&!Le.state.orderBy?ce?F.default.createElement(_.Tooltip,{title:y.default.t("ra_Move up")},F.default.createElement(_.IconButton,{size:"small",onClick:function(){return Le.onMoveUp(ne)}},F.default.createElement(L.default,null))):F.default.createElement("div",{className:Xe.buttonEmpty}):null,!he&&!Le.state.orderBy?cele[Se]?1:0}},{key:"getComparator",value:function(le,Ee){return le==="desc"?function(Se,Le){return ie.descendingComparator(Se,Le,Ee)}:function(Se,Le){return-ie.descendingComparator(Se,Le,Ee)}}}]),ie}(P.default);se.propTypes={socket:oe.default.object.isRequired,themeType:oe.default.string,themeName:oe.default.string,style:oe.default.object,className:oe.default.string,data:oe.default.object.isRequired,schema:oe.default.object,onError:oe.default.func,onChange:oe.default.func};var we=(0,J.withStyles)(w)(se);r.default=we},95212:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=e(58503),u=t(e(54977)),b=t(e(84141)),M=t(e(92636)),D=t(e(86442));function F(_){var X=oe();return function(){var H=(0,T.default)(_),L;if(X){var G=(0,T.default)(this).constructor;L=Reflect.construct(H,arguments,G)}else L=H.apply(this,arguments);return(0,E.default)(this,L)}}function oe(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(_){return!1}}var J=function(X){return{tabs:{height:"100%",width:"100%"},panel:{height:"calc(100% - 48px)",width:"100%",display:"block"}}},R=function(_){(0,h.default)(K,_);var X=F(K);function K(H){var L;(0,a.default)(this,K),L=X.call(this,H);var G=(window._localStorage||window.localStorage).getItem((L.props.dialogName||"App")+"."+L.props.adapterName)||Object.keys(L.props.schema.items)[0];return Object.keys(L.props.schema.items).includes(G)||(G=Object.keys(L.props.schema.items)[0]),L.state={tab:G},L}return(0,o.default)(K,[{key:"render",value:function(){var L=this,G=this.props.schema.items;return g.default.createElement("div",{className:this.props.classes.tabs},g.default.createElement(u.default,{value:this.state.tab,onChange:function(I,y){(window._localStorage||window.localStorage).setItem((L.props.dialogName||"App")+"."+L.props.adapterName,y),L.setState({tab:y})}},Object.keys(G).map(function(W){var I;if(L.props.custom){var y=L.executeCustom(G[W].hidden,L.props.data,L.props.customObj,L.props.instanceObj);if(y)return null;I=L.executeCustom(G[W].disabled,L.props.data,L.props.customObj,L.props.instanceObj)}else{var P=L.execute(G[W].hidden,!1);if(P)return null;I=L.execute(G[W].disabled,!1)}return g.default.createElement(b.default,{wrapped:!0,disabled:I,key:W,value:W,label:L.getText(G[W].label)})})),g.default.createElement(D.default,{isParentTab:!0,key:this.state.tab,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,onCommandRunning:this.props.onCommandRunning,commandRunning:this.props.commandRunning,className:this.props.classes.panel,socket:this.props.socket,adapterName:this.props.adapterName,instance:this.props.instance,common:this.props.common,customs:this.props.customs,alive:this.props.alive,themeType:this.props.themeType,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,systemConfig:this.props.systemConfig,onError:this.props.onError,onChange:this.props.onChange,multiEdit:this.props.multiEdit,dateFormat:this.props.dateFormat,isFloatComma:this.props.isFloatComma,imagePrefix:this.props.imagePrefix,changeLanguage:this.props.changeLanguage,forceUpdate:this.props.forceUpdate,registerOnForceUpdate:this.props.registerOnForceUpdate,customObj:this.props.customObj,instanceObj:this.props.instanceObj,custom:this.props.custom,schema:G[this.state.tab]}))}}]),K}(M.default);R.propTypes={socket:i.default.object.isRequired,themeType:i.default.string,themeName:i.default.string,style:i.default.object,className:i.default.string,data:i.default.object.isRequired,originalData:i.default.object,schema:i.default.object,onError:i.default.func,onChange:i.default.func,customs:i.default.object,adapterName:i.default.string,instance:i.default.number,commandRunning:i.default.bool,onCommandRunning:i.default.func,dateFormat:i.default.string,isFloatComma:i.default.bool,multiEdit:i.default.bool,imagePrefix:i.default.string,customObj:i.default.object,instanceObj:i.default.object,custom:i.default.bool,registerOnForceUpdate:i.default.func.isRequired,forceUpdate:i.default.func.isRequired,changeLanguage:i.default.func,systemConfig:i.default.object,alive:i.default.bool,common:i.default.object};var ae=(0,f.withStyles)(J)(R);r.default=ae},90957:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(67154)),o=t(e(319)),h=t(e(34575)),E=t(e(93913)),T=t(e(16525)),g=t(e(2205)),i=t(e(78585)),f=t(e(29754)),u=t(e(4819)),b=t(e(15854)),M=e(58503),D=e(94427),F=t(e(55289)),oe=t(e(92636));function J(K){var H=R();return function(){var G=(0,f.default)(K),W;if(H){var I=(0,f.default)(this).constructor;W=Reflect.construct(G,arguments,I)}else W=G.apply(this,arguments);return(0,i.default)(this,W)}}function R(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(K){return!1}}var ae=function(H){return{indeterminate:{opacity:.5}}},_=function(K){(0,g.default)(L,K);var H=J(L);function L(){return(0,h.default)(this,L),H.apply(this,arguments)}return(0,E.default)(L,[{key:"componentDidMount",value:function(){(0,T.default)((0,f.default)(L.prototype),"componentDidMount",this).call(this);var W=oe.default.getValue(this.props.data,this.props.attr);this.setState({value:W})}},{key:"renderItem",value:function(W,I,y){var P=this,S=Array.isArray(this.state.value)||this.state.value===oe.default.DIFFERENT_VALUE;if(S){var k=(0,o.default)(this.state.value).map(function(p){return{label:p.toString(),value:p}});return k.unshift({label:F.default.t(oe.default.DIFFERENT_LABEL),value:oe.default.DIFFERENT_VALUE}),u.default.createElement(D.Autocomplete,{className:this.props.classes.indeterminate,fullWidth:!0,value:k[0],getOptionSelected:function(O,d){return O.label===d.label},onChange:function(O,d){return P.onChange(P.props.attr,d?d.value:"")},options:k,getOptionLabel:function(O){return O.label},renderInput:function(O){return u.default.createElement(D.TextField,(0,a.default)({variant:"standard"},O,{error:!!W,placeholder:P.getText(P.props.schema.placeholder),label:P.getText(P.props.schema.label),helperText:P.renderHelp(P.props.schema.help,P.props.schema.helpLink,P.props.schema.noTranslation),disabled:!!I}))}})}else return u.default.createElement(D.TextField,{variant:"standard",fullWidth:!0,value:this.state.value===null||this.state.value===void 0?"":this.state.value,error:!!W,disabled:!!I,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},onChange:function(O){var d=O.target.value;P.setState({value:d},function(){return P.onChange(P.props.attr,P.props.schema.trim===!1?d:(d||"").trim())})},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}],[{key:"getDerivedStateFromProps",value:function(W,I){var y=oe.default.getValue(W.data,W.attr);return y==null||y.toString().trim()!==(I.value||"").toString().trim()?{value:y}:null}}]),L}(oe.default);_.propTypes={socket:b.default.object.isRequired,themeType:b.default.string,themeName:b.default.string,style:b.default.object,className:b.default.string,data:b.default.object.isRequired,schema:b.default.object,onError:b.default.func,onChange:b.default.func};var X=(0,M.withStyles)(ae)(_);r.default=X},59007:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(61318)),M=t(e(72952)),D=t(e(23962)),F=t(e(83358)),oe=t(e(92636));function J(K){var H=R();return function(){var G=(0,g.default)(K),W;if(H){var I=(0,g.default)(this).constructor;W=Reflect.construct(G,arguments,I)}else W=G.apply(this,arguments);return(0,T.default)(this,W)}}function R(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(K){return!1}}var ae=function(H){return{fullWidth:{width:"100%"}}},_=function(K){(0,E.default)(L,K);var H=J(L);function L(){return(0,a.default)(this,L),H.apply(this,arguments)}return(0,o.default)(L,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(L.prototype),"componentDidMount",this).call(this),this.askInstance()}},{key:"askInstance",value:function(){var W=this;if(this.props.alive){var I=this.props.schema.data;if(I===void 0&&this.props.schema.jsonData){I=this.getPattern(this.props.schema.jsonData);try{I=JSON.parse(I)}catch(y){console.error("Cannot parse json data: "+I)}}I===void 0&&(I=null),this.props.socket.sendTo("".concat(this.props.adapterName,".").concat(this.props.instance),this.props.schema.command||"send",I).then(function(y){return W.setState({text:y||"",context:W.getContext()})})}}},{key:"getContext",value:function(){var W=this,I={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(function(y){return I[y]=oe.default.getValue(W.props.data,y)}),JSON.stringify(I)}},{key:"renderItem",value:function(W,I,y){var P=this;if(this.state.text===void 0)return null;if(this.props.alive){var S=this.getContext();S!==this.state.context&&setTimeout(function(){P.askInstance()},300)}return this.props.schema.container==="text"?i.default.createElement(b.default,{variant:"standard",fullWidth:!0,InputProps:{endAdornment:this.props.schema.copyToClipboard?i.default.createElement(M.default,{size:"small",onClick:function(p){(0,D.default)(P.state.text),window.alert("Copied")}},i.default.createElement(F.default,null)):void 0},value:this.state.text,label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)}):i.default.createElement("div",{className:this.props.classes.fullWidth},this.state.text)}}]),L}(oe.default);_.propTypes={socket:f.default.object.isRequired,data:f.default.object.isRequired,schema:f.default.object,adapterName:f.default.string,instance:f.default.number};var X=(0,u.withStyles)(ae)(_);r.default=X},63365:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(92636)),M=e(4186);function D(ae){var _=F();return function(){var K=(0,g.default)(ae),H;if(_){var L=(0,g.default)(this).constructor;H=Reflect.construct(K,arguments,L)}else H=K.apply(this,arguments);return(0,T.default)(this,H)}}function F(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(ae){return!1}}var oe=function(_){return{indeterminate:{opacity:.5}}},J=function(ae){(0,E.default)(X,ae);var _=D(X);function X(){return(0,a.default)(this,X),_.apply(this,arguments)}return(0,o.default)(X,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(X.prototype),"componentDidMount",this).call(this);var H=b.default.getValue(this.props.data,this.props.attr);this.setState({value:H})}},{key:"renderItem",value:function(H,L,G){var W=this;return i.default.createElement(M.TimePicker,{fullWidth:!0,margin:"normal",format:"HH:mm:ss",error:!!H,disabled:!!L,value:this.state.value===null||this.state.value===void 0?new Date:this.state.value,onChange:function(y){W.setState({value:y},function(){return W.onChange(W.props.attr,y)})},InputLabelProps:{shrink:!0},placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)})}}]),X}(b.default);J.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var R=(0,u.withStyles)(oe)(J);r.default=R},66678:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(92636)),M=e(94427);function D(_){var X=F();return function(){var H=(0,g.default)(_),L;if(X){var G=(0,g.default)(this).constructor;L=Reflect.construct(H,arguments,G)}else L=H.apply(this,arguments);return(0,T.default)(this,L)}}function F(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(_){return!1}}var oe=function(X){return{fullWidth:{width:"100%"},icon:{width:16,height:16,marginRight:8}}};function J(_,X,K){var H;return K&&_.substring(0,K.length)===K?H=_.substring(K.length+1):H=_,H=H.replace(/\./g,"/").replace(/_/g," "),H}var R=function(_){(0,E.default)(K,_);var X=D(K);function K(){return(0,a.default)(this,K),X.apply(this,arguments)}return(0,o.default)(K,[{key:"componentDidMount",value:function(){(0,h.default)((0,g.default)(K.prototype),"componentDidMount",this).call(this);var L=b.default.getValue(this.props.data,this.props.attr);if(!L&&this.props.customObj&&this.props.customObj._id){var G=J(this.props.customObj._id,null,this.props.adapterName+"."+this.props.instance);this.setState({value:G})}else this.setState({value:L||""})}},{key:"renderItem",value:function(L,G,W){var I=this;return i.default.createElement(M.TextField,{variant:"standard",fullWidth:!0,inputProps:{maxLength:this.props.schema.maxLength||this.props.schema.max||void 0},value:this.state.value,error:!!L,disabled:G,placeholder:this.getText(this.props.schema.placeholder),label:this.getText(this.props.schema.label),helperText:this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation),onChange:function(P){var S=P.target.value;I.setState({value:S},function(){return I.onChange(I.props.attr,S)})}})}}]),K}(b.default);R.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func,adapterName:f.default.string,instance:f.default.number,customObj:f.default.object};var ae=(0,u.withStyles)(oe)(R);r.default=ae},58176:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(16525)),E=t(e(2205)),T=t(e(78585)),g=t(e(29754)),i=t(e(4819)),f=t(e(15854)),u=e(58503),b=t(e(10391)),M=t(e(46881)),D=t(e(93640)),F=t(e(75197)),oe=t(e(96489)),J=t(e(94475)),R=t(e(55289)),ae=t(e(33919)),_=t(e(92636));function X(W){var I=K();return function(){var P=(0,g.default)(W),S;if(I){var k=(0,g.default)(this).constructor;S=Reflect.construct(P,arguments,k)}else S=P.apply(this,arguments);return(0,T.default)(this,S)}}function K(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(W){return!1}}var H=function(I){return{fullWidth:{width:"100%"},icon:{width:16,height:16,marginRight:8}}},L=function(W){(0,E.default)(y,W);var I=X(y);function y(){return(0,a.default)(this,y),I.apply(this,arguments)}return(0,o.default)(y,[{key:"componentDidMount",value:function(){var S=this;(0,h.default)((0,g.default)(y.prototype),"componentDidMount",this).call(this),this.props.socket.getUsers().then(function(k){var p={},O=R.default.getLanguage();S.props.schema.short?k.forEach(function(d){var w,U;return p[d._id]={color:(w=d.common)===null||w===void 0?void 0:w.color,icon:(U=d.common)===null||U===void 0?void 0:U.icon,name:ae.default.getObjectNameFromObj(d,O)}}):k.forEach(function(d){var w,U;return p[d._id.replace(/^system\.user\./,"")]={color:(w=d.common)===null||w===void 0?void 0:w.color,icon:(U=d.common)===null||U===void 0?void 0:U.icon,name:ae.default.getObjectNameFromObj(d,O)}}),S.setState({users:p})})}},{key:"renderItem",value:function(S,k,p){var O=this,d,w,U=_.default.getValue(this.props.data,this.props.attr);return i.default.createElement(F.default,{variant:"standard",className:this.props.classes.fullWidth},i.default.createElement(b.default,null,this.getText(this.props.schema.label)),i.default.createElement(oe.default,{variant:"standard",error:!!S,disabled:!!k,value:U,renderValue:function(se){var we,Te,Z;return i.default.createElement("span",null,O.state.users&&(we=O.state.users[se])!==null&&we!==void 0&&we.icon?i.default.createElement(J.default,{src:O.state.users&&((Te=O.state.users[se])===null||Te===void 0?void 0:Te.icon),className:O.props.classes.icon}):null,O.state.users&&((Z=O.state.users[se])===null||Z===void 0?void 0:Z.name)||se||"")},style:{color:this.state.users&&((d=this.state.users[U])===null||d===void 0?void 0:d.color)||void 0,backgroundColor:ae.default.getInvertedColor(this.state.users&&((w=this.state.users[U])===null||w===void 0?void 0:w.color),this.props.themeType)},onChange:function(se){return O.onChange(O.props.attr,se.target.value)}},this.state.users&&Object.keys(this.state.users).map(function(Y){return i.default.createElement(M.default,{style:{color:O.state.users[Y].color||void 0,backgroundColor:ae.default.getInvertedColor(O.state.users[Y].color,O.props.themeType)},key:Y,value:Y},O.state.users[Y].icon?i.default.createElement(J.default,{src:O.state.users[Y].icon,className:O.props.classes.icon}):null,O.state.users[Y].name)})),this.props.schema.help?i.default.createElement(D.default,null,this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}}]),y}(_.default);L.propTypes={socket:f.default.object.isRequired,themeType:f.default.string,themeName:f.default.string,style:f.default.object,className:f.default.string,data:f.default.object.isRequired,schema:f.default.object,onError:f.default.func,onChange:f.default.func};var G=(0,u.withStyles)(H)(L);r.default=G},70095:function(l,r,e){"use strict";var t,a=e(95318),o=e(50008);t={value:!0},r.Z=void 0;var h=a(e(50008)),E=a(e(34575)),T=a(e(93913)),g=a(e(81506)),i=a(e(2205)),f=a(e(78585)),u=a(e(29754)),b=a(e(59713)),M=X(e(4819)),D=a(e(15854)),F=e(58503),oe=a(e(23180)),J=a(e(55289)),R=a(e(95212)),ae=a(e(86442));function _(P){if(typeof WeakMap!="function")return null;var S=new WeakMap,k=new WeakMap;return(_=function(O){return O?k:S})(P)}function X(P,S){if(!S&&P&&P.__esModule)return P;if(P===null||o(P)!=="object"&&typeof P!="function")return{default:P};var k=_(S);if(k&&k.has(P))return k.get(P);var p={},O=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var d in P)if(d!=="default"&&Object.prototype.hasOwnProperty.call(P,d)){var w=O?Object.getOwnPropertyDescriptor(P,d):null;w&&(w.get||w.set)?Object.defineProperty(p,d,w):p[d]=P[d]}return p.default=P,k&&k.set(P,p),p}function K(P,S){var k=Object.keys(P);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(P);S&&(p=p.filter(function(O){return Object.getOwnPropertyDescriptor(P,O).enumerable})),k.push.apply(k,p)}return k}function H(P){for(var S=1;Sne?1:0}function Le(N,q,V){return N==="desc"?function(he,ne){return Se(he,ne,q,V)}:function(he,ne){return-Se(he,ne,q,V)}}function tt(N,q){var V=N.map(function(he,ne){return[he,ne]});return V.sort(function(he,ne){var ce=q(he[0],ne[0]);return ce||he[1]-ne[1]}),V.map(function(he){return he[0]})}var Xe=function(N){(0,g.default)(V,N);var q=Z(V);function V(he){var ne;(0,E.default)(this,V),ne=q.call(this,he);var ce=(window._localStorage||window.localStorage).getItem(ne.props.name||"iob-table")||"[]";try{ce=JSON.parse(ce)||[]}catch(Ie){ce=[]}return Array.isArray(ce)||(ce=[]),ne.state={opened:ce,editMode:!1,deleteMode:!1,editData:null,order:"asc",update:null,orderBy:ne.props.columns[0].field,useTable:!1,showSelectColor:!1,glowOnChange:he.glowOnChange},ne}return(0,T.default)(V,[{key:"renderCellEdit",value:function(ne,ce){var Ie=Ae(ne,ce.field);return Array.isArray(Ie)&&(Ie=Ie[0]),ce.lookup?this.renderCellEditSelect(ne,ce,Ie):ce.editComponent?this.renderCellEditCustom(ne,ce,Ie):ce.type==="boolean"||!ce.type&&typeof Ie=="boolean"?this.renderCellEditBoolean(ne,ce,Ie):ce.type==="color"?this.renderCellEditColor(ne,ce,Ie):ce.type==="oid"?this.renderCellEditObjectID(ne,ce,Ie):this.renderCellEditString(ne,ce,Ie)}},{key:"renderCellEditSelect",value:function(ne,ce,Ie){var We=this;return u.default.createElement(H.default,{variant:"standard",onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.value===Ie?delete dt[ce.field]:dt[ce.field]=ct.target.value,We.setState({editData:dt})},value:this.state.editData&&this.state.editData[ce.field]||Ie},Object.keys(ce.lookup).map(function(qe){return u.default.createElement(L.default,{value:qe},ce.lookup[qe])}))}},{key:"renderCellEditString",value:function(ne,ce,Ie){var We=this;return u.default.createElement(G.default,{variant:"standard",className:this.props.classes.fieldEdit,fullWidth:!0,value:this.state.editData&&this.state.editData[ce.field]!==void 0?this.state.editData[ce.field]:Ie,onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.value===Ie?delete dt[ce.field]:dt[ce.field]=ct.target.value,We.setState({editData:dt})}})}},{key:"renderCellEditCustom",value:function(ne,ce,Ie){var We=this,qe=ce.editComponent;return this.state.editData&&this.state.editData[ce.field]!==void 0&&(Ie=this.state.editData[ce.field],ne=JSON.parse(JSON.stringify(ne)),ne[ce.field]=Ie),u.default.createElement(qe,{value:Ie,rowData:ne,onChange:function(dt){var nt=We.state.editData?Te({},We.state.editData):{};dt===Ie?delete nt[ce.field]:nt[ce.field]=dt,We.setState({editData:nt})}})}},{key:"renderCellEditBoolean",value:function(ne,ce,Ie){var We=this;return u.default.createElement(W.default,{checked:this.state.editData&&this.state.editData[ce.field]!==void 0?!!this.state.editData[ce.field]:!!Ie,onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.checked===!!Ie?delete dt[ce.field]:dt[ce.field]=ct.target.checked,We.setState({editData:dt})},inputProps:{"aria-label":"checkbox"}})}},{key:"renderSelectColorDialog",value:function(){var ne=this;return u.default.createElement(I.default,{classes:{root:this.props.classes.colorDialog,paper:this.props.classes.colorDialog},onClose:function(){ne.selectCallback=null,ne.setState({showSelectColor:!1})},open:this.state.showSelectColor},u.default.createElement(D.HexColorPicker,{color:this.state.selectIdValue,onChange:function(Ie){ne.setState({selectIdValue:Ie},function(){return ne.selectCallback&&ne.selectCallback(Ie)})}}))}},{key:"renderCellEditColor",value:function(ne,ce,Ie){var We=this,qe=this.state.editData&&this.state.editData[ce.field]!==void 0?this.state.editData[ce.field]:Ie;return u.default.createElement("div",{className:this.props.classes.fieldEdit},u.default.createElement(G.default,{variant:"standard",fullWidth:!0,className:this.props.classes.fieldEditWithButton,value:qe,inputProps:{style:{backgroundColor:qe,color:se.default.isUseBright(qe,null)?"#FFF":"#000"}},onChange:function(dt){var nt=We.state.editData?Te({},We.state.editData):{};dt.target.value===Ie?delete nt[ce.field]:nt[ce.field]=dt.target.value,We.setState({editData:nt})}}),u.default.createElement(K.default,{className:this.props.classes.fieldButton,contained:!0,onClick:function(){We.selectCallback=function(dt){var nt=We.state.editData?Te({},We.state.editData):{};dt===Ie?delete nt[ce.field]:nt[ce.field]=dt,We.setState({editData:nt})},We.setState({showSelectColor:!0,selectIdValue:Ie})},size:"large"},u.default.createElement(U.default,null)))}},{key:"renderSelectIdDialog",value:function(){var ne=this;return this.state.showSelectId?u.default.createElement(Y.default,{key:"tableSelect",imagePrefix:"../..",dialogName:this.props.adapterName,themeType:this.props.themeType,socket:this.props.socket,statesOnly:!0,selected:this.state.selectIdValue,onClose:function(){return ne.setState({showSelectId:!1})},onOk:function(Ie,We){ne.setState({showSelectId:!1,selectIdValue:null}),ne.selectCallback&&ne.selectCallback(Ie),ne.selectCallback=null}}):null}},{key:"renderCellEditObjectID",value:function(ne,ce,Ie){var We=this;return u.default.createElement("div",{className:this.props.classes.fieldEdit},u.default.createElement(G.default,{variant:"standard",fullWidth:!0,className:this.props.classes.fieldEditWithButton,value:this.state.editData&&this.state.editData[ce.field]!==void 0?this.state.editData[ce.field]:Ie,onChange:function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct.target.value===Ie?delete dt[ce.field]:dt[ce.field]=ct.target.value,We.setState({editData:dt})}}),u.default.createElement(K.default,{className:this.props.classes.fieldButton,contained:!0,onClick:function(){We.selectCallback=function(ct){var dt=We.state.editData?Te({},We.state.editData):{};ct===Ie?delete dt[ce.field]:dt[ce.field]=ct,We.setState({editData:dt})},We.setState({showSelectId:!0,selectIdValue:Ie})},size:"large"},u.default.createElement(w.default,null)))}},{key:"renderCellNonEdit",value:function(ne,ce){var Ie=Ae(ne,ce.field,ce.lookup);return Array.isArray(Ie)&&(Ie=Ie[0]),ce.type==="boolean"?u.default.createElement(W.default,{checked:!!Ie,disabled:!0,inputProps:{"aria-label":"checkbox"}}):Ie}},{key:"renderCell",value:function(ne,ce,Ie,We){return this.state.editMode===We&&ce.editable!=="never"&&ce.editable!==!1?u.default.createElement(R.default,{key:ce.field,className:se.default.clsx(this.props.classes.cell,Ie&&this.props.classes.cellSecondary),style:ce.cellStyle,component:"th"},this.renderCellEdit(ne,ce)):u.default.createElement(R.default,{key:ce.field,className:se.default.clsx(this.props.classes.cell,Ie&&this.props.classes.cellSecondary),style:ce.cellStyle,component:"th"},this.renderCellNonEdit(ne,ce))}},{key:"renderCellWithSubField",value:function(ne,ce){var Ie=Ae(ne,ce.field,ce.lookup),We=Ae(ne,ce.subField,ce.subLookup);return u.default.createElement("div",null,u.default.createElement("div",{className:this.props.classes.mainText},Ie),u.default.createElement("div",{className:this.props.classes.subText,style:ce.subStyle||{}},We))}},{key:"renderLine",value:function(ne,ce){var Ie=this,We=this.props.levelShift===void 0?24:this.props.levelShift;ce=ce||0;var qe=this.props.data.indexOf(ne);if(!ne||!ce&&ne.parentId)return null;if(ce&&!ne.parentId)return null;var ct=this.state.opened.includes(ne.id),dt=this.props.data.filter(function(nt){return nt.parentId===ne.id});return[u.default.createElement(_.default,{key:ne.id,className:se.default.clsx("table-row-"+(ne.id||"").toString().replace(/[.$]/g,"_"),this.state.update&&this.state.update.includes(ne.id)&&this.props.classes.glow,this.props.classes.row,ce&&this.props.classes.rowSecondary,!ce&&dt.length&&this.props.classes.rowMainWithChildren,!ce&&!dt.length&&this.props.classes.rowMainWithoutChildren,this.state.editMode!==!1&&this.state.editMode!==qe&&this.props.classes.rowNoEdit,this.state.deleteMode!==!1&&this.state.deleteMode!==qe&&this.props.classes.rowNoEdit)},u.default.createElement(R.default,{className:se.default.clsx(this.props.classes.cell,this.props.classes.cellExpand,ce&&this.props.classes.cellSecondary)},dt.length?u.default.createElement(K.default,{onClick:function(){var mt=(0,o.default)(Ie.state.opened),It=mt.indexOf(ne.id);It===-1?(mt.push(ne.id),mt.sort()):mt.splice(It,1),(window._localStorage||window.localStorage).setItem(Ie.props.name||"iob-table",JSON.stringify(mt)),Ie.setState({opened:mt})},size:"small"},ct?u.default.createElement(k.default,null):u.default.createElement(S.default,null)):null),u.default.createElement(R.default,{scope:"row",className:se.default.clsx(this.props.classes.cell,ce&&this.props.classes.cellSecondary),style:Object.assign({},this.props.columns[0].cellStyle,{paddingLeft:We*ce})},this.props.columns[0].subField?this.renderCellWithSubField(ne,this.props.columns[0]):Ae(ne,this.props.columns[0].field,this.props.columns[0].lookup)),this.props.columns.map(function(nt,mt){return!mt&&!nt.hidden?null:Ie.renderCell(ne,nt,ce,qe)}),this.props.onUpdate?u.default.createElement(R.default,{className:se.default.clsx(this.props.classes.cell,this.props.classes.cellButton)},this.state.editMode===qe||this.state.deleteMode===qe?u.default.createElement(K.default,{disabled:this.state.editMode!==!1&&(!this.state.editData||!Object.keys(this.state.editData).length),onClick:function(){if(Ie.state.editMode!==!1){var mt=JSON.parse(JSON.stringify(ne));Object.keys(Ie.state.editData).forEach(function(It){return le(mt,It,Ie.state.editData[It])}),Ie.setState({editMode:!1},function(){return Ie.props.onUpdate(mt,ne)})}else Ie.setState({deleteMode:!1},function(){return Ie.props.onDelete(ne)})},size:"large"},u.default.createElement(p.default,null)):u.default.createElement(K.default,{disabled:this.state.editMode!==!1,onClick:function(){return Ie.setState({editMode:qe,editData:null})},size:"large"},u.default.createElement(y.default,null))):null,this.props.onUpdate||this.props.onDelete?u.default.createElement(R.default,{className:se.default.clsx(this.props.classes.cell,this.props.classes.cellButton)},this.state.editMode===qe||this.state.deleteMode===qe?u.default.createElement(K.default,{onClick:function(){return Ie.setState({editMode:!1,deleteMode:!1})},size:"large"},u.default.createElement(O.default,null)):this.props.onDelete?u.default.createElement(K.default,{disabled:this.state.deleteMode!==!1,onClick:function(){return Ie.setState({deleteMode:qe})},size:"large"},u.default.createElement(P.default,null)):null):null),!ce&&ct?dt.map(function(nt){return Ie.renderLine(nt,ce+1)}):null]}},{key:"handleRequestSort",value:function(ne){var ce=this.state.orderBy===ne&&this.state.order==="asc";this.setState({order:ce?"desc":"asc",orderBy:ne})}},{key:"renderHead",value:function(){var ne=this;return u.default.createElement(ae.default,null,u.default.createElement(_.default,{key:"headerRow"},u.default.createElement(R.default,{component:"th",className:se.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellExpand)}),u.default.createElement(R.default,{component:"th",className:se.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes["width_"+this.props.columns[0].field.replace(/\./g,"_")]),style:this.props.columns[0].headerStyle||this.props.columns[0].cellStyle,sortDirection:this.props.noSort?!1:this.state.orderBy===this.props.columns[0].field?this.state.order:!1},this.props.noSort?null:u.default.createElement(X.default,{active:this.state.orderBy===this.props.columns[0].field,direction:this.state.orderBy===this.props.columns[0].field?this.state.order:"asc",onClick:function(){return ne.handleRequestSort(ne.props.columns[0].field)}},this.props.columns[0].title||this.props.columns[0].field,this.state.orderBy===this.props.columns[0].field?u.default.createElement("span",{className:this.props.classes.visuallyHidden},this.state.order==="desc"?"sorted descending":"sorted ascending"):null)),this.props.columns.map(function(ce,Ie){return!Ie&&!ce.hidden?null:u.default.createElement(R.default,{key:ce.field,className:se.default.clsx(ne.props.classes.cell,ne.props.classes.cellHeader,ne.props.classes["width_"+ce.field.replace(/\./g,"_")]),style:ce.headerStyle||ce.cellStyle,component:"th"},ne.props.noSort?null:u.default.createElement(X.default,{active:ne.state.orderBy===ce.field,direction:ne.state.orderBy===ce.field?ne.state.order:"asc",onClick:function(){return ne.handleRequestSort(ce.field)}},ce.title||ce.field,ne.state.orderBy===ce.field?u.default.createElement("span",{className:ne.props.classes.visuallyHidden},ne.state.order==="desc"?"sorted descending":"sorted ascending"):null))}),this.props.onUpdate?u.default.createElement(R.default,{component:"th",className:se.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)},this.props.noAdd?null:u.default.createElement(F.default,{color:"primary",size:"small",disabled:this.state.editMode!==!1,onClick:function(){return ne.props.onUpdate(!0)}},u.default.createElement(d.default,null))):null,this.props.onDelete||this.props.onUpdate?u.default.createElement(R.default,{component:"th",className:se.default.clsx(this.props.classes.cell,this.props.classes.cellHeader,this.props.classes.cellButton)}):null))}},{key:"render",value:function(){var ne=this,ce=this.props.columns.find(function(We){return We.field===ne.state.orderBy}).lookup,Ie=tt(this.props.data,Le(this.state.order,this.state.orderBy,ce));return this.state.update&&this.state.update.length&&(this.updateTimeout&&clearTimeout(this.updateTimeout),this.updateTimeout=setTimeout(function(){ne.updateTimeout=null,ne.setState({update:null})},500)),u.default.createElement("div",{className:se.default.clsx(this.props.classes.tableContainer,this.props.className)},u.default.createElement(oe.default,{className:this.props.classes.table,"aria-label":"simple table",size:"small",stickyHeader:!0},this.renderHead(),u.default.createElement(J.default,null,Ie.map(function(We){return ne.renderLine(We)}))),this.renderSelectIdDialog(),this.renderSelectColorDialog())}}],[{key:"getDerivedStateFromProps",value:function(ne,ce){if(ne.glowOnChange){var Ie=[],We=0;return ne.data&&ce.data&&ne.data.forEach(function(qe){We++;var ct=ce.data.find(function(dt){return dt.id===qe.id});ct?JSON.stringify(ct)!==JSON.stringify(qe)&&Ie.push(qe.id):Ie.push(qe.id)}),Ie.length&&Ie.length!==We?{data:ne.data,update:Ie}:{data:ne.data}}else return{data:ne.data}}}]),V}(u.default.Component);Xe.propTypes={data:b.default.array.isRequired,className:b.default.string,loading:b.default.bool,name:b.default.string,columns:b.default.arrayOf(b.default.shape({cellStyle:b.default.object,editComponent:b.default.func,field:b.default.string,headerStyle:b.default.object,hidden:b.default.bool,lookup:b.default.object,editable:b.default.bool,title:b.default.string,type:b.default.oneOf(["string","boolean","numeric","icon","oid","color"])})).isRequired,noSort:b.default.bool,onUpdate:b.default.func,onDelete:b.default.func,noAdd:b.default.bool,themeType:b.default.string,glowOnChange:b.default.bool,socket:b.default.object,levelShift:b.default.number};var it=(0,M.default)(Ee)(Xe);r.Z=it},8367:function(l,r,e){"use strict";var t=e(4819),a=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=a(e(67154)),h=a(e(34575)),E=a(e(93913)),T=a(e(2205)),g=a(e(78585)),i=a(e(29754)),f=e(4819),u=a(e(23060)),b=a(e(15854)),M=a(e(23167)),D=e(86856),F=e(58503),oe=e(94427),J=a(e(72952)),R=a(e(62976)),ae=a(e(16055)),_=e(42158);function X(I){var y=K();return function(){var S=(0,i.default)(I),k;if(y){var p=(0,i.default)(this).constructor;k=Reflect.construct(S,arguments,p)}else k=S.apply(this,arguments);return(0,g.default)(this,k)}}function K(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(I){return!1}}var H=` +/*! + * Cropper.js v1.5.12 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2021-06-12T08:00:11.623Z + */ + +.cropper-container { + direction: ltr; + font-size: 0; + line-height: 0; + position: relative; + -ms-touch-action: none; + touch-action: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.cropper-container img { + display: block; + height: 100%; + image-orientation: 0deg; + max-height: none !important; + max-width: none !important; + min-height: 0 !important; + min-width: 0 !important; + width: 100%; +} + +.cropper-wrap-box, +.cropper-canvas, +.cropper-drag-box, +.cropper-crop-box, +.cropper-modal { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; +} + +.cropper-wrap-box, +.cropper-canvas { + overflow: hidden; +} + +.cropper-drag-box { + background-color: #fff; + opacity: 0; +} + +.cropper-modal { + background-color: #000; + opacity: 0.5; +} + +.cropper-view-box { + display: block; + height: 100%; + outline: 1px solid #39f; + outline-color: rgba(51, 153, 255, 0.75); + overflow: hidden; + width: 100%; +} + +.cropper-dashed { + border: 0 dashed #eee; + display: block; + opacity: 0.5; + position: absolute; +} + +.cropper-dashed.dashed-h { + border-bottom-width: 1px; + border-top-width: 1px; + height: calc(100% / 3); + left: 0; + top: calc(100% / 3); + width: 100%; +} + +.cropper-dashed.dashed-v { + border-left-width: 1px; + border-right-width: 1px; + height: 100%; + left: calc(100% / 3); + top: 0; + width: calc(100% / 3); +} + +.cropper-center { + display: block; + height: 0; + left: 50%; + opacity: 0.75; + position: absolute; + top: 50%; + width: 0; +} + +.cropper-center::before, +.cropper-center::after { + background-color: #eee; + content: ' '; + display: block; + position: absolute; +} + +.cropper-center::before { + height: 1px; + left: -3px; + top: 0; + width: 7px; +} + +.cropper-center::after { + height: 7px; + left: 0; + top: -3px; + width: 1px; +} + +.cropper-face, +.cropper-line, +.cropper-point { + display: block; + height: 100%; + opacity: 0.1; + position: absolute; + width: 100%; +} + +.cropper-face { + background-color: #fff; + left: 0; + top: 0; +} + +.cropper-line { + background-color: #39f; +} + +.cropper-line.line-e { + cursor: ew-resize; + right: -3px; + top: 0; + width: 5px; +} + +.cropper-line.line-n { + cursor: ns-resize; + height: 5px; + left: 0; + top: -3px; +} + +.cropper-line.line-w { + cursor: ew-resize; + left: -3px; + top: 0; + width: 5px; +} + +.cropper-line.line-s { + bottom: -3px; + cursor: ns-resize; + height: 5px; + left: 0; +} + +.cropper-point { + background-color: #39f; + height: 5px; + opacity: 0.75; + width: 5px; +} + +.cropper-point.point-e { + cursor: ew-resize; + margin-top: -3px; + right: -3px; + top: 50%; +} + +.cropper-point.point-n { + cursor: ns-resize; + left: 50%; + margin-left: -3px; + top: -3px; +} + +.cropper-point.point-w { + cursor: ew-resize; + left: -3px; + margin-top: -3px; + top: 50%; +} + +.cropper-point.point-s { + bottom: -3px; + cursor: s-resize; + left: 50%; + margin-left: -3px; +} + +.cropper-point.point-ne { + cursor: nesw-resize; + right: -3px; + top: -3px; +} + +.cropper-point.point-nw { + cursor: nwse-resize; + left: -3px; + top: -3px; +} + +.cropper-point.point-sw { + bottom: -3px; + cursor: nesw-resize; + left: -3px; +} + +.cropper-point.point-se { + bottom: -3px; + cursor: nwse-resize; + height: 20px; + opacity: 1; + right: -3px; + width: 20px; +} + +@media (min-width: 768px) { + .cropper-point.point-se { + height: 15px; + width: 15px; + } +} + +@media (min-width: 992px) { + .cropper-point.point-se { + height: 10px; + width: 10px; + } +} + +@media (min-width: 1200px) { + .cropper-point.point-se { + height: 5px; + opacity: 0.75; + width: 5px; + } +} + +.cropper-point.point-se::before { + background-color: #39f; + bottom: -50%; + content: ' '; + display: block; + height: 200%; + opacity: 0; + position: absolute; + right: -50%; + width: 200%; +} + +.cropper-invisible { + opacity: 0; +} + +.cropper-bg { + background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC'); +} + +.cropper-hide { + display: block; + height: 0; + position: absolute; + width: 0; +} + +.cropper-hidden { + display: none !important; +} + +.cropper-move { + cursor: move; +} + +.cropper-crop { + cursor: crosshair; +} + +.cropper-disabled .cropper-drag-box, +.cropper-disabled .cropper-face, +.cropper-disabled .cropper-line, +.cropper-disabled .cropper-point { + cursor: not-allowed; +} +`,L=function(y){return{dropZone:{width:"100%",height:100,position:"relative"},dropZoneEmpty:{},image:{objectFit:"contain",margin:"auto",display:"flex",width:"100%",height:"100%"},uploadDiv:{position:"relative",width:"100%",height:300,opacity:.9,marginTop:30,cursor:"pointer",outline:"none"},uploadDivDragging:{opacity:1,background:"rgba(128,255,128,0.1)"},uploadCenterDiv:{margin:5,border:"3px dashed grey",borderRadius:5,width:"calc(100% - 10px)",height:"calc(100% - 10px)",position:"relative",display:"flex"},uploadCenterIcon:{paddingTop:10,width:48,height:48},uploadCenterText:{fontSize:16},uploadCenterTextAndIcon:{textAlign:"center",position:"absolute",top:0,bottom:0,left:0,right:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},disabledOpacity:{opacity:.3,cursor:"default"},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},buttonCropWrapper:{position:"absolute",zIndex:222,right:0,top:50},error:{border:"2px solid red"}}},G=function(I){(0,T.default)(P,I);var y=X(P);function P(S){var k;if((0,h.default)(this,P),k=y.call(this,S),k.state={uploadFile:!1,anchorEl:null,cropHandler:!1},k.cropperRef=(0,f.createRef)(),!window.document.getElementById("cropper-style-json-component")){var p=window.document.createElement("style");p.setAttribute("id","cropper-style-json-component"),p.innerHTML=H,window.document.head.appendChild(p)}return k}return(0,E.default)(P,[{key:"onDrop",value:function(k){var p=this.props,O=p.maxSize,d=p.t,w=p.onChange,U=k[0],Y=new FileReader;Y.onabort=function(){return console.log("file reading was aborted")},Y.onerror=function(){return console.log("file reading has failed")},Y.onload=function(){var se="image/"+U.name.split(".").pop().toLowerCase();if(se==="image/jpg"?se="image/jpeg":se.includes("svg")&&(se="image/svg+xml"),U.size>O)return window.alert(d("ra_File is too big. Max %sk allowed. Try use SVG.",Math.round(O/1024)));var we="data:".concat(se,";base64,").concat(btoa(new Uint8Array(Y.result).reduce(function(Te,Z){return Te+String.fromCharCode(Z)},"")));w(we)},Y.readAsArrayBuffer(U)}},{key:"render",value:function(){var k=this,p=this.props,O=p.disabled,d=p.maxSize,w=p.classes,U=p.icon,Y=p.t,se=p.removeIconFunc,we=p.accept,Te=p.error,Z=p.crop,ie=p.onChange,Ae=this.state,le=Ae.uploadFile,Ee=Ae.anchorEl,Se=Ae.cropHandler;return t.createElement(M.default,{disabled:O||Se,key:"dropzone",multiple:!1,accept:we,maxSize:d,onDragEnter:function(){return k.setState({uploadFile:"dragging"})},onDragLeave:function(){return k.setState({uploadFile:!0})},onDrop:function(tt,Xe){if(k.setState({uploadFile:!1}),!tt.length)window.alert(Xe&&Xe[0]&&Xe[0].errors&&Xe[0].errors[0]&&Xe[0].errors[0].message||Y("ra_Cannot upload"));else return k.onDrop(tt)}},function(Le){var tt=Le.getRootProps,Xe=Le.getInputProps;return t.createElement("div",(0,o.default)({className:(0,u.default)(w.uploadDiv,le==="dragging"&&w.uploadDivDragging,w.dropZone,O&&w.disabledOpacity,!U&&w.dropZoneEmpty)},tt()),t.createElement("input",Xe()),t.createElement("div",{className:(0,u.default)(w.uploadCenterDiv,Te&&w.error)},U?se&&!Se&&t.createElement("div",{className:w.buttonRemoveWrapper},t.createElement(oe.Tooltip,{title:Y("ra_Clear")},t.createElement(J.default,{size:"large",onClick:function(N){se&&se(),N.stopPropagation()}},t.createElement(R.default,null)))):t.createElement("div",{className:w.uploadCenterTextAndIcon},t.createElement(_.FaFileUpload,{className:w.uploadCenterIcon}),t.createElement("div",{className:w.uploadCenterText},Y(le==="dragging"?"ra_Drop file here":"ra_Place your files here or click here to open the browse dialog"))),U&&Z&&t.createElement("div",{className:w.buttonCropWrapper},t.createElement(oe.Tooltip,{title:Y("ra_Crop")},t.createElement(J.default,{size:"large",onClick:function(N){Se?k.setState({anchorEl:N.currentTarget}):k.setState({cropHandler:!0}),N.stopPropagation()}},t.createElement(ae.default,{color:Se?"primary":"inherit"}))),t.createElement(oe.Menu,{anchorEl:Ee,keepMounted:!0,open:Boolean(Ee),onClose:function(){return k.setState({anchorEl:null})}},t.createElement(oe.MenuItem,{onClick:function(){return k.setState({anchorEl:null,cropHandler:!1},function(){var N,q,V=(N=k.cropperRef)===null||N===void 0||(q=N.current)===null||q===void 0?void 0:q.cropper;ie(V.getCroppedCanvas().toDataURL())})}},Y("ra_Save")),t.createElement(oe.MenuItem,{onClick:function(){return k.setState({anchorEl:null,cropHandler:!1})}},Y("ra_Close")))),U&&!Se?t.createElement("img",{src:U,className:w.image,alt:"icon"}):null,U&&Z&&Se?t.createElement(D.Cropper,{ref:k.cropperRef,className:w.image,src:U,initialAspectRatio:1,viewMode:1,guides:!1,minCropBoxHeight:10,minCropBoxWidth:10,background:!1,checkOrientation:!1}):null))})}}]),P}(f.Component);G.defaultProps={disabled:!1,maxSize:10*1024,icon:null,removeIconFunc:null,accept:{"image/*":[]},error:!1,onChange:function(y){return console.log(y)},t:function(y){return y},crop:!1},G.propTypes={classes:b.default.object,maxSize:b.default.number,disabled:b.default.bool,crop:b.default.bool,error:b.default.bool,onChange:b.default.func,accept:b.default.object,t:b.default.func};var W=(0,F.withStyles)(L)(G);r.default=W},15044:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var o=a(e(34575)),h=a(e(93913)),E=a(e(2205)),T=a(e(78585)),g=a(e(29754)),i=a(e(4819)),f=a(e(15854)),u=a(e(42390)),b=a(e(73319)),M=a(e(89676)),D=a(e(67730)),F=a(e(41818)),oe=a(e(28020)),J=a(e(26021)),R=a(e(72977)),ae=a(e(91495)),_=a(e(73868)),X=a(e(55289));function K(I){var y=H();return function(){var S=(0,g.default)(I),k;if(y){var p=(0,g.default)(this).constructor;k=Reflect.construct(S,arguments,p)}else k=S.apply(this,arguments);return(0,T.default)(this,k)}}function H(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(I){return!1}}var L=function(y){return{headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}}},G=function(I){(0,E.default)(P,I);var y=K(P);function P(S){var k;(0,o.default)(this,P),k=y.call(this,S);var p;return k.props.cron&&typeof k.props.cron=="string"&&k.props.cron.replace(/^["']/,"")[0]!=="{"?p=k.props.cron.replace(/['"]/g,"").trim():(p=k.props.cron||"{}",typeof p=="string"&&(p=p.replace(/^["']/,"").replace(/["']\n?$/,""))),k.state={cron:p},k}return(0,h.default)(P,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.state.cron),this.props.onClose()}},{key:"handleClear",value:function(){this.props.onOk(!1),this.props.onClose()}},{key:"render",value:function(){var k=this;return i.default.createElement(oe.default,{onClose:function(){},maxWidth:"md",fullWidth:!0,classes:{paper:this.props.classes.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},i.default.createElement(M.default,{id:"cron-dialog-title"},this.props.title||X.default.t("ra_Define schedule...")),i.default.createElement(D.default,{style:{height:"100%",overflow:"hidden"}},i.default.createElement(_.default,{cronExpression:this.state.cron,onChange:function(O){return k.setState({cron:O})},language:X.default.getLanguage()})),i.default.createElement(F.default,null,!!this.props.clearButton&&i.default.createElement(b.default,{color:"grey",variant:"contained",onClick:function(){return k.handleClear()},startIcon:i.default.createElement(ae.default,null)},this.props.clear||X.default.t("ra_Clear")),i.default.createElement(b.default,{variant:"contained",onClick:function(){return k.handleOk()},color:"primary",startIcon:i.default.createElement(J.default,null)},this.props.ok||X.default.t("ra_Ok")),i.default.createElement(b.default,{color:"grey",variant:"contained",onClick:function(){return k.handleCancel()},startIcon:i.default.createElement(R.default,null)},this.props.cancel||X.default.t("ra_Cancel"))))}}]),P}(i.default.Component);G.propTypes={classes:f.default.object,onClose:f.default.func.isRequired,onOk:f.default.func.isRequired,title:f.default.string,cron:f.default.string,cancel:f.default.string,ok:f.default.string,simple:f.default.bool,language:f.default.string,clearButton:f.default.bool};var W=(0,u.default)(L)(G);r.Z=W},35956:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=t(e(42390)),u=t(e(73319)),b=t(e(89676)),M=t(e(67730)),D=t(e(41818)),F=t(e(28020)),oe=t(e(72977)),J=t(e(26021)),R=t(e(55289)),ae=t(e(33919)),_=t(e(90010));function X(I){var y=K();return function(){var S=(0,T.default)(I),k;if(y){var p=(0,T.default)(this).constructor;k=Reflect.construct(S,arguments,p)}else k=S.apply(this,arguments);return(0,E.default)(this,k)}}function K(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(I){return!1}}var H=function(y){return{headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:4,width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}}},L=function(I){(0,h.default)(P,I);var y=X(P);function P(S){var k;(0,a.default)(this,P),k=y.call(this,S),k.dialogName=k.props.dialogName||"default",k.dialogName="FileSelect."+k.dialogName,k.filters=(window._localStorage||window.localStorage).getItem(k.dialogName)||"{}";try{k.filters=JSON.parse(k.filters)}catch(p){k.filters={}}return k.state={selected:k.props.selected||"",isFolder:!1,name:"",isMobile:window.innerWidth<800},k}return(0,o.default)(P,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.state.selected||""),this.props.onClose()}},{key:"render",value:function(){var k=this,p;return this.state.name||this.state.selected.length?p=[g.default.createElement("span",{key:"selected"},R.default.t("ra_Selected")," "),g.default.createElement("span",{key:"id",className:this.props.classes.headerID},this.state.selected)]:p=this.props.title||R.default.t("ra_Please select file..."),g.default.createElement(F.default,{onClose:function(){},maxWidth:!1,classes:{paper:ae.default.clsx(this.props.classes.dialog,this.props.classes.dialogMobile)},fullWidth:!0,open:!0,"aria-labelledby":"file-dialog-title"},g.default.createElement(b.default,{id:"file-dialog-title",classes:{root:this.props.classes.titleRoot}},p),g.default.createElement(M.default,{className:ae.default.clsx(this.props.classes.content,this.props.classes.contentMobile)},g.default.createElement(_.default,{ready:!0,imagePrefix:this.props.imagePrefix,allowUpload:!!this.props.allowUpload,allowDownload:this.props.allowDownload!==!1,allowCreateFolder:!!this.props.allowCreateFolder,allowDelete:!!this.props.allowDelete,showViewTypeButton:this.props.allowView!==!1,showToolbar:this.props.showToolbar!==!1,limitPath:this.props.limitPath,filterFiles:this.props.filterFiles,filterByType:this.props.filterByType,selected:this.props.selected,onSelect:function(d,w,U){k.setState({selected:d,isFolder:U},function(){return w&&(k.props.selectOnlyFolders&&U||!k.props.selectOnlyFolders&&!U)&&k.handleOk()})},t:R.default.t,lang:R.default.getLanguage(),socket:this.props.socket})),g.default.createElement(D.default,null,g.default.createElement(u.default,{variant:"contained",onClick:function(){return k.handleOk()},startIcon:g.default.createElement(J.default,null),disabled:!this.state.selected||this.props.selectOnlyFolders&&!this.state.isFolder||!this.props.selectOnlyFolders&&this.state.isFolder,color:"primary"},this.props.ok||R.default.t("ra_Ok")),g.default.createElement(u.default,{color:"grey",variant:"contained",onClick:function(){return k.handleCancel()},startIcon:g.default.createElement(oe.default,null)},this.props.cancel||R.default.t("ra_Cancel"))))}}]),P}(g.default.Component);L.propTypes={imagePrefix:i.default.string,dialogName:i.default.string,selected:i.default.string,onClose:i.default.func.isRequired,onOk:i.default.func.isRequired,ok:i.default.string,cancel:i.default.string,socket:i.default.object.isRequired,allowUpload:i.default.bool,allowDownload:i.default.bool,allowCreateFolder:i.default.bool,allowDelete:i.default.bool,allowView:i.default.bool,showToolbar:i.default.bool,objectID:i.default.string,filterFiles:i.default.arrayOf(i.default.string),filterByType:i.default.string,limitPath:i.default.string,selectOnlyFolders:i.default.bool};var G=(0,f.default)(H)(L),W=G;r.default=W},17027:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var o=a(e(34575)),h=a(e(93913)),E=a(e(2205)),T=a(e(78585)),g=a(e(29754)),i=a(e(4819)),f=a(e(15854)),u=a(e(42390)),b=a(e(73319)),M=a(e(89676)),D=a(e(67730)),F=a(e(41818)),oe=a(e(28020)),J=a(e(26021)),R=a(e(72977)),ae=a(e(329)),_=a(e(55289));function X(W){var I=K();return function(){var P=(0,g.default)(W),S;if(I){var k=(0,g.default)(this).constructor;S=Reflect.construct(P,arguments,k)}else S=P.apply(this,arguments);return(0,T.default)(this,S)}}function K(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(W){return!1}}var H=function(I){return{headerID:{fontWeight:"bold",fontStyle:"italic"},radio:{display:"inline-block"},dialogPaper:{height:"calc(100% - 96px)"}}},L=function(W){(0,E.default)(y,W);var I=X(y);function y(P){var S;(0,o.default)(this,y),S=I.call(this,P);var k;return S.props.cron&&typeof S.props.cron=="string"&&S.props.cron.replace(/^["']/,"")[0]!=="{"?k=S.props.cron.replace(/['"]/g,"").trim():(k=S.props.cron||"{}",typeof k=="string"&&(k=k.replace(/^["']/,"").replace(/["']\n?$/,""))),S.state={cron:k},S}return(0,h.default)(y,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.state.cron),this.props.onClose()}},{key:"render",value:function(){var S=this;return i.default.createElement(oe.default,{onClose:function(){},maxWidth:"md",fullWidth:!0,classes:{paper:this.props.classes.dialogPaper},open:!0,"aria-labelledby":"cron-dialog-title"},i.default.createElement(M.default,{id:"cron-dialog-title"},this.props.title||_.default.t("ra_Define CRON...")),i.default.createElement(D.default,{style:{height:"100%",overflow:"hidden"}},i.default.createElement(ae.default,{cronExpression:this.state.cron,onChange:function(p){return S.setState({cron:p})},language:_.default.getLanguage()})),i.default.createElement(F.default,null,i.default.createElement(b.default,{variant:"contained",onClick:function(){return S.handleOk()},color:"primary",startIcon:i.default.createElement(J.default,null)},this.props.ok||_.default.t("ra_Ok")),i.default.createElement(b.default,{variant:"contained",onClick:function(){return S.handleCancel()},color:"grey",startIcon:i.default.createElement(R.default,null)},this.props.cancel||_.default.t("ra_Cancel"))))}}]),y}(i.default.Component);L.propTypes={classes:f.default.object,onClose:f.default.func.isRequired,onOk:f.default.func.isRequired,title:f.default.string,cron:f.default.string,cancel:f.default.string,ok:f.default.string,simple:f.default.bool,language:f.default.string};var G=(0,u.default)(H)(L);r.Z=G},93451:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(34575)),o=t(e(93913)),h=t(e(2205)),E=t(e(78585)),T=t(e(29754)),g=t(e(4819)),i=t(e(15854)),f=t(e(73319)),u=t(e(61318)),b=t(e(28020)),M=t(e(41818)),D=t(e(67730)),F=t(e(81602)),oe=t(e(89676)),J=t(e(55289)),R=t(e(62976)),ae=t(e(26021)),_=t(e(70703));function X(W){var I=K();return function(){var P=(0,T.default)(W),S;if(I){var k=(0,T.default)(this).constructor;S=Reflect.construct(P,arguments,k)}else S=P.apply(this,arguments);return(0,E.default)(this,S)}}function K(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(W){return!1}}var H=function(W){(0,h.default)(y,W);var I=X(y);function y(P){var S;return(0,a.default)(this,y),S=I.call(this,P),S.state={text:S.props.input||S.props.value||"",error:""},S}return(0,o.default)(y,[{key:"render",value:function(){var S=this;return g.default.createElement(b.default,{open:!0,onClose:function(){return S.props.onClose(null)},"aria-labelledby":"form-dialog-title"},g.default.createElement(oe.default,{id:"form-dialog-title"},this.props.titleText),g.default.createElement(D.default,null,g.default.createElement(F.default,null,this.props.promptText),g.default.createElement(u.default,{variant:"standard",autoFocus:!0,margin:"dense",error:!!this.state.error,title:this.state.error,value:this.state.text,label:this.props.labelText||"",type:this.props.type||"text",onKeyPress:function(p){return p.charCode===13&&S.state.text&&S.props.onClose(S.state.text)},onChange:function(p){var O="";S.props.verify&&(O=!S.props.verify(p.target.value)),S.props.rule?S.setState({text:S.props.rule(p.target.value),error:O}):S.setState({text:p.target.value,error:O})},fullWidth:!0})),g.default.createElement(M.default,null,g.default.createElement(f.default,{variant:"contained",disabled:!this.state.text||this.state.error,onClick:function(){return S.props.onClose(S.state.text)},color:"primary",startIcon:g.default.createElement(ae.default,null)},this.props.applyText||J.default.t("ra_Ok")),g.default.createElement(f.default,{color:"grey",variant:"contained",onClick:function(){return S.props.onClose(null)},startIcon:g.default.createElement(R.default,null)},this.props.cancelText||J.default.t("ra_Cancel"))))}}]),y}(g.default.Component);H.propTypes={onClose:i.default.func.isRequired,titleText:i.default.string.isRequired,promptText:i.default.string,labelText:i.default.string,cancelText:i.default.string,applyText:i.default.string,verify:i.default.func,replace:i.default.func,type:i.default.string,value:i.default.string};var L=(0,_.default)()(H),G=L;r.default=G},24722:function(){},27853:function(){},78569:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var o=a(e(4819)),h=a(e(15854)),E=function(i){return o.default.createElement("svg",{onClick:function(u){return i.onClick&&i.onClick(u)},style:i.style||{},viewBox:"0 0 95 95",width:i.width||20,height:i.height||i.width||20,xmlns:"http://www.w3.org/2000/svg",className:i.className},o.default.createElement("path",{fill:"currentColor",d:"M93.779,63.676c-0.981-1.082-2.24-1.653-3.639-1.653c-1.145,0-3.953,0.396-5.318,4.062 c-0.344,0.922-0.443,1.413-0.907,1.363c-0.786-0.078-3.845-3.346-4.845-8.145l-2.482-11.6c1.961-3.177,3.977-5.629,5.988-7.292 c1.08-0.882,2.314-1.349,3.808-1.43c3.815-0.26,5.203-0.74,6.14-1.399c1.547-1.115,2.397-2.728,2.397-4.542 c0-1.596-0.604-3.019-1.75-4.115c-1.106-1.059-2.581-1.618-4.26-1.618c-2.468,0-5.239,1.142-8.474,3.49 c-1.91,1.388-3.935,3.406-6.121,6.111c-0.711-2.653-1.319-3.889-1.771-4.628c-1.396-2.303-3.664-2.303-4.41-2.303l-0.813,0.013 l-23.045,0.544l1.297-5.506c0.828-3.593,1.915-6.436,3.226-8.45c0.638-0.98,1.614-2.148,2.638-2.148 c0.387,0,1.152,0.063,2.582,0.36c3.978,0.86,5.465,0.959,6.239,0.959c1.708,0,3.21-0.571,4.347-1.651 c1.176-1.119,1.797-2.583,1.797-4.233c0-1.29-0.424-3.156-2.445-4.722c-1.396-1.081-3.311-1.629-5.691-1.629 c-3.568,0-7.349,1.141-11.241,3.39c-3.862,2.232-7.038,5.317-9.438,9.171c-2.105,3.379-3.929,8.124-5.555,14.459H21.877 l-2.238,8.831h10.186l-7.74,31.116c-1.603,6.443-2.777,8.028-3.098,8.361c-0.875,0.904-2.68,1.094-4.04,1.094 c-1.683,0-3.477-0.121-5.349-0.361c-1.286-0.157-2.265-0.234-2.991-0.234c-1.878,0-3.423,0.488-4.59,1.448 C0.716,81.858,0,83.403,0,85.14c0,1.357,0.44,3.309,2.539,4.895c1.434,1.08,3.389,1.628,5.813,1.628 c6.069,0,11.725-2.411,16.813-7.165c4.947-4.624,8.571-11.413,10.773-20.195l6.119-24.935l20.87,0.354l2.244,9.64l-4.573,6.748 c-0.824,1.209-2.051,2.701-3.658,4.441c-0.84,0.92-1.398,1.426-1.721,1.689c-1.316-1.608-2.809-2.424-4.432-2.424 c-1.525,0-2.91,0.625-4.002,1.804c-1.036,1.116-1.583,2.514-1.583,4.038c0,1.83,0.783,3.459,2.264,4.709 c1.357,1.146,3.034,1.728,4.981,1.728c2.414,0,4.884-0.921,7.344-2.737c2.053-1.519,4.697-4.526,8.074-9.189 c2.17,6.24,5.248,10.252,6.714,11.927c2.313,2.644,6.049,4.22,9.993,4.22c3.348,0,5.244-1.402,6.916-2.641l0.148-0.109 c2.926-2.164,3.54-4.545,3.54-6.166C95.174,65.965,94.691,64.679,93.779,63.676z"}))};E.propTypes={onClick:h.default.func,width:h.default.oneOfType([h.default.number,h.default.string]),height:h.default.oneOfType([h.default.number,h.default.string]),className:h.default.string};var T=E;r.Z=T},1272:function(l,r,e){"use strict";var t,a=e(95318);t={value:!0},r.Z=void 0;var o=a(e(4819)),h=a(e(15854)),E=function(i){return o.default.createElement("svg",{onClick:function(u){return i.onClick&&i.onClick(u)},viewBox:"0 0 512 512",width:i.width||20,height:i.height||i.width||20,xmlns:"http://www.w3.org/2000/svg",className:i.className},o.default.createElement("path",{fill:"currentColor",d:"M510.371,226.513c-1.088-2.603-2.645-4.971-4.629-6.955l-63.979-63.979c-8.341-8.32-21.824-8.32-30.165,0 c-8.341,8.341-8.341,21.845,0,30.165l27.584,27.584H320.013c-11.797,0-21.333,9.557-21.333,21.333s9.536,21.333,21.333,21.333 h119.168l-27.584,27.584c-8.341,8.341-8.341,21.845,0,30.165c4.16,4.181,9.621,6.251,15.083,6.251s10.923-2.069,15.083-6.251 l63.979-63.979c1.984-1.963,3.541-4.331,4.629-6.955C512.525,237.606,512.525,231.718,510.371,226.513z"}),o.default.createElement("path",{fill:"currentColor",d:"M362.68,298.667c-11.797,0-21.333,9.557-21.333,21.333v106.667h-85.333V85.333c0-9.408-6.187-17.728-15.211-20.437 l-74.091-22.229h174.635v106.667c0,11.776,9.536,21.333,21.333,21.333s21.333-9.557,21.333-21.333v-128 C384.013,9.557,374.477,0,362.68,0H21.347c-0.768,0-1.451,0.32-2.197,0.405c-1.003,0.107-1.92,0.277-2.88,0.512 c-2.24,0.576-4.267,1.451-6.165,2.645c-0.469,0.299-1.045,0.32-1.493,0.661C8.44,4.352,8.376,4.587,8.205,4.715 C5.88,6.549,3.939,8.789,2.531,11.456c-0.299,0.576-0.363,1.195-0.597,1.792c-0.683,1.621-1.429,3.2-1.685,4.992 c-0.107,0.64,0.085,1.237,0.064,1.856c-0.021,0.427-0.299,0.811-0.299,1.237V448c0,10.176,7.189,18.923,17.152,20.907 l213.333,42.667c1.387,0.299,2.795,0.427,4.181,0.427c4.885,0,9.685-1.685,13.525-4.843c4.928-4.053,7.808-10.091,7.808-16.491 v-21.333H362.68c11.797,0,21.333-9.557,21.333-21.333V320C384.013,308.224,374.477,298.667,362.68,298.667z"}))};E.propTypes={onClick:h.default.func,width:h.default.oneOfType([h.default.number,h.default.string]),height:h.default.oneOfType([h.default.number,h.default.string]),className:h.default.string};var T=E;r.Z=T},32717:function(l,r,e){"use strict";var t=e(95318);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(4819)),o=t(e(15854)),h=function(g){return a.default.createElement("svg",{onClick:function(f){return g.onClick&&g.onClick(f)},viewBox:"0 0 512 512",width:g.width||20,height:g.height||g.width||20,xmlns:"http://www.w3.org/2000/svg",className:g.className},a.default.createElement("path",{fill:"#EE3333",d:"M256,0C114.844,0,0,114.844,0,256s114.844,256,256,256s256-114.844,256-256S397.156,0,256,0z M256,448 c-105.865,0-192-86.135-192-192c0-40.406,12.25-78.604,35.542-111.198l267.656,267.656C334.604,435.75,296.406,448,256,448z M412.458,367.198L144.802,99.542C177.396,76.25,215.594,64,256,64c105.865,0,192,86.135,192,192 C448,296.406,435.75,334.604,412.458,367.198z"}))};h.propTypes={onClick:o.default.func,width:o.default.oneOfType([o.default.number,o.default.string]),height:o.default.oneOfType([o.default.number,o.default.string]),className:o.default.string};var E=h;r.default=E},37228:function(l,r,e){"use strict";e.r(r),e.d(r,{ColorPicker:function(){return E.default},ComplexCron:function(){return T.default},ComplexCronDialog:function(){return N.Z},ConfigGeneric:function(){return qe.default},Confirm:function(){return q.default},Connection:function(){return a.default},Cron:function(){return V.default},CustomModal:function(){return f.default},ERRORS:function(){return a.ERRORS},EXTENSIONS:function(){return b.EXTENSIONS},Error:function(){return he.default},FileBrowser:function(){return u.default},FileViewer:function(){return b.default},Icon:function(){return M.default},IconAdapter:function(){return se.default},IconAlias:function(){return we.default},IconChannel:function(){return Te.default},IconClosed:function(){return Z.default},IconCopy:function(){return ie.default},IconDevice:function(){return Ae.default},IconDocument:function(){return le.default},IconExpert:function(){return Ee.default},IconFx:function(){return Se.Z},IconInstance:function(){return Le.default},IconLogout:function(){return tt.Z},IconOpen:function(){return Xe.default},IconPicker:function(){return D.Z},IconSelector:function(){return F.default},IconState:function(){return it.default},Image:function(){return oe.Z},JsonConfigComponent:function(){return Y.Z},Loader:function(){return J.default},LoaderPT:function(){return U.Z},LoaderVendor:function(){return w.Z},Logo:function(){return R.Z},MDUtils:function(){return ae.Z},Message:function(){return ne.default},ObjectBrowser:function(){return _.default},PROGRESS:function(){return a.PROGRESS},Prompt:function(){return h.default},Router:function(){return X.default},SaveCloseButtons:function(){return K.default},Schedule:function(){return H.default},SelectID:function(){return ce.default},SelectWithIcon:function(){return L.Z},SimpleCron:function(){return d.default},SimpleCronDialog:function(){return Ie.Z},TabContainer:function(){return G.default},TabContent:function(){return W.default},TabHeader:function(){return I.default},TextInput:function(){return We.default},TextWithIcon:function(){return y.default},Theme:function(){return t.default},ToggleThemeMenu:function(){return P.Z},TreeTable:function(){return S.Z},UploadImage:function(){return k.default},Utils:function(){return p.default},__esModule:function(){return t.__esModule},copy:function(){return i.a},getSelectIdIcon:function(){return M.getSelectIdIcon},getSystemIcon:function(){return M.getSystemIcon},i18n:function(){return o.default},withWidth:function(){return O.default}});var t=e(82890),a=e(38120),o=e(55289),h=e(86608),E=e(49021),T=e(73868),g=e(23962),i=e.n(g),f=e(42550),u=e(90010),b=e(70043),M=e(94475),D=e(75481),F=e(81392),oe=e(30846),J=e(40666),R=e(54466),ae=e(8471),_=e(82195),X=e(43924),K=e(84302),H=e(70577),L=e(49905),G=e(6782),W=e(78259),I=e(92977),y=e(64263),P=e(58058),S=e(75082),k=e(8367),p=e(33919),O=e(70703),d=e(329),w=e(90032),U=e(1434),Y=e(70095),se=e(86732),we=e(4372),Te=e(71672),Z=e(37943),ie=e(83358),Ae=e(24963),le=e(86544),Ee=e(94201),Se=e(78569),Le=e(95837),tt=e(1272),Xe=e(78444),it=e(87280),N=e(15044),q=e(41728),V=e(30472),he=e(99822),ne=e(8146),ce=e(98735),Ie=e(17027),We=e(93451),qe=e(92636)},28364:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"}),"ArrowBack");r.default=h},57803:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"}),"ArrowDownward");r.default=h},16273:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z"}),"ArrowUpward");r.default=h},12660:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z"}),"Article");r.default=h},29450:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"}),"Bookmark");r.default=h},55374:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15-5-2.18L7 18V5h10v13z"}),"BookmarkBorder");r.default=h},74062:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"}),"Brightness4");r.default=h},37985:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z"}),"Brightness5");r.default=h},77717:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z"}),"Brightness6");r.default=h},44209:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z"}),"Brightness7");r.default=h},78276:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Clear");r.default=h},36990:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"m20.71 5.63-2.34-2.34a.9959.9959 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19 5 17.08l8.06-8.06 1.92 1.92L6.92 19z"}),"Colorize");r.default=h},84335:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"}),"CreateNewFolder");r.default=h},16055:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z"}),"Crop");r.default=h},62664:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z"}),"ExpandMore");r.default=h},40141:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z"}),"FilterAlt");r.default=h},55423:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M19.79 5.61C20.3 4.95 19.83 4 19 4H6.83l7.97 7.97 4.99-6.36zM2.81 2.81 1.39 4.22 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.17l5.78 5.78 1.41-1.41L2.81 2.81z"}),"FilterAltOff");r.default=h},19110:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z"}),"FolderOpen");r.default=h},94719:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"}),"GpsFixed");r.default=h},11548:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");r.default=h},59954:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z"}),"InsertDriveFile");r.default=h},79802:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"}),"Language");r.default=h},94884:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"}),"List");r.default=h},43760:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z"}),"MusicNote");r.default=h},84476:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext");r.default=h},37538:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M8 5v14l11-7z"}),"PlayArrow");r.default=h},7264:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z"}),"SaveAlt");r.default=h},72489:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z"}),"UploadFile");r.default=h},41147:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z"}),"VerticalAlignBottom");r.default=h},28393:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z"}),"VerticalAlignTop");r.default=h},32002:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z"}),"Videocam");r.default=h},72104:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z"}),"ViewHeadline");r.default=h},21936:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M14.67 5v6.5H9.33V5h5.34zm1 6.5H21V5h-5.33v6.5zm-1 7.5v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zm-7.34 0H3V19h5.33v-6.5zm0-1V5H3v6.5h5.33z"}),"ViewModule");r.default=h},40173:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"Visibility");r.default=h},16826:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");r.default=h},10186:function(l,r,e){"use strict";var t=e(64119);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var a=t(e(36128)),o=e(67557),h=(0,a.default)((0,o.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");r.default=h},50090:function(l,r,e){"use strict";e.r(r),e.d(r,{default:function(){return t.Z}});var t=e(12551)},79523:function(l,r,e){"use strict";e.r(r),e.d(r,{default:function(){return t.Z}});var t=e(93318)},4186:function(l,r,e){"use strict";e.r(r),e.d(r,{CalendarPicker:function(){return qa},CalendarPickerSkeleton:function(){return Jo},ClockPicker:function(){return Or},DEFAULT_LOCALE:function(){return G},DatePicker:function(){return $s},DateTimePicker:function(){return li},DesktopDatePicker:function(){return xn},DesktopDateTimePicker:function(){return Fo},DesktopTimePicker:function(){return Wo},LocalizationProvider:function(){return P},MobileDatePicker:function(){return Ro},MobileDateTimePicker:function(){return zo},MobileTimePicker:function(){return Ho},MonthPicker:function(){return Te},MuiPickersAdapterContext:function(){return I},PickerStaticWrapper:function(){return cr},PickersDay:function(){return _t},StaticDatePicker:function(){return Si},StaticDateTimePicker:function(){return Ti},StaticTimePicker:function(){return Pi},TimePicker:function(){return Uo},YearPicker:function(){return Kt},calendarPickerClasses:function(){return Ka},calendarPickerSkeletonClasses:function(){return tr},clockPickerClasses:function(){return cs},deDE:function(){return Ri},enUS:function(){return W},frFR:function(){return Ai},getCalendarPickerSkeletonUtilityClass:function(){return On},getCalendarPickerUtilityClass:function(){return Ga},getClockPickerUtilityClass:function(){return mo},getMonthPickerUtilityClass:function(){return w},getPickersDayUtilityClass:function(){return mt},getYearPickerUtilityClass:function(){return da},monthPickerClasses:function(){return U},nlNL:function(){return wi},pickersDayClasses:function(){return It},ptBR:function(){return Oi},svSE:function(){return Ii},trTR:function(){return Go},yearPickerClasses:function(){return Fa}});function t(){return t=Object.assign?Object.assign.bind():function(c){for(var C=1;C=0)&&(Q[ue]=c[ue]);return Q}var o=e(4819),h=e.n(o),E=e(15854),T=e.n(E),g=e(23060),i=e(82500),f=e(89857),u=e(94427),b=e(99296),M=e(72945);function D(c,C){return Array.isArray(C)?C.every(Q=>c.indexOf(Q)!==-1):c.indexOf(C)!==-1}const F=(c,C)=>Q=>{(Q.key==="Enter"||Q.key===" ")&&(c(),Q.preventDefault(),Q.stopPropagation()),C&&C(Q)},oe=c=>{setTimeout(c,0)},J=()=>{};var R=e(67557);const ae=["disabled","onSelect","selected","value"],_=(0,u.generateUtilityClasses)("PrivatePickersMonth",["root","selected"]),X=(0,i.ZP)(b.Z)(({theme:c})=>t({flex:"1 0 33.33%",display:"flex",alignItems:"center",justifyContent:"center",color:"unset",backgroundColor:"transparent",border:0,outline:0},c.typography.subtitle1,{margin:"8px 0",height:36,borderRadius:18,cursor:"pointer","&:focus, &:hover":{backgroundColor:(0,M.Fq)(c.palette.action.active,c.palette.action.hoverOpacity)},"&:disabled":{pointerEvents:"none",color:c.palette.text.secondary},[`&.${_.selected}`]:{color:c.palette.primary.contrastText,backgroundColor:c.palette.primary.main,"&:focus, &:hover":{backgroundColor:c.palette.primary.dark}}})),K=c=>{const{disabled:C,onSelect:Q,selected:j,value:ue}=c,ve=a(c,ae),pe=()=>{Q(ue)};return(0,R.jsx)(X,t({component:"button",type:"button",className:(0,g.default)(_.root,j&&_.selected),tabIndex:C?-1:0,onClick:pe,onKeyDown:F(pe),color:j?"primary":void 0,variant:j?"h5":"subtitle1",disabled:C},ve))},H=c=>({components:{MuiLocalizationProvider:{defaultProps:{localeText:t({},c)}}}}),L={previousMonth:"Previous month",nextMonth:"Next month",openPreviousView:"open previous view",openNextView:"open next view",calendarViewSwitchingButtonAriaLabel:c=>c==="year"?"year view is open, switch to calendar view":"calendar view is open, switch to year view",start:"Start",end:"End",cancelButtonLabel:"Cancel",clearButtonLabel:"Clear",okButtonLabel:"OK",todayButtonLabel:"Today",clockLabelText:(c,C,Q)=>`Select ${c}. ${C===null?"No time selected":`Selected time is ${Q.format(C,"fullTime")}`}`,hoursClockNumberText:c=>`${c} hours`,minutesClockNumberText:c=>`${c} minutes`,secondsClockNumberText:c=>`${c} seconds`,openDatePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`Choose date, selected date is ${C.format(C.date(c),"fullDate")}`:"Choose date",openTimePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`Choose time, selected time is ${C.format(C.date(c),"fullTime")}`:"Choose time",timeTableLabel:"pick time",dateTableLabel:"pick date"},G=L,W=H(L),I=o.createContext(null);let y=!1;function P(c){const C=(0,f.Z)({props:c,name:"MuiLocalizationProvider"}),{children:Q,dateAdapter:j,dateFormats:ue,dateLibInstance:ve,locale:pe,adapterLocale:Ce,localeText:me}=C,be=o.useMemo(()=>new j({locale:Ce!=null?Ce:pe,formats:ue,instance:ve}),[j,pe,Ce,ue,ve]),Ne=o.useMemo(()=>({minDate:be.date("1900-01-01T00:00:00.000"),maxDate:be.date("2099-12-31T00:00:00.000")}),[be]),je=o.useMemo(()=>({utils:be,defaultDates:Ne,localeText:t({},G,me!=null?me:{})}),[Ne,be,me]);return(0,R.jsx)(I.Provider,{value:je,children:Q})}const S=()=>{const c=o.useContext(I);if(c===null)throw new Error("MUI: Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.");return c},k=()=>S().utils,p=()=>S().defaultDates,O=()=>S().localeText,d=()=>{const c=k();return o.useRef(c.date()).current};function w(c){return(0,u.generateUtilityClass)("MuiMonthPicker",c)}const U=(0,u.generateUtilityClasses)("MuiMonthPicker",["root"]),Y=["className","date","disabled","disableFuture","disablePast","maxDate","minDate","onChange","shouldDisableMonth","readOnly"],se=c=>{const{classes:C}=c,Q={root:["root"]};return(0,u.unstable_composeClasses)(Q,w,C)},we=(0,i.ZP)("div",{name:"MuiMonthPicker",slot:"Root",overridesResolver:(c,C)=>C.root})({width:310,display:"flex",flexWrap:"wrap",alignContent:"stretch",margin:"0 4px"}),Te=o.forwardRef(function(C,Q){const j=k(),ue=d(),ve=p(),pe=(0,f.Z)({props:C,name:"MuiMonthPicker"}),{className:Ce,date:me,disabled:be,disableFuture:Ne,disablePast:je,maxDate:Be=ve.maxDate,minDate:Ye=ve.minDate,onChange:Je,shouldDisableMonth:et,readOnly:pt}=pe,xt=a(pe,Y),St=pe,Nt=se(St),yt=me!=null?me:ue,Dt=j.getMonth(yt),lt=Ct=>{const Ht=j.startOfMonth(je&&j.isAfter(ue,Ye)?ue:Ye),ea=j.startOfMonth(Ne&&j.isBefore(ue,Be)?ue:Be);return j.isBefore(Ct,Ht)||j.isAfter(Ct,ea)?!0:et?et(Ct):!1},At=Ct=>{if(pt)return;const Ht=j.setMonth(yt,Ct);Je(Ht,"finish")};return(0,R.jsx)(we,t({ref:Q,className:(0,g.default)(Nt.root,Ce),ownerState:St},xt,{children:j.getMonthArray(yt).map(Ct=>{const Ht=j.getMonth(Ct),ea=j.format(Ct,"monthShort");return(0,R.jsx)(K,{value:Ht,selected:Ht===Dt,onSelect:At,disabled:be||lt(Ct),children:ea},ea)})}))});function Z(c,C,Q){const{value:j,onError:ue}=c,ve=S(),pe=o.useRef(null),Ce=C({adapter:ve,value:j,props:c});return o.useEffect(()=>{ue&&!Q(Ce,pe.current)&&ue(Ce,j),pe.current=Ce},[Q,ue,pe,Ce,j]),Ce}const ie=({props:c,value:C,adapter:Q})=>{const j=Q.utils.date(),ue=Q.utils.date(C),{shouldDisableDate:ve,minDate:pe=Q.defaultDates.minDate,maxDate:Ce=Q.defaultDates.maxDate,disableFuture:me,disablePast:be}=c;if(ue===null)return null;switch(!0){case!Q.utils.isValid(C):return"invalidDate";case Boolean(ve&&ve(ue)):return"shouldDisableDate";case Boolean(me&&Q.utils.isAfterDay(ue,j)):return"disableFuture";case Boolean(be&&Q.utils.isBeforeDay(ue,j)):return"disablePast";case Boolean(pe&&Q.utils.isBeforeDay(ue,pe)):return"minDate";case Boolean(Ce&&Q.utils.isAfterDay(ue,Ce)):return"maxDate";default:return null}},Ae=({shouldDisableDate:c,minDate:C,maxDate:Q,disableFuture:j,disablePast:ue})=>{const ve=S();return o.useCallback(pe=>ie({adapter:ve,value:pe,props:{shouldDisableDate:c,minDate:C,maxDate:Q,disableFuture:j,disablePast:ue}})!==null,[ve,c,C,Q,j,ue])},le=(c,C)=>c===C,Ee=c=>Z(c,ie,le),Se=(c,C,Q)=>(j,ue)=>{switch(ue.type){case"changeMonth":return t({},j,{slideDirection:ue.direction,currentMonth:ue.newMonth,isMonthSwitchingAnimating:!c});case"finishMonthSwitchingAnimation":return t({},j,{isMonthSwitchingAnimating:!1});case"changeFocusedDay":{if(j.focusedDay!=null&&ue.focusedDay!=null&&Q.isSameDay(ue.focusedDay,j.focusedDay))return j;const ve=ue.focusedDay!=null&&!C&&!Q.isSameMonth(j.currentMonth,ue.focusedDay);return t({},j,{focusedDay:ue.focusedDay,isMonthSwitchingAnimating:ve&&!c,currentMonth:ve?Q.startOfMonth(ue.focusedDay):j.currentMonth,slideDirection:ue.focusedDay!=null&&Q.isAfterDay(ue.focusedDay,j.currentMonth)?"left":"right"})}default:throw new Error("missing support")}},Le=({date:c,defaultCalendarMonth:C,disableFuture:Q,disablePast:j,disableSwitchToMonthOnDayFocus:ue=!1,maxDate:ve,minDate:pe,onMonthChange:Ce,reduceAnimations:me,shouldDisableDate:be})=>{var Ne;const je=d(),Be=k(),Ye=o.useRef(Se(Boolean(me),ue,Be)).current,[Je,et]=o.useReducer(Ye,{isMonthSwitchingAnimating:!1,focusedDay:c||je,currentMonth:Be.startOfMonth((Ne=c!=null?c:C)!=null?Ne:je),slideDirection:"left"}),pt=o.useCallback(Dt=>{et(t({type:"changeMonth"},Dt)),Ce&&Ce(Dt.newMonth)},[Ce]),xt=o.useCallback(Dt=>{const lt=Dt!=null?Dt:je;Be.isSameMonth(lt,Je.currentMonth)||pt({newMonth:Be.startOfMonth(lt),direction:Be.isAfterDay(lt,Je.currentMonth)?"left":"right"})},[Je.currentMonth,pt,je,Be]),St=Ae({shouldDisableDate:be,minDate:pe,maxDate:ve,disableFuture:Q,disablePast:j}),Nt=o.useCallback(()=>{et({type:"finishMonthSwitchingAnimation"})},[]),yt=o.useCallback(Dt=>{St(Dt)||et({type:"changeFocusedDay",focusedDay:Dt})},[St]);return{calendarState:Je,changeMonth:xt,changeFocusedDay:yt,isDateDisabled:St,onMonthSwitchingAnimationEnd:Nt,handleChangeMonth:pt}};var tt=e(92339),Xe=e(32873);const it=(0,u.generateUtilityClasses)("PrivatePickersFadeTransitionGroup",["root"]),N=500,q=(0,i.ZP)(Xe.Z)({display:"block",position:"relative"}),V=({children:c,className:C,reduceAnimations:Q,transKey:j})=>Q?c:(0,R.jsx)(q,{className:(0,g.default)(it.root,C),children:(0,R.jsx)(tt.Z,{appear:!1,mountOnEnter:!0,unmountOnExit:!0,timeout:{appear:N,enter:N/2,exit:0},children:c},j)});var he=e(4078),ce=typeof window!="undefined"?o.useLayoutEffect:o.useEffect,Ie=e(18051),We=e(70485);const qe=36,ct=2,dt=320,nt=358;function mt(c){return(0,u.generateUtilityClass)("MuiPickersDay",c)}const It=(0,u.generateUtilityClasses)("MuiPickersDay",["root","dayWithMargin","dayOutsideMonth","hiddenDaySpacingFiller","today","selected","disabled"]),aa=["autoFocus","className","day","disabled","disableHighlightToday","disableMargin","hidden","isAnimating","onClick","onDayFocus","onDaySelect","onFocus","onKeyDown","outsideCurrentMonth","selected","showDaysOutsideCurrentMonth","children","today"],ua=c=>{const{selected:C,disableMargin:Q,disableHighlightToday:j,today:ue,outsideCurrentMonth:ve,showDaysOutsideCurrentMonth:pe,classes:Ce}=c,me={root:["root",C&&"selected",!Q&&"dayWithMargin",!j&&ue&&"today",ve&&pe&&"dayOutsideMonth"],hiddenDaySpacingFiller:["hiddenDaySpacingFiller"]};return(0,u.unstable_composeClasses)(me,mt,Ce)},Et=({theme:c,ownerState:C})=>t({},c.typography.caption,{width:qe,height:qe,borderRadius:"50%",padding:0,backgroundColor:c.palette.background.paper,color:c.palette.text.primary,"&:hover":{backgroundColor:(0,M.Fq)(c.palette.action.active,c.palette.action.hoverOpacity)},"&:focus":{backgroundColor:(0,M.Fq)(c.palette.action.active,c.palette.action.hoverOpacity),[`&.${It.selected}`]:{willChange:"background-color",backgroundColor:c.palette.primary.dark}},[`&.${It.selected}`]:{color:c.palette.primary.contrastText,backgroundColor:c.palette.primary.main,fontWeight:c.typography.fontWeightMedium,transition:c.transitions.create("background-color",{duration:c.transitions.duration.short}),"&:hover":{willChange:"background-color",backgroundColor:c.palette.primary.dark}},[`&.${It.disabled}`]:{color:c.palette.text.disabled}},!C.disableMargin&&{margin:`0 ${ct}px`},C.outsideCurrentMonth&&C.showDaysOutsideCurrentMonth&&{color:c.palette.text.secondary},!C.disableHighlightToday&&C.today&&{[`&:not(.${It.selected})`]:{border:`1px solid ${c.palette.text.secondary}`}}),ta=(c,C)=>{const{ownerState:Q}=c;return[C.root,!Q.disableMargin&&C.dayWithMargin,!Q.disableHighlightToday&&Q.today&&C.today,!Q.outsideCurrentMonth&&Q.showDaysOutsideCurrentMonth&&C.dayOutsideMonth,Q.outsideCurrentMonth&&!Q.showDaysOutsideCurrentMonth&&C.hiddenDaySpacingFiller]},ca=(0,i.ZP)(he.Z,{name:"MuiPickersDay",slot:"Root",overridesResolver:ta})(Et),Lt=(0,i.ZP)("div",{name:"MuiPickersDay",slot:"Root",overridesResolver:ta})(({theme:c,ownerState:C})=>t({},Et({theme:c,ownerState:C}),{visibility:"hidden"})),wt=()=>{},Qe=o.forwardRef(function(C,Q){const j=(0,f.Z)({props:C,name:"MuiPickersDay"}),{autoFocus:ue=!1,className:ve,day:pe,disabled:Ce=!1,disableHighlightToday:me=!1,disableMargin:be=!1,isAnimating:Ne,onClick:je,onDayFocus:Be=wt,onDaySelect:Ye,onFocus:Je,onKeyDown:et,outsideCurrentMonth:pt,selected:xt=!1,showDaysOutsideCurrentMonth:St=!1,children:Nt,today:yt=!1}=j,Dt=a(j,aa),lt=t({},j,{autoFocus:ue,disabled:Ce,disableHighlightToday:me,disableMargin:be,selected:xt,showDaysOutsideCurrentMonth:St,today:yt}),At=ua(lt),Ct=k(),Ht=o.useRef(null),ea=(0,We.Z)(Ht,Q);ce(()=>{ue&&!Ce&&!Ne&&!pt&&Ht.current.focus()},[ue,Ce,Ne,pt]);const Xt=Qt=>{Be&&Be(pe),Je&&Je(Qt)},Bt=Qt=>{Ce||Ye(pe,"finish"),je&&je(Qt)},$t=(0,Ie.Z)();function Zt(Qt){switch(et!==void 0&&et(Qt),Qt.key){case"ArrowUp":Be(Ct.addDays(pe,-7)),Qt.preventDefault();break;case"ArrowDown":Be(Ct.addDays(pe,7)),Qt.preventDefault();break;case"ArrowLeft":Be(Ct.addDays(pe,$t.direction==="ltr"?-1:1)),Qt.preventDefault();break;case"ArrowRight":Be(Ct.addDays(pe,$t.direction==="ltr"?1:-1)),Qt.preventDefault();break;case"Home":Be(Ct.startOfWeek(pe)),Qt.preventDefault();break;case"End":Be(Ct.endOfWeek(pe)),Qt.preventDefault();break;case"PageUp":Be(Ct.getNextMonth(pe)),Qt.preventDefault();break;case"PageDown":Be(Ct.getPreviousMonth(pe)),Qt.preventDefault();break;default:break}}return pt&&!St?(0,R.jsx)(Lt,{className:(0,g.default)(At.root,At.hiddenDaySpacingFiller,ve),ownerState:lt}):(0,R.jsx)(ca,t({className:(0,g.default)(At.root,ve),ownerState:lt,ref:ea,centerRipple:!0,disabled:Ce,"aria-label":Nt?void 0:Ct.format(pe,"fullDate"),tabIndex:xt?0:-1,onFocus:Xt,onKeyDown:Zt,onClick:Bt},Dt,{children:Nt||Ct.format(pe,"dayOfMonth")}))}),qt=(c,C)=>c.autoFocus===C.autoFocus&&c.isAnimating===C.isAnimating&&c.today===C.today&&c.disabled===C.disabled&&c.selected===C.selected&&c.disableMargin===C.disableMargin&&c.showDaysOutsideCurrentMonth===C.showDaysOutsideCurrentMonth&&c.disableHighlightToday===C.disableHighlightToday&&c.className===C.className&&c.outsideCurrentMonth===C.outsideCurrentMonth&&c.onDayFocus===C.onDayFocus&&c.onDaySelect===C.onDaySelect,_t=o.memo(Qe,qt);var pa=e(87462),Mt=e(63366),te=e(51721);function ge(c,C){return c.classList?!!C&&c.classList.contains(C):(" "+(c.className.baseVal||c.className)+" ").indexOf(" "+C+" ")!==-1}function Ke(c,C){c.classList?c.classList.add(C):ge(c,C)||(typeof c.className=="string"?c.className=c.className+" "+C:c.setAttribute("class",(c.className&&c.className.baseVal||"")+" "+C))}function Ge(c,C){return c.replace(new RegExp("(^|\\s)"+C+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}function B(c,C){c.classList?c.classList.remove(C):typeof c.className=="string"?c.className=Ge(c.className,C):c.setAttribute("class",Ge(c.className&&c.className.baseVal||"",C))}var ee=e(24561),Oe=function(C,Q){return C&&Q&&Q.split(" ").forEach(function(j){return Ke(C,j)})},Me=function(C,Q){return C&&Q&&Q.split(" ").forEach(function(j){return B(C,j)})},He=function(c){(0,te.Z)(C,c);function C(){for(var j,ue=arguments.length,ve=new Array(ue),pe=0;pe{const C=c.transitions.create("transform",{duration:gt,easing:"cubic-bezier(0.35, 0.8, 0.4, 1)"});return{display:"block",position:"relative",overflowX:"hidden","& > *":{position:"absolute",top:0,right:0,left:0},[`& .${ft["slideEnter-left"]}`]:{willChange:"transform",transform:"translate(100%)",zIndex:1},[`& .${ft["slideEnter-right"]}`]:{willChange:"transform",transform:"translate(-100%)",zIndex:1},[`& .${ft.slideEnterActive}`]:{transform:"translate(0%)",transition:C},[`& .${ft.slideExit}`]:{transform:"translate(0%)"},[`& .${ft["slideExitActiveLeft-left"]}`]:{willChange:"transform",transform:"translate(-100%)",transition:C,zIndex:0},[`& .${ft["slideExitActiveLeft-right"]}`]:{willChange:"transform",transform:"translate(100%)",transition:C,zIndex:0}}}),Ot=c=>{let{children:C,className:Q,reduceAnimations:j,slideDirection:ue,transKey:ve}=c,pe=a(c,bt);if(j)return(0,R.jsx)("div",{className:(0,g.default)(ft.root,Q),children:C});const Ce={exit:ft.slideExit,enterActive:ft.slideEnterActive,enter:ft[`slideEnter-${ue}`],exitActive:ft[`slideExitActiveLeft-${ue}`]};return(0,R.jsx)(zt,{className:(0,g.default)(ft.root,Q),childFactory:me=>o.cloneElement(me,{classNames:Ce}),children:(0,R.jsx)(rt,t({mountOnEnter:!0,unmountOnExit:!0,timeout:gt,classNames:Ce},pe,{children:C}),ve)})},Ft=(qe+ct*2)*6,Rt=(0,i.ZP)("div")({display:"flex",justifyContent:"center",alignItems:"center"}),ht=(0,i.ZP)(b.Z)(({theme:c})=>({width:36,height:40,margin:"0 2px",textAlign:"center",display:"flex",justifyContent:"center",alignItems:"center",color:c.palette.text.secondary})),Yt=(0,i.ZP)("div")({display:"flex",justifyContent:"center",alignItems:"center",minHeight:Ft}),xa=(0,i.ZP)(Ot)({minHeight:Ft}),Na=(0,i.ZP)("div")({overflow:"hidden"}),Aa=(0,i.ZP)("div")({margin:`${ct}px 0`,display:"flex",justifyContent:"center"});function Ba(c){const C=d(),Q=k(),{autoFocus:j,onFocusedDayChange:ue,className:ve,currentMonth:pe,selectedDays:Ce,disabled:me,disableHighlightToday:be,focusedDay:Ne,isMonthSwitchingAnimating:je,loading:Be,onSelectedDaysChange:Ye,onMonthSwitchingAnimationEnd:Je,readOnly:et,reduceAnimations:pt,renderDay:xt,renderLoading:St=()=>(0,R.jsx)("span",{children:"..."}),showDaysOutsideCurrentMonth:Nt,slideDirection:yt,TransitionProps:Dt,disablePast:lt,disableFuture:At,minDate:Ct,maxDate:Ht,shouldDisableDate:ea}=c,Xt=Ae({shouldDisableDate:ea,minDate:Ct,maxDate:Ht,disablePast:lt,disableFuture:At}),Bt=o.useCallback((vt,Vt="finish")=>{et||Ye(vt,Vt)},[Ye,et]),$t=Q.getMonth(pe),Zt=Ce.filter(vt=>!!vt).map(vt=>Q.startOfDay(vt)),Qt=$t,jt=o.useMemo(()=>o.createRef(),[Qt]);return(0,R.jsxs)(o.Fragment,{children:[(0,R.jsx)(Rt,{children:Q.getWeekdays().map((vt,Vt)=>(0,R.jsx)(ht,{"aria-hidden":!0,variant:"caption",children:vt.charAt(0).toUpperCase()},vt+Vt.toString()))}),Be?(0,R.jsx)(Yt,{children:St()}):(0,R.jsx)(xa,t({transKey:Qt,onExited:Je,reduceAnimations:pt,slideDirection:yt,className:ve},Dt,{nodeRef:jt,children:(0,R.jsx)(Na,{ref:jt,role:"grid",children:Q.getWeekArray(pe).map(vt=>(0,R.jsx)(Aa,{role:"row",children:vt.map(Vt=>{const ha={key:Vt==null?void 0:Vt.toString(),day:Vt,isAnimating:je,disabled:me||Xt(Vt),autoFocus:j&&Ne!==null&&Q.isSameDay(Vt,Ne),today:Q.isSameDay(Vt,C),outsideCurrentMonth:Q.getMonth(Vt)!==$t,selected:Zt.some(Ia=>Q.isSameDay(Ia,Vt)),disableHighlightToday:be,showDaysOutsideCurrentMonth:Nt,onDayFocus:ue,onDaySelect:Bt};return xt?xt(Vt,Zt,ha):(0,R.jsx)("div",{role:"cell",children:(0,R.jsx)(_t,t({},ha))},ha.key)})},`week-${vt[0]}`))})}))]})}var cn=e(50770);function La({onChange:c,onViewChange:C,openTo:Q,view:j,views:ue}){var ve,pe;const[Ce,me]=(0,cn.Z)({name:"Picker",state:"view",controlled:j,default:Q&&D(ue,Q)?Q:ue[0]}),be=(ve=ue[ue.indexOf(Ce)-1])!=null?ve:null,Ne=(pe=ue[ue.indexOf(Ce)+1])!=null?pe:null,je=o.useCallback(Je=>{me(Je),C&&C(Je)},[me,C]),Be=o.useCallback(()=>{Ne&&je(Ne)},[Ne,je]);return{handleChangeAndOpenNext:o.useCallback((Je,et)=>{const pt=et==="finish",xt=pt&&Boolean(Ne)?"partial":et;c(Je,xt),pt&&Be()},[Ne,c,Be]),nextView:Ne,previousView:be,openNext:Be,openView:Ce,setOpenView:je}}var on=e(72170),Oa=e(85233);const vr=(0,Oa.Z)((0,R.jsx)("path",{d:"M7 10l5 5 5-5z"}),"ArrowDropDown"),Ua=(0,Oa.Z)((0,R.jsx)("path",{d:"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z"}),"ArrowLeft"),Ja=(0,Oa.Z)((0,R.jsx)("path",{d:"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z"}),"ArrowRight"),qn=(0,Oa.Z)((0,R.jsx)("path",{d:"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z"}),"Calendar"),Dn=(0,Oa.Z)((0,R.jsxs)(o.Fragment,{children:[(0,R.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,R.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Clock"),gr=(0,Oa.Z)((0,R.jsx)("path",{d:"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z"}),"DateRange"),yr=(0,Oa.Z)((0,R.jsx)("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),"Pen"),br=(0,Oa.Z)((0,R.jsxs)(o.Fragment,{children:[(0,R.jsx)("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),(0,R.jsx)("path",{d:"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z"})]}),"Time"),Cr=["children","className","components","componentsProps","isLeftDisabled","isLeftHidden","isRightDisabled","isRightHidden","leftArrowButtonText","onLeftClick","onRightClick","rightArrowButtonText"],vn=(0,u.generateUtilityClasses)("MuiPickersArrowSwitcher",["root","spacer","button"]),xr=(0,i.ZP)("div",{name:"MuiPickersArrowSwitcher",slot:"Root",overridesResolver:(c,C)=>C.root})({display:"flex"}),Sr=(0,i.ZP)("div",{name:"MuiPickersArrowSwitcher",slot:"Spacer",overridesResolver:(c,C)=>C.spacer})(({theme:c})=>({width:c.spacing(3)})),_n=(0,i.ZP)(on.Z,{name:"MuiPickersArrowSwitcher",slot:"Button",overridesResolver:(c,C)=>C.button})(({ownerState:c})=>t({},c.hidden&&{visibility:"hidden"})),er=o.forwardRef(function(C,Q){const{children:j,className:ue,components:ve,componentsProps:pe,isLeftDisabled:Ce,isLeftHidden:me,isRightDisabled:be,isRightHidden:Ne,leftArrowButtonText:je,onLeftClick:Be,onRightClick:Ye,rightArrowButtonText:Je}=C,et=a(C,Cr),xt=(0,Ie.Z)().direction==="rtl",St=(pe==null?void 0:pe.leftArrowButton)||{},Nt=(ve==null?void 0:ve.LeftArrowIcon)||Ua,yt=(pe==null?void 0:pe.rightArrowButton)||{},Dt=(ve==null?void 0:ve.RightArrowIcon)||Ja,lt=C;return(0,R.jsxs)(xr,t({ref:Q,className:(0,g.default)(vn.root,ue),ownerState:lt},et,{children:[(0,R.jsx)(_n,t({as:ve==null?void 0:ve.LeftArrowButton,size:"small","aria-label":je,title:je,disabled:Ce,edge:"end",onClick:Be},St,{className:(0,g.default)(vn.button,St.className),ownerState:t({},lt,St,{hidden:me}),children:xt?(0,R.jsx)(Dt,{}):(0,R.jsx)(Nt,{})})),j?(0,R.jsx)(b.Z,{variant:"subtitle1",component:"span",children:j}):(0,R.jsx)(Sr,{className:vn.spacer,ownerState:lt}),(0,R.jsx)(_n,t({as:ve==null?void 0:ve.RightArrowButton,size:"small","aria-label":Je,title:Je,edge:"start",disabled:be,onClick:Ye},yt,{className:(0,g.default)(vn.button,yt.className),ownerState:t({},lt,yt,{hidden:Ne}),children:xt?(0,R.jsx)(Nt,{}):(0,R.jsx)(Dt,{})}))]}))}),Er=(c,C)=>c?C.getHours(c)>=12?"pm":"am":null,ja=(c,C,Q)=>Q&&(c>=12?"pm":"am")!==C?C==="am"?c-12:c+12:c,Tr=(c,C,Q,j)=>{const ue=ja(j.getHours(c),C,Q);return j.setHours(c,ue)},sn=(c,C)=>C.getHours(c)*3600+C.getMinutes(c)*60+C.getSeconds(c),Pn=(c=!1,C)=>(Q,j)=>c?C.isAfter(Q,j):sn(Q,C)>sn(j,C);function fe(c,{disableFuture:C,maxDate:Q}){const j=k();return o.useMemo(()=>{const ue=j.date(),ve=j.startOfMonth(C&&j.isBefore(ue,Q)?ue:Q);return!j.isAfter(ve,c)},[C,Q,c,j])}function A(c,{disablePast:C,minDate:Q}){const j=k();return o.useMemo(()=>{const ue=j.date(),ve=j.startOfMonth(C&&j.isAfter(ue,Q)?ue:Q);return!j.isBefore(ve,c)},[C,Q,c,j])}function $(c,C,Q){const j=k(),ue=Er(c,j),ve=o.useCallback(pe=>{const Ce=c==null?null:Tr(c,pe,Boolean(C),j);Q(Ce,"partial")},[C,c,Q,j]);return{meridiemMode:ue,handleMeridiemChange:ve}}const z=c=>{let C=!1;return()=>{}},Pe=(0,i.ZP)("div")({display:"flex",alignItems:"center",marginTop:16,marginBottom:8,paddingLeft:24,paddingRight:12,maxHeight:30,minHeight:30}),ye=(0,i.ZP)("div")(({theme:c})=>t({display:"flex",maxHeight:30,overflow:"hidden",alignItems:"center",cursor:"pointer",marginRight:"auto"},c.typography.body1,{fontWeight:c.typography.fontWeightMedium})),De=(0,i.ZP)("div")({marginRight:6}),Fe=(0,i.ZP)(on.Z)({marginRight:"auto"}),_e=(0,i.ZP)(vr)(({theme:c,ownerState:C})=>t({willChange:"transform",transition:c.transitions.create("transform"),transform:"rotate(0deg)"},C.openView==="year"&&{transform:"rotate(180deg)"})),$e=z("Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.");function Ve(c){const{components:C={},componentsProps:Q={},currentMonth:j,disabled:ue,disableFuture:ve,disablePast:pe,getViewSwitchingButtonText:Ce,leftArrowButtonText:me,maxDate:be,minDate:Ne,onMonthChange:je,onViewChange:Be,openView:Ye,reduceAnimations:Je,rightArrowButtonText:et,views:pt}=c;$e({leftArrowButtonText:me,rightArrowButtonText:et,getViewSwitchingButtonText:Ce});const xt=O(),St=me!=null?me:xt.previousMonth,Nt=et!=null?et:xt.nextMonth,yt=Ce!=null?Ce:xt.calendarViewSwitchingButtonAriaLabel,Dt=k(),lt=Q.switchViewButton||{},At=()=>je(Dt.getNextMonth(j),"left"),Ct=()=>je(Dt.getPreviousMonth(j),"right"),Ht=fe(j,{disableFuture:ve,maxDate:be}),ea=A(j,{disablePast:pe,minDate:Ne}),Xt=()=>{if(!(pt.length===1||!Be||ue))if(pt.length===2)Be(pt.find($t=>$t!==Ye)||pt[0]);else{const $t=pt.indexOf(Ye)!==0?0:1;Be(pt[$t])}};if(pt.length===1&&pt[0]==="year")return null;const Bt=c;return(0,R.jsxs)(Pe,{ownerState:Bt,children:[(0,R.jsxs)(ye,{role:"presentation",onClick:Xt,ownerState:Bt,children:[(0,R.jsx)(V,{reduceAnimations:Je,transKey:Dt.format(j,"monthAndYear"),children:(0,R.jsx)(De,{"aria-live":"polite",ownerState:Bt,children:Dt.format(j,"monthAndYear")})}),pt.length>1&&!ue&&(0,R.jsx)(Fe,t({size:"small",as:C.SwitchViewButton,"aria-label":yt(Ye)},lt,{children:(0,R.jsx)(_e,{as:C.SwitchViewIcon,ownerState:Bt})}))]}),(0,R.jsx)(tt.Z,{in:Ye==="day",children:(0,R.jsx)(er,{leftArrowButtonText:St,rightArrowButtonText:Nt,components:C,componentsProps:Q,onLeftClick:Ct,onRightClick:At,isLeftDisabled:ea,isRightDisabled:Ht})})]})}var Ue=e(14956);const Ze=o.createContext(null);function Gt(c){return(0,u.generateUtilityClass)("PrivatePickersYear",c)}const Ut=(0,u.generateUtilityClasses)("PrivatePickersYear",["root","modeMobile","modeDesktop","yearButton","disabled","selected"]),na=c=>{const{wrapperVariant:C,disabled:Q,selected:j,classes:ue}=c,ve={root:["root",C&&`mode${(0,Ue.Z)(C)}`],yearButton:["yearButton",Q&&"disabled",j&&"selected"]};return(0,u.unstable_composeClasses)(ve,Gt,ue)},Jt=(0,i.ZP)("div")(({ownerState:c})=>t({flexBasis:"33.3%",display:"flex",alignItems:"center",justifyContent:"center"},(c==null?void 0:c.wrapperVariant)==="desktop"&&{flexBasis:"25%"})),ra=(0,i.ZP)("button")(({theme:c})=>t({color:"unset",backgroundColor:"transparent",border:0,outline:0},c.typography.subtitle1,{margin:"8px 0",height:36,width:72,borderRadius:18,cursor:"pointer","&:focus, &:hover":{backgroundColor:(0,M.Fq)(c.palette.action.active,c.palette.action.hoverOpacity)},[`&.${Ut.disabled}`]:{color:c.palette.text.secondary},[`&.${Ut.selected}`]:{color:c.palette.primary.contrastText,backgroundColor:c.palette.primary.main,"&:focus, &:hover":{backgroundColor:c.palette.primary.dark}}})),fa=o.forwardRef(function(C,Q){const{autoFocus:j,className:ue,children:ve,disabled:pe,onClick:Ce,onKeyDown:me,selected:be,value:Ne}=C,je=o.useRef(null),Be=(0,We.Z)(je,Q),Ye=o.useContext(Ze),Je=t({},C,{wrapperVariant:Ye}),et=na(Je);return o.useEffect(()=>{j&&je.current.focus()},[j]),(0,R.jsx)(Jt,{className:(0,g.default)(et.root,ue),ownerState:Je,children:(0,R.jsx)(ra,{ref:Be,disabled:pe,type:"button",tabIndex:be?0:-1,onClick:pt=>Ce(pt,Ne),onKeyDown:pt=>me(pt,Ne),className:et.yearButton,ownerState:Je,children:ve})})});function da(c){return(0,u.generateUtilityClass)("MuiYearPicker",c)}const Fa=(0,u.generateUtilityClasses)("MuiYearPicker",["root"]),Sa=c=>{const{classes:C}=c,Q={root:["root"]};return(0,u.unstable_composeClasses)(Q,da,C)},st=(0,i.ZP)("div",{name:"MuiYearPicker",slot:"Root",overridesResolver:(c,C)=>C.root})({display:"flex",flexDirection:"row",flexWrap:"wrap",overflowY:"auto",height:"100%",margin:"0 4px"}),Kt=o.forwardRef(function(C,Q){const j=d(),ue=(0,Ie.Z)(),ve=k(),pe=p(),Ce=(0,f.Z)({props:C,name:"MuiYearPicker"}),{autoFocus:me,className:be,date:Ne,disabled:je,disableFuture:Be,disablePast:Ye,maxDate:Je=pe.maxDate,minDate:et=pe.minDate,onChange:pt,readOnly:xt,shouldDisableYear:St}=Ce,Nt=Ce,yt=Sa(Nt),Dt=Ne||j,lt=ve.getYear(Dt),At=o.useContext(Ze),Ct=o.useRef(null),[Ht,ea]=o.useState(lt),Xt=o.useCallback(jt=>!!(Ye&&ve.isBeforeYear(jt,j)||Be&&ve.isAfterYear(jt,j)||et&&ve.isBeforeYear(jt,et)||Je&&ve.isAfterYear(jt,Je)||St&&St(jt)),[Be,Ye,Je,et,j,St,ve]),Bt=(jt,vt,Vt="finish")=>{if(xt)return;const ha=ve.setYear(Dt,vt);pt(ha,Vt)},$t=o.useCallback(jt=>{Xt(ve.setYear(Dt,jt))||ea(jt)},[Dt,Xt,ve]),Zt=At==="desktop"?4:3,Qt=(jt,vt)=>{switch(jt.key){case"ArrowUp":$t(vt-Zt),jt.preventDefault();break;case"ArrowDown":$t(vt+Zt),jt.preventDefault();break;case"ArrowLeft":$t(vt+(ue.direction==="ltr"?-1:1)),jt.preventDefault();break;case"ArrowRight":$t(vt+(ue.direction==="ltr"?1:-1)),jt.preventDefault();break;default:break}};return(0,R.jsx)(st,{ref:Q,className:(0,g.default)(yt.root,be),ownerState:Nt,children:ve.getYearRange(et,Je).map(jt=>{const vt=ve.getYear(jt),Vt=vt===lt;return(0,R.jsx)(fa,{selected:Vt,value:vt,onClick:Bt,onKeyDown:Qt,autoFocus:me&&vt===Ht,ref:Vt?Ct:void 0,disabled:je||Xt(jt),children:ve.format(jt,"year")},ve.format(jt,"year"))})})}),oa=({date:c,disableFuture:C,disablePast:Q,maxDate:j,minDate:ue,isDateDisabled:ve,utils:pe})=>{const Ce=pe.startOfDay(pe.date());Q&&pe.isBefore(ue,Ce)&&(ue=Ce),C&&pe.isAfter(j,Ce)&&(j=Ce);let me=c,be=c;for(pe.isBefore(c,ue)&&(me=pe.date(ue),be=null),pe.isAfter(c,j)&&(be&&(be=pe.date(j)),me=null);me||be;){if(me&&pe.isAfter(me,j)&&(me=null),be&&pe.isBefore(be,ue)&&(be=null),me){if(!ve(me))return me;me=pe.addDays(me,1)}if(be){if(!ve(be))return be;be=pe.addDays(be,-1)}}return null},ya=(c,C)=>{const Q=c.date(C);return c.isValid(Q)?Q:null},Ra=(0,i.ZP)("div")({overflowX:"hidden",width:dt,maxHeight:nt,display:"flex",flexDirection:"column",margin:"0 auto"}),Xa=typeof navigator!="undefined"&&/(android)/i.test(navigator.userAgent),Ga=c=>(0,u.generateUtilityClass)("MuiCalendarPicker",c),Ka=(0,u.generateUtilityClasses)("MuiCalendarPicker",["root","viewTransitionContainer"]),Ma=["autoFocus","onViewChange","date","disableFuture","disablePast","defaultCalendarMonth","loading","onChange","onYearChange","onMonthChange","reduceAnimations","renderLoading","shouldDisableDate","shouldDisableMonth","shouldDisableYear","view","views","openTo","className","disabled","readOnly","minDate","maxDate"],ba=c=>{const{classes:C}=c,Q={root:["root"],viewTransitionContainer:["viewTransitionContainer"]};return(0,u.unstable_composeClasses)(Q,Ga,C)},Qa=(0,i.ZP)(Ra,{name:"MuiCalendarPicker",slot:"Root",overridesResolver:(c,C)=>C.root})({display:"flex",flexDirection:"column"}),za=(0,i.ZP)(V,{name:"MuiCalendarPicker",slot:"ViewTransitionContainer",overridesResolver:(c,C)=>C.viewTransitionContainer})({overflowY:"auto"}),qa=o.forwardRef(function(C,Q){const j=k(),ue=p(),ve=(0,f.Z)({props:C,name:"MuiCalendarPicker"}),{autoFocus:pe,onViewChange:Ce,date:me,disableFuture:be,disablePast:Ne,defaultCalendarMonth:je,loading:Be=!1,onChange:Ye,onYearChange:Je,onMonthChange:et,reduceAnimations:pt=Xa,renderLoading:xt=()=>(0,R.jsx)("span",{children:"..."}),shouldDisableDate:St,shouldDisableMonth:Nt,shouldDisableYear:yt,view:Dt,views:lt=["year","day"],openTo:At="day",className:Ct,disabled:Ht,readOnly:ea,minDate:Xt=ue.minDate,maxDate:Bt=ue.maxDate}=ve,$t=a(ve,Ma),{openView:Zt,setOpenView:Qt,openNext:jt}=La({view:Dt,views:lt,openTo:At,onChange:Ye,onViewChange:Ce}),{calendarState:vt,changeFocusedDay:Vt,changeMonth:ha,handleChangeMonth:Ia,isDateDisabled:ma,onMonthSwitchingAnimationEnd:pn}=Le({date:me,defaultCalendarMonth:je,reduceAnimations:pt,onMonthChange:et,minDate:Xt,maxDate:Bt,shouldDisableDate:St,disablePast:Ne,disableFuture:be}),fr=o.useCallback((ia,Da)=>{const Za=j.startOfMonth(ia),Ya=j.endOfMonth(ia),Wa=ma(ia)?oa({utils:j,date:ia,minDate:j.isBefore(Xt,Za)?Za:Xt,maxDate:j.isAfter(Bt,Ya)?Ya:Bt,disablePast:Ne,disableFuture:be,isDateDisabled:ma}):ia;Wa?(Ye(Wa,Da),et==null||et(Za)):(jt(),ha(Za)),Vt(Wa)},[Vt,be,Ne,ma,Bt,Xt,Ye,et,ha,jt,j]),pr=o.useCallback((ia,Da)=>{const Za=j.startOfYear(ia),Ya=j.endOfYear(ia),Wa=ma(ia)?oa({utils:j,date:ia,minDate:j.isBefore(Xt,Za)?Za:Xt,maxDate:j.isAfter(Bt,Ya)?Ya:Bt,disablePast:Ne,disableFuture:be,isDateDisabled:ma}):ia;Wa?(Ye(Wa,Da),Je==null||Je(Wa)):(jt(),ha(Za)),Vt(Wa)},[Vt,be,Ne,ma,Bt,Xt,Ye,Je,jt,j,ha]),hn=o.useCallback((ia,Da)=>Ye(me&&ia?j.mergeDateAndTime(ia,me):ia,Da),[j,me,Ye]);o.useEffect(()=>{if(me&&ma(me)){const ia=oa({utils:j,date:me,minDate:Xt,maxDate:Bt,disablePast:Ne,disableFuture:be,isDateDisabled:ma});Ye(ia,"partial")}},[]),o.useEffect(()=>{me&&ha(me)},[me]);const Sn=ve,Wt=ba(Sn),Ca={disablePast:Ne,disableFuture:be,maxDate:Bt,minDate:Xt},mn=Ht&&me||Xt,_r=Ht&&me||Bt;return(0,R.jsxs)(Qa,{ref:Q,className:(0,g.default)(Wt.root,Ct),ownerState:Sn,children:[(0,R.jsx)(Ve,t({},$t,{views:lt,openView:Zt,currentMonth:vt.currentMonth,onViewChange:Qt,onMonthChange:(ia,Da)=>Ia({newMonth:ia,direction:Da}),minDate:mn,maxDate:_r,disabled:Ht,disablePast:Ne,disableFuture:be,reduceAnimations:pt})),(0,R.jsx)(za,{reduceAnimations:pt,className:Wt.viewTransitionContainer,transKey:Zt,ownerState:Sn,children:(0,R.jsxs)("div",{children:[Zt==="year"&&(0,R.jsx)(Kt,t({},$t,Ca,{autoFocus:pe,date:me,onChange:pr,shouldDisableYear:yt,disabled:Ht,readOnly:ea})),Zt==="month"&&(0,R.jsx)(Te,t({},Ca,{className:Ct,date:me,onChange:fr,disabled:Ht,readOnly:ea,shouldDisableMonth:Nt})),Zt==="day"&&(0,R.jsx)(Ba,t({},$t,vt,Ca,{autoFocus:pe,onMonthSwitchingAnimationEnd:pn,onFocusedDayChange:Vt,reduceAnimations:pt,selectedDays:[me],onSelectedDaysChange:hn,loading:Be,renderLoading:xt,disabled:Ht,readOnly:ea,shouldDisableDate:St}))]})})]})});var wn=e(83609);const On=c=>(0,u.generateUtilityClass)("MuiCalendarPickerSkeleton",c),tr=(0,u.generateUtilityClasses)("MuiCalendarPickerSkeleton",["root","week","daySkeleton"]),_a=["className"],ln=c=>{const{classes:C}=c,Q={root:["root"],week:["week"],daySkeleton:["daySkeleton"]};return(0,u.unstable_composeClasses)(Q,On,C)},Dr=(0,i.ZP)("div",{name:"MuiCalendarPickerSkeleton",slot:"Root",overridesResolver:(c,C)=>C.root})({alignSelf:"start"}),gn=(0,i.ZP)("div",{name:"MuiCalendarPickerSkeleton",slot:"Week",overridesResolver:(c,C)=>C.week})({margin:`${ct}px 0`,display:"flex",justifyContent:"center"}),no=(0,i.ZP)(wn.Z,{name:"MuiCalendarPickerSkeleton",slot:"Day",overridesResolver:(c,C)=>C.daySkeleton})(({ownerState:c})=>t({margin:`0 ${ct}px`},c.day===0&&{visibility:"hidden"}));no.propTypes={ownerState:T().shape({day:T().number.isRequired}).isRequired};const Pr=[[0,1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,1,1,1,1,1],[1,1,1,1,0,0,0]];function Jo(c){const C=(0,f.Z)({props:c,name:"MuiCalendarPickerSkeleton"}),{className:Q}=C,j=a(C,_a),ue=ln(c);return(0,R.jsx)(Dr,t({className:(0,g.default)(ue.root,Q)},j,{children:Pr.map((ve,pe)=>(0,R.jsx)(gn,{className:ue.week,children:ve.map((Ce,me)=>(0,R.jsx)(no,{variant:"circular",width:qe,height:qe,className:ue.daySkeleton,ownerState:{day:Ce}},me))},pe))}))}let ar=0;function Xo(c){const[C,Q]=o.useState(c),j=c||C;return o.useEffect(()=>{C==null&&(ar+=1,Q(`mui-${ar}`))},[C]),j}const ro=o["useId"];function Qo(c){if(ro!==void 0){const C=ro();return c!=null?c:C}return Xo(c)}const dn=220,en=36,yn={x:dn/2,y:dn/2},oo={x:yn.x,y:0},so=oo.x-yn.x,io=oo.y-yn.y,qo=c=>c*(180/Math.PI),lo=(c,C,Q)=>{const j=C-yn.x,ue=Q-yn.y,ve=Math.atan2(so,io)-Math.atan2(j,ue);let pe=qo(ve);pe=Math.round(pe/c)*c,pe%=360;const Ce=Math.floor(pe/c)||0,me=el(j,2)+el(ue,2),be=Math.sqrt(me);return{value:Ce,distance:be}},_o=(c,C,Q=1)=>{const j=Q*6;let{value:ue}=lo(j,c,C);return ue=ue*Q%60,ue},nr=(c,C,Q)=>{const{value:j,distance:ue}=lo(30,c,C);let ve=j||12;return Q?ve%=12:uet({width:2,backgroundColor:c.palette.primary.main,position:"absolute",left:"calc(50% - 1px)",bottom:"50%",transformOrigin:"center bottom 0px"},C.toAnimateTransform&&{transition:c.transitions.create(["transform","height"])})),as=(0,i.ZP)("div")(({theme:c,ownerState:C})=>t({width:4,height:4,backgroundColor:c.palette.primary.contrastText,borderRadius:"50%",position:"absolute",top:-21,left:`calc(50% - ${en/2}px)`,border:`${(en-4)/2}px solid ${c.palette.primary.main}`,boxSizing:"content-box"},C.hasSelected&&{backgroundColor:c.palette.primary.main}));class uo extends o.Component{constructor(...C){super(...C),this.state={toAnimateTransform:!1,previousType:void 0}}render(){const C=this.props,{className:Q,isInner:j,type:ue,value:ve}=C,pe=a(C,es),Ce=t({},this.props,this.state),me=()=>{let Ne=360/(ue==="hours"?12:60)*ve;return ue==="hours"&&ve>12&&(Ne-=360),{height:Math.round((j?.26:.4)*dn),transform:`rotateZ(${Ne}deg)`}};return(0,R.jsx)(ts,t({style:me(),className:Q,ownerState:Ce},pe,{children:(0,R.jsx)(as,{ownerState:Ce})}))}}uo.getDerivedStateFromProps=(c,C)=>c.type!==C.previousType?{toAnimateTransform:!0,previousType:c.type}:{toAnimateTransform:!1,previousType:c.type};const ns=(0,i.ZP)("div")(({theme:c})=>({display:"flex",justifyContent:"center",alignItems:"center",margin:c.spacing(2)})),rs=(0,i.ZP)("div")({backgroundColor:"rgba(0,0,0,.07)",borderRadius:"50%",height:220,width:220,flexShrink:0,position:"relative",pointerEvents:"none"}),co=(0,i.ZP)("div")(({ownerState:c})=>t({width:"100%",height:"100%",position:"absolute",pointerEvents:"auto",outline:0,touchAction:"none",userSelect:"none"},c.disabled?{}:{"@media (pointer: fine)":{cursor:"pointer",borderRadius:"50%"},"&:active":{cursor:"move"}})),os=(0,i.ZP)("div")(({theme:c})=>({width:6,height:6,borderRadius:"50%",backgroundColor:c.palette.primary.main,position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)"})),ss=(0,i.ZP)(on.Z)(({theme:c,ownerState:C})=>t({zIndex:1,position:"absolute",bottom:C.ampmInClock?64:8,left:8},C.meridiemMode==="am"&&{backgroundColor:c.palette.primary.main,color:c.palette.primary.contrastText,"&:hover":{backgroundColor:c.palette.primary.light}})),is=(0,i.ZP)(on.Z)(({theme:c,ownerState:C})=>t({zIndex:1,position:"absolute",bottom:C.ampmInClock?64:8,right:8},C.meridiemMode==="pm"&&{backgroundColor:c.palette.primary.main,color:c.palette.primary.contrastText,"&:hover":{backgroundColor:c.palette.primary.light}}));function fo(c){const{ampm:C,ampmInClock:Q,autoFocus:j,children:ue,date:ve,getClockLabelText:pe,handleMeridiemChange:Ce,isTimeDisabled:me,meridiemMode:be,minutesStep:Ne=1,onChange:je,selectedId:Be,type:Ye,value:Je,disabled:et,readOnly:pt}=c,xt=c,St=k(),Nt=o.useContext(Ze),yt=o.useRef(!1),Dt=me(Je,Ye),lt=!C&&Ye==="hours"&&(Je<1||Je>12),At=(vt,Vt)=>{et||pt||me(vt,Ye)||je(vt,Vt)},Ct=(vt,Vt)=>{let{offsetX:ha,offsetY:Ia}=vt;if(ha===void 0){const pn=vt.target.getBoundingClientRect();ha=vt.changedTouches[0].clientX-pn.left,Ia=vt.changedTouches[0].clientY-pn.top}const ma=Ye==="seconds"||Ye==="minutes"?_o(ha,Ia,Ne):nr(ha,Ia,Boolean(C));At(ma,Vt)},Ht=vt=>{yt.current=!0,Ct(vt,"shallow")},ea=vt=>{yt.current&&(Ct(vt,"finish"),yt.current=!1)},Xt=vt=>{vt.buttons>0&&Ct(vt.nativeEvent,"shallow")},Bt=vt=>{yt.current&&(yt.current=!1),Ct(vt.nativeEvent,"finish")},$t=o.useMemo(()=>Ye==="hours"?!0:Je%5===0,[Ye,Je]),Zt=Ye==="minutes"?Ne:1,Qt=o.useRef(null);ce(()=>{j&&Qt.current.focus()},[j]);const jt=vt=>{if(!yt.current)switch(vt.key){case"Home":At(0,"partial"),vt.preventDefault();break;case"End":At(Ye==="minutes"?59:23,"partial"),vt.preventDefault();break;case"ArrowUp":At(Je+Zt,"partial"),vt.preventDefault();break;case"ArrowDown":At(Je-Zt,"partial"),vt.preventDefault();break;default:}};return(0,R.jsxs)(ns,{children:[(0,R.jsxs)(rs,{children:[(0,R.jsx)(co,{onTouchMove:Ht,onTouchEnd:ea,onMouseUp:Bt,onMouseMove:Xt,ownerState:{disabled:et}}),!Dt&&(0,R.jsxs)(o.Fragment,{children:[(0,R.jsx)(os,{}),ve&&(0,R.jsx)(uo,{type:Ye,value:Je,isInner:lt,hasSelected:$t})]}),(0,R.jsx)("div",{"aria-activedescendant":Be,"aria-label":pe(Ye,ve,St),ref:Qt,role:"listbox",onKeyDown:jt,tabIndex:0,children:ue})]}),C&&(Nt==="desktop"||Q)&&(0,R.jsxs)(o.Fragment,{children:[(0,R.jsx)(ss,{onClick:pt?void 0:()=>Ce("am"),disabled:et||be===null,ownerState:xt,children:(0,R.jsx)(b.Z,{variant:"caption",children:"AM"})}),(0,R.jsx)(is,{disabled:et||be===null,onClick:pt?void 0:()=>Ce("pm"),ownerState:xt,children:(0,R.jsx)(b.Z,{variant:"caption",children:"PM"})})]})]})}const ls=["className","disabled","index","inner","label","selected"],Rn=(0,u.generateUtilityClasses)("PrivateClockNumber",["selected","disabled"]),us=(0,i.ZP)("span")(({theme:c,ownerState:C})=>t({height:en,width:en,position:"absolute",left:`calc((100% - ${en}px) / 2)`,display:"inline-flex",justifyContent:"center",alignItems:"center",borderRadius:"50%",color:c.palette.text.primary,fontFamily:c.typography.fontFamily,"&:focused":{backgroundColor:c.palette.background.paper},[`&.${Rn.selected}`]:{color:c.palette.primary.contrastText},[`&.${Rn.disabled}`]:{pointerEvents:"none",color:c.palette.text.disabled}},C.inner&&t({},c.typography.body2,{color:c.palette.text.secondary})));function po(c){const{className:C,disabled:Q,index:j,inner:ue,label:ve,selected:pe}=c,Ce=a(c,ls),me=c,be=j%12/12*Math.PI*2-Math.PI/2,Ne=(dn-en-2)/2*(ue?.65:1),je=Math.round(Math.cos(be)*Ne),Be=Math.round(Math.sin(be)*Ne);return(0,R.jsx)(us,t({className:(0,g.default)(C,pe&&Rn.selected,Q&&Rn.disabled),"aria-disabled":Q?!0:void 0,"aria-selected":pe?!0:void 0,role:"option",style:{transform:`translate(${je}px, ${Be+(dn-en)/2}px`},ownerState:me},Ce,{children:ve}))}const wr=({ampm:c,date:C,getClockNumberText:Q,isDisabled:j,selectedId:ue,utils:ve})=>{const pe=C?ve.getHours(C):null,Ce=[],me=c?1:0,be=c?12:23,Ne=je=>pe===null?!1:c?je===12?pe===12||pe===0:pe===je||pe-12===je:pe===je;for(let je=me;je<=be;je+=1){let Be=je.toString();je===0&&(Be="00");const Ye=!c&&(je===0||je>12);Be=ve.formatNumber(Be);const Je=Ne(je);Ce.push((0,R.jsx)(po,{id:Je?ue:void 0,index:je,inner:Ye,selected:Je,disabled:j(je),label:Be,"aria-label":Q(Be)},je))}return Ce},ho=({utils:c,value:C,isDisabled:Q,getClockNumberText:j,selectedId:ue})=>{const ve=c.formatNumber;return[[5,ve("05")],[10,ve("10")],[15,ve("15")],[20,ve("20")],[25,ve("25")],[30,ve("30")],[35,ve("35")],[40,ve("40")],[45,ve("45")],[50,ve("50")],[55,ve("55")],[0,ve("00")]].map(([pe,Ce],me)=>{const be=pe===C;return(0,R.jsx)(po,{label:Ce,id:be?ue:void 0,index:me+1,inner:!1,disabled:Q(pe),selected:be,"aria-label":j(Ce)},pe)})};function mo(c){return(0,u.generateUtilityClass)("MuiClockPicker",c)}const cs=(0,u.generateUtilityClasses)("MuiClockPicker",["root","arrowSwitcher"]),un=c=>{const{classes:C}=c,Q={root:["root"],arrowSwitcher:["arrowSwitcher"]};return(0,u.unstable_composeClasses)(Q,mo,C)},ds=(0,i.ZP)(Ra,{name:"MuiClockPicker",slot:"Root",overridesResolver:(c,C)=>C.root})({display:"flex",flexDirection:"column"}),fs=(0,i.ZP)(er,{name:"MuiClockPicker",slot:"ArrowSwitcher",overridesResolver:(c,C)=>C.arrowSwitcher})({position:"absolute",right:12,top:15}),vo=z("Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information."),Or=o.forwardRef(function(C,Q){const j=(0,f.Z)({props:C,name:"MuiClockPicker"}),{ampm:ue=!1,ampmInClock:ve=!1,autoFocus:pe,components:Ce,componentsProps:me,date:be,disableIgnoringDatePartForTimeValidation:Ne,getClockLabelText:je,getHoursClockNumberText:Be,getMinutesClockNumberText:Ye,getSecondsClockNumberText:Je,leftArrowButtonText:et,maxTime:pt,minTime:xt,minutesStep:St=1,rightArrowButtonText:Nt,shouldDisableTime:yt,showViewSwitcher:Dt,onChange:lt,view:At,views:Ct=["hours","minutes"],openTo:Ht,onViewChange:ea,className:Xt,disabled:Bt,readOnly:$t}=j;vo({leftArrowButtonText:et,rightArrowButtonText:Nt,getClockLabelText:je,getHoursClockNumberText:Be,getMinutesClockNumberText:Ye,getSecondsClockNumberText:Je});const Zt=O(),Qt=et!=null?et:Zt.openPreviousView,jt=Nt!=null?Nt:Zt.openNextView,vt=je!=null?je:Zt.clockLabelText,Vt=Be!=null?Be:Zt.hoursClockNumberText,ha=Ye!=null?Ye:Zt.minutesClockNumberText,Ia=Je!=null?Je:Zt.secondsClockNumberText,{openView:ma,setOpenView:pn,nextView:fr,previousView:pr,handleChangeAndOpenNext:hn}=La({view:At,views:Ct,openTo:Ht,onViewChange:ea,onChange:lt}),Sn=d(),Wt=k(),Ca=o.useMemo(()=>be||Wt.setSeconds(Wt.setMinutes(Wt.setHours(Sn,0),0),0),[be,Sn,Wt]),{meridiemMode:mn,handleMeridiemChange:_r}=$(Ca,ue,hn),ia=o.useCallback((Pa,va)=>{const ka=Pn(Ne,Wt),nn=({start:wa,end:rn})=>!(xt&&ka(xt,rn)||pt&&ka(wa,pt)),eo=(wa,rn=1)=>wa%rn!==0?!1:yt?!yt(wa,va):!0;switch(va){case"hours":{const wa=ja(Pa,mn,ue),rn=Wt.setHours(Ca,wa),hr=Wt.setSeconds(Wt.setMinutes(rn,0),0),Ko=Wt.setSeconds(Wt.setMinutes(rn,59),59);return!nn({start:hr,end:Ko})||!eo(wa)}case"minutes":{const wa=Wt.setMinutes(Ca,Pa),rn=Wt.setSeconds(wa,0),hr=Wt.setSeconds(wa,59);return!nn({start:rn,end:hr})||!eo(Pa,St)}case"seconds":{const wa=Wt.setSeconds(Ca,Pa);return!nn({start:wa,end:wa})||!eo(Pa)}default:throw new Error("not supported")}},[ue,Ca,Ne,pt,mn,xt,St,yt,Wt]),Da=Qo(),Za=o.useMemo(()=>{switch(ma){case"hours":{const Pa=(va,ka)=>{const nn=ja(va,mn,ue);hn(Wt.setHours(Ca,nn),ka)};return{onChange:Pa,value:Wt.getHours(Ca),children:wr({date:be,utils:Wt,ampm:ue,onChange:Pa,getClockNumberText:Vt,isDisabled:va=>Bt||ia(va,"hours"),selectedId:Da})}}case"minutes":{const Pa=Wt.getMinutes(Ca),va=(ka,nn)=>{hn(Wt.setMinutes(Ca,ka),nn)};return{value:Pa,onChange:va,children:ho({utils:Wt,value:Pa,onChange:va,getClockNumberText:ha,isDisabled:ka=>Bt||ia(ka,"minutes"),selectedId:Da})}}case"seconds":{const Pa=Wt.getSeconds(Ca),va=(ka,nn)=>{hn(Wt.setSeconds(Ca,ka),nn)};return{value:Pa,onChange:va,children:ho({utils:Wt,value:Pa,onChange:va,getClockNumberText:Ia,isDisabled:ka=>Bt||ia(ka,"seconds"),selectedId:Da})}}default:throw new Error("You must provide the type for ClockView")}},[ma,Wt,be,ue,Vt,ha,Ia,mn,hn,Ca,ia,Da,Bt]),Ya=j,Wa=un(Ya);return(0,R.jsxs)(ds,{ref:Q,className:(0,g.default)(Wa.root,Xt),ownerState:Ya,children:[Dt&&(0,R.jsx)(fs,{className:Wa.arrowSwitcher,leftArrowButtonText:Qt,rightArrowButtonText:jt,components:Ce,componentsProps:me,onLeftClick:()=>pn(pr),onRightClick:()=>pn(fr),isLeftDisabled:!pr,isRightDisabled:!fr,ownerState:Ya}),(0,R.jsx)(fo,t({autoFocus:pe,date:be,ampmInClock:ve,type:ma,ampm:ue,getClockLabelText:vt,minutesStep:St,isTimeDisabled:ia,meridiemMode:mn,handleMeridiemChange:_r,selectedId:Da,disabled:Bt,readOnly:$t},Za))]})});var Rr=e(96675);const go=c=>c.length===1&&c[0]==="year",yo=c=>c.length===2&&c.indexOf("month")!==-1&&c.indexOf("year")!==-1,rr=(c,C)=>go(c)?{inputFormat:C.formats.year}:yo(c)?{disableMaskedInput:!0,inputFormat:C.formats.monthAndYear}:{inputFormat:C.formats.keyboardDate};function Ar(c,C){var Q;const j=k(),ue=p(),ve=(0,f.Z)({props:c,name:C}),pe=(Q=ve.views)!=null?Q:["year","day"];return t({openTo:"day",minDate:ue.minDate,maxDate:ue.maxDate},rr(pe,j),ve,{views:pe})}const Ea={emptyValue:null,getTodayValue:c=>c.date(),parseInput:ya,areValuesEqual:(c,C,Q)=>c.isEqual(C,Q)};var ps=e(75836);const fn=(0,u.generateUtilityClasses)("MuiPickersToolbar",["root","content","penIconButton","penIconButtonLandscape"]),Mr=(0,i.ZP)("div",{name:"MuiPickersToolbar",slot:"Root",overridesResolver:(c,C)=>C.root})(({theme:c,ownerState:C})=>t({display:"flex",flexDirection:"column",alignItems:"flex-start",justifyContent:"space-between",padding:c.spacing(2,3)},C.isLandscape&&{height:"auto",maxWidth:160,padding:16,justifyContent:"flex-start",flexWrap:"wrap"})),hs=(0,i.ZP)(ps.ZP,{name:"MuiPickersToolbar",slot:"Content",overridesResolver:(c,C)=>C.content})({flex:1}),bn=(0,i.ZP)(on.Z,{name:"MuiPickersToolbar",slot:"PenIconButton",overridesResolver:(c,C)=>C.penIconButton})({}),ms=c=>c==="clock"?(0,R.jsx)(Dn,{color:"inherit"}):(0,R.jsx)(qn,{color:"inherit"});function vs(c,C){return c?`text input view is open, go to ${C} view`:`${C} view is open, go to text input view`}const Ir=o.forwardRef(function(C,Q){const{children:j,className:ue,getMobileKeyboardInputViewButtonText:ve=vs,isLandscape:pe,isMobileKeyboardViewOpen:Ce,landscapeDirection:me="column",toggleMobileKeyboardView:be,toolbarTitle:Ne,viewType:je="calendar"}=C,Be=C;return(0,R.jsxs)(Mr,{ref:Q,className:(0,g.default)(fn.root,ue),ownerState:Be,children:[(0,R.jsx)(b.Z,{color:"text.secondary",variant:"overline",children:Ne}),(0,R.jsxs)(hs,{container:!0,justifyContent:"space-between",className:fn.content,ownerState:Be,direction:pe?me:"row",alignItems:pe?"flex-start":"flex-end",children:[j,(0,R.jsx)(bn,{onClick:be,className:(0,g.default)(fn.penIconButton,pe&&fn.penIconButtonLandscape),ownerState:Be,color:"inherit","aria-label":ve(Ce,je),children:Ce?ms(je):(0,R.jsx)(yr,{color:"inherit"})})]})]})}),gs=["parsedValue","isLandscape","isMobileKeyboardViewOpen","onChange","toggleMobileKeyboardView","toolbarFormat","toolbarPlaceholder","toolbarTitle","views"],kr=(0,u.generateUtilityClasses)("MuiDatePickerToolbar",["root","title"]),bo=(0,i.ZP)(Ir,{name:"MuiDatePickerToolbar",slot:"Root",overridesResolver:(c,C)=>C.root})({[`& .${fn.penIconButton}`]:{position:"relative",top:4}}),ys=(0,i.ZP)(b.Z,{name:"MuiDatePickerToolbar",slot:"Title",overridesResolver:(c,C)=>C.title})(({ownerState:c})=>t({},c.isLandscape&&{margin:"auto 16px auto auto"})),or=o.forwardRef(function(C,Q){const{parsedValue:j,isLandscape:ue,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:pe,toolbarFormat:Ce,toolbarPlaceholder:me="\u2013\u2013",toolbarTitle:be="Select date",views:Ne}=C,je=a(C,gs),Be=k(),Ye=o.useMemo(()=>j?Ce?Be.formatByString(j,Ce):go(Ne)?Be.format(j,"year"):yo(Ne)?Be.format(j,"month"):/en/.test(Be.getCurrentLocaleCode())?Be.format(j,"normalDateWithWeekday"):Be.format(j,"normalDate"):me,[j,Ce,me,Be,Ne]),Je=C;return(0,R.jsx)(bo,t({ref:Q,toolbarTitle:be,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:pe,isLandscape:ue,ownerState:Je,className:kr.root},je,{children:(0,R.jsx)(ys,{variant:"h4",align:ue?"left":"center",ownerState:Je,className:kr.title,children:Ye})}))});var bs=e(70354),Cs=e(30464),sr=e(81669),xs=e(86903),Ss=e(66934),Nr=e(72022),Cn=e(55480),Es=e(19974);const Br=c=>{const{onAccept:C,onClear:Q,onCancel:j,onSetToday:ue,actions:ve}=c,pe=o.useContext(Ze),Ce=O(),me=typeof ve=="function"?ve(pe):ve;if(me==null||me.length===0)return null;const be=me==null?void 0:me.map(Ne=>{switch(Ne){case"clear":return(0,R.jsx)(Cn.Z,{onClick:Q,children:Ce.clearButtonLabel},Ne);case"cancel":return(0,R.jsx)(Cn.Z,{onClick:j,children:Ce.cancelButtonLabel},Ne);case"accept":return(0,R.jsx)(Cn.Z,{onClick:C,children:Ce.okButtonLabel},Ne);case"today":return(0,R.jsx)(Cn.Z,{onClick:ue,children:Ce.todayButtonLabel},Ne);default:return null}});return(0,R.jsx)(Es.Z,{children:be})},Ts=["onClick","onTouchStart"],Ds=(0,i.ZP)(sr.Z)(({theme:c})=>({zIndex:c.zIndex.modal})),Ps=(0,i.ZP)(Cs.Z)(({ownerState:c})=>t({transformOrigin:"top center",outline:0},c.placement==="top"&&{transformOrigin:"bottom center"}));function ws(c,C){return C.documentElement.clientWidth{if(!c)return;function me(){ve.current=!0}return document.addEventListener("mousedown",me,!0),document.addEventListener("touchstart",me,!0),()=>{document.removeEventListener("mousedown",me,!0),document.removeEventListener("touchstart",me,!0),ve.current=!1}},[c]);const pe=(0,Ss.Z)(me=>{if(!ve.current)return;const be=j.current;j.current=!1;const Ne=(0,Nr.Z)(ue.current);if(!ue.current||"clientX"in me&&ws(me,Ne))return;if(Q.current){Q.current=!1;return}let je;me.composedPath?je=me.composedPath().indexOf(ue.current)>-1:je=!Ne.documentElement.contains(me.target)||ue.current.contains(me.target),!je&&!be&&C(me)}),Ce=()=>{j.current=!0};return o.useEffect(()=>{if(c){const me=(0,Nr.Z)(ue.current),be=()=>{Q.current=!0};return me.addEventListener("touchstart",pe),me.addEventListener("touchmove",be),()=>{me.removeEventListener("touchstart",pe),me.removeEventListener("touchmove",be)}}},[c,pe]),o.useEffect(()=>{if(c){const me=(0,Nr.Z)(ue.current);return me.addEventListener("click",pe),()=>{me.removeEventListener("click",pe),j.current=!1}}},[c,pe]),[ue,Ce,Ce]}const Rs=c=>{var C;const{anchorEl:Q,children:j,containerRef:ue=null,onBlur:ve,onClose:pe,onClear:Ce,onAccept:me,onCancel:be,onSetToday:Ne,open:je,PopperProps:Be,role:Ye,TransitionComponent:Je=bs.Z,TrapFocusProps:et,PaperProps:pt={},components:xt,componentsProps:St}=c;o.useEffect(()=>{function jt(vt){je&&(vt.key==="Escape"||vt.key==="Esc")&&pe()}return document.addEventListener("keydown",jt),()=>{document.removeEventListener("keydown",jt)}},[pe,je]);const Nt=o.useRef(null);o.useEffect(()=>{Ye!=="tooltip"&&(je?Nt.current=document.activeElement:Nt.current&&Nt.current instanceof HTMLElement&&Nt.current.focus())},[je,Ye]);const[yt,Dt,lt]=Os(je,ve!=null?ve:pe),At=o.useRef(null),Ct=(0,We.Z)(At,ue),Ht=(0,We.Z)(Ct,yt),ea=c,{onClick:Xt,onTouchStart:Bt}=pt,$t=a(pt,Ts),Zt=jt=>{jt.key==="Escape"&&(jt.stopPropagation(),pe())},Qt=(C=xt==null?void 0:xt.ActionBar)!=null?C:Br;return(0,R.jsx)(Ds,t({transition:!0,role:Ye,open:je,anchorEl:Q,ownerState:ea,onKeyDown:Zt},Be,{children:({TransitionProps:jt,placement:vt})=>(0,R.jsx)(xs.Z,t({open:je,disableAutoFocus:!0,disableEnforceFocus:Ye==="tooltip",isEnabled:()=>!0},et,{children:(0,R.jsx)(Je,t({},jt,{children:(0,R.jsxs)(Ps,t({tabIndex:-1,elevation:8,ref:Ht,onClick:Vt=>{Dt(Vt),Xt&&Xt(Vt)},onTouchStart:Vt=>{lt(Vt),Bt&&Bt(Vt)},ownerState:t({},ea,{placement:vt})},$t,{children:[j,(0,R.jsx)(Qt,t({onAccept:me,onClear:Ce,onCancel:be,onSetToday:Ne,actions:[]},St==null?void 0:St.actionBar))]}))}))}))}))};function Lr(c){const{children:C,DateInputProps:Q,KeyboardDateInputComponent:j,onClear:ue,onDismiss:ve,onCancel:pe,onAccept:Ce,onSetToday:me,open:be,PopperProps:Ne,PaperProps:je,TransitionComponent:Be,components:Ye,componentsProps:Je}=c,et=o.useRef(null),pt=(0,We.Z)(Q.inputRef,et);return(0,R.jsxs)(Ze.Provider,{value:"desktop",children:[(0,R.jsx)(j,t({},Q,{inputRef:pt})),(0,R.jsx)(Rs,{role:"dialog",open:be,anchorEl:et.current,TransitionComponent:Be,PopperProps:Ne,PaperProps:je,onClose:ve,onCancel:pe,onClear:ue,onAccept:Ce,onSetToday:me,components:Ye,componentsProps:Je,children:C})]})}var As=e(27254);const Co=c=>{const[,C]=(0,o.useReducer)(me=>me+1,0),Q=(0,o.useRef)(null),{replace:j,append:ue}=c,ve=j?j(c.format(c.value)):c.format(c.value),pe=(0,o.useRef)(!1),Ce=me=>{const be=me.target.value;Q.current=[be,me.target,be.length>ve.length,pe.current,ve===c.format(be)],C()};return(0,o.useLayoutEffect)(()=>{if(Q.current==null)return;let[me,be,Ne,je,Be]=Q.current;Q.current=null;const Ye=je&&Be,et=me.slice(be.selectionStart).search(c.accept||/\d/g),pt=et!==-1?et:0,xt=lt=>(lt.match(c.accept||/\d/g)||[]).join(""),St=xt(me.substr(0,be.selectionStart)),Nt=lt=>{let At=0,Ct=0;for(let Ht=0;Ht!==St.length;++Ht){let ea=lt.indexOf(St[Ht],At)+1,Xt=xt(lt).indexOf(St[Ht],Ct)+1;Xt-Ct>1&&(ea=At,Xt=Ct),Ct=Math.max(Xt,Ct),At=Math.max(At,ea)}return At};if(c.mask===!0&&Ne&&!Be){let lt=Nt(me);const At=xt(me.substr(lt))[0];lt=me.indexOf(At,lt),me=`${me.substr(0,lt)}${me.substr(lt+1)}`}let yt=c.format(me);ue!=null&&be.selectionStart===me.length&&!Be&&(Ne?yt=ue(yt):xt(yt.slice(-1))===""&&(yt=yt.slice(0,-1)));const Dt=j?j(yt):yt;return ve===Dt?C():c.onChange(Dt),()=>{let lt=Nt(yt);if(c.mask!=null&&(Ne||je&&!Ye))for(;yt[lt]&&xt(yt[lt])==="";)lt+=1;be.selectionStart=be.selectionEnd=lt+(Ye?1+pt:0)}}),(0,o.useEffect)(()=>{const me=Ne=>{Ne.code==="Delete"&&(pe.current=!0)},be=Ne=>{Ne.code==="Delete"&&(pe.current=!1)};return document.addEventListener("keydown",me),document.addEventListener("keyup",be),()=>{document.removeEventListener("keydown",me),document.removeEventListener("keyup",be)}},[]),{value:Q.current!=null?Q.current[0]:ve,onChange:Ce}},tl=c=>{const C=Co(c);return c.children(C)},jr=(c,C,Q)=>{const j=c.date(C);return C===null?"":c.isValid(j)?c.formatByString(j,Q):""},ir="_",xo="2019-11-21T22:30:00.000",So="2019-01-01T09:00:00.000";function Ms(c,C,Q,j){if(c)return c;const ve=j.formatByString(j.date(So),C).replace(Q,ir),pe=j.formatByString(j.date(xo),C).replace(Q,"_");return ve===pe?ve:""}function Is(c,C,Q,j){if(!c)return!1;const ve=j.formatByString(j.date(So),C).replace(Q,ir),pe=j.formatByString(j.date(xo),C).replace(Q,"_"),Ce=pe===ve&&c===pe;return!Ce&&j.lib,Ce}const ks=(c,C)=>Q=>{let j=0;return Q.split("").map((ue,ve)=>{if(C.lastIndex=0,j>c.length-1)return"";const pe=c[j],Ce=c[j+1],me=C.test(ue)?ue:"",be=pe===ir?me:pe+me;return j+=be.length,ve===Q.length-1&&Ce&&Ce!==ir?be?be+Ce:"":be}).join("")},Ns=({acceptRegex:c=/[\d]/gi,disabled:C,disableMaskedInput:Q,ignoreInvalidInputs:j,inputFormat:ue,inputProps:ve,label:pe,mask:Ce,onChange:me,rawValue:be,readOnly:Ne,rifmFormatter:je,TextFieldProps:Be,validationError:Ye})=>{const Je=k(),et=Je.getFormatHelperText(ue),{shouldUseMaskedInput:pt,maskToUse:xt}=o.useMemo(()=>{if(Q)return{shouldUseMaskedInput:!1,maskToUse:""};const Bt=Ms(Ce,ue,c,Je);return{shouldUseMaskedInput:Is(Bt,ue,c,Je),maskToUse:Bt}},[c,Q,ue,Ce,Je]),St=o.useMemo(()=>pt&&xt?ks(xt,c):Bt=>Bt,[c,xt,pt]),Nt=be===null?null:Je.date(be),[yt,Dt]=o.useState(Nt),[lt,At]=o.useState(jr(Je,be,ue)),Ct=o.useRef();o.useEffect(()=>{const Bt=be!==Ct.current;if(Ct.current=be,!Bt)return;const $t=be===null?null:Je.date(be);if(!(be===null||Je.isValid($t))||Je.isEqual(yt,$t))return;const Qt=jr(Je,be,ue);Dt($t),At(Qt)},[Je,be,ue,yt]);const Ht=Bt=>{const $t=Bt===""||Bt===Ce?"":Bt;At($t);const Zt=$t===null?null:Je.parse($t,ue);j&&!Je.isValid(Zt)||(Dt(Zt),me(Zt,$t||void 0))},ea=Co({value:lt,onChange:Ht,format:je||St});return t({label:pe,disabled:C,error:Ye,inputProps:t({},pt?ea:{value:lt,onChange:Bt=>{Ht(Bt.currentTarget.value)}},{disabled:C,placeholder:et,readOnly:Ne,type:pt?"tel":"text"},ve)},Be)},Bs=["components","disableOpenPicker","getOpenDialogAriaText","InputAdornmentProps","InputProps","inputRef","openPicker","OpenPickerButtonProps","renderInput"],lr=o.forwardRef(function(C,Q){const{components:j={},disableOpenPicker:ue,getOpenDialogAriaText:ve,InputAdornmentProps:pe,InputProps:Ce,inputRef:me,openPicker:be,OpenPickerButtonProps:Ne,renderInput:je}=C,Be=a(C,Bs),Ye=O(),Je=ve!=null?ve:Ye.openDatePickerDialogue,et=k(),pt=Ns(Be),xt=(pe==null?void 0:pe.position)||"end",St=j.OpenPickerIcon||qn;return je(t({ref:Q,inputRef:me},pt,{InputProps:t({},Ce,{[`${xt}Adornment`]:ue?void 0:(0,R.jsx)(As.Z,t({position:xt},pe,{children:(0,R.jsx)(on.Z,t({edge:xt,disabled:Be.disabled||Be.readOnly,"aria-label":Je(Be.rawValue,et)},Ne,{onClick:be,children:(0,R.jsx)(St,{})}))}))})}))});function Eo(){return typeof window=="undefined"?"portrait":window.screen&&window.screen.orientation&&window.screen.orientation.angle?Math.abs(window.screen.orientation.angle)===90?"landscape":"portrait":window.orientation&&Math.abs(Number(window.orientation))===90?"landscape":"portrait"}const Ls=(c,C)=>{const[Q,j]=o.useState(Eo);return ce(()=>{const ve=()=>{j(Eo())};return window.addEventListener("orientationchange",ve),()=>{window.removeEventListener("orientationchange",ve)}},[]),D(c,["hours","minutes","seconds"])?!1:(C||Q)==="landscape"},js=["autoFocus","className","parsedValue","DateInputProps","isMobileKeyboardViewOpen","onDateChange","onViewChange","openTo","orientation","showToolbar","toggleMobileKeyboardView","ToolbarComponent","toolbarFormat","toolbarPlaceholder","toolbarTitle","views"],Fs=(0,i.ZP)("div")({padding:"16px 24px"}),zs=(0,i.ZP)("div")(({ownerState:c})=>t({display:"flex",flexDirection:"column"},c.isLandscape&&{flexDirection:"row"})),Ws={fullWidth:!0},sa=c=>c==="year"||c==="month"||c==="day",To=c=>c==="hours"||c==="minutes"||c==="seconds";function tn(c){const{autoFocus:C,parsedValue:Q,DateInputProps:j,isMobileKeyboardViewOpen:ue,onDateChange:ve,onViewChange:pe,openTo:Ce,orientation:me,showToolbar:be,toggleMobileKeyboardView:Ne,ToolbarComponent:je=()=>null,toolbarFormat:Be,toolbarPlaceholder:Ye,toolbarTitle:Je,views:et}=c,pt=a(c,js),xt=Ls(et,me),St=o.useContext(Ze),Nt=be!=null?be:St!=="desktop",yt=o.useCallback((Ht,ea)=>{ve(Ht,St,ea)},[ve,St]),Dt=o.useCallback(Ht=>{ue&&Ne(),pe&&pe(Ht)},[ue,pe,Ne]),{openView:lt,setOpenView:At,handleChangeAndOpenNext:Ct}=La({view:void 0,views:et,openTo:Ce,onChange:yt,onViewChange:Dt});return(0,R.jsxs)(zs,{ownerState:{isLandscape:xt},children:[Nt&&(0,R.jsx)(je,t({},pt,{views:et,isLandscape:xt,parsedValue:Q,onChange:yt,setOpenView:At,openView:lt,toolbarTitle:Je,toolbarFormat:Be,toolbarPlaceholder:Ye,isMobileKeyboardViewOpen:ue,toggleMobileKeyboardView:Ne})),(0,R.jsx)(Ra,{children:ue?(0,R.jsx)(Fs,{children:(0,R.jsx)(lr,t({},j,{ignoreInvalidInputs:!0,disableOpenPicker:!0,TextFieldProps:Ws}))}):(0,R.jsxs)(o.Fragment,{children:[sa(lt)&&(0,R.jsx)(qa,t({autoFocus:C,date:Q,onViewChange:At,onChange:Ct,view:lt,views:et.filter(sa)},pt)),To(lt)&&(0,R.jsx)(Or,t({},pt,{autoFocus:C,date:Q,view:lt,views:et.filter(To),onChange:Ct,onViewChange:At,showViewSwitcher:St==="desktop"}))]})})]})}const Hs=({open:c,onOpen:C,onClose:Q})=>{const j=o.useRef(typeof c=="boolean").current,[ue,ve]=o.useState(!1);o.useEffect(()=>{if(j){if(typeof c!="boolean")throw new Error("You must not mix controlling and uncontrolled mode for `open` prop");ve(c)}},[j,c]);const pe=o.useCallback(Ce=>{j||ve(Ce),Ce&&C&&C(),!Ce&&Q&&Q()},[j,C,Q]);return{isOpen:ue,setIsOpen:pe}},an=(c,C)=>{const{onAccept:Q,onChange:j,value:ue,closeOnSelect:ve}=c,pe=k(),{isOpen:Ce,setIsOpen:me}=Hs(c),be=o.useMemo(()=>C.parseInput(pe,ue),[C,pe,ue]),[Ne,je]=o.useState(be),[Be,Ye]=o.useState(()=>({committed:be,draft:be,resetFallback:be})),Je=o.useCallback(lt=>{Ye(At=>{switch(lt.action){case"setAll":case"acceptAndClose":return{draft:lt.value,committed:lt.value,resetFallback:lt.value};case"setCommitted":return t({},At,{draft:lt.value,committed:lt.value});case"setDraft":return t({},At,{draft:lt.value});default:return At}}),!lt.skipOnChangeCall&&!C.areValuesEqual(pe,Be.committed,lt.value)&&j(lt.value),lt.action==="acceptAndClose"&&(me(!1),Q&&!C.areValuesEqual(pe,Be.resetFallback,lt.value)&&Q(lt.value))},[Q,j,me,Be,pe,C]);o.useEffect(()=>{pe.isValid(be)&&je(be)},[pe,be]),o.useEffect(()=>{Ce&&Je({action:"setAll",value:be,skipOnChangeCall:!0})},[Ce]),C.areValuesEqual(pe,Be.committed,be)||Je({action:"setCommitted",value:be,skipOnChangeCall:!0});const et=o.useMemo(()=>({open:Ce,onClear:()=>{Je({value:C.emptyValue,action:"acceptAndClose"})},onAccept:()=>{Je({value:Be.draft,action:"acceptAndClose"})},onDismiss:()=>{Je({value:Be.committed,action:"acceptAndClose"})},onCancel:()=>{Je({value:Be.resetFallback,action:"acceptAndClose"})},onSetToday:()=>{Je({value:C.getTodayValue(pe),action:"acceptAndClose"})}}),[Je,Ce,pe,Be,C]),[pt,xt]=o.useState(!1),St=o.useMemo(()=>({parsedValue:Be.draft,isMobileKeyboardViewOpen:pt,toggleMobileKeyboardView:()=>xt(!pt),onDateChange:(lt,At,Ct="partial")=>{switch(Ct){case"shallow":return Je({action:"setDraft",value:lt,skipOnChangeCall:!0});case"partial":return Je({action:"setDraft",value:lt});case"finish":return(ve!=null?ve:At==="desktop")?Je({value:lt,action:"acceptAndClose"}):Je({value:lt,action:"setCommitted"});default:throw new Error("MUI: Invalid selectionState passed to `onDateChange`")}}}),[Je,pt,Be.draft,ve]),Nt=o.useCallback((lt,At)=>{const Ct=C.valueReducer?C.valueReducer(pe,Ne,lt):lt;j(Ct,At)},[j,C,Ne,pe]),yt=o.useMemo(()=>({onChange:Nt,open:Ce,rawValue:ue,openPicker:()=>me(!0)}),[Nt,Ce,ue,me]),Dt={pickerProps:St,inputProps:yt,wrapperProps:et};return o.useDebugValue(Dt,()=>({MuiPickerState:{dateState:Be,other:Dt}})),Dt},Do=["onChange","PopperProps","PaperProps","ToolbarComponent","TransitionComponent","value","components","componentsProps"],xn=o.forwardRef(function(C,Q){const j=Ar(C,"MuiDesktopDatePicker"),ue=Ee(j)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:Ce}=an(j,Ea),{PopperProps:me,PaperProps:be,ToolbarComponent:Ne=or,TransitionComponent:je,components:Be,componentsProps:Ye}=j,Je=a(j,Do),et=t({},pe,Je,{components:Be,componentsProps:Ye,ref:Q,validationError:ue});return(0,R.jsx)(Lr,t({},Ce,{DateInputProps:et,KeyboardDateInputComponent:lr,PopperProps:me,PaperProps:be,TransitionComponent:je,components:Be,componentsProps:Ye,children:(0,R.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:Ne,DateInputProps:et,components:Be,componentsProps:Ye},Je))}))});var Vs=e(6774),Fr=e(66447),Po=e(72639);const wo=(0,i.ZP)(Fr.Z)({[`& .${Po.Z.container}`]:{outline:0},[`& .${Po.Z.paper}`]:{outline:0,minWidth:dt}}),Oo=(0,i.ZP)(Vs.Z)({"&:first-of-type":{padding:0}}),Us=c=>{var C;const{children:Q,DialogProps:j={},onAccept:ue,onClear:ve,onDismiss:pe,onCancel:Ce,onSetToday:me,open:be,components:Ne,componentsProps:je}=c,Be=(C=Ne==null?void 0:Ne.ActionBar)!=null?C:Br;return(0,R.jsxs)(wo,t({open:be,onClose:pe},j,{children:[(0,R.jsx)(Oo,{children:Q}),(0,R.jsx)(Be,t({onAccept:ue,onClear:ve,onCancel:Ce,onSetToday:me,actions:["cancel","accept"]},je==null?void 0:je.actionBar))]}))},zr=["children","DateInputProps","DialogProps","onAccept","onClear","onDismiss","onCancel","onSetToday","open","PureDateInputComponent","components","componentsProps"];function Wr(c){const{children:C,DateInputProps:Q,DialogProps:j,onAccept:ue,onClear:ve,onDismiss:pe,onCancel:Ce,onSetToday:me,open:be,PureDateInputComponent:Ne,components:je,componentsProps:Be}=c,Ye=a(c,zr);return(0,R.jsxs)(Ze.Provider,{value:"mobile",children:[(0,R.jsx)(Ne,t({components:je},Ye,Q)),(0,R.jsx)(Us,{DialogProps:j,onAccept:ue,onClear:ve,onDismiss:pe,onCancel:Ce,onSetToday:me,open:be,components:je,componentsProps:Be,children:C})]})}const An=o.forwardRef(function(C,Q){const{disabled:j,getOpenDialogAriaText:ue,inputFormat:ve,InputProps:pe,inputRef:Ce,label:me,openPicker:be,rawValue:Ne,renderInput:je,TextFieldProps:Be={},validationError:Ye}=C,Je=O(),et=ue!=null?ue:Je.openDatePickerDialogue,pt=k(),xt=o.useMemo(()=>t({},pe,{readOnly:!0}),[pe]),St=jr(pt,Ne,ve);return je(t({label:me,disabled:j,ref:Q,inputRef:Ce,error:Ye,InputProps:xt,inputProps:t({disabled:j,readOnly:!0,"aria-readonly":!0,"aria-label":et(Ne,pt),value:St},!C.readOnly&&{onClick:be},{onKeyDown:F(be)})},Be))}),Gs=["ToolbarComponent","value","onChange","components","componentsProps"],Ro=o.forwardRef(function(C,Q){const j=Ar(C,"MuiMobileDatePicker"),ue=Ee(j)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:Ce}=an(j,Ea),{ToolbarComponent:me=or,components:be,componentsProps:Ne}=j,je=a(j,Gs),Be=t({},pe,je,{components:be,componentsProps:Ne,ref:Q,validationError:ue});return(0,R.jsx)(Wr,t({},je,Ce,{DateInputProps:Be,PureDateInputComponent:An,components:be,componentsProps:Ne,children:(0,R.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:me,DateInputProps:Be,components:be,componentsProps:Ne},je))}))}),Ks=["desktopModeMediaQuery","DialogProps","PopperProps","TransitionComponent"],$s=o.forwardRef(function(C,Q){const j=(0,f.Z)({props:C,name:"MuiDatePicker"}),{desktopModeMediaQuery:ue="@media (pointer: fine)",DialogProps:ve,PopperProps:pe,TransitionComponent:Ce}=j,me=a(j,Ks);return(0,Rr.Z)(ue)?(0,R.jsx)(xn,t({ref:Q,PopperProps:pe,TransitionComponent:Ce},me)):(0,R.jsx)(Ro,t({ref:Q,DialogProps:ve},me))});function Hr(c,C){var Q,j,ue,ve,pe,Ce,me;const be=(0,f.Z)({props:c,name:C}),Ne=k(),je=p(),Be=(Q=be.ampm)!=null?Q:Ne.is12HourCycleInCurrentLocale();if(be.orientation!=null&&be.orientation!=="portrait")throw new Error("We are not supporting custom orientation for DateTimePicker yet :(");return t({ampm:Be,orientation:"portrait",openTo:"day",views:["year","day","hours","minutes"],ampmInClock:!0,acceptRegex:Be?/[\dap]/gi:/\d/gi,disableMaskedInput:!1,inputFormat:Be?Ne.formats.keyboardDateTime12h:Ne.formats.keyboardDateTime24h,disableIgnoringDatePartForTimeValidation:Boolean(be.minDateTime||be.maxDateTime)},be,{minDate:(j=(ue=be.minDateTime)!=null?ue:be.minDate)!=null?j:je.minDate,maxDate:(ve=(pe=be.maxDateTime)!=null?pe:be.maxDate)!=null?ve:je.maxDate,minTime:(Ce=be.minDateTime)!=null?Ce:be.minTime,maxTime:(me=be.maxDateTime)!=null?me:be.maxTime})}const Vr={emptyValue:null,getTodayValue:c=>c.date(),parseInput:ya,areValuesEqual:(c,C,Q)=>c.isEqual(C,Q)},Zs=["className","selected","value"],Ao=(0,u.generateUtilityClasses)("PrivatePickersToolbarText",["selected"]),Ys=(0,i.ZP)(b.Z)(({theme:c})=>({transition:c.transitions.create("color"),color:c.palette.text.secondary,[`&.${Ao.selected}`]:{color:c.palette.text.primary}})),Ur=o.forwardRef(function(C,Q){const{className:j,selected:ue,value:ve}=C,pe=a(C,Zs);return(0,R.jsx)(Ys,t({ref:Q,className:(0,g.default)(j,ue&&Ao.selected),component:"span"},pe,{children:ve}))}),Js=["align","className","selected","typographyClassName","value","variant"],Gr=(0,i.ZP)(Cn.Z)({padding:0,minWidth:16,textTransform:"none"}),$a=o.forwardRef(function(C,Q){const{align:j,className:ue,selected:ve,typographyClassName:pe,value:Ce,variant:me}=C,be=a(C,Js);return(0,R.jsx)(Gr,t({variant:"text",ref:Q,className:ue},be,{children:(0,R.jsx)(Ur,{align:j,className:pe,variant:me,value:Ce,selected:ve})}))});var Mo=e(49630),Xs=e(29922),Io=e(56585);const Qs=c=>["day","month","year"].includes(c)?"date":"time",qs=c=>c==="date"?"day":"hours",_s=(0,i.ZP)(Xs.Z)(({ownerState:c,theme:C})=>t({boxShadow:`0 -1px 0 0 inset ${C.palette.divider}`},c.wrapperVariant==="desktop"&&{order:1,boxShadow:`0 1px 0 0 inset ${C.palette.divider}`,[`& .${Io.Z.indicator}`]:{bottom:"auto",top:0}})),ei=c=>{const{dateRangeIcon:C=(0,R.jsx)(gr,{}),onChange:Q,timeIcon:j=(0,R.jsx)(br,{}),view:ue}=c,ve=O(),pe=o.useContext(Ze),Ce=t({},c,{wrapperVariant:pe}),me=(be,Ne)=>{Q(qs(Ne))};return(0,R.jsxs)(_s,{ownerState:Ce,variant:"fullWidth",value:Qs(ue),onChange:me,children:[(0,R.jsx)(Mo.Z,{value:"date","aria-label":ve.dateTableLabel,icon:(0,R.jsx)(o.Fragment,{children:C})}),(0,R.jsx)(Mo.Z,{value:"time","aria-label":ve.timeTableLabel,icon:(0,R.jsx)(o.Fragment,{children:j})})]})},ti=["ampm","parsedValue","dateRangeIcon","hideTabs","isMobileKeyboardViewOpen","onChange","openView","setOpenView","timeIcon","toggleMobileKeyboardView","toolbarFormat","toolbarPlaceholder","toolbarTitle","views"],Mn=(0,u.generateUtilityClasses)("MuiDateTimePickerToolbar",["root","dateContainer","timeContainer","separator"]),ai=(0,i.ZP)(Ir,{name:"MuiDateTimePickerToolbar",slot:"Root",overridesResolver:(c,C)=>C.root})({paddingLeft:16,paddingRight:16,justifyContent:"space-around",[`& .${fn.penIconButton}`]:{position:"absolute",top:8,right:8}}),ko=(0,i.ZP)("div",{name:"MuiDateTimePickerToolbar",slot:"DateContainer",overridesResolver:(c,C)=>C.dateContainer})({display:"flex",flexDirection:"column",alignItems:"flex-start"}),ni=(0,i.ZP)("div",{name:"MuiDateTimePickerToolbar",slot:"TimeContainer",overridesResolver:(c,C)=>C.timeContainer})({display:"flex"}),No=(0,i.ZP)(Ur,{name:"MuiDateTimePickerToolbar",slot:"Separator",overridesResolver:(c,C)=>C.separator})({margin:"0 4px 0 2px",cursor:"default"}),Kr=c=>{const{ampm:C,parsedValue:Q,dateRangeIcon:j,hideTabs:ue,isMobileKeyboardViewOpen:ve,openView:pe,setOpenView:Ce,timeIcon:me,toggleMobileKeyboardView:be,toolbarFormat:Ne,toolbarPlaceholder:je="\u2013\u2013",toolbarTitle:Be="Select date & time",views:Ye}=c,Je=a(c,ti),et=k(),pt=o.useContext(Ze),xt=pt==="desktop"?!0:!ue&&typeof window!="undefined"&&window.innerHeight>667,St=Dt=>C?et.format(Dt,"hours12h"):et.format(Dt,"hours24h"),Nt=o.useMemo(()=>Q?Ne?et.formatByString(Q,Ne):et.format(Q,"shortDate"):je,[Q,Ne,je,et]),yt=c;return(0,R.jsxs)(o.Fragment,{children:[pt!=="desktop"&&(0,R.jsxs)(ai,t({toolbarTitle:Be,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:be,className:Mn.root},Je,{isLandscape:!1,ownerState:yt,children:[(0,R.jsxs)(ko,{className:Mn.dateContainer,ownerState:yt,children:[Ye.includes("year")&&(0,R.jsx)($a,{tabIndex:-1,variant:"subtitle1",onClick:()=>Ce("year"),selected:pe==="year",value:Q?et.format(Q,"year"):"\u2013"}),Ye.includes("day")&&(0,R.jsx)($a,{tabIndex:-1,variant:"h4",onClick:()=>Ce("day"),selected:pe==="day",value:Nt})]}),(0,R.jsxs)(ni,{className:Mn.timeContainer,ownerState:yt,children:[Ye.includes("hours")&&(0,R.jsx)($a,{variant:"h3",onClick:()=>Ce("hours"),selected:pe==="hours",value:Q?St(Q):"--"}),Ye.includes("minutes")&&(0,R.jsxs)(o.Fragment,{children:[(0,R.jsx)(No,{variant:"h3",value:":",className:Mn.separator,ownerState:yt}),(0,R.jsx)($a,{variant:"h3",onClick:()=>Ce("minutes"),selected:pe==="minutes",value:Q?et.format(Q,"minutes"):"--"})]}),Ye.includes("seconds")&&(0,R.jsxs)(o.Fragment,{children:[(0,R.jsx)(No,{variant:"h3",value:":",className:Mn.separator,ownerState:yt}),(0,R.jsx)($a,{variant:"h3",onClick:()=>Ce("seconds"),selected:pe==="seconds",value:Q?et.format(Q,"seconds"):"--"})]})]})]})),xt&&(0,R.jsx)(ei,{dateRangeIcon:j,timeIcon:me,view:pe,onChange:Ce})]})},Bo=({adapter:c,value:C,props:Q})=>{const{minTime:j,maxTime:ue,minutesStep:ve,shouldDisableTime:pe,disableIgnoringDatePartForTimeValidation:Ce}=Q,me=c.utils.date(C),be=Pn(Ce,c.utils);if(C===null)return null;switch(!0){case!c.utils.isValid(C):return"invalidDate";case Boolean(j&&be(j,me)):return"minTime";case Boolean(ue&&be(me,ue)):return"maxTime";case Boolean(pe&&pe(c.utils.getHours(me),"hours")):return"shouldDisableTime-hours";case Boolean(pe&&pe(c.utils.getMinutes(me),"minutes")):return"shouldDisableTime-minutes";case Boolean(pe&&pe(c.utils.getSeconds(me),"seconds")):return"shouldDisableTime-seconds";case Boolean(ve&&c.utils.getMinutes(me)%ve!==0):return"minutesStep";default:return null}},Lo=(c,C)=>c===C,$r=c=>Z(c,Bo,Lo),ri=["minDate","maxDate","disableFuture","shouldDisableDate","disablePast"],ur=({props:c,value:C,adapter:Q})=>{const{minDate:j,maxDate:ue,disableFuture:ve,shouldDisableDate:pe,disablePast:Ce}=c,me=a(c,ri),be=ie({adapter:Q,value:C,props:{minDate:j,maxDate:ue,disableFuture:ve,shouldDisableDate:pe,disablePast:Ce}});return be!==null?be:Bo({adapter:Q,value:C,props:me})},oi=(c,C)=>c===C;function Zr(c){return Z(c,ur,oi)}const jo=["onChange","PaperProps","PopperProps","ToolbarComponent","TransitionComponent","value","components","componentsProps"],Fo=o.forwardRef(function(C,Q){const j=Hr(C,"MuiDesktopDateTimePicker"),ue=Zr(j)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:Ce}=an(j,Vr),{PaperProps:me,PopperProps:be,ToolbarComponent:Ne=Kr,TransitionComponent:je,components:Be,componentsProps:Ye}=j,Je=a(j,jo),et=t({},pe,Je,{components:Be,componentsProps:Ye,ref:Q,validationError:ue});return(0,R.jsx)(Lr,t({},Ce,{DateInputProps:et,KeyboardDateInputComponent:lr,PopperProps:be,PaperProps:me,TransitionComponent:je,components:Be,componentsProps:Ye,children:(0,R.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:Ne,DateInputProps:et,components:Be,componentsProps:Ye},Je))}))}),si=["ToolbarComponent","value","onChange","components","componentsProps"],zo=o.forwardRef(function(C,Q){const j=Hr(C,"MuiMobileDateTimePicker"),ue=Zr(j)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:Ce}=an(j,Vr),{ToolbarComponent:me=Kr,components:be,componentsProps:Ne}=j,je=a(j,si),Be=t({},pe,je,{components:be,componentsProps:Ne,ref:Q,validationError:ue});return(0,R.jsx)(Wr,t({},je,Ce,{DateInputProps:Be,PureDateInputComponent:An,components:be,componentsProps:Ne,children:(0,R.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:me,DateInputProps:Be,components:be,componentsProps:Ne},je))}))}),ii=["desktopModeMediaQuery","DialogProps","PopperProps","TransitionComponent"],li=o.forwardRef(function(C,Q){const j=(0,f.Z)({props:C,name:"MuiDateTimePicker"}),{desktopModeMediaQuery:ue="@media (pointer: fine)",DialogProps:ve,PopperProps:pe,TransitionComponent:Ce}=j,me=a(j,ii);return(0,Rr.Z)(ue)?(0,R.jsx)(Fo,t({ref:Q,PopperProps:pe,TransitionComponent:Ce},me)):(0,R.jsx)(zo,t({ref:Q,DialogProps:ve},me))});function Yr(c,C){var Q;const j=(0,f.Z)({props:c,name:C}),ue=k(),ve=(Q=j.ampm)!=null?Q:ue.is12HourCycleInCurrentLocale(),Ce=O().openTimePickerDialogue;return t({ampm:ve,openTo:"hours",views:["hours","minutes"],acceptRegex:ve?/[\dapAP]/gi:/\d/gi,disableMaskedInput:!1,getOpenDialogAriaText:Ce,inputFormat:ve?ue.formats.fullTime12h:ue.formats.fullTime24h},j,{components:t({OpenPickerIcon:Dn},j.components)})}const Jr={emptyValue:null,parseInput:ya,getTodayValue:c=>c.date(),areValuesEqual:(c,C,Q)=>c.isEqual(C,Q),valueReducer:(c,C,Q)=>!C||!c.isValid(Q)?Q:c.mergeDateAndTime(C,Q)};function ui(c){return(0,u.generateUtilityClass)("MuiTimePickerToolbar",c)}const ci=(0,u.generateUtilityClasses)("MuiTimePickerToolbar",["root","separator","hourMinuteLabel","hourMinuteLabelLandscape","hourMinuteLabelReverse","ampmSelection","ampmLandscape","ampmLabel"]),di=["ampm","ampmInClock","parsedValue","isLandscape","isMobileKeyboardViewOpen","onChange","openView","setOpenView","toggleMobileKeyboardView","toolbarTitle","views","disabled","readOnly"],fi=c=>{const{theme:C,isLandscape:Q,classes:j}=c,ue={root:["root"],separator:["separator"],hourMinuteLabel:["hourMinuteLabel",Q&&"hourMinuteLabelLandscape",C.direction==="rtl"&&"hourMinuteLabelReverse"],ampmSelection:["ampmSelection",Q&&"ampmLandscape"],ampmLabel:["ampmLabel"]};return(0,u.unstable_composeClasses)(ue,ui,j)},pi=(0,i.ZP)(Ir,{name:"MuiTimePickerToolbar",slot:"Root",overridesResolver:(c,C)=>C.root})({[`& .${fn.penIconButtonLandscape}`]:{marginTop:"auto"}}),hi=(0,i.ZP)(Ur,{name:"MuiTimePickerToolbar",slot:"Separator",overridesResolver:(c,C)=>C.separator})({outline:0,margin:"0 4px 0 2px",cursor:"default"}),mi=(0,i.ZP)("div",{name:"MuiTimePickerToolbar",slot:"HourMinuteLabel",overridesResolver:(c,C)=>C.hourMinuteLabel})(({theme:c,ownerState:C})=>t({display:"flex",justifyContent:"flex-end",alignItems:"flex-end"},C.isLandscape&&{marginTop:"auto"},c.direction==="rtl"&&{flexDirection:"row-reverse"})),vi=(0,i.ZP)("div",{name:"MuiTimePickerToolbar",slot:"AmPmSelection",overridesResolver:(c,C)=>C.ampmSelection})(({ownerState:c})=>t({display:"flex",flexDirection:"column",marginRight:"auto",marginLeft:12},c.isLandscape&&{margin:"4px 0 auto",flexDirection:"row",justifyContent:"space-around",flexBasis:"100%"},{[`& .${ci.ampmLabel}`]:{fontSize:17}})),Xr=c=>{const{ampm:C,ampmInClock:Q,parsedValue:j,isLandscape:ue,isMobileKeyboardViewOpen:ve,onChange:pe,openView:Ce,setOpenView:me,toggleMobileKeyboardView:be,toolbarTitle:Ne="Select time",views:je,disabled:Be,readOnly:Ye}=c,Je=a(c,di),et=k(),pt=(0,Ie.Z)(),xt=Boolean(C&&!Q),{meridiemMode:St,handleMeridiemChange:Nt}=$(j,C,pe),yt=Ct=>C?et.format(Ct,"hours12h"):et.format(Ct,"hours24h"),Dt=c,lt=fi(t({},Dt,{theme:pt})),At=(0,R.jsx)(hi,{tabIndex:-1,value:":",variant:"h3",selected:!1,className:lt.separator});return(0,R.jsxs)(pi,t({viewType:"clock",landscapeDirection:"row",toolbarTitle:Ne,isLandscape:ue,isMobileKeyboardViewOpen:ve,toggleMobileKeyboardView:be,ownerState:Dt,className:lt.root},Je,{children:[(0,R.jsxs)(mi,{className:lt.hourMinuteLabel,ownerState:Dt,children:[D(je,"hours")&&(0,R.jsx)($a,{tabIndex:-1,variant:"h3",onClick:()=>me("hours"),selected:Ce==="hours",value:j?yt(j):"--"}),D(je,["hours","minutes"])&&At,D(je,"minutes")&&(0,R.jsx)($a,{tabIndex:-1,variant:"h3",onClick:()=>me("minutes"),selected:Ce==="minutes",value:j?et.format(j,"minutes"):"--"}),D(je,["minutes","seconds"])&&At,D(je,"seconds")&&(0,R.jsx)($a,{variant:"h3",onClick:()=>me("seconds"),selected:Ce==="seconds",value:j?et.format(j,"seconds"):"--"})]}),xt&&(0,R.jsxs)(vi,{className:lt.ampmSelection,ownerState:Dt,children:[(0,R.jsx)($a,{disableRipple:!0,variant:"subtitle2",selected:St==="am",typographyClassName:lt.ampmLabel,value:et.getMeridiemText("am"),onClick:Ye?void 0:()=>Nt("am"),disabled:Be}),(0,R.jsx)($a,{disableRipple:!0,variant:"subtitle2",selected:St==="pm",typographyClassName:lt.ampmLabel,value:et.getMeridiemText("pm"),onClick:Ye?void 0:()=>Nt("pm"),disabled:Be})]})]}))},gi=["onChange","PaperProps","PopperProps","ToolbarComponent","TransitionComponent","value","components","componentsProps"],Wo=o.forwardRef(function(C,Q){const j=Yr(C,"MuiDesktopTimePicker"),ue=$r(j)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:Ce}=an(j,Jr),{PaperProps:me,PopperProps:be,ToolbarComponent:Ne=Xr,TransitionComponent:je,components:Be,componentsProps:Ye}=j,Je=a(j,gi),et=t({},pe,Je,{components:Be,componentsProps:Ye,ref:Q,validationError:ue});return(0,R.jsx)(Lr,t({},Ce,{DateInputProps:et,KeyboardDateInputComponent:lr,PopperProps:be,PaperProps:me,TransitionComponent:je,components:Be,componentsProps:Ye,children:(0,R.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:Ne,DateInputProps:et,components:Be,componentsProps:Ye},Je))}))}),yi=["ToolbarComponent","value","onChange","components","componentsProps"],Ho=o.forwardRef(function(C,Q){const j=Yr(C,"MuiMobileTimePicker"),ue=$r(j)!==null,{pickerProps:ve,inputProps:pe,wrapperProps:Ce}=an(j,Jr),{ToolbarComponent:me=Xr,components:be,componentsProps:Ne}=j,je=a(j,yi),Be=t({},pe,je,{components:be,componentsProps:Ne,ref:Q,validationError:ue});return(0,R.jsx)(Wr,t({},je,Ce,{DateInputProps:Be,PureDateInputComponent:An,components:be,componentsProps:Ne,children:(0,R.jsx)(tn,t({},ve,{autoFocus:!0,toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:me,DateInputProps:Be,components:be,componentsProps:Ne},je))}))});function Ta(c){return(0,u.generateUtilityClass)("MuiPickerStaticWrapper",c)}const Vo=(0,u.generateUtilityClasses)("MuiPickerStaticWrapper",["root","content"]),Qr=["displayStaticWrapperAs","onAccept","onClear","onCancel","onDismiss","onSetToday","open","children","components","componentsProps"],bi=c=>{const{classes:C}=c,Q={root:["root"],content:["content"]};return(0,u.unstable_composeClasses)(Q,Ta,C)},qr=(0,i.ZP)("div",{name:"MuiPickerStaticWrapper",slot:"Root",overridesResolver:(c,C)=>C.root})({display:"flex",flexDirection:"column"}),Ci=(0,i.ZP)("div",{name:"MuiPickerStaticWrapper",slot:"Content",overridesResolver:(c,C)=>C.content})(({theme:c})=>({overflow:"hidden",minWidth:dt,display:"flex",flexDirection:"column",backgroundColor:c.palette.background.paper}));function cr(c){var C;const Q=(0,f.Z)({props:c,name:"MuiPickerStaticWrapper"}),{displayStaticWrapperAs:j,onAccept:ue,onClear:ve,onCancel:pe,onSetToday:Ce,children:me,components:be,componentsProps:Ne}=Q,je=a(Q,Qr),Be=bi(Q),Ye=(C=be==null?void 0:be.ActionBar)!=null?C:Br;return(0,R.jsx)(Ze.Provider,{value:j,children:(0,R.jsxs)(qr,t({className:Be.root},je,{children:[(0,R.jsx)(Ci,{className:Be.content,children:me}),(0,R.jsx)(Ye,t({onAccept:ue,onClear:ve,onCancel:pe,onSetToday:Ce,actions:j==="desktop"?[]:["cancel","accept"]},Ne==null?void 0:Ne.actionBar))]}))})}const xi=["ToolbarComponent","value","onChange","displayStaticWrapperAs","components","componentsProps"],Si=o.forwardRef(function(C,Q){const j=Ar(C,"MuiStaticDatePicker"),{ToolbarComponent:ue=or,displayStaticWrapperAs:ve="mobile",components:pe,componentsProps:Ce}=j,me=a(j,xi),{pickerProps:be,inputProps:Ne,wrapperProps:je}=an(j,Ea),Be=Ee(j)!==null,Ye=t({},Ne,me,{ref:Q,validationError:Be,components:pe});return(0,R.jsx)(cr,t({displayStaticWrapperAs:ve,components:pe,componentsProps:Ce},je,{children:(0,R.jsx)(tn,t({},be,{toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:ue,DateInputProps:Ye,components:pe,componentsProps:Ce},me))}))}),Ei=["displayStaticWrapperAs","onChange","ToolbarComponent","value","components","componentsProps"],Ti=o.forwardRef(function(C,Q){const j=Hr(C,"MuiStaticDateTimePicker"),{displayStaticWrapperAs:ue="mobile",ToolbarComponent:ve=Kr,components:pe,componentsProps:Ce}=j,me=a(j,Ei),{pickerProps:be,inputProps:Ne,wrapperProps:je}=an(j,Vr),Be=Zr(j)!==null,Ye=t({},Ne,me,{ref:Q,validationError:Be,components:pe,componentsProps:Ce});return(0,R.jsx)(cr,t({displayStaticWrapperAs:ue,components:pe,componentsProps:Ce},je,{children:(0,R.jsx)(tn,t({},be,{toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:ve,DateInputProps:Ye,components:pe,componentsProps:Ce},me))}))}),Di=["displayStaticWrapperAs","onChange","ToolbarComponent","value","components","componentsProps"],Pi=o.forwardRef(function(C,Q){const j=Yr(C,"MuiStaticTimePicker"),{displayStaticWrapperAs:ue="mobile",ToolbarComponent:ve=Xr,components:pe,componentsProps:Ce}=j,me=a(j,Di),be=$r(j)!==null,{pickerProps:Ne,inputProps:je,wrapperProps:Be}=an(j,Jr),Ye=t({},je,me,{ref:Q,validationError:be,components:pe,componentsProps:Ce});return(0,R.jsx)(cr,t({displayStaticWrapperAs:ue,components:pe,componentsProps:Ce},Be,{children:(0,R.jsx)(tn,t({},Ne,{toolbarTitle:j.label||j.toolbarTitle,ToolbarComponent:ve,DateInputProps:Ye,components:pe,componentsProps:Ce},me))}))}),dr=["desktopModeMediaQuery","DialogProps","PopperProps","TransitionComponent"],Uo=o.forwardRef(function(C,Q){const j=(0,f.Z)({props:C,name:"MuiTimePicker"}),{desktopModeMediaQuery:ue="@media (pointer: fine)",DialogProps:ve,PopperProps:pe,TransitionComponent:Ce}=j,me=a(j,dr);return(0,Rr.Z)(ue)?(0,R.jsx)(Wo,t({ref:Q,PopperProps:pe,TransitionComponent:Ce},me)):(0,R.jsx)(Ho,t({ref:Q,DialogProps:ve},me))}),wi=H({previousMonth:"Vorige maand",nextMonth:"Volgende maand",openPreviousView:"open vorige view",openNextView:"open volgende view",calendarViewSwitchingButtonAriaLabel:c=>c==="year"?"jaarweergave is geopend, schakel over naar kalenderweergave":"kalenderweergave is geopend, switch naar jaarweergave",start:"Start",end:"Einde",cancelButtonLabel:"Annuleren",clearButtonLabel:"Resetten",okButtonLabel:"OK",todayButtonLabel:"Vandaag",clockLabelText:(c,C,Q)=>`Selecteer ${c}. ${C===null?"Geen tijd geselecteerd":`Geselecteerde tijd is ${Q.format(C,"fullTime")}`}`,hoursClockNumberText:c=>`${c} uren`,minutesClockNumberText:c=>`${c} minuten`,secondsClockNumberText:c=>`${c} seconden`,openDatePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`Kies datum, geselecteerde datum is ${C.format(C.date(c),"fullDate")}`:"Kies datum",openTimePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`Kies tijd, geselecteerde tijd is ${C.format(C.date(c),"fullTime")}`:"Kies tijd",timeTableLabel:"kies tijd",dateTableLabel:"kies datum"}),Oi=H({previousMonth:"M\xEAs anterior",nextMonth:"Pr\xF3ximo m\xEAs",openPreviousView:"Abrir pr\xF3xima sele\xE7\xE3o",openNextView:"Abrir sele\xE7\xE3o anterior",calendarViewSwitchingButtonAriaLabel:c=>c==="year"?"Sele\xE7\xE3o de ano est\xE1 aberta, alternando para sele\xE7\xE3o de calend\xE1rio":"Sele\xE7\xE3o de calend\xE1rios est\xE1 aberta, alternando para sele\xE7\xE3o de ano",start:"In\xEDcio",end:"Fim",cancelButtonLabel:"Cancelar",clearButtonLabel:"Limpar",okButtonLabel:"OK",todayButtonLabel:"Hoje",clockLabelText:(c,C,Q)=>`Selecione ${c}. ${C===null?"Hora n\xE3o selecionada":`Selecionado a hora ${Q.format(C,"fullTime")}`}`,hoursClockNumberText:c=>`${c} horas`,minutesClockNumberText:c=>`${c} minutos`,secondsClockNumberText:c=>`${c} segundos`,openDatePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`Escolha uma data, data selecionada ${C.format(C.date(c),"fullDate")}`:"Escolha uma data",openTimePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`Escolha uma hora, hora selecionada ${C.format(C.date(c),"fullTime")}`:"Escolha uma hora",timeTableLabel:"escolha uma hora",dateTableLabel:"escolha uma data"}),Go=H({previousMonth:"\xD6nceki ay",nextMonth:"Sonraki ay",openPreviousView:"sonraki g\xF6r\xFCn\xFCm",openNextView:"\xF6nceki g\xF6r\xFCn\xFCm",start:"Ba\u015Flang\u0131\xE7",end:"Biti\u015F",cancelButtonLabel:"iptal",clearButtonLabel:"Temizle",okButtonLabel:"Tamam",todayButtonLabel:"Bug\xFCn"}),Ri=H({previousMonth:"Letzter Monat",nextMonth:"N\xE4chster Monat",openPreviousView:"Letzte Ansicht \xF6ffnen",openNextView:"N\xE4chste Ansicht \xF6ffnen",start:"Beginn",end:"Ende",cancelButtonLabel:"Abbrechen",clearButtonLabel:"L\xF6schen",okButtonLabel:"OK",todayButtonLabel:"Heute"}),Ai=H({previousMonth:"Mois pr\xE9c\xE9dent",nextMonth:"Mois suivant",openPreviousView:"Ouvrir la vue pr\xE9c\xE9dente",openNextView:"Ouvrir la vue suivante",start:"D\xE9but",end:"Fin",cancelButtonLabel:"Annuler",clearButtonLabel:"Vider",okButtonLabel:"OK",todayButtonLabel:"Aujourd'hui"}),Ii=H({previousMonth:"F\xF6reg\xE5ende m\xE5nad",nextMonth:"N\xE4sta m\xE5nad",openPreviousView:"\xF6ppna f\xF6reg\xE5ende vy",openNextView:"\xF6ppna n\xE4sta vy",calendarViewSwitchingButtonAriaLabel:c=>c==="year"?"\xE5rsvyn \xE4r \xF6ppen, byt till kalendervy":"kalendervyn \xE4r \xF6ppen, byt till \xE5rsvy",start:"Start",end:"Slut",cancelButtonLabel:"Avbryt",clearButtonLabel:"Rensa",okButtonLabel:"OK",todayButtonLabel:"Idag",clockLabelText:(c,C,Q)=>`Select ${c}. ${C===null?"Ingen tid vald":`Vald tid \xE4r ${Q.format(C,"fullTime")}`}`,hoursClockNumberText:c=>`${c} timmar`,minutesClockNumberText:c=>`${c} minuter`,secondsClockNumberText:c=>`${c} sekunder`,openDatePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`V\xE4lj datum, valt datum \xE4r ${C.format(C.date(c),"fullDate")}`:"V\xE4lj datum",openTimePickerDialogue:(c,C)=>c&&C.isValid(C.date(c))?`V\xE4lj tid, vald tid \xE4r ${C.format(C.date(c),"fullTime")}`:"V\xE4lj tid",timeTableLabel:"v\xE4lj tid",dateTableLabel:"v\xE4lj datum"});/** @license MUI v5.0.0-beta.0 + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */},83873:function(l){/*! + * Cropper.js v1.5.12 + * https://fengyuanchen.github.io/cropperjs + * + * Copyright 2015-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2021-06-12T08:00:17.411Z + */(function(r,e){l.exports=e()})(this,function(){"use strict";function r(fe,A){var $=Object.keys(fe);if(Object.getOwnPropertySymbols){var z=Object.getOwnPropertySymbols(fe);A&&(z=z.filter(function(Pe){return Object.getOwnPropertyDescriptor(fe,Pe).enumerable})),$.push.apply($,z)}return $}function e(fe){for(var A=1;Afe.length)&&(A=fe.length);for(var $=0,z=new Array(A);$
',ua=Number.isNaN||D.isNaN;function Et(fe){return typeof fe=="number"&&!ua(fe)}var ta=function(A){return A>0&&A<1/0};function ca(fe){return typeof fe=="undefined"}function Lt(fe){return t(fe)==="object"&&fe!==null}var wt=Object.prototype.hasOwnProperty;function Qe(fe){if(!Lt(fe))return!1;try{var A=fe.constructor,$=A.prototype;return A&&$&&wt.call($,"isPrototypeOf")}catch(z){return!1}}function qt(fe){return typeof fe=="function"}var _t=Array.prototype.slice;function pa(fe){return Array.from?Array.from(fe):_t.call(fe)}function Mt(fe,A){return fe&&qt(A)&&(Array.isArray(fe)||Et(fe.length)?pa(fe).forEach(function($,z){A.call(fe,$,z,fe)}):Lt(fe)&&Object.keys(fe).forEach(function($){A.call(fe,fe[$],$,fe)})),fe}var te=Object.assign||function(A){for(var $=arguments.length,z=new Array($>1?$-1:0),Pe=1;Pe<$;Pe++)z[Pe-1]=arguments[Pe];return Lt(A)&&z.length>0&&z.forEach(function(ye){Lt(ye)&&Object.keys(ye).forEach(function(De){A[De]=ye[De]})}),A},ge=/\.\d*(?:0|9){12}\d*$/;function Ke(fe){var A=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1e11;return ge.test(fe)?Math.round(fe*A)/A:fe}var Ge=/^width|height|left|top|marginLeft|marginTop$/;function B(fe,A){var $=fe.style;Mt(A,function(z,Pe){Ge.test(Pe)&&Et(z)&&(z="".concat(z,"px")),$[Pe]=z})}function ee(fe,A){return fe.classList?fe.classList.contains(A):fe.className.indexOf(A)>-1}function Oe(fe,A){if(!!A){if(Et(fe.length)){Mt(fe,function(z){Oe(z,A)});return}if(fe.classList){fe.classList.add(A);return}var $=fe.className.trim();$?$.indexOf(A)<0&&(fe.className="".concat($," ").concat(A)):fe.className=A}}function Me(fe,A){if(!!A){if(Et(fe.length)){Mt(fe,function($){Me($,A)});return}if(fe.classList){fe.classList.remove(A);return}fe.className.indexOf(A)>=0&&(fe.className=fe.className.replace(A,""))}}function He(fe,A,$){if(!!A){if(Et(fe.length)){Mt(fe,function(z){He(z,A,$)});return}$?Oe(fe,A):Me(fe,A)}}var rt=/([a-z\d])([A-Z])/g;function bt(fe){return fe.replace(rt,"$1-$2").toLowerCase()}function ft(fe,A){return Lt(fe[A])?fe[A]:fe.dataset?fe.dataset[A]:fe.getAttribute("data-".concat(bt(A)))}function gt(fe,A,$){Lt($)?fe[A]=$:fe.dataset?fe.dataset[A]=$:fe.setAttribute("data-".concat(bt(A)),$)}function zt(fe,A){if(Lt(fe[A]))try{delete fe[A]}catch($){fe[A]=void 0}else if(fe.dataset)try{delete fe.dataset[A]}catch($){fe.dataset[A]=void 0}else fe.removeAttribute("data-".concat(bt(A)))}var Ot=/\s\s*/,Ft=function(){var fe=!1;if(M){var A=!1,$=function(){},z=Object.defineProperty({},"once",{get:function(){return fe=!0,A},set:function(ye){A=ye}});D.addEventListener("test",$,z),D.removeEventListener("test",$,z)}return fe}();function Rt(fe,A,$){var z=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Pe=$;A.trim().split(Ot).forEach(function(ye){if(!Ft){var De=fe.listeners;De&&De[ye]&&De[ye][$]&&(Pe=De[ye][$],delete De[ye][$],Object.keys(De[ye]).length===0&&delete De[ye],Object.keys(De).length===0&&delete fe.listeners)}fe.removeEventListener(ye,Pe,z)})}function ht(fe,A,$){var z=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{},Pe=$;A.trim().split(Ot).forEach(function(ye){if(z.once&&!Ft){var De=fe.listeners,Fe=De===void 0?{}:De;Pe=function(){delete Fe[ye][$],fe.removeEventListener(ye,Pe,z);for(var $e=arguments.length,Ve=new Array($e),Ue=0;Ue<$e;Ue++)Ve[Ue]=arguments[Ue];$.apply(fe,Ve)},Fe[ye]||(Fe[ye]={}),Fe[ye][$]&&fe.removeEventListener(ye,Fe[ye][$],z),Fe[ye][$]=Pe,fe.listeners=Fe}fe.addEventListener(ye,Pe,z)})}function Yt(fe,A,$){var z;return qt(Event)&&qt(CustomEvent)?z=new CustomEvent(A,{detail:$,bubbles:!0,cancelable:!0}):(z=document.createEvent("CustomEvent"),z.initCustomEvent(A,!0,!0,$)),fe.dispatchEvent(z)}function xa(fe){var A=fe.getBoundingClientRect();return{left:A.left+(window.pageXOffset-document.documentElement.clientLeft),top:A.top+(window.pageYOffset-document.documentElement.clientTop)}}var Na=D.location,Aa=/^(\w+:)\/\/([^:/?#]*):?(\d*)/i;function Ba(fe){var A=fe.match(Aa);return A!==null&&(A[1]!==Na.protocol||A[2]!==Na.hostname||A[3]!==Na.port)}function cn(fe){var A="timestamp=".concat(new Date().getTime());return fe+(fe.indexOf("?")===-1?"?":"&")+A}function La(fe){var A=fe.rotate,$=fe.scaleX,z=fe.scaleY,Pe=fe.translateX,ye=fe.translateY,De=[];Et(Pe)&&Pe!==0&&De.push("translateX(".concat(Pe,"px)")),Et(ye)&&ye!==0&&De.push("translateY(".concat(ye,"px)")),Et(A)&&A!==0&&De.push("rotate(".concat(A,"deg)")),Et($)&&$!==1&&De.push("scaleX(".concat($,")")),Et(z)&&z!==1&&De.push("scaleY(".concat(z,")"));var Fe=De.length?De.join(" "):"none";return{WebkitTransform:Fe,msTransform:Fe,transform:Fe}}function on(fe){var A=e({},fe),$=0;return Mt(fe,function(z,Pe){delete A[Pe],Mt(A,function(ye){var De=Math.abs(z.startX-ye.startX),Fe=Math.abs(z.startY-ye.startY),_e=Math.abs(z.endX-ye.endX),$e=Math.abs(z.endY-ye.endY),Ve=Math.sqrt(De*De+Fe*Fe),Ue=Math.sqrt(_e*_e+$e*$e),Ze=(Ue-Ve)/Ve;Math.abs(Ze)>Math.abs($)&&($=Ze)})}),$}function Oa(fe,A){var $=fe.pageX,z=fe.pageY,Pe={endX:$,endY:z};return A?Pe:e({startX:$,startY:z},Pe)}function vr(fe){var A=0,$=0,z=0;return Mt(fe,function(Pe){var ye=Pe.startX,De=Pe.startY;A+=ye,$+=De,z+=1}),A/=z,$/=z,{pageX:A,pageY:$}}function Ua(fe){var A=fe.aspectRatio,$=fe.height,z=fe.width,Pe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"contain",ye=ta(z),De=ta($);if(ye&&De){var Fe=$*A;Pe==="contain"&&Fe>z||Pe==="cover"&&Fe90?{width:_e,height:Fe}:{width:Fe,height:_e}}function qn(fe,A,$,z){var Pe=A.aspectRatio,ye=A.naturalWidth,De=A.naturalHeight,Fe=A.rotate,_e=Fe===void 0?0:Fe,$e=A.scaleX,Ve=$e===void 0?1:$e,Ue=A.scaleY,Ze=Ue===void 0?1:Ue,Gt=$.aspectRatio,Ut=$.naturalWidth,na=$.naturalHeight,Jt=z.fillColor,ra=Jt===void 0?"transparent":Jt,fa=z.imageSmoothingEnabled,da=fa===void 0?!0:fa,Fa=z.imageSmoothingQuality,Sa=Fa===void 0?"low":Fa,st=z.maxWidth,Kt=st===void 0?1/0:st,oa=z.maxHeight,ya=oa===void 0?1/0:oa,Ra=z.minWidth,Xa=Ra===void 0?0:Ra,Ga=z.minHeight,Ka=Ga===void 0?0:Ga,Ma=document.createElement("canvas"),ba=Ma.getContext("2d"),Qa=Ua({aspectRatio:Gt,width:Kt,height:ya}),za=Ua({aspectRatio:Gt,width:Xa,height:Ka},"cover"),qa=Math.min(Qa.width,Math.max(za.width,Ut)),wn=Math.min(Qa.height,Math.max(za.height,na)),On=Ua({aspectRatio:Pe,width:Kt,height:ya}),tr=Ua({aspectRatio:Pe,width:Xa,height:Ka},"cover"),_a=Math.min(On.width,Math.max(tr.width,ye)),ln=Math.min(On.height,Math.max(tr.height,De)),Dr=[-_a/2,-ln/2,_a,ln];return Ma.width=Ke(qa),Ma.height=Ke(wn),ba.fillStyle=ra,ba.fillRect(0,0,qa,wn),ba.save(),ba.translate(qa/2,wn/2),ba.rotate(_e*Math.PI/180),ba.scale(Ve,Ze),ba.imageSmoothingEnabled=da,ba.imageSmoothingQuality=Sa,ba.drawImage.apply(ba,[fe].concat(T(Dr.map(function(gn){return Math.floor(Ke(gn))})))),ba.restore(),Ma}var Dn=String.fromCharCode;function gr(fe,A,$){var z="";$+=A;for(var Pe=A;Pe<$;Pe+=1)z+=Dn(fe.getUint8(Pe));return z}var yr=/^data:.*,/;function br(fe){var A=fe.replace(yr,""),$=atob(A),z=new ArrayBuffer($.length),Pe=new Uint8Array(z);return Mt(Pe,function(ye,De){Pe[De]=$.charCodeAt(De)}),z}function Cr(fe,A){for(var $=[],z=8192,Pe=new Uint8Array(fe);Pe.length>0;)$.push(Dn.apply(null,pa(Pe.subarray(0,z)))),Pe=Pe.subarray(z);return"data:".concat(A,";base64,").concat(btoa($.join("")))}function vn(fe){var A=new DataView(fe),$;try{var z,Pe,ye;if(A.getUint8(0)===255&&A.getUint8(1)===216)for(var De=A.byteLength,Fe=2;Fe+1=8&&(ye=$e+Ue)}}}if(ye){var Ze=A.getUint16(ye,z),Gt,Ut;for(Ut=0;Ut=0?ye:nt),height:Math.max(z.offsetHeight,De>=0?De:mt)};this.containerData=Fe,B(Pe,{width:Fe.width,height:Fe.height}),Oe(A,p),Me(Pe,p)},initCanvas:function(){var A=this.containerData,$=this.imageData,z=this.options.viewMode,Pe=Math.abs($.rotate)%180===90,ye=Pe?$.naturalHeight:$.naturalWidth,De=Pe?$.naturalWidth:$.naturalHeight,Fe=ye/De,_e=A.width,$e=A.height;A.height*Fe>A.width?z===3?_e=A.height*Fe:$e=A.width/Fe:z===3?$e=A.width/Fe:_e=A.height*Fe;var Ve={aspectRatio:Fe,naturalWidth:ye,naturalHeight:De,width:_e,height:$e};this.canvasData=Ve,this.limited=z===1||z===2,this.limitCanvas(!0,!0),Ve.width=Math.min(Math.max(Ve.width,Ve.minWidth),Ve.maxWidth),Ve.height=Math.min(Math.max(Ve.height,Ve.minHeight),Ve.maxHeight),Ve.left=(A.width-Ve.width)/2,Ve.top=(A.height-Ve.height)/2,Ve.oldLeft=Ve.left,Ve.oldTop=Ve.top,this.initialCanvasData=te({},Ve)},limitCanvas:function(A,$){var z=this.options,Pe=this.containerData,ye=this.canvasData,De=this.cropBoxData,Fe=z.viewMode,_e=ye.aspectRatio,$e=this.cropped&&De;if(A){var Ve=Number(z.minCanvasWidth)||0,Ue=Number(z.minCanvasHeight)||0;Fe>1?(Ve=Math.max(Ve,Pe.width),Ue=Math.max(Ue,Pe.height),Fe===3&&(Ue*_e>Ve?Ve=Ue*_e:Ue=Ve/_e)):Fe>0&&(Ve?Ve=Math.max(Ve,$e?De.width:0):Ue?Ue=Math.max(Ue,$e?De.height:0):$e&&(Ve=De.width,Ue=De.height,Ue*_e>Ve?Ve=Ue*_e:Ue=Ve/_e));var Ze=Ua({aspectRatio:_e,width:Ve,height:Ue});Ve=Ze.width,Ue=Ze.height,ye.minWidth=Ve,ye.minHeight=Ue,ye.maxWidth=1/0,ye.maxHeight=1/0}if($)if(Fe>($e?0:1)){var Gt=Pe.width-ye.width,Ut=Pe.height-ye.height;ye.minLeft=Math.min(0,Gt),ye.minTop=Math.min(0,Ut),ye.maxLeft=Math.max(0,Gt),ye.maxTop=Math.max(0,Ut),$e&&this.limited&&(ye.minLeft=Math.min(De.left,De.left+(De.width-ye.width)),ye.minTop=Math.min(De.top,De.top+(De.height-ye.height)),ye.maxLeft=De.left,ye.maxTop=De.top,Fe===2&&(ye.width>=Pe.width&&(ye.minLeft=Math.min(0,Gt),ye.maxLeft=Math.max(0,Gt)),ye.height>=Pe.height&&(ye.minTop=Math.min(0,Ut),ye.maxTop=Math.max(0,Ut))))}else ye.minLeft=-ye.width,ye.minTop=-ye.height,ye.maxLeft=Pe.width,ye.maxTop=Pe.height},renderCanvas:function(A,$){var z=this.canvasData,Pe=this.imageData;if($){var ye=Ja({width:Pe.naturalWidth*Math.abs(Pe.scaleX||1),height:Pe.naturalHeight*Math.abs(Pe.scaleY||1),degree:Pe.rotate||0}),De=ye.width,Fe=ye.height,_e=z.width*(De/z.naturalWidth),$e=z.height*(Fe/z.naturalHeight);z.left-=(_e-z.width)/2,z.top-=($e-z.height)/2,z.width=_e,z.height=$e,z.aspectRatio=De/Fe,z.naturalWidth=De,z.naturalHeight=Fe,this.limitCanvas(!0,!1)}(z.width>z.maxWidth||z.widthz.maxHeight||z.height$.width?ye.height=ye.width/z:ye.width=ye.height*z),this.cropBoxData=ye,this.limitCropBox(!0,!0),ye.width=Math.min(Math.max(ye.width,ye.minWidth),ye.maxWidth),ye.height=Math.min(Math.max(ye.height,ye.minHeight),ye.maxHeight),ye.width=Math.max(ye.minWidth,ye.width*Pe),ye.height=Math.max(ye.minHeight,ye.height*Pe),ye.left=$.left+($.width-ye.width)/2,ye.top=$.top+($.height-ye.height)/2,ye.oldLeft=ye.left,ye.oldTop=ye.top,this.initialCropBoxData=te({},ye)},limitCropBox:function(A,$){var z=this.options,Pe=this.containerData,ye=this.canvasData,De=this.cropBoxData,Fe=this.limited,_e=z.aspectRatio;if(A){var $e=Number(z.minCropBoxWidth)||0,Ve=Number(z.minCropBoxHeight)||0,Ue=Fe?Math.min(Pe.width,ye.width,ye.width+ye.left,Pe.width-ye.left):Pe.width,Ze=Fe?Math.min(Pe.height,ye.height,ye.height+ye.top,Pe.height-ye.top):Pe.height;$e=Math.min($e,Pe.width),Ve=Math.min(Ve,Pe.height),_e&&($e&&Ve?Ve*_e>$e?Ve=$e/_e:$e=Ve*_e:$e?Ve=$e/_e:Ve&&($e=Ve*_e),Ze*_e>Ue?Ze=Ue/_e:Ue=Ze*_e),De.minWidth=Math.min($e,Ue),De.minHeight=Math.min(Ve,Ze),De.maxWidth=Ue,De.maxHeight=Ze}$&&(Fe?(De.minLeft=Math.max(0,ye.left),De.minTop=Math.max(0,ye.top),De.maxLeft=Math.min(Pe.width,ye.left+ye.width)-De.width,De.maxTop=Math.min(Pe.height,ye.top+ye.height)-De.height):(De.minLeft=0,De.minTop=0,De.maxLeft=Pe.width-De.width,De.maxTop=Pe.height-De.height))},renderCropBox:function(){var A=this.options,$=this.containerData,z=this.cropBoxData;(z.width>z.maxWidth||z.widthz.maxHeight||z.height=$.width&&z.height>=$.height?_:R),B(this.cropBox,te({width:z.width,height:z.height},La({translateX:z.left,translateY:z.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Yt(this.element,ie,this.getData())}},_n={initPreview:function(){var A=this.element,$=this.crossOrigin,z=this.options.preview,Pe=$?this.crossOriginUrl:this.url,ye=A.alt||"The image to preview",De=document.createElement("img");if($&&(De.crossOrigin=$),De.src=Pe,De.alt=ye,this.viewBox.appendChild(De),this.viewBoxImage=De,!!z){var Fe=z;typeof z=="string"?Fe=A.ownerDocument.querySelectorAll(z):z.querySelector&&(Fe=[z]),this.previews=Fe,Mt(Fe,function(_e){var $e=document.createElement("img");gt(_e,se,{width:_e.offsetWidth,height:_e.offsetHeight,html:_e.innerHTML}),$&&($e.crossOrigin=$),$e.src=Pe,$e.alt=ye,$e.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',_e.innerHTML="",_e.appendChild($e)})}},resetPreview:function(){Mt(this.previews,function(A){var $=ft(A,se);B(A,{width:$.width,height:$.height}),A.innerHTML=$.html,zt(A,se)})},preview:function(){var A=this.imageData,$=this.canvasData,z=this.cropBoxData,Pe=z.width,ye=z.height,De=A.width,Fe=A.height,_e=z.left-$.left-A.left,$e=z.top-$.top-A.top;!this.cropped||this.disabled||(B(this.viewBoxImage,te({width:De,height:Fe},La(te({translateX:-_e,translateY:-$e},A)))),Mt(this.previews,function(Ve){var Ue=ft(Ve,se),Ze=Ue.width,Gt=Ue.height,Ut=Ze,na=Gt,Jt=1;Pe&&(Jt=Ze/Pe,na=ye*Jt),ye&&na>Gt&&(Jt=Gt/ye,Ut=Pe*Jt,na=Gt),B(Ve,{width:Ut,height:na}),B(Ve.getElementsByTagName("img")[0],te({width:De*Jt,height:Fe*Jt},La(te({translateX:-_e*Jt,translateY:-$e*Jt},A))))}))}},er={bind:function(){var A=this.element,$=this.options,z=this.cropper;qt($.cropstart)&&ht(A,Ee,$.cropstart),qt($.cropmove)&&ht(A,le,$.cropmove),qt($.cropend)&&ht(A,Ae,$.cropend),qt($.crop)&&ht(A,ie,$.crop),qt($.zoom)&&ht(A,ce,$.zoom),ht(z,it,this.onCropStart=this.cropStart.bind(this)),$.zoomable&&$.zoomOnWheel&&ht(z,ne,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),$.toggleDragModeOnDblclick&&ht(z,Se,this.onDblclick=this.dblclick.bind(this)),ht(A.ownerDocument,N,this.onCropMove=this.cropMove.bind(this)),ht(A.ownerDocument,q,this.onCropEnd=this.cropEnd.bind(this)),$.responsive&&ht(window,he,this.onResize=this.resize.bind(this))},unbind:function(){var A=this.element,$=this.options,z=this.cropper;qt($.cropstart)&&Rt(A,Ee,$.cropstart),qt($.cropmove)&&Rt(A,le,$.cropmove),qt($.cropend)&&Rt(A,Ae,$.cropend),qt($.crop)&&Rt(A,ie,$.crop),qt($.zoom)&&Rt(A,ce,$.zoom),Rt(z,it,this.onCropStart),$.zoomable&&$.zoomOnWheel&&Rt(z,ne,this.onWheel,{passive:!1,capture:!0}),$.toggleDragModeOnDblclick&&Rt(z,Se,this.onDblclick),Rt(A.ownerDocument,N,this.onCropMove),Rt(A.ownerDocument,q,this.onCropEnd),$.responsive&&Rt(window,he,this.onResize)}},Er={resize:function(){if(!this.disabled){var A=this.options,$=this.container,z=this.containerData,Pe=$.offsetWidth/z.width,ye=$.offsetHeight/z.height,De=Math.abs(Pe-1)>Math.abs(ye-1)?Pe:ye;if(De!==1){var Fe,_e;A.restore&&(Fe=this.getCanvasData(),_e=this.getCropBoxData()),this.render(),A.restore&&(this.setCanvasData(Mt(Fe,function($e,Ve){Fe[Ve]=$e*De})),this.setCropBoxData(Mt(_e,function($e,Ve){_e[Ve]=$e*De})))}}},dblclick:function(){this.disabled||this.options.dragMode===Z||this.setDragMode(ee(this.dragBox,S)?Te:we)},wheel:function(A){var $=this,z=Number(this.options.wheelZoomRatio)||.1,Pe=1;this.disabled||(A.preventDefault(),!this.wheeling&&(this.wheeling=!0,setTimeout(function(){$.wheeling=!1},50),A.deltaY?Pe=A.deltaY>0?1:-1:A.wheelDelta?Pe=-A.wheelDelta/120:A.detail&&(Pe=A.detail>0?1:-1),this.zoom(-Pe*z,A)))},cropStart:function(A){var $=A.buttons,z=A.button;if(!(this.disabled||(A.type==="mousedown"||A.type==="pointerdown"&&A.pointerType==="mouse")&&(Et($)&&$!==1||Et(z)&&z!==0||A.ctrlKey))){var Pe=this.options,ye=this.pointers,De;A.changedTouches?Mt(A.changedTouches,function(Fe){ye[Fe.identifier]=Oa(Fe)}):ye[A.pointerId||0]=Oa(A),Object.keys(ye).length>1&&Pe.zoomable&&Pe.zoomOnTouch?De=X:De=ft(A.target,Y),!!We.test(De)&&Yt(this.element,Ee,{originalEvent:A,action:De})!==!1&&(A.preventDefault(),this.action=De,this.cropping=!1,De===ae&&(this.cropping=!0,Oe(this.dragBox,w)))}},cropMove:function(A){var $=this.action;if(!(this.disabled||!$)){var z=this.pointers;A.preventDefault(),Yt(this.element,le,{originalEvent:A,action:$})!==!1&&(A.changedTouches?Mt(A.changedTouches,function(Pe){te(z[Pe.identifier]||{},Oa(Pe,!0))}):te(z[A.pointerId||0]||{},Oa(A,!0)),this.change(A))}},cropEnd:function(A){if(!this.disabled){var $=this.action,z=this.pointers;A.changedTouches?Mt(A.changedTouches,function(Pe){delete z[Pe.identifier]}):delete z[A.pointerId||0],$&&(A.preventDefault(),Object.keys(z).length||(this.action=""),this.cropping&&(this.cropping=!1,He(this.dragBox,w,this.cropped&&this.options.modal)),Yt(this.element,Ae,{originalEvent:A,action:$}))}}},ja={change:function(A){var $=this.options,z=this.canvasData,Pe=this.containerData,ye=this.cropBoxData,De=this.pointers,Fe=this.action,_e=$.aspectRatio,$e=ye.left,Ve=ye.top,Ue=ye.width,Ze=ye.height,Gt=$e+Ue,Ut=Ve+Ze,na=0,Jt=0,ra=Pe.width,fa=Pe.height,da=!0,Fa;!_e&&A.shiftKey&&(_e=Ue&&Ze?Ue/Ze:1),this.limited&&(na=ye.minLeft,Jt=ye.minTop,ra=na+Math.min(Pe.width,z.width,z.left+z.width),fa=Jt+Math.min(Pe.height,z.height,z.top+z.height));var Sa=De[Object.keys(De)[0]],st={x:Sa.endX-Sa.startX,y:Sa.endY-Sa.startY},Kt=function(ya){switch(ya){case K:Gt+st.x>ra&&(st.x=ra-Gt);break;case H:$e+st.xfa&&(st.y=fa-Ut);break}};switch(Fe){case R:$e+=st.x,Ve+=st.y;break;case K:if(st.x>=0&&(Gt>=ra||_e&&(Ve<=Jt||Ut>=fa))){da=!1;break}Kt(K),Ue+=st.x,Ue<0&&(Fe=H,Ue=-Ue,$e-=Ue),_e&&(Ze=Ue/_e,Ve+=(ye.height-Ze)/2);break;case G:if(st.y<=0&&(Ve<=Jt||_e&&($e<=na||Gt>=ra))){da=!1;break}Kt(G),Ze-=st.y,Ve+=st.y,Ze<0&&(Fe=L,Ze=-Ze,Ve-=Ze),_e&&(Ue=Ze*_e,$e+=(ye.width-Ue)/2);break;case H:if(st.x<=0&&($e<=na||_e&&(Ve<=Jt||Ut>=fa))){da=!1;break}Kt(H),Ue-=st.x,$e+=st.x,Ue<0&&(Fe=K,Ue=-Ue,$e-=Ue),_e&&(Ze=Ue/_e,Ve+=(ye.height-Ze)/2);break;case L:if(st.y>=0&&(Ut>=fa||_e&&($e<=na||Gt>=ra))){da=!1;break}Kt(L),Ze+=st.y,Ze<0&&(Fe=G,Ze=-Ze,Ve-=Ze),_e&&(Ue=Ze*_e,$e+=(ye.width-Ue)/2);break;case W:if(_e){if(st.y<=0&&(Ve<=Jt||Gt>=ra)){da=!1;break}Kt(G),Ze-=st.y,Ve+=st.y,Ue=Ze*_e}else Kt(G),Kt(K),st.x>=0?GtJt&&(Ze-=st.y,Ve+=st.y):(Ze-=st.y,Ve+=st.y);Ue<0&&Ze<0?(Fe=P,Ze=-Ze,Ue=-Ue,Ve-=Ze,$e-=Ue):Ue<0?(Fe=I,Ue=-Ue,$e-=Ue):Ze<0&&(Fe=y,Ze=-Ze,Ve-=Ze);break;case I:if(_e){if(st.y<=0&&(Ve<=Jt||$e<=na)){da=!1;break}Kt(G),Ze-=st.y,Ve+=st.y,Ue=Ze*_e,$e+=ye.width-Ue}else Kt(G),Kt(H),st.x<=0?$e>na?(Ue-=st.x,$e+=st.x):st.y<=0&&Ve<=Jt&&(da=!1):(Ue-=st.x,$e+=st.x),st.y<=0?Ve>Jt&&(Ze-=st.y,Ve+=st.y):(Ze-=st.y,Ve+=st.y);Ue<0&&Ze<0?(Fe=y,Ze=-Ze,Ue=-Ue,Ve-=Ze,$e-=Ue):Ue<0?(Fe=W,Ue=-Ue,$e-=Ue):Ze<0&&(Fe=P,Ze=-Ze,Ve-=Ze);break;case P:if(_e){if(st.x<=0&&($e<=na||Ut>=fa)){da=!1;break}Kt(H),Ue-=st.x,$e+=st.x,Ze=Ue/_e}else Kt(L),Kt(H),st.x<=0?$e>na?(Ue-=st.x,$e+=st.x):st.y>=0&&Ut>=fa&&(da=!1):(Ue-=st.x,$e+=st.x),st.y>=0?Ut=0&&(Gt>=ra||Ut>=fa)){da=!1;break}Kt(K),Ue+=st.x,Ze=Ue/_e}else Kt(L),Kt(K),st.x>=0?Gt=0&&Ut>=fa&&(da=!1):Ue+=st.x,st.y>=0?Ut0?Fe=st.y>0?y:W:st.x<0&&($e-=Ue,Fe=st.y>0?P:I),st.y<0&&(Ve-=Ze),this.cropped||(Me(this.cropBox,p),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0));break}da&&(ye.width=Ue,ye.height=Ze,ye.left=$e,ye.top=Ve,this.action=Fe,this.renderCropBox()),Mt(De,function(oa){oa.startX=oa.endX,oa.startY=oa.endY})}},Tr={crop:function(){return this.ready&&!this.cropped&&!this.disabled&&(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Oe(this.dragBox,w),Me(this.cropBox,p),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=te({},this.initialImageData),this.canvasData=te({},this.initialCanvasData),this.cropBoxData=te({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(te(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Me(this.dragBox,w),Oe(this.cropBox,p)),this},replace:function(A){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return!this.disabled&&A&&(this.isImg&&(this.element.src=A),$?(this.url=A,this.image.src=A,this.ready&&(this.viewBoxImage.src=A,Mt(this.previews,function(z){z.getElementsByTagName("img")[0].src=A}))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(A))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Me(this.cropper,k)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Oe(this.cropper,k)),this},destroy:function(){var A=this.element;return A[J]?(A[J]=void 0,this.isImg&&this.replaced&&(A.src=this.originalUrl),this.uncreate(),this):this},move:function(A){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:A,z=this.canvasData,Pe=z.left,ye=z.top;return this.moveTo(ca(A)?A:Pe+Number(A),ca($)?$:ye+Number($))},moveTo:function(A){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:A,z=this.canvasData,Pe=!1;return A=Number(A),$=Number($),this.ready&&!this.disabled&&this.options.movable&&(Et(A)&&(z.left=A,Pe=!0),Et($)&&(z.top=$,Pe=!0),Pe&&this.renderCanvas(!0)),this},zoom:function(A,$){var z=this.canvasData;return A=Number(A),A<0?A=1/(1-A):A=1+A,this.zoomTo(z.width*A/z.naturalWidth,null,$)},zoomTo:function(A,$,z){var Pe=this.options,ye=this.canvasData,De=ye.width,Fe=ye.height,_e=ye.naturalWidth,$e=ye.naturalHeight;if(A=Number(A),A>=0&&this.ready&&!this.disabled&&Pe.zoomable){var Ve=_e*A,Ue=$e*A;if(Yt(this.element,ce,{ratio:A,oldRatio:De/_e,originalEvent:z})===!1)return this;if(z){var Ze=this.pointers,Gt=xa(this.cropper),Ut=Ze&&Object.keys(Ze).length?vr(Ze):{pageX:z.pageX,pageY:z.pageY};ye.left-=(Ve-De)*((Ut.pageX-Gt.left-ye.left)/De),ye.top-=(Ue-Fe)*((Ut.pageY-Gt.top-ye.top)/Fe)}else Qe($)&&Et($.x)&&Et($.y)?(ye.left-=(Ve-De)*(($.x-ye.left)/De),ye.top-=(Ue-Fe)*(($.y-ye.top)/Fe)):(ye.left-=(Ve-De)/2,ye.top-=(Ue-Fe)/2);ye.width=Ve,ye.height=Ue,this.renderCanvas(!0)}return this},rotate:function(A){return this.rotateTo((this.imageData.rotate||0)+Number(A))},rotateTo:function(A){return A=Number(A),Et(A)&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=A%360,this.renderCanvas(!0,!0)),this},scaleX:function(A){var $=this.imageData.scaleY;return this.scale(A,Et($)?$:1)},scaleY:function(A){var $=this.imageData.scaleX;return this.scale(Et($)?$:1,A)},scale:function(A){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:A,z=this.imageData,Pe=!1;return A=Number(A),$=Number($),this.ready&&!this.disabled&&this.options.scalable&&(Et(A)&&(z.scaleX=A,Pe=!0),Et($)&&(z.scaleY=$,Pe=!0),Pe&&this.renderCanvas(!0,!0)),this},getData:function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1,$=this.options,z=this.imageData,Pe=this.canvasData,ye=this.cropBoxData,De;if(this.ready&&this.cropped){De={x:ye.left-Pe.left,y:ye.top-Pe.top,width:ye.width,height:ye.height};var Fe=z.width/z.naturalWidth;if(Mt(De,function(Ve,Ue){De[Ue]=Ve/Fe}),A){var _e=Math.round(De.y+De.height),$e=Math.round(De.x+De.width);De.x=Math.round(De.x),De.y=Math.round(De.y),De.width=$e-De.x,De.height=_e-De.y}}else De={x:0,y:0,width:0,height:0};return $.rotatable&&(De.rotate=z.rotate||0),$.scalable&&(De.scaleX=z.scaleX||1,De.scaleY=z.scaleY||1),De},setData:function(A){var $=this.options,z=this.imageData,Pe=this.canvasData,ye={};if(this.ready&&!this.disabled&&Qe(A)){var De=!1;$.rotatable&&Et(A.rotate)&&A.rotate!==z.rotate&&(z.rotate=A.rotate,De=!0),$.scalable&&(Et(A.scaleX)&&A.scaleX!==z.scaleX&&(z.scaleX=A.scaleX,De=!0),Et(A.scaleY)&&A.scaleY!==z.scaleY&&(z.scaleY=A.scaleY,De=!0)),De&&this.renderCanvas(!0,!0);var Fe=z.width/z.naturalWidth;Et(A.x)&&(ye.left=A.x*Fe+Pe.left),Et(A.y)&&(ye.top=A.y*Fe+Pe.top),Et(A.width)&&(ye.width=A.width*Fe),Et(A.height)&&(ye.height=A.height*Fe),this.setCropBoxData(ye)}return this},getContainerData:function(){return this.ready?te({},this.containerData):{}},getImageData:function(){return this.sized?te({},this.imageData):{}},getCanvasData:function(){var A=this.canvasData,$={};return this.ready&&Mt(["left","top","width","height","naturalWidth","naturalHeight"],function(z){$[z]=A[z]}),$},setCanvasData:function(A){var $=this.canvasData,z=$.aspectRatio;return this.ready&&!this.disabled&&Qe(A)&&(Et(A.left)&&($.left=A.left),Et(A.top)&&($.top=A.top),Et(A.width)?($.width=A.width,$.height=A.width/z):Et(A.height)&&($.height=A.height,$.width=A.height*z),this.renderCanvas(!0)),this},getCropBoxData:function(){var A=this.cropBoxData,$;return this.ready&&this.cropped&&($={left:A.left,top:A.top,width:A.width,height:A.height}),$||{}},setCropBoxData:function(A){var $=this.cropBoxData,z=this.options.aspectRatio,Pe,ye;return this.ready&&this.cropped&&!this.disabled&&Qe(A)&&(Et(A.left)&&($.left=A.left),Et(A.top)&&($.top=A.top),Et(A.width)&&A.width!==$.width&&(Pe=!0,$.width=A.width),Et(A.height)&&A.height!==$.height&&(ye=!0,$.height=A.height),z&&(Pe?$.height=$.width/z:ye&&($.width=$.height*z)),this.renderCropBox()),this},getCroppedCanvas:function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var $=this.canvasData,z=qn(this.image,this.imageData,$,A);if(!this.cropped)return z;var Pe=this.getData(),ye=Pe.x,De=Pe.y,Fe=Pe.width,_e=Pe.height,$e=z.width/Math.floor($.naturalWidth);$e!==1&&(ye*=$e,De*=$e,Fe*=$e,_e*=$e);var Ve=Fe/_e,Ue=Ua({aspectRatio:Ve,width:A.maxWidth||1/0,height:A.maxHeight||1/0}),Ze=Ua({aspectRatio:Ve,width:A.minWidth||0,height:A.minHeight||0},"cover"),Gt=Ua({aspectRatio:Ve,width:A.width||($e!==1?z.width:Fe),height:A.height||($e!==1?z.height:_e)}),Ut=Gt.width,na=Gt.height;Ut=Math.min(Ue.width,Math.max(Ze.width,Ut)),na=Math.min(Ue.height,Math.max(Ze.height,na));var Jt=document.createElement("canvas"),ra=Jt.getContext("2d");Jt.width=Ke(Ut),Jt.height=Ke(na),ra.fillStyle=A.fillColor||"transparent",ra.fillRect(0,0,Ut,na);var fa=A.imageSmoothingEnabled,da=fa===void 0?!0:fa,Fa=A.imageSmoothingQuality;ra.imageSmoothingEnabled=da,Fa&&(ra.imageSmoothingQuality=Fa);var Sa=z.width,st=z.height,Kt=ye,oa=De,ya,Ra,Xa,Ga,Ka,Ma;Kt<=-Fe||Kt>Sa?(Kt=0,ya=0,Xa=0,Ka=0):Kt<=0?(Xa=-Kt,Kt=0,ya=Math.min(Sa,Fe+Kt),Ka=ya):Kt<=Sa&&(Xa=0,ya=Math.min(Fe,Sa-Kt),Ka=ya),ya<=0||oa<=-_e||oa>st?(oa=0,Ra=0,Ga=0,Ma=0):oa<=0?(Ga=-oa,oa=0,Ra=Math.min(st,_e+oa),Ma=Ra):oa<=st&&(Ga=0,Ra=Math.min(_e,st-oa),Ma=Ra);var ba=[Kt,oa,ya,Ra];if(Ka>0&&Ma>0){var Qa=Ut/Fe;ba.push(Xa*Qa,Ga*Qa,Ka*Qa,Ma*Qa)}return ra.drawImage.apply(ra,[z].concat(T(ba.map(function(za){return Math.floor(Ke(za))})))),Jt},setAspectRatio:function(A){var $=this.options;return!this.disabled&&!ca(A)&&($.aspectRatio=Math.max(0,A)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(A){var $=this.options,z=this.dragBox,Pe=this.face;if(this.ready&&!this.disabled){var ye=A===we,De=$.movable&&A===Te;A=ye||De?A:Z,$.dragMode=A,gt(z,Y,A),He(z,S,ye),He(z,U,De),$.cropBoxMovable||(gt(Pe,Y,A),He(Pe,S,ye),He(Pe,U,De))}return this}},sn=D.Cropper,Pn=function(){function fe(A){var $=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(a(this,fe),!A||!dt.test(A.tagName))throw new Error("The first argument is required and must be an or element.");this.element=A,this.options=te({},It,Qe($)&&$),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return h(fe,[{key:"init",value:function(){var $=this.element,z=$.tagName.toLowerCase(),Pe;if(!$[J]){if($[J]=this,z==="img"){if(this.isImg=!0,Pe=$.getAttribute("src")||"",this.originalUrl=Pe,!Pe)return;Pe=$.src}else z==="canvas"&&window.HTMLCanvasElement&&(Pe=$.toDataURL());this.load(Pe)}}},{key:"load",value:function($){var z=this;if(!!$){this.url=$,this.imageData={};var Pe=this.element,ye=this.options;if(!ye.rotatable&&!ye.scalable&&(ye.checkOrientation=!1),!ye.checkOrientation||!window.ArrayBuffer){this.clone();return}if(qe.test($)){ct.test($)?this.read(br($)):this.clone();return}var De=new XMLHttpRequest,Fe=this.clone.bind(this);this.reloading=!0,this.xhr=De,De.onabort=Fe,De.onerror=Fe,De.ontimeout=Fe,De.onprogress=function(){De.getResponseHeader("content-type")!==Ie&&De.abort()},De.onload=function(){z.read(De.response)},De.onloadend=function(){z.reloading=!1,z.xhr=null},ye.checkCrossOrigin&&Ba($)&&Pe.crossOrigin&&($=cn($)),De.open("GET",$,!0),De.responseType="arraybuffer",De.withCredentials=Pe.crossOrigin==="use-credentials",De.send()}}},{key:"read",value:function($){var z=this.options,Pe=this.imageData,ye=vn($),De=0,Fe=1,_e=1;if(ye>1){this.url=Cr($,Ie);var $e=xr(ye);De=$e.rotate,Fe=$e.scaleX,_e=$e.scaleY}z.rotatable&&(Pe.rotate=De),z.scalable&&(Pe.scaleX=Fe,Pe.scaleY=_e),this.clone()}},{key:"clone",value:function(){var $=this.element,z=this.url,Pe=$.crossOrigin,ye=z;this.options.checkCrossOrigin&&Ba(z)&&(Pe||(Pe="anonymous"),ye=cn(z)),this.crossOrigin=Pe,this.crossOriginUrl=ye;var De=document.createElement("img");Pe&&(De.crossOrigin=Pe),De.src=ye||z,De.alt=$.alt||"The image to crop",this.image=De,De.onload=this.start.bind(this),De.onerror=this.stop.bind(this),Oe(De,O),$.parentNode.insertBefore(De,$.nextSibling)}},{key:"start",value:function(){var $=this,z=this.image;z.onload=null,z.onerror=null,this.sizing=!0;var Pe=D.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(D.navigator.userAgent),ye=function($e,Ve){te($.imageData,{naturalWidth:$e,naturalHeight:Ve,aspectRatio:$e/Ve}),$.initialImageData=te({},$.imageData),$.sizing=!1,$.sized=!0,$.build()};if(z.naturalWidth&&!Pe){ye(z.naturalWidth,z.naturalHeight);return}var De=document.createElement("img"),Fe=document.body||document.documentElement;this.sizingImage=De,De.onload=function(){ye(De.width,De.height),Pe||Fe.removeChild(De)},De.src=z.src,Pe||(De.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",Fe.appendChild(De))}},{key:"stop",value:function(){var $=this.image;$.onload=null,$.onerror=null,$.parentNode.removeChild($),this.image=null}},{key:"build",value:function(){if(!(!this.sized||this.ready)){var $=this.element,z=this.options,Pe=this.image,ye=$.parentNode,De=document.createElement("div");De.innerHTML=aa;var Fe=De.querySelector(".".concat(J,"-container")),_e=Fe.querySelector(".".concat(J,"-canvas")),$e=Fe.querySelector(".".concat(J,"-drag-box")),Ve=Fe.querySelector(".".concat(J,"-crop-box")),Ue=Ve.querySelector(".".concat(J,"-face"));this.container=ye,this.cropper=Fe,this.canvas=_e,this.dragBox=$e,this.cropBox=Ve,this.viewBox=Fe.querySelector(".".concat(J,"-view-box")),this.face=Ue,_e.appendChild(Pe),Oe($,p),ye.insertBefore(Fe,$.nextSibling),this.isImg||Me(Pe,O),this.initPreview(),this.bind(),z.initialAspectRatio=Math.max(0,z.initialAspectRatio)||NaN,z.aspectRatio=Math.max(0,z.aspectRatio)||NaN,z.viewMode=Math.max(0,Math.min(3,Math.round(z.viewMode)))||0,Oe(Ve,p),z.guides||Oe(Ve.getElementsByClassName("".concat(J,"-dashed")),p),z.center||Oe(Ve.getElementsByClassName("".concat(J,"-center")),p),z.background&&Oe(Fe,"".concat(J,"-bg")),z.highlight||Oe(Ue,d),z.cropBoxMovable&&(Oe(Ue,U),gt(Ue,Y,R)),z.cropBoxResizable||(Oe(Ve.getElementsByClassName("".concat(J,"-line")),p),Oe(Ve.getElementsByClassName("".concat(J,"-point")),p)),this.render(),this.ready=!0,this.setDragMode(z.dragMode),z.autoCrop&&this.crop(),this.setData(z.data),qt(z.ready)&&ht($,V,z.ready,{once:!0}),Yt($,V)}}},{key:"unbuild",value:function(){!this.ready||(this.ready=!1,this.unbind(),this.resetPreview(),this.cropper.parentNode.removeChild(this.cropper),Me(this.element,p))}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=sn,fe}},{key:"setDefaults",value:function($){te(It,Qe($)&&$)}}]),fe}();return te(Pn.prototype,Sr,_n,er,Er,ja,Tr),Pn})},24081:function(l,r,e){var t=e(21059),a=e(158),o=t(a,"DataView");l.exports=o},15999:function(l,r,e){var t=e(13387),a=e(69252),o=e(31125),h=e(9021),E=e(68131);function T(g){var i=-1,f=g==null?0:g.length;for(this.clear();++iF))return!1;var J=M.get(g),R=M.get(i);if(J&&R)return J==i&&R==g;var ae=-1,_=!0,X=f&E?new t:void 0;for(M.set(g,i),M.set(i,g);++ae-1&&a%1==0&&a-1}l.exports=a},30603:function(l,r,e){var t=e(33993);function a(o,h){var E=this.__data__,T=t(E,o);return T<0?(++this.size,E.push([o,h])):E[T][1]=h,this}l.exports=a},73633:function(l,r,e){var t=e(15999),a=e(26811),o=e(60945);function h(){this.size=0,this.__data__={hash:new t,map:new(o||a),string:new t}}l.exports=h},39382:function(l,r,e){var t=e(5662);function a(o){var h=t(this,o).delete(o);return this.size-=h?1:0,h}l.exports=a},28850:function(l,r,e){var t=e(5662);function a(o){return t(this,o).get(o)}l.exports=a},70756:function(l,r,e){var t=e(5662);function a(o){return t(this,o).has(o)}l.exports=a},2769:function(l,r,e){var t=e(5662);function a(o,h){var E=t(this,o),T=E.size;return E.set(o,h),this.size+=E.size==T?0:1,this}l.exports=a},11382:function(l){function r(e){var t=-1,a=Array(e.size);return e.forEach(function(o,h){a[++t]=[h,o]}),a}l.exports=r},95498:function(l){function r(e,t){return function(a){return a==null?!1:a[e]===t&&(t!==void 0||e in Object(a))}}l.exports=r},32202:function(l,r,e){var t=e(54883),a=500;function o(h){var E=t(h,function(g){return T.size===a&&T.clear(),g}),T=E.cache;return E}l.exports=o},45155:function(l,r,e){var t=e(21059),a=t(Object,"create");l.exports=a},32501:function(l,r,e){var t=e(78579),a=t(Object.keys,Object);l.exports=a},90807:function(l){function r(e){var t=[];if(e!=null)for(var a in Object(e))t.push(a);return t}l.exports=r},41771:function(l,r,e){l=e.nmd(l);var t=e(14528),a=r&&!r.nodeType&&r,o=a&&!0&&l&&!l.nodeType&&l,h=o&&o.exports===a,E=h&&t.process,T=function(){try{var g=o&&o.require&&o.require("util").types;return g||E&&E.binding&&E.binding("util")}catch(i){}}();l.exports=T},92445:function(l){var r=Object.prototype,e=r.toString;function t(a){return e.call(a)}l.exports=t},78579:function(l){function r(e,t){return function(a){return e(t(a))}}l.exports=r},158:function(l,r,e){var t=e(14528),a=typeof self=="object"&&self&&self.Object===Object&&self,o=t||a||Function("return this")();l.exports=o},57554:function(l){var r="__lodash_hash_undefined__";function e(t){return this.__data__.set(t,r),this}l.exports=e},18800:function(l){function r(e){return this.__data__.has(e)}l.exports=r},76680:function(l){function r(e){var t=-1,a=Array(e.size);return e.forEach(function(o){a[++t]=o}),a}l.exports=r},73832:function(l,r,e){var t=e(26811);function a(){this.__data__=new t,this.size=0}l.exports=a},31676:function(l){function r(e){var t=this.__data__,a=t.delete(e);return this.size=t.size,a}l.exports=r},33577:function(l){function r(e){return this.__data__.get(e)}l.exports=r},43343:function(l){function r(e){return this.__data__.has(e)}l.exports=r},20488:function(l,r,e){var t=e(26811),a=e(60945),o=e(25835),h=200;function E(T,g){var i=this.__data__;if(i instanceof t){var f=i.__data__;if(!a||f.length-1&&t%1==0&&t<=r}l.exports=e},55948:function(l,r,e){var t=e(2471),a=e(2723),o=e(41771),h=o&&o.isMap,E=h?a(h):t;l.exports=E},23619:function(l){function r(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}l.exports=r},81653:function(l){function r(e){return e!=null&&typeof e=="object"}l.exports=r},82678:function(l,r,e){var t=e(20194),a=e(97959),o=e(81653),h="[object Object]",E=Function.prototype,T=Object.prototype,g=E.toString,i=T.hasOwnProperty,f=g.call(Object);function u(b){if(!o(b)||t(b)!=h)return!1;var M=a(b);if(M===null)return!0;var D=i.call(M,"constructor")&&M.constructor;return typeof D=="function"&&D instanceof D&&g.call(D)==f}l.exports=u},78255:function(l,r,e){var t=e(42388),a=e(2723),o=e(41771),h=o&&o.isSet,E=h?a(h):t;l.exports=E},72139:function(l,r,e){var t=e(20194),a=e(93706),o=e(81653),h="[object String]";function E(T){return typeof T=="string"||!a(T)&&o(T)&&t(T)==h}l.exports=E},81878:function(l,r,e){var t=e(20194),a=e(81653),o="[object Symbol]";function h(E){return typeof E=="symbol"||a(E)&&t(E)==o}l.exports=h},70094:function(l,r,e){var t=e(88595),a=e(2723),o=e(41771),h=o&&o.isTypedArray,E=h?a(h):t;l.exports=E},23150:function(l,r,e){var t=e(92554),a=e(76324),o=e(51528);function h(E){return o(E)?t(E):a(E)}l.exports=h},61530:function(l,r,e){var t=e(92554),a=e(21506),o=e(51528);function h(E){return o(E)?t(E,!0):a(E)}l.exports=h},34118:function(l,r,e){var t=e(57041),a=e(27159),o=e(20472),h=e(93706);function E(T,g){var i=h(T)?t:o;return i(T,a(g,3))}l.exports=E},54883:function(l,r,e){var t=e(25835),a="Expected a function";function o(h,E){if(typeof h!="function"||E!=null&&typeof E!="function")throw new TypeError(a);var T=function(){var g=arguments,i=E?E.apply(this,g):g[0],f=T.cache;if(f.has(i))return f.get(i);var u=h.apply(this,g);return T.cache=f.set(i,u)||f,u};return T.cache=new(o.Cache||t),T}o.Cache=t,l.exports=o},72659:function(l,r,e){var t=e(39238),a=e(40612),o=e(63140),h=e(46384);function E(T){return o(T)?t(h(T)):a(T)}l.exports=E},59174:function(l){function r(){return[]}l.exports=r},30647:function(l){function r(){return!1}l.exports=r},33270:function(l,r,e){var t=e(80430);function a(o){return o==null?"":t(o)}l.exports=a},49246:function(l,r,e){"use strict";e.r(r),e.d(r,{AlphaPicker:function(){return rn},BlockPicker:function(){return Yc},ChromePicker:function(){return kl},CirclePicker:function(){return nd},CompactPicker:function(){return yd},CustomPicker:function(){return Wt},GithubPicker:function(){return xd},GooglePicker:function(){return ff},HuePicker:function(){return Dd},MaterialPicker:function(){return wd},PhotoshopPicker:function(){return Hd},SketchPicker:function(){return Zd},SliderPicker:function(){return _d},SwatchesPicker:function(){return of},TwitterPicker:function(){return sf},default:function(){return kl}});var t=e(4819),a=e.n(t),o=e(29790),h=function(n,m,v,x,re){var de=re.clientWidth,xe=re.clientHeight,Re=typeof n.pageX=="number"?n.pageX:n.touches[0].pageX,ke=typeof n.pageY=="number"?n.pageY:n.touches[0].pageY,ze=Re-(re.getBoundingClientRect().left+window.pageXOffset),ot=ke-(re.getBoundingClientRect().top+window.pageYOffset);if(v==="vertical"){var at=void 0;if(ot<0?at=0:ot>xe?at=1:at=Math.round(ot*100/xe)/100,m.a!==at)return{h:m.h,s:m.s,l:m.l,a:at,source:"rgb"}}else{var ut=void 0;if(ze<0?ut=0:ze>de?ut=1:ut=Math.round(ze*100/de)/100,x!==ut)return{h:m.h,s:m.s,l:m.l,a:ut,source:"rgb"}}return null},E={},T=function(n,m,v,x){if(typeof document=="undefined"&&!x)return null;var re=x?new x:document.createElement("canvas");re.width=v*2,re.height=v*2;var de=re.getContext("2d");return de?(de.fillStyle=n,de.fillRect(0,0,re.width,re.height),de.fillStyle=m,de.fillRect(0,0,v,v),de.translate(v,v),de.fillRect(0,0,v,v),re.toDataURL()):null},g=function(n,m,v,x){var re=n+"-"+m+"-"+v+(x?"-server":"");if(E[re])return E[re];var de=T(n,m,v,x);return E[re]=de,de},i=Object.assign||function(s){for(var n=1;n-1},P=function(n){return Number(String(n).replace(/%/g,""))},S=1,k=function(s){H(n,s);function n(m){X(this,n);var v=K(this,(n.__proto__||Object.getPrototypeOf(n)).call(this));return v.handleBlur=function(){v.state.blurValue&&v.setState({value:v.state.blurValue,blurValue:null})},v.handleChange=function(x){v.setUpdatedValue(x.target.value,x)},v.handleKeyDown=function(x){var re=P(x.target.value);if(!isNaN(re)&&y(x.keyCode)){var de=v.getArrowOffset(),xe=x.keyCode===G?re+de:re-de;v.setUpdatedValue(xe,x)}},v.handleDrag=function(x){if(v.props.dragLabel){var re=Math.round(v.props.value+x.movementX);re>=0&&re<=v.props.dragMax&&v.props.onChange&&v.props.onChange(v.getValueObjectWithLabel(re),x)}},v.handleMouseDown=function(x){v.props.dragLabel&&(x.preventDefault(),v.handleDrag(x),window.addEventListener("mousemove",v.handleDrag),window.addEventListener("mouseup",v.handleMouseUp))},v.handleMouseUp=function(){v.unbindEventListeners()},v.unbindEventListeners=function(){window.removeEventListener("mousemove",v.handleDrag),window.removeEventListener("mouseup",v.handleMouseUp)},v.state={value:String(m.value).toUpperCase(),blurValue:String(m.value).toUpperCase()},v.inputId="rc-editable-input-"+S++,v}return ae(n,[{key:"componentDidUpdate",value:function(v,x){this.props.value!==this.state.value&&(v.value!==this.props.value||x.value!==this.state.value)&&(this.input===document.activeElement?this.setState({blurValue:String(this.props.value).toUpperCase()}):this.setState({value:String(this.props.value).toUpperCase(),blurValue:!this.state.blurValue&&String(this.props.value).toUpperCase()}))}},{key:"componentWillUnmount",value:function(){this.unbindEventListeners()}},{key:"getValueObjectWithLabel",value:function(v){return _({},this.props.label,v)}},{key:"getArrowOffset",value:function(){return this.props.arrowOffset||L}},{key:"setUpdatedValue",value:function(v,x){var re=this.props.label?this.getValueObjectWithLabel(v):v;this.props.onChange&&this.props.onChange(re,x),this.setState({value:v})}},{key:"render",value:function(){var v=this,x=(0,o.ZP)({default:{wrap:{position:"relative"}},"user-override":{wrap:this.props.style&&this.props.style.wrap?this.props.style.wrap:{},input:this.props.style&&this.props.style.input?this.props.style.input:{},label:this.props.style&&this.props.style.label?this.props.style.label:{}},"dragLabel-true":{label:{cursor:"ew-resize"}}},{"user-override":!0},this.props);return a().createElement("div",{style:x.wrap},a().createElement("input",{id:this.inputId,style:x.input,ref:function(de){return v.input=de},value:this.state.value,onKeyDown:this.handleKeyDown,onChange:this.handleChange,onBlur:this.handleBlur,placeholder:this.props.placeholder,spellCheck:"false"}),this.props.label&&!this.props.hideLabel?a().createElement("label",{htmlFor:this.inputId,style:x.label,onMouseDown:this.handleMouseDown},this.props.label):null)}}]),n}(t.PureComponent||t.Component),p=k,O=function(n,m,v,x){var re=x.clientWidth,de=x.clientHeight,xe=typeof n.pageX=="number"?n.pageX:n.touches[0].pageX,Re=typeof n.pageY=="number"?n.pageY:n.touches[0].pageY,ke=xe-(x.getBoundingClientRect().left+window.pageXOffset),ze=Re-(x.getBoundingClientRect().top+window.pageYOffset);if(m==="vertical"){var ot=void 0;if(ze<0)ot=359;else if(ze>de)ot=0;else{var at=-(ze*100/de)+100;ot=360*at/100}if(v.h!==ot)return{h:ot,s:v.s,l:v.l,a:v.a,source:"hsl"}}else{var ut=void 0;if(ke<0)ut=0;else if(ke>re)ut=359;else{var Tt=ke*100/re;ut=360*Tt/100}if(v.h!==ut)return{h:ut,s:v.s,l:v.l,a:v.a,source:"hsl"}}return null},d=function(){function s(n,m){for(var v=0;v-1}var ne=he;function ce(s,n){var m=this.__data__,v=Le(m,s);return v<0?(++this.size,m.push([s,n])):m[v][1]=n,this}var Ie=ce;function We(s){var n=-1,m=s==null?0:s.length;for(this.clear();++n-1&&s%1==0&&s<=ps}var Mr=fn;function hs(s){return s!=null&&Mr(s.length)&&!Na(s)}var bn=hs;function ms(s){return un(s)&&bn(s)}var vs=ms;function Ir(){return!1}var gs=Ir,kr=typeof exports=="object"&&exports&&!exports.nodeType&&exports,bo=kr&&typeof module=="object"&&module&&!module.nodeType&&module,ys=bo&&bo.exports===kr,or=ys?Qe.Buffer:void 0,bs=or?or.isBuffer:void 0,Cs=bs||gs,sr=Cs,xs="[object Object]",Ss=Function.prototype,Nr=Object.prototype,Cn=Ss.toString,Es=Nr.hasOwnProperty,Br=Cn.call(Object);function Ts(s){if(!un(s)||gt(s)!=xs)return!1;var n=Rn(s);if(n===null)return!0;var m=Es.call(n,"constructor")&&n.constructor;return typeof m=="function"&&m instanceof m&&Cn.call(m)==Br}var Ds=Ts,Ps="[object Arguments]",ws="[object Array]",Os="[object Boolean]",Rs="[object Date]",Lr="[object Error]",As="[object Function]",Co="[object Map]",tl="[object Number]",jr="[object Object]",ir="[object RegExp]",xo="[object Set]",So="[object String]",Ms="[object WeakMap]",Is="[object ArrayBuffer]",ks="[object DataView]",Ns="[object Float32Array]",Bs="[object Float64Array]",lr="[object Int8Array]",Eo="[object Int16Array]",Ls="[object Int32Array]",js="[object Uint8Array]",Fs="[object Uint8ClampedArray]",zs="[object Uint16Array]",Ws="[object Uint32Array]",sa={};sa[Ns]=sa[Bs]=sa[lr]=sa[Eo]=sa[Ls]=sa[js]=sa[Fs]=sa[zs]=sa[Ws]=!0,sa[Ps]=sa[ws]=sa[Is]=sa[Os]=sa[ks]=sa[Rs]=sa[Lr]=sa[As]=sa[Co]=sa[tl]=sa[jr]=sa[ir]=sa[xo]=sa[So]=sa[Ms]=!1;function To(s){return un(s)&&Mr(s.length)&&!!sa[gt(s)]}var tn=To;function Hs(s){return function(n){return s(n)}}var an=Hs,Do=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xn=Do&&typeof module=="object"&&module&&!module.nodeType&&module,Vs=xn&&xn.exports===Do,Fr=Vs&&ca.process,Po=function(){try{var s=xn&&xn.require&&xn.require("util").types;return s||Fr&&Fr.binding&&Fr.binding("util")}catch(n){}}(),wo=Po,Oo=wo&&wo.isTypedArray,Us=Oo?an(Oo):tn,zr=Us;function Wr(s,n){if(!(n==="constructor"&&typeof s[n]=="function")&&n!="__proto__")return s[n]}var An=Wr,Gs=Object.prototype,Ro=Gs.hasOwnProperty;function Ks(s,n,m){var v=s[n];(!(Ro.call(s,n)&&Ee(v,m))||m===void 0&&!(n in s))&&Pr(s,n,m)}var $s=Ks;function Hr(s,n,m,v){var x=!m;m||(m={});for(var re=-1,de=n.length;++re-1&&s%1==0&&s0){if(++n>=Jr)return arguments[0]}else n=0;return s.apply(void 0,arguments)}}var fi=di,pi=fi(Yr),hi=pi;function mi(s,n){return hi(si(s,n,ur),s+"")}var vi=mi;function Xr(s,n,m){if(!Ot(m))return!1;var v=typeof n;return(v=="number"?bn(m)&&Gr(n,m.length):v=="string"&&n in m)?Ee(m[n],s):!1}var gi=Xr;function Wo(s){return vi(function(n,m){var v=-1,x=m.length,re=x>1?m[x-1]:void 0,de=x>2?m[2]:void 0;for(re=s.length>3&&typeof re=="function"?(x--,re):void 0,de&&gi(m[0],m[1],de)&&(re=x<3?void 0:re,x=1),n=Object(n);++v=n||Tn<0||ot&&ao>=re}function la(){var ga=qr();if(kt(ga))return Ha(ga);xe=setTimeout(la,Pt(ga))}function Ha(ga){return xe=void 0,at&&v?ut(ga):(v=x=void 0,de)}function Qn(){xe!==void 0&&clearTimeout(xe),ke=0,v=Re=x=xe=void 0}function Va(){return xe===void 0?de:Ha(qr())}function En(){var ga=qr(),Tn=kt(ga);if(v=arguments,x=this,Re=ga,Tn){if(xe===void 0)return Tt(Re);if(ot)return clearTimeout(xe),xe=setTimeout(la,n),ut(Re)}return xe===void 0&&(xe=setTimeout(la,n)),de}return En.cancel=Qn,En.flush=Va,En}var Mi=Ai,Ii="Expected a function";function c(s,n,m){var v=!0,x=!0;if(typeof s!="function")throw new TypeError(Ii);return Ot(m)&&(v="leading"in m?!!m.leading:v,x="trailing"in m?!!m.trailing:x),Mi(s,n,{leading:v,maxWait:n,trailing:x})}var C=c,Q=function(n,m,v){var x=v.getBoundingClientRect(),re=x.width,de=x.height,xe=typeof n.pageX=="number"?n.pageX:n.touches[0].pageX,Re=typeof n.pageY=="number"?n.pageY:n.touches[0].pageY,ke=xe-(v.getBoundingClientRect().left+window.pageXOffset),ze=Re-(v.getBoundingClientRect().top+window.pageYOffset);ke<0?ke=0:ke>re&&(ke=re),ze<0?ze=0:ze>de&&(ze=de);var ot=ke/re,at=1-ze/de;return{h:m.h,s:ot,v:at,a:m.a,source:"hsv"}},j=function(){function s(n,m){for(var v=0;v=128?"#000":"#fff"},ha={hsl:{a:1,h:0,l:.5,s:1},hex:"#ff0000",rgb:{r:255,g:0,b:0,a:1},hsv:{h:0,s:1,v:1,a:1}},Ia=function(n,m){var v=n.replace("\xB0","");return Zt()(m+" ("+v+")")._ok},ma=Object.assign||function(s){for(var n=1;n1&&arguments[1]!==void 0?arguments[1]:"span";return function(v){Da(x,v);function x(){var re,de,xe,Re;_r(this,x);for(var ke=arguments.length,ze=Array(ke),ot=0;otxe))return!1;var ke=re.get(s),ze=re.get(n);if(ke&&ze)return ke==n&&ze==s;var ot=-1,at=!0,ut=m&Yl?new Vl:void 0;for(re.set(s,n),re.set(n,s);++ot1&&(x.a=1),v.props.onChange({h:v.props.hsl.h,s:v.props.hsl.s,l:v.props.hsl.l,a:Math.round(x.a*100)/100,source:"rgb"},re)):(x.h||x.s||x.l)&&(typeof x.s=="string"&&x.s.includes("%")&&(x.s=x.s.replace("%","")),typeof x.l=="string"&&x.l.includes("%")&&(x.l=x.l.replace("%","")),x.s==1?x.s=.01:x.l==1&&(x.l=.01),v.props.onChange({h:x.h||v.props.hsl.h,s:Number(Al(x.s)?v.props.hsl.s:x.s),l:Number(Al(x.l)?v.props.hsl.l:x.l),source:"hsl"},re))},v.showHighlight=function(x){x.currentTarget.style.background="#eee"},v.hideHighlight=function(x){x.currentTarget.style.background="transparent"},m.hsl.a!==1&&m.view==="hex"?v.state={view:"rgb"}:v.state={view:m.view},v}return sd(n,[{key:"render",value:function(){var v=this,x=(0,o.ZP)({default:{wrap:{paddingTop:"16px",display:"flex"},fields:{flex:"1",display:"flex",marginLeft:"-6px"},field:{paddingLeft:"6px",width:"100%"},alpha:{paddingLeft:"6px",width:"100%"},toggle:{width:"32px",textAlign:"right",position:"relative"},icon:{marginRight:"-4px",marginTop:"12px",cursor:"pointer",position:"relative"},iconHighlight:{position:"absolute",width:"24px",height:"28px",background:"#eee",borderRadius:"4px",top:"10px",left:"12px",display:"none"},input:{fontSize:"11px",color:"#333",width:"100%",borderRadius:"2px",border:"none",boxShadow:"inset 0 0 0 1px #dadada",height:"21px",textAlign:"center"},label:{textTransform:"uppercase",fontSize:"11px",lineHeight:"11px",color:"#969696",textAlign:"center",display:"block",marginTop:"12px"},svg:{fill:"#333",width:"24px",height:"24px",border:"1px transparent solid",borderRadius:"5px"}},disableAlpha:{alpha:{display:"none"}}},this.props,this.state),re=void 0;return this.state.view==="hex"?re=a().createElement("div",{style:x.fields,className:"flexbox-fix"},a().createElement("div",{style:x.field},a().createElement(p,{style:{input:x.input,label:x.label},label:"hex",value:this.props.hex,onChange:this.handleChange}))):this.state.view==="rgb"?re=a().createElement("div",{style:x.fields,className:"flexbox-fix"},a().createElement("div",{style:x.field},a().createElement(p,{style:{input:x.input,label:x.label},label:"r",value:this.props.rgb.r,onChange:this.handleChange})),a().createElement("div",{style:x.field},a().createElement(p,{style:{input:x.input,label:x.label},label:"g",value:this.props.rgb.g,onChange:this.handleChange})),a().createElement("div",{style:x.field},a().createElement(p,{style:{input:x.input,label:x.label},label:"b",value:this.props.rgb.b,onChange:this.handleChange})),a().createElement("div",{style:x.alpha},a().createElement(p,{style:{input:x.input,label:x.label},label:"a",value:this.props.rgb.a,arrowOffset:.01,onChange:this.handleChange}))):this.state.view==="hsl"&&(re=a().createElement("div",{style:x.fields,className:"flexbox-fix"},a().createElement("div",{style:x.field},a().createElement(p,{style:{input:x.input,label:x.label},label:"h",value:Math.round(this.props.hsl.h),onChange:this.handleChange})),a().createElement("div",{style:x.field},a().createElement(p,{style:{input:x.input,label:x.label},label:"s",value:Math.round(this.props.hsl.s*100)+"%",onChange:this.handleChange})),a().createElement("div",{style:x.field},a().createElement(p,{style:{input:x.input,label:x.label},label:"l",value:Math.round(this.props.hsl.l*100)+"%",onChange:this.handleChange})),a().createElement("div",{style:x.alpha},a().createElement(p,{style:{input:x.input,label:x.label},label:"a",value:this.props.hsl.a,arrowOffset:.01,onChange:this.handleChange})))),a().createElement("div",{style:x.wrap,className:"flexbox-fix"},re,a().createElement("div",{style:x.toggle},a().createElement("div",{style:x.icon,onClick:this.toggleViews,ref:function(xe){return v.icon=xe}},a().createElement(od.Z,{style:x.svg,onMouseOver:this.showHighlight,onMouseEnter:this.showHighlight,onMouseOut:this.hideHighlight}))))}}],[{key:"getDerivedStateFromProps",value:function(v,x){return v.hsl.a!==1&&x.view==="hex"?{view:"rgb"}:null}}]),n}(a().Component);Ml.defaultProps={view:"hex"};var cd=Ml,dd=function(){var n=(0,o.ZP)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",transform:"translate(-6px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}}});return a().createElement("div",{style:n.picker})},Il=dd,fd=function(){var n=(0,o.ZP)({default:{picker:{width:"12px",height:"12px",borderRadius:"6px",boxShadow:"inset 0 0 0 1px #fff",transform:"translate(-6px, -6px)"}}});return a().createElement("div",{style:n.picker})},pd=fd,Vi=function(n){var m=n.width,v=n.onChange,x=n.disableAlpha,re=n.rgb,de=n.hsl,xe=n.hsv,Re=n.hex,ke=n.renderers,ze=n.styles,ot=ze===void 0?{}:ze,at=n.className,ut=at===void 0?"":at,Tt=n.defaultView,Pt=(0,o.ZP)(Ta({default:{picker:{width:m,background:"#fff",borderRadius:"2px",boxShadow:"0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)",boxSizing:"initial",fontFamily:"Menlo"},saturation:{width:"100%",paddingBottom:"55%",position:"relative",borderRadius:"2px 2px 0 0",overflow:"hidden"},Saturation:{radius:"2px 2px 0 0"},body:{padding:"16px 16px 12px"},controls:{display:"flex"},color:{width:"32px"},swatch:{marginTop:"6px",width:"16px",height:"16px",borderRadius:"8px",position:"relative",overflow:"hidden"},active:{absolute:"0px 0px 0px 0px",borderRadius:"8px",boxShadow:"inset 0 0 0 1px rgba(0,0,0,.1)",background:"rgba("+re.r+", "+re.g+", "+re.b+", "+re.a+")",zIndex:"2"},toggles:{flex:"1"},hue:{height:"10px",position:"relative",marginBottom:"8px"},Hue:{radius:"2px"},alpha:{height:"10px",position:"relative"},Alpha:{radius:"2px"}},disableAlpha:{color:{width:"22px"},alpha:{display:"none"},hue:{marginBottom:"0px"},swatch:{width:"10px",height:"10px",marginTop:"0px"}}},ot),{disableAlpha:x});return a().createElement("div",{style:Pt.picker,className:"chrome-picker "+ut},a().createElement("div",{style:Pt.saturation},a().createElement(me,{style:Pt.Saturation,hsl:de,hsv:xe,pointer:pd,onChange:v})),a().createElement("div",{style:Pt.body},a().createElement("div",{style:Pt.controls,className:"flexbox-fix"},a().createElement("div",{style:Pt.color},a().createElement("div",{style:Pt.swatch},a().createElement("div",{style:Pt.active}),a().createElement(u,{renderers:ke}))),a().createElement("div",{style:Pt.toggles},a().createElement("div",{style:Pt.hue},a().createElement(we,{style:Pt.Hue,hsl:de,pointer:Il,onChange:v})),a().createElement("div",{style:Pt.alpha},a().createElement(R,{style:Pt.Alpha,rgb:re,hsl:de,pointer:Il,renderers:ke,onChange:v})))),a().createElement(cd,{rgb:re,hsl:de,hex:Re,view:Tt,onChange:v,disableAlpha:x})))};Vi.propTypes={width:Z().oneOfType([Z().string,Z().number]),disableAlpha:Z().bool,styles:Z().object,defaultView:Z().oneOf(["hex","rgb","hsl"])},Vi.defaultProps={width:225,disableAlpha:!1,styles:{}};var kl=Wt(Vi),hd=function(n){var m=n.color,v=n.onClick,x=v===void 0?function(){}:v,re=n.onSwatchHover,de=n.active,xe=(0,o.ZP)({default:{color:{background:m,width:"15px",height:"15px",float:"left",marginRight:"5px",marginBottom:"5px",position:"relative",cursor:"pointer"},dot:{absolute:"5px 5px 5px 5px",background:Vt(m),borderRadius:"50%",opacity:"0"}},active:{dot:{opacity:"1"}},"color-#FFFFFF":{color:{boxShadow:"inset 0 0 0 1px #ddd"},dot:{background:"#000"}},transparent:{dot:{background:"#000"}}},{active:de,"color-#FFFFFF":m==="#FFFFFF",transparent:m==="transparent"});return a().createElement(va,{style:xe.color,color:m,onClick:x,onHover:re,focusStyle:{boxShadow:"0 0 4px "+m}},a().createElement("div",{style:xe.dot}))},md=hd,vd=function(n){var m=n.hex,v=n.rgb,x=n.onChange,re=(0,o.ZP)({default:{fields:{display:"flex",paddingBottom:"6px",paddingRight:"5px",position:"relative"},active:{position:"absolute",top:"6px",left:"5px",height:"9px",width:"9px",background:m},HEXwrap:{flex:"6",position:"relative"},HEXinput:{width:"80%",padding:"0px",paddingLeft:"20%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},HEXlabel:{display:"none"},RGBwrap:{flex:"3",position:"relative"},RGBinput:{width:"70%",padding:"0px",paddingLeft:"30%",border:"none",outline:"none",background:"none",fontSize:"12px",color:"#333",height:"16px"},RGBlabel:{position:"absolute",top:"3px",left:"0px",lineHeight:"16px",textTransform:"uppercase",fontSize:"12px",color:"#999"}}}),de=function(Re,ke){Re.r||Re.g||Re.b?x({r:Re.r||v.r,g:Re.g||v.g,b:Re.b||v.b,source:"rgb"},ke):x({hex:Re.hex,source:"hex"},ke)};return a().createElement("div",{style:re.fields,className:"flexbox-fix"},a().createElement("div",{style:re.active}),a().createElement(p,{style:{wrap:re.HEXwrap,input:re.HEXinput,label:re.HEXlabel},label:"hex",value:m,onChange:de}),a().createElement(p,{style:{wrap:re.RGBwrap,input:re.RGBinput,label:re.RGBlabel},label:"r",value:v.r,onChange:de}),a().createElement(p,{style:{wrap:re.RGBwrap,input:re.RGBinput,label:re.RGBlabel},label:"g",value:v.g,onChange:de}),a().createElement(p,{style:{wrap:re.RGBwrap,input:re.RGBinput,label:re.RGBlabel},label:"b",value:v.b,onChange:de}))},gd=vd,Ui=function(n){var m=n.onChange,v=n.onSwatchHover,x=n.colors,re=n.hex,de=n.rgb,xe=n.styles,Re=xe===void 0?{}:xe,ke=n.className,ze=ke===void 0?"":ke,ot=(0,o.ZP)(Ta({default:{Compact:{background:"#f6f6f6",radius:"4px"},compact:{paddingTop:"5px",paddingLeft:"5px",boxSizing:"initial",width:"240px"},clear:{clear:"both"}}},Re)),at=function(Tt,Pt){Tt.hex?vt(Tt.hex)&&m({hex:Tt.hex,source:"hex"},Pt):m(Tt,Pt)};return a().createElement(Qr,{style:ot.Compact,styles:Re},a().createElement("div",{style:ot.compact,className:"compact-picker "+ze},a().createElement("div",null,kn(x,function(ut){return a().createElement(md,{key:ut,color:ut,active:ut.toLowerCase()===re,onClick:at,onSwatchHover:v})}),a().createElement("div",{style:ot.clear})),a().createElement(gd,{hex:re,rgb:de,onChange:at})))};Ui.propTypes={colors:Z().arrayOf(Z().string),styles:Z().object},Ui.defaultProps={colors:["#4D4D4D","#999999","#FFFFFF","#F44E3B","#FE9200","#FCDC00","#DBDF00","#A4DD00","#68CCCA","#73D8FF","#AEA1FF","#FDA1FF","#333333","#808080","#cccccc","#D33115","#E27300","#FCC400","#B0BC00","#68BC00","#16A5A5","#009CE0","#7B64FF","#FA28FF","#000000","#666666","#B3B3B3","#9F0500","#C45100","#FB9E00","#808900","#194D33","#0C797D","#0062B1","#653294","#AB149E"],styles:{}};var yd=Wt(Ui),bd=function(n){var m=n.hover,v=n.color,x=n.onClick,re=n.onSwatchHover,de={position:"relative",zIndex:"2",outline:"2px solid #fff",boxShadow:"0 0 5px 2px rgba(0,0,0,0.25)"},xe=(0,o.ZP)({default:{swatch:{width:"25px",height:"25px",fontSize:"0"}},hover:{swatch:de}},{hover:m});return a().createElement("div",{style:xe.swatch},a().createElement(va,{color:v,onClick:x,onHover:re,focusStyle:de}))},Cd=(0,o.tz)(bd),Gi=function(n){var m=n.width,v=n.colors,x=n.onChange,re=n.onSwatchHover,de=n.triangle,xe=n.styles,Re=xe===void 0?{}:xe,ke=n.className,ze=ke===void 0?"":ke,ot=(0,o.ZP)(Ta({default:{card:{width:m,background:"#fff",border:"1px solid rgba(0,0,0,0.2)",boxShadow:"0 3px 12px rgba(0,0,0,0.15)",borderRadius:"4px",position:"relative",padding:"5px",display:"flex",flexWrap:"wrap"},triangle:{position:"absolute",border:"7px solid transparent",borderBottomColor:"#fff"},triangleShadow:{position:"absolute",border:"8px solid transparent",borderBottomColor:"rgba(0,0,0,0.15)"}},"hide-triangle":{triangle:{display:"none"},triangleShadow:{display:"none"}},"top-left-triangle":{triangle:{top:"-14px",left:"10px"},triangleShadow:{top:"-16px",left:"9px"}},"top-right-triangle":{triangle:{top:"-14px",right:"10px"},triangleShadow:{top:"-16px",right:"9px"}},"bottom-left-triangle":{triangle:{top:"35px",left:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",left:"9px",transform:"rotate(180deg)"}},"bottom-right-triangle":{triangle:{top:"35px",right:"10px",transform:"rotate(180deg)"},triangleShadow:{top:"37px",right:"9px",transform:"rotate(180deg)"}}},Re),{"hide-triangle":de==="hide","top-left-triangle":de==="top-left","top-right-triangle":de==="top-right","bottom-left-triangle":de==="bottom-left","bottom-right-triangle":de==="bottom-right"}),at=function(Tt,Pt){return x({hex:Tt,source:"hex"},Pt)};return a().createElement("div",{style:ot.card,className:"github-picker "+ze},a().createElement("div",{style:ot.triangleShadow}),a().createElement("div",{style:ot.triangle}),kn(v,function(ut){return a().createElement(Cd,{color:ut,key:ut,onClick:at,onSwatchHover:re})}))};Gi.propTypes={width:Z().oneOfType([Z().string,Z().number]),colors:Z().arrayOf(Z().string),triangle:Z().oneOf(["hide","top-left","top-right","bottom-left","bottom-right"]),styles:Z().object},Gi.defaultProps={width:200,colors:["#B80000","#DB3E00","#FCCB00","#008B02","#006B76","#1273DE","#004DCF","#5300EB","#EB9694","#FAD0C3","#FEF3BD","#C1E1C5","#BEDADC","#C4DEF6","#BED3F3","#D4C4FB"],triangle:"top-left",styles:{}};var xd=Wt(Gi),Sd=function(n){var m=n.direction,v=(0,o.ZP)({default:{picker:{width:"18px",height:"18px",borderRadius:"50%",transform:"translate(-9px, -1px)",backgroundColor:"rgb(248, 248, 248)",boxShadow:"0 1px 4px 0 rgba(0, 0, 0, 0.37)"}},vertical:{picker:{transform:"translate(-3px, -9px)"}}},{vertical:m==="vertical"});return a().createElement("div",{style:v.picker})},Ed=Sd,Td=Object.assign||function(s){for(var n=1;n.5});return a().createElement("div",{style:v.picker})},Md=Ad,Id=function(){var n=(0,o.ZP)({default:{triangle:{width:0,height:0,borderStyle:"solid",borderWidth:"4px 0 4px 6px",borderColor:"transparent transparent transparent #fff",position:"absolute",top:"1px",left:"1px"},triangleBorder:{width:0,height:0,borderStyle:"solid",borderWidth:"5px 0 5px 8px",borderColor:"transparent transparent transparent #555"},left:{Extend:"triangleBorder",transform:"translate(-13px, -4px)"},leftInside:{Extend:"triangle",transform:"translate(-8px, -5px)"},right:{Extend:"triangleBorder",transform:"translate(20px, -14px) rotate(180deg)"},rightInside:{Extend:"triangle",transform:"translate(-8px, -5px)"}}});return a().createElement("div",{style:n.pointer},a().createElement("div",{style:n.left},a().createElement("div",{style:n.leftInside})),a().createElement("div",{style:n.right},a().createElement("div",{style:n.rightInside})))},kd=Id,Nd=function(n){var m=n.onClick,v=n.label,x=n.children,re=n.active,de=(0,o.ZP)({default:{button:{backgroundImage:"linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)",border:"1px solid #878787",borderRadius:"2px",height:"20px",boxShadow:"0 1px 0 0 #EAEAEA",fontSize:"14px",color:"#000",lineHeight:"20px",textAlign:"center",marginBottom:"10px",cursor:"pointer"}},active:{button:{boxShadow:"0 0 0 1px #878787"}}},{active:re});return a().createElement("div",{style:de.button,onClick:m},v||x)},Nl=Nd,Bd=function(n){var m=n.rgb,v=n.currentColor,x=(0,o.ZP)({default:{swatches:{border:"1px solid #B3B3B3",borderBottom:"1px solid #F0F0F0",marginBottom:"2px",marginTop:"1px"},new:{height:"34px",background:"rgb("+m.r+","+m.g+", "+m.b+")",boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000"},current:{height:"34px",background:v,boxShadow:"inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000"},label:{fontSize:"14px",color:"#000",textAlign:"center"}}});return a().createElement("div",null,a().createElement("div",{style:x.label},"new"),a().createElement("div",{style:x.swatches},a().createElement("div",{style:x.new}),a().createElement("div",{style:x.current})),a().createElement("div",{style:x.label},"current"))},Ld=Bd,jd=function(){function s(n,m){for(var v=0;v100&&(ze.a=100),ze.a/=100,m({h:x.h,s:x.s,l:x.l,a:ze.a,source:"rgb"},ot))};return a().createElement("div",{style:xe.fields,className:"flexbox-fix"},a().createElement("div",{style:xe.double},a().createElement(p,{style:{input:xe.input,label:xe.label},label:"hex",value:re.replace("#",""),onChange:Re})),a().createElement("div",{style:xe.single},a().createElement(p,{style:{input:xe.input,label:xe.label},label:"r",value:v.r,onChange:Re,dragLabel:"true",dragMax:"255"})),a().createElement("div",{style:xe.single},a().createElement(p,{style:{input:xe.input,label:xe.label},label:"g",value:v.g,onChange:Re,dragLabel:"true",dragMax:"255"})),a().createElement("div",{style:xe.single},a().createElement(p,{style:{input:xe.input,label:xe.label},label:"b",value:v.b,onChange:Re,dragLabel:"true",dragMax:"255"})),a().createElement("div",{style:xe.alpha},a().createElement(p,{style:{input:xe.input,label:xe.label},label:"a",value:Math.round(v.a*100),onChange:Re,dragLabel:"true",dragMax:"100"})))},Ud=Vd,Gd=Object.assign||function(s){for(var n=1;n=0||(B[Ke]=te[Ke]);return B}function E(te){var ge=(0,t.useRef)(te),Ke=(0,t.useRef)(function(Ge){ge.current&&ge.current(Ge)});return ge.current=te,Ke.current}var T=function(te,ge,Ke){return ge===void 0&&(ge=0),Ke===void 0&&(Ke=1),te>Ke?Ke:te0:Rt.buttons>0)&&B.current?ee(f(B.current,Rt,Me.current)):Ft(!1)},Ot=function(){return Ft(!1)};function Ft(Rt){var ht=He.current,Yt=i(B.current),xa=Rt?Yt.addEventListener:Yt.removeEventListener;xa(ht?"touchmove":"mousemove",zt),xa(ht?"touchend":"mouseup",Ot)}return[function(Rt){var ht=Rt.nativeEvent,Yt=B.current;if(Yt&&(u(ht),!function(Na,Aa){return Aa&&!g(Na)}(ht,He.current)&&Yt)){if(g(ht)){He.current=!0;var xa=ht.changedTouches||[];xa.length&&(Me.current=xa[0].identifier)}Yt.focus(),ee(f(Yt,ht,Me.current)),Ft(!0)}},function(Rt){var ht=Rt.which||Rt.keyCode;ht<37||ht>40||(Rt.preventDefault(),Oe({left:ht===39?.05:ht===37?-.05:0,top:ht===40?.05:ht===38?-.05:0}))},Ft]},[Oe,ee]),bt=rt[0],ft=rt[1],gt=rt[2];return(0,t.useEffect)(function(){return gt},[gt]),a().createElement("div",o({},Ge,{onTouchStart:bt,onMouseDown:bt,className:"react-colorful__interactive",ref:B,onKeyDown:ft,tabIndex:0,role:"slider"}))}),M=function(te){return te.filter(Boolean).join(" ")},D=function(te){var ge=te.color,Ke=te.left,Ge=te.top,B=Ge===void 0?.5:Ge,ee=M(["react-colorful__pointer",te.className]);return a().createElement("div",{className:ee,style:{top:100*B+"%",left:100*Ke+"%"}},a().createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:ge}}))},F=function(te,ge,Ke){return ge===void 0&&(ge=0),Ke===void 0&&(Ke=Math.pow(10,ge)),Math.round(Ke*te)/Ke},oe={grad:.9,turn:360,rad:360/(2*Math.PI)},J=function(te){return te[0]==="#"&&(te=te.substr(1)),te.length<6?{r:parseInt(te[0]+te[0],16),g:parseInt(te[1]+te[1],16),b:parseInt(te[2]+te[2],16),a:1}:{r:parseInt(te.substr(0,2),16),g:parseInt(te.substr(2,2),16),b:parseInt(te.substr(4,2),16),a:1}},R=function(te,ge){return ge===void 0&&(ge="deg"),Number(te)*(oe[ge]||1)},ae=function(te){var ge=/hsla?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(te);return ge?X({h:R(ge[1],ge[2]),s:Number(ge[3]),l:Number(ge[4]),a:ge[5]===void 0?1:Number(ge[5])/(ge[6]?100:1)}):{h:0,s:0,v:0,a:1}},_=ae,X=function(te){var ge=te.s,Ke=te.l;return{h:te.h,s:(ge*=(Ke<50?Ke:100-Ke)/100)>0?2*ge/(Ke+ge)*100:0,v:Ke+ge,a:te.a}},K=function(te){var ge=te.s,Ke=te.v,Ge=te.a,B=(200-ge)*Ke/100;return{h:F(te.h),s:F(B>0&&B<200?ge*Ke/100/(B<=100?B:200-B)*100:0),l:F(B/2),a:F(Ge,2)}},H=function(te){var ge=K(te);return"hsl("+ge.h+", "+ge.s+"%, "+ge.l+"%)"},L=function(te){var ge=K(te);return"hsla("+ge.h+", "+ge.s+"%, "+ge.l+"%, "+ge.a+")"},G=function(te){var ge=te.h,Ke=te.s,Ge=te.v,B=te.a;ge=ge/360*6,Ke/=100,Ge/=100;var ee=Math.floor(ge),Oe=Ge*(1-Ke),Me=Ge*(1-(ge-ee)*Ke),He=Ge*(1-(1-ge+ee)*Ke),rt=ee%6;return{r:F(255*[Ge,Me,Oe,Oe,He,Ge][rt]),g:F(255*[He,Ge,Ge,Me,Oe,Oe][rt]),b:F(255*[Oe,Oe,He,Ge,Ge,Me][rt]),a:F(B,2)}},W=function(te){var ge=/hsva?\(?\s*(-?\d*\.?\d+)(deg|rad|grad|turn)?[,\s]+(-?\d*\.?\d+)%?[,\s]+(-?\d*\.?\d+)%?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(te);return ge?p({h:R(ge[1],ge[2]),s:Number(ge[3]),v:Number(ge[4]),a:ge[5]===void 0?1:Number(ge[5])/(ge[6]?100:1)}):{h:0,s:0,v:0,a:1}},I=W,y=function(te){var ge=/rgba?\(?\s*(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?[,\s]+(-?\d*\.?\d+)(%)?,?\s*[/\s]*(-?\d*\.?\d+)?(%)?\s*\)?/i.exec(te);return ge?k({r:Number(ge[1])/(ge[2]?100/255:1),g:Number(ge[3])/(ge[4]?100/255:1),b:Number(ge[5])/(ge[6]?100/255:1),a:ge[7]===void 0?1:Number(ge[7])/(ge[8]?100:1)}):{h:0,s:0,v:0,a:1}},P=y,S=function(te){var ge=te.toString(16);return ge.length<2?"0"+ge:ge},k=function(te){var ge=te.r,Ke=te.g,Ge=te.b,B=te.a,ee=Math.max(ge,Ke,Ge),Oe=ee-Math.min(ge,Ke,Ge),Me=Oe?ee===ge?(Ke-Ge)/Oe:ee===Ke?2+(Ge-ge)/Oe:4+(ge-Ke)/Oe:0;return{h:F(60*(Me<0?Me+6:Me)),s:F(ee?Oe/ee*100:0),v:F(ee/255*100),a:B}},p=function(te){return{h:F(te.h),s:F(te.s),v:F(te.v),a:F(te.a,2)}},O=a().memo(function(te){var ge=te.hue,Ke=te.onChange,Ge=M(["react-colorful__hue",te.className]);return a().createElement("div",{className:Ge},a().createElement(b,{onMove:function(B){Ke({h:360*B.left})},onKey:function(B){Ke({h:T(ge+360*B.left,0,360)})},"aria-label":"Hue","aria-valuetext":F(ge)},a().createElement(D,{className:"react-colorful__hue-pointer",left:ge/360,color:H({h:ge,s:100,v:100,a:1})})))}),d=a().memo(function(te){var ge=te.hsva,Ke=te.onChange,Ge={backgroundColor:H({h:ge.h,s:100,v:100,a:1})};return a().createElement("div",{className:"react-colorful__saturation",style:Ge},a().createElement(b,{onMove:function(B){Ke({s:100*B.left,v:100-100*B.top})},onKey:function(B){Ke({s:T(ge.s+100*B.left,0,100),v:T(ge.v-100*B.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+F(ge.s)+"%, Brightness "+F(ge.v)+"%"},a().createElement(D,{className:"react-colorful__saturation-pointer",top:1-ge.v/100,left:ge.s/100,color:H(ge)})))}),w=function(te,ge){if(te===ge)return!0;for(var Ke in te)if(te[Ke]!==ge[Ke])return!1;return!0},U=function(te,ge){return te.replace(/\s/g,"")===ge.replace(/\s/g,"")};function Y(te,ge,Ke){var Ge=E(Ke),B=(0,t.useState)(function(){return te.toHsva(ge)}),ee=B[0],Oe=B[1],Me=(0,t.useRef)({color:ge,hsva:ee});(0,t.useEffect)(function(){if(!te.equal(ge,Me.current.color)){var rt=te.toHsva(ge);Me.current={hsva:rt,color:ge},Oe(rt)}},[ge,te]),(0,t.useEffect)(function(){var rt;w(ee,Me.current.hsva)||te.equal(rt=te.fromHsva(ee),Me.current.color)||(Me.current={hsva:ee,color:rt},Ge(rt))},[ee,te,Ge]);var He=(0,t.useCallback)(function(rt){Oe(function(bt){return Object.assign({},bt,rt)})},[]);return[ee,He]}var se,we=typeof window!="undefined"?t.useLayoutEffect:t.useEffect,Te=function(){return se||e.nc},Z=function(te){se=te},ie=new Map,Ae=function(te){we(function(){var ge=te.current?te.current.ownerDocument:document;if(ge!==void 0&&!ie.has(ge)){var Ke=ge.createElement("style");Ke.innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`,ie.set(ge,Ke);var Ge=Te();Ge&&Ke.setAttribute("nonce",Ge),ge.head.appendChild(Ke)}},[])},le=function(te){var ge=te.className,Ke=te.colorModel,Ge=te.color,B=Ge===void 0?Ke.defaultColor:Ge,ee=te.onChange,Oe=h(te,["className","colorModel","color","onChange"]),Me=(0,t.useRef)(null);Ae(Me);var He=Y(Ke,B,ee),rt=He[0],bt=He[1],ft=M(["react-colorful",ge]);return a().createElement("div",o({},Oe,{ref:Me,className:ft}),a().createElement(d,{hsva:rt,onChange:bt}),a().createElement(O,{hue:rt.h,onChange:bt,className:"react-colorful__last-control"}))},Ee={defaultColor:"000",toHsva:function(te){return k(J(te))},fromHsva:function(te){return Ke=(ge=G(te)).g,Ge=ge.b,"#"+S(ge.r)+S(Ke)+S(Ge);var ge,Ke,Ge},equal:function(te,ge){return te.toLowerCase()===ge.toLowerCase()||w(J(te),J(ge))}},Se=function(te){return a().createElement(le,o({},te,{colorModel:Ee}))},Le=function(te){var ge=te.className,Ke=te.hsva,Ge=te.onChange,B={backgroundImage:"linear-gradient(90deg, "+L(Object.assign({},Ke,{a:0}))+", "+L(Object.assign({},Ke,{a:1}))+")"},ee=M(["react-colorful__alpha",ge]);return a().createElement("div",{className:ee},a().createElement("div",{className:"react-colorful__alpha-gradient",style:B}),a().createElement(b,{onMove:function(Oe){Ge({a:Oe.left})},onKey:function(Oe){Ge({a:T(Ke.a+Oe.left)})},"aria-label":"Alpha","aria-valuetext":F(100*Ke.a)+"%"},a().createElement(D,{className:"react-colorful__alpha-pointer",left:Ke.a,color:L(Ke)})))},tt=function(te){var ge=te.className,Ke=te.colorModel,Ge=te.color,B=Ge===void 0?Ke.defaultColor:Ge,ee=te.onChange,Oe=h(te,["className","colorModel","color","onChange"]),Me=(0,t.useRef)(null);Ae(Me);var He=Y(Ke,B,ee),rt=He[0],bt=He[1],ft=M(["react-colorful",ge]);return a().createElement("div",o({},Oe,{ref:Me,className:ft}),a().createElement(d,{hsva:rt,onChange:bt}),a().createElement(O,{hue:rt.h,onChange:bt}),a().createElement(Le,{hsva:rt,onChange:bt,className:"react-colorful__last-control"}))},Xe={defaultColor:{h:0,s:0,l:0,a:1},toHsva:X,fromHsva:K,equal:w},it=function(te){return a().createElement(tt,o({},te,{colorModel:Xe}))},N={defaultColor:"hsla(0, 0%, 0%, 1)",toHsva:ae,fromHsva:L,equal:U},q=function(te){return a().createElement(tt,o({},te,{colorModel:N}))},V={defaultColor:{h:0,s:0,l:0},toHsva:function(te){return X({h:te.h,s:te.s,l:te.l,a:1})},fromHsva:function(te){return{h:(ge=K(te)).h,s:ge.s,l:ge.l};var ge},equal:w},he=function(te){return a().createElement(le,o({},te,{colorModel:V}))},ne={defaultColor:"hsl(0, 0%, 0%)",toHsva:_,fromHsva:H,equal:U},ce=function(te){return a().createElement(le,o({},te,{colorModel:ne}))},Ie={defaultColor:{h:0,s:0,v:0,a:1},toHsva:function(te){return te},fromHsva:p,equal:w},We=function(te){return a().createElement(tt,o({},te,{colorModel:Ie}))},qe={defaultColor:"hsva(0, 0%, 0%, 1)",toHsva:W,fromHsva:function(te){var ge=p(te);return"hsva("+ge.h+", "+ge.s+"%, "+ge.v+"%, "+ge.a+")"},equal:U},ct=function(te){return a().createElement(tt,o({},te,{colorModel:qe}))},dt={defaultColor:{h:0,s:0,v:0},toHsva:function(te){return{h:te.h,s:te.s,v:te.v,a:1}},fromHsva:function(te){var ge=p(te);return{h:ge.h,s:ge.s,v:ge.v}},equal:w},nt=function(te){return a().createElement(le,o({},te,{colorModel:dt}))},mt={defaultColor:"hsv(0, 0%, 0%)",toHsva:I,fromHsva:function(te){var ge=p(te);return"hsv("+ge.h+", "+ge.s+"%, "+ge.v+"%)"},equal:U},It=function(te){return a().createElement(le,o({},te,{colorModel:mt}))},aa={defaultColor:{r:0,g:0,b:0,a:1},toHsva:k,fromHsva:G,equal:w},ua=function(te){return a().createElement(tt,o({},te,{colorModel:aa}))},Et={defaultColor:"rgba(0, 0, 0, 1)",toHsva:y,fromHsva:function(te){var ge=G(te);return"rgba("+ge.r+", "+ge.g+", "+ge.b+", "+ge.a+")"},equal:U},ta=function(te){return a().createElement(tt,o({},te,{colorModel:Et}))},ca={defaultColor:{r:0,g:0,b:0},toHsva:function(te){return k({r:te.r,g:te.g,b:te.b,a:1})},fromHsva:function(te){return{r:(ge=G(te)).r,g:ge.g,b:ge.b};var ge},equal:w},Lt=function(te){return a().createElement(le,o({},te,{colorModel:ca}))},wt={defaultColor:"rgb(0, 0, 0)",toHsva:P,fromHsva:function(te){var ge=G(te);return"rgb("+ge.r+", "+ge.g+", "+ge.b+")"},equal:U},Qe=function(te){return a().createElement(le,o({},te,{colorModel:wt}))},qt=/^#?([0-9A-F]{3,8})$/i,_t=function(te){var ge=te.color,Ke=ge===void 0?"":ge,Ge=te.onChange,B=te.onBlur,ee=te.escape,Oe=te.validate,Me=te.format,He=te.process,rt=h(te,["color","onChange","onBlur","escape","validate","format","process"]),bt=(0,t.useState)(function(){return ee(Ke)}),ft=bt[0],gt=bt[1],zt=E(Ge),Ot=E(B),Ft=(0,t.useCallback)(function(ht){var Yt=ee(ht.target.value);gt(Yt),Oe(Yt)&&zt(He?He(Yt):Yt)},[ee,He,Oe,zt]),Rt=(0,t.useCallback)(function(ht){Oe(ht.target.value)||gt(ee(Ke)),Ot(ht)},[Ke,ee,Oe,Ot]);return(0,t.useEffect)(function(){gt(ee(Ke))},[Ke,ee]),a().createElement("input",o({},rt,{value:Me?Me(ft):ft,spellCheck:"false",onChange:Ft,onBlur:Rt}))},pa=function(te){return"#"+te},Mt=function(te){var ge=te.prefixed,Ke=te.alpha,Ge=h(te,["prefixed","alpha"]),B=(0,t.useCallback)(function(Oe){return Oe.replace(/([^0-9A-F]+)/gi,"").substr(0,Ke?8:6)},[Ke]),ee=(0,t.useCallback)(function(Oe){return function(Me,He){var rt=qt.exec(Me),bt=rt?rt[1].length:0;return bt===3||bt===6||!!He&&bt===4||!!He&&bt===8}(Oe,Ke)},[Ke]);return a().createElement(_t,o({},Ge,{escape:B,format:ge?pa:void 0,process:pa,validate:ee}))}},86856:function(l,r,e){"use strict";e.r(r),e.d(r,{Cropper:function(){return f}});var t=e(4819),a=e.n(t),o=e(83873),h=e.n(o);/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var E=function(){return E=Object.assign||function(b){for(var M,D=1,F=arguments.length;D0&&u.zoomTo(_)},i=function(){for(var u=[],b=0;b1&&arguments[1]!==void 0?arguments[1]:"span";return function(M){g(D,M);function D(){var F,oe,J,R;E(this,D);for(var ae=arguments.length,_=Array(ae),X=0;X1&&arguments[1]!==void 0?arguments[1]:"span";return function(M){g(D,M);function D(){var F,oe,J,R;E(this,D);for(var ae=arguments.length,_=Array(ae),X=0;X0&&arguments[0]!==void 0?arguments[0]:[],D=[];return(0,i.default)(M,function(F){Array.isArray(F)?b(F).map(function(oe){return D.push(oe)}):(0,T.default)(F)?(0,h.default)(F,function(oe,J){oe===!0&&D.push(J),D.push(J+"-"+oe)}):(0,a.default)(F)&&D.push(F)}),D};r.default=u},29790:function(l,r,e){"use strict";var t;t={value:!0},t=t=t=r.tz=t=void 0;var a=e(9986),o=F(a),h=e(20512),E=F(h),T=e(61018),g=F(T),i=e(12958),f=F(i),u=e(35025),b=F(u),M=e(74031),D=F(M);function F(J){return J&&J.__esModule?J:{default:J}}t=f.default,r.tz=f.default,t=b.default,t=D.default;var oe=t=function(R){for(var ae=arguments.length,_=Array(ae>1?ae-1:0),X=1;X1&&arguments[1]!==void 0?arguments[1]:!0;h[g]=i};return a===0&&E("first-child"),a===o-1&&E("last-child"),(a===0||a%2===0)&&E("even"),Math.abs(a%2)===1&&E("odd"),E("nth-child",a),h};r.default=e},20512:function(l,r,e){"use strict";Object.defineProperty(r,"__esModule",{value:!0}),r.mergeClasses=void 0;var t=e(76955),a=T(t),o=e(99748),h=T(o),E=Object.assign||function(i){for(var f=1;f1&&arguments[1]!==void 0?arguments[1]:[],b=f.default&&(0,h.default)(f.default)||{};return u.map(function(M){var D=f[M];return D&&(0,a.default)(D,function(F,oe){b[oe]||(b[oe]={}),b[oe]=E({},b[oe],D[oe])}),M}),b};r.default=g},29711:function(l,r,e){var t;(function(a){var o=/^\s+/,h=/\s+$/,E=0,T=a.round,g=a.min,i=a.max,f=a.random;function u(N,q){if(N=N||"",q=q||{},N instanceof u)return N;if(!(this instanceof u))return new u(N,q);var V=b(N);this._originalInput=N,this._r=V.r,this._g=V.g,this._b=V.b,this._a=V.a,this._roundA=T(100*this._a)/100,this._format=q.format||V.format,this._gradientType=q.gradientType,this._r<1&&(this._r=T(this._r)),this._g<1&&(this._g=T(this._g)),this._b<1&&(this._b=T(this._b)),this._ok=V.ok,this._tc_id=E++}u.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var N=this.toRgb();return(N.r*299+N.g*587+N.b*114)/1e3},getLuminance:function(){var N=this.toRgb(),q,V,he,ne,ce,Ie;return q=N.r/255,V=N.g/255,he=N.b/255,q<=.03928?ne=q/12.92:ne=a.pow((q+.055)/1.055,2.4),V<=.03928?ce=V/12.92:ce=a.pow((V+.055)/1.055,2.4),he<=.03928?Ie=he/12.92:Ie=a.pow((he+.055)/1.055,2.4),.2126*ne+.7152*ce+.0722*Ie},setAlpha:function(N){return this._a=Y(N),this._roundA=T(100*this._a)/100,this},toHsv:function(){var N=oe(this._r,this._g,this._b);return{h:N.h*360,s:N.s,v:N.v,a:this._a}},toHsvString:function(){var N=oe(this._r,this._g,this._b),q=T(N.h*360),V=T(N.s*100),he=T(N.v*100);return this._a==1?"hsv("+q+", "+V+"%, "+he+"%)":"hsva("+q+", "+V+"%, "+he+"%, "+this._roundA+")"},toHsl:function(){var N=D(this._r,this._g,this._b);return{h:N.h*360,s:N.s,l:N.l,a:this._a}},toHslString:function(){var N=D(this._r,this._g,this._b),q=T(N.h*360),V=T(N.s*100),he=T(N.l*100);return this._a==1?"hsl("+q+", "+V+"%, "+he+"%)":"hsla("+q+", "+V+"%, "+he+"%, "+this._roundA+")"},toHex:function(N){return R(this._r,this._g,this._b,N)},toHexString:function(N){return"#"+this.toHex(N)},toHex8:function(N){return ae(this._r,this._g,this._b,this._a,N)},toHex8String:function(N){return"#"+this.toHex8(N)},toRgb:function(){return{r:T(this._r),g:T(this._g),b:T(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+T(this._r)+", "+T(this._g)+", "+T(this._b)+")":"rgba("+T(this._r)+", "+T(this._g)+", "+T(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:T(se(this._r,255)*100)+"%",g:T(se(this._g,255)*100)+"%",b:T(se(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+T(se(this._r,255)*100)+"%, "+T(se(this._g,255)*100)+"%, "+T(se(this._b,255)*100)+"%)":"rgba("+T(se(this._r,255)*100)+"%, "+T(se(this._g,255)*100)+"%, "+T(se(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:w[R(this._r,this._g,this._b,!0)]||!1},toFilter:function(N){var q="#"+_(this._r,this._g,this._b,this._a),V=q,he=this._gradientType?"GradientType = 1, ":"";if(N){var ne=u(N);V="#"+_(ne._r,ne._g,ne._b,ne._a)}return"progid:DXImageTransform.Microsoft.gradient("+he+"startColorstr="+q+",endColorstr="+V+")"},toString:function(N){var q=!!N;N=N||this._format;var V=!1,he=this._a<1&&this._a>=0,ne=!q&&he&&(N==="hex"||N==="hex6"||N==="hex3"||N==="hex4"||N==="hex8"||N==="name");return ne?N==="name"&&this._a===0?this.toName():this.toRgbString():(N==="rgb"&&(V=this.toRgbString()),N==="prgb"&&(V=this.toPercentageRgbString()),(N==="hex"||N==="hex6")&&(V=this.toHexString()),N==="hex3"&&(V=this.toHexString(!0)),N==="hex4"&&(V=this.toHex8String(!0)),N==="hex8"&&(V=this.toHex8String()),N==="name"&&(V=this.toName()),N==="hsl"&&(V=this.toHslString()),N==="hsv"&&(V=this.toHsvString()),V||this.toHexString())},clone:function(){return u(this.toString())},_applyModification:function(N,q){var V=N.apply(null,[this].concat([].slice.call(q)));return this._r=V._r,this._g=V._g,this._b=V._b,this.setAlpha(V._a),this},lighten:function(){return this._applyModification(L,arguments)},brighten:function(){return this._applyModification(G,arguments)},darken:function(){return this._applyModification(W,arguments)},desaturate:function(){return this._applyModification(X,arguments)},saturate:function(){return this._applyModification(K,arguments)},greyscale:function(){return this._applyModification(H,arguments)},spin:function(){return this._applyModification(I,arguments)},_applyCombination:function(N,q){return N.apply(null,[this].concat([].slice.call(q)))},analogous:function(){return this._applyCombination(p,arguments)},complement:function(){return this._applyCombination(y,arguments)},monochromatic:function(){return this._applyCombination(O,arguments)},splitcomplement:function(){return this._applyCombination(k,arguments)},triad:function(){return this._applyCombination(P,arguments)},tetrad:function(){return this._applyCombination(S,arguments)}},u.fromRatio=function(N,q){if(typeof N=="object"){var V={};for(var he in N)N.hasOwnProperty(he)&&(he==="a"?V[he]=N[he]:V[he]=le(N[he]));N=V}return u(N,q)};function b(N){var q={r:0,g:0,b:0},V=1,he=null,ne=null,ce=null,Ie=!1,We=!1;return typeof N=="string"&&(N=Xe(N)),typeof N=="object"&&(tt(N.r)&&tt(N.g)&&tt(N.b)?(q=M(N.r,N.g,N.b),Ie=!0,We=String(N.r).substr(-1)==="%"?"prgb":"rgb"):tt(N.h)&&tt(N.s)&&tt(N.v)?(he=le(N.s),ne=le(N.v),q=J(N.h,he,ne),Ie=!0,We="hsv"):tt(N.h)&&tt(N.s)&&tt(N.l)&&(he=le(N.s),ce=le(N.l),q=F(N.h,he,ce),Ie=!0,We="hsl"),N.hasOwnProperty("a")&&(V=N.a)),V=Y(V),{ok:Ie,format:N.format||We,r:g(255,i(q.r,0)),g:g(255,i(q.g,0)),b:g(255,i(q.b,0)),a:V}}function M(N,q,V){return{r:se(N,255)*255,g:se(q,255)*255,b:se(V,255)*255}}function D(N,q,V){N=se(N,255),q=se(q,255),V=se(V,255);var he=i(N,q,V),ne=g(N,q,V),ce,Ie,We=(he+ne)/2;if(he==ne)ce=Ie=0;else{var qe=he-ne;switch(Ie=We>.5?qe/(2-he-ne):qe/(he+ne),he){case N:ce=(q-V)/qe+(q1&&(nt-=1),nt<1/6?ct+(dt-ct)*6*nt:nt<1/2?dt:nt<2/3?ct+(dt-ct)*(2/3-nt)*6:ct}if(q===0)he=ne=ce=V;else{var We=V<.5?V*(1+q):V+q-V*q,qe=2*V-We;he=Ie(qe,We,N+1/3),ne=Ie(qe,We,N),ce=Ie(qe,We,N-1/3)}return{r:he*255,g:ne*255,b:ce*255}}function oe(N,q,V){N=se(N,255),q=se(q,255),V=se(V,255);var he=i(N,q,V),ne=g(N,q,V),ce,Ie,We=he,qe=he-ne;if(Ie=he===0?0:qe/he,he==ne)ce=0;else{switch(he){case N:ce=(q-V)/qe+(q>1)+720)%360;--q;)he.h=(he.h+ne)%360,ce.push(u(he));return ce}function O(N,q){q=q||6;for(var V=u(N).toHsv(),he=V.h,ne=V.s,ce=V.v,Ie=[],We=1/q;q--;)Ie.push(u({h:he,s:ne,v:ce})),ce=(ce+We)%1;return Ie}u.mix=function(N,q,V){V=V===0?0:V||50;var he=u(N).toRgb(),ne=u(q).toRgb(),ce=V/100,Ie={r:(ne.r-he.r)*ce+he.r,g:(ne.g-he.g)*ce+he.g,b:(ne.b-he.b)*ce+he.b,a:(ne.a-he.a)*ce+he.a};return u(Ie)},u.readability=function(N,q){var V=u(N),he=u(q);return(a.max(V.getLuminance(),he.getLuminance())+.05)/(a.min(V.getLuminance(),he.getLuminance())+.05)},u.isReadable=function(N,q,V){var he=u.readability(N,q),ne,ce;switch(ce=!1,ne=it(V),ne.level+ne.size){case"AAsmall":case"AAAlarge":ce=he>=4.5;break;case"AAlarge":ce=he>=3;break;case"AAAsmall":ce=he>=7;break}return ce},u.mostReadable=function(N,q,V){var he=null,ne=0,ce,Ie,We,qe;V=V||{},Ie=V.includeFallbackColors,We=V.level,qe=V.size;for(var ct=0;ctne&&(ne=ce,he=u(q[ct]));return u.isReadable(N,he,{level:We,size:qe})||!Ie?he:(V.includeFallbackColors=!1,u.mostReadable(N,["#fff","#000"],V))};var d=u.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},w=u.hexNames=U(d);function U(N){var q={};for(var V in N)N.hasOwnProperty(V)&&(q[N[V]]=V);return q}function Y(N){return N=parseFloat(N),(isNaN(N)||N<0||N>1)&&(N=1),N}function se(N,q){Z(N)&&(N="100%");var V=ie(N);return N=g(q,i(0,parseFloat(N))),V&&(N=parseInt(N*q,10)/100),a.abs(N-q)<1e-6?1:N%q/parseFloat(q)}function we(N){return g(1,i(0,N))}function Te(N){return parseInt(N,16)}function Z(N){return typeof N=="string"&&N.indexOf(".")!=-1&&parseFloat(N)===1}function ie(N){return typeof N=="string"&&N.indexOf("%")!=-1}function Ae(N){return N.length==1?"0"+N:""+N}function le(N){return N<=1&&(N=N*100+"%"),N}function Ee(N){return a.round(parseFloat(N)*255).toString(16)}function Se(N){return Te(N)/255}var Le=function(){var N="[-\\+]?\\d+%?",q="[-\\+]?\\d*\\.\\d+%?",V="(?:"+q+")|(?:"+N+")",he="[\\s|\\(]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")\\s*\\)?",ne="[\\s|\\(]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")[,|\\s]+("+V+")\\s*\\)?";return{CSS_UNIT:new RegExp(V),rgb:new RegExp("rgb"+he),rgba:new RegExp("rgba"+ne),hsl:new RegExp("hsl"+he),hsla:new RegExp("hsla"+ne),hsv:new RegExp("hsv"+he),hsva:new RegExp("hsva"+ne),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function tt(N){return!!Le.CSS_UNIT.exec(N)}function Xe(N){N=N.replace(o,"").replace(h,"").toLowerCase();var q=!1;if(d[N])N=d[N],q=!0;else if(N=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var V;return(V=Le.rgb.exec(N))?{r:V[1],g:V[2],b:V[3]}:(V=Le.rgba.exec(N))?{r:V[1],g:V[2],b:V[3],a:V[4]}:(V=Le.hsl.exec(N))?{h:V[1],s:V[2],l:V[3]}:(V=Le.hsla.exec(N))?{h:V[1],s:V[2],l:V[3],a:V[4]}:(V=Le.hsv.exec(N))?{h:V[1],s:V[2],v:V[3]}:(V=Le.hsva.exec(N))?{h:V[1],s:V[2],v:V[3],a:V[4]}:(V=Le.hex8.exec(N))?{r:Te(V[1]),g:Te(V[2]),b:Te(V[3]),a:Se(V[4]),format:q?"name":"hex8"}:(V=Le.hex6.exec(N))?{r:Te(V[1]),g:Te(V[2]),b:Te(V[3]),format:q?"name":"hex"}:(V=Le.hex4.exec(N))?{r:Te(V[1]+""+V[1]),g:Te(V[2]+""+V[2]),b:Te(V[3]+""+V[3]),a:Se(V[4]+""+V[4]),format:q?"name":"hex8"}:(V=Le.hex3.exec(N))?{r:Te(V[1]+""+V[1]),g:Te(V[2]+""+V[2]),b:Te(V[3]+""+V[3]),format:q?"name":"hex"}:!1}function it(N){var q,V;return N=N||{level:"AA",size:"small"},q=(N.level||"AA").toUpperCase(),V=(N.size||"small").toLowerCase(),q!=="AA"&&q!=="AAA"&&(q="AA"),V!=="small"&&V!=="large"&&(V="small"),{level:q,size:V}}l.exports?l.exports=u:(t=function(){return u}.call(r,e,r,l),t!==void 0&&(l.exports=t))})(Math)},51714:function(l,r,e){"use strict";l.exports=e.p+"static/media/Alarm Systems.857ab9a8f90827777b88.svg"},62591:function(l,r,e){"use strict";l.exports=e.p+"static/media/Amplifier.6f5d18048328386033f8.svg"},2028:function(l,r,e){"use strict";l.exports=e.p+"static/media/Awnings.78480df8796f09859b6a.svg"},68376:function(l,r,e){"use strict";l.exports=e.p+"static/media/Battery Status.5951e2078ae1e573510e.svg"},31875:function(l,r,e){"use strict";l.exports=e.p+"static/media/Ceiling Spotlights.485822441b5df3b3384a.svg"},50643:function(l,r,e){"use strict";l.exports=e.p+"static/media/Chandelier.8b9fbdbc73bc2e955ef7.svg"},33154:function(l,r,e){"use strict";l.exports=e.p+"static/media/Climate.b7e9896e7f103360bb5a.svg"},83821:function(l,r,e){"use strict";l.exports=e.p+"static/media/Coffee Makers.9fb4d82f957a06f30dae.svg"},59241:function(l,r,e){"use strict";l.exports=e.p+"static/media/Cold Water.937aad5fa21b0c20a856.svg"},71542:function(l,r,e){"use strict";l.exports=e.p+"static/media/Computer.9558f6ee3941dba4e3c5.svg"},49938:function(l,r,e){"use strict";l.exports=e.p+"static/media/Consumption.fecd7a10a13fe4e5f69b.svg"},96730:function(l,r,e){"use strict";l.exports=e.p+"static/media/Curtains.955e213206d2073eef99.svg"},96668:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dishwashers.3709566b7214596236b7.svg"},19925:function(l,r,e){"use strict";l.exports=e.p+"static/media/Doors.d59bf859f582d3488a04.svg"},15760:function(l,r,e){"use strict";l.exports=e.p+"static/media/Doorstep.10630b759b4867a10776.svg"},27951:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dryer.5ea89bd6dc20a00fb442.svg"},35624:function(l,r,e){"use strict";l.exports=e.p+"static/media/Fan.8a29f85d6ca99c584603.svg"},6724:function(l,r,e){"use strict";l.exports=e.p+"static/media/Floor Lamps.471e0bcf308d94963504.svg"},41692:function(l,r,e){"use strict";l.exports=e.p+"static/media/Garage Doors.0c2a1cfca7ad1ea59625.svg"},12654:function(l,r,e){"use strict";l.exports=e.p+"static/media/Gates.5a8baf2c3d4832ca57e8.svg"},51149:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hairdryer.5960b514dac1f04f3c4d.svg"},9183:function(l,r,e){"use strict";l.exports=e.p+"static/media/Handle.3de1d1320fc3ce2f9712.svg"},38554:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hanging Lamps.0bd452fc843edd645c30.svg"},20780:function(l,r,e){"use strict";l.exports=e.p+"static/media/Heater.b53bccc334bbb9238a36.svg"},78909:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hoods.c177ddfec9fa9a6335db.svg"},78962:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hot Water.5c0a9e01741562e1fbab.svg"},43461:function(l,r,e){"use strict";l.exports=e.p+"static/media/Humidity.6d58f69cf268dd8a8ac1.svg"},18534:function(l,r,e){"use strict";l.exports=e.p+"static/media/Iron.b8a65a48503b6f3e0dc8.svg"},42013:function(l,r,e){"use strict";l.exports=e.p+"static/media/Irrigation.d5fa30e9c2a519167964.svg"},65002:function(l,r,e){"use strict";l.exports=e.p+"static/media/Led Strip.5cf2de461e29ffbaa5f0.svg"},47462:function(l,r,e){"use strict";l.exports=e.p+"static/media/Light.21f1a5dfcc93f8ba1214.svg"},67129:function(l,r,e){"use strict";l.exports=e.p+"static/media/Lightings.658080eb8c0e347cd152.svg"},18221:function(l,r,e){"use strict";l.exports=e.p+"static/media/Lock.2cbfe17ea8923e0f4e9e.svg"},95571:function(l,r,e){"use strict";l.exports=e.p+"static/media/Louvre.75b84cd3d39d68107807.svg"},57447:function(l,r,e){"use strict";l.exports=e.p+"static/media/Mowing Machine.9ead5b039f36cdc800e6.svg"},86218:function(l,r,e){"use strict";l.exports=e.p+"static/media/Music.67bc6063cb601642fd74.svg"},19417:function(l,r,e){"use strict";l.exports=e.p+"static/media/Outdoor Blinds.37b85a9c060a4af48da9.svg"},89251:function(l,r,e){"use strict";l.exports=e.p+"static/media/People.12a7e9127e72f3259186.svg"},48493:function(l,r,e){"use strict";l.exports=e.p+"static/media/Pool.9452c0f84f53c7836f3d.svg"},8376:function(l,r,e){"use strict";l.exports=e.p+"static/media/Power Consumption.4faab614c3c788f2d338.svg"},93291:function(l,r,e){"use strict";l.exports=e.p+"static/media/Printer.146d983be964b95745d2.svg"},27568:function(l,r,e){"use strict";l.exports=e.p+"static/media/Pump.a6035507cddbe7db5f6a.svg"},19796:function(l,r,e){"use strict";l.exports=e.p+"static/media/Receiver.26b5ae166395a6dcb83f.svg"},96585:function(l,r,e){"use strict";l.exports=e.p+"static/media/Sconces.9bf4c2f7a209085207aa.svg"},88250:function(l,r,e){"use strict";l.exports=e.p+"static/media/Security.1ec78971bd34efa950f8.svg"},6672:function(l,r,e){"use strict";l.exports=e.p+"static/media/Shading.0577383dc227cd043b3d.svg"},87329:function(l,r,e){"use strict";l.exports=e.p+"static/media/Shutters.db7d7b0d498f40779210.svg"},9950:function(l,r,e){"use strict";l.exports=e.p+"static/media/SmokeDetector.8222f77cb07030a409ee.svg"},80993:function(l,r,e){"use strict";l.exports=e.p+"static/media/Sockets.8320e1a99be9de004629.svg"},12265:function(l,r,e){"use strict";l.exports=e.p+"static/media/Speaker.db548379676317470c4f.svg"},23523:function(l,r,e){"use strict";l.exports=e.p+"static/media/Stove.d0f68b3e138c5831d252.svg"},79717:function(l,r,e){"use strict";l.exports=e.p+"static/media/Table Lamps.bd92de33bf86b6cbaec9.svg"},3735:function(l,r,e){"use strict";l.exports=e.p+"static/media/Temperature Sensors.75d805988a6b77b231d8.svg"},59392:function(l,r,e){"use strict";l.exports=e.p+"static/media/Tv.4e9745a548e57bfac0c7.svg"},79597:function(l,r,e){"use strict";l.exports=e.p+"static/media/Vacuum Cleaner.9c8d50e436e6cea06dfa.svg"},17948:function(l,r,e){"use strict";l.exports=e.p+"static/media/Ventilation.c31761d86d67e245ac92.svg"},50603:function(l,r,e){"use strict";l.exports=e.p+"static/media/Washing Machines.577f3acdb3cef002b523.svg"},35306:function(l,r,e){"use strict";l.exports=e.p+"static/media/Water Consumption.68891649591cc2434c5b.svg"},21219:function(l,r,e){"use strict";l.exports=e.p+"static/media/Water Heater.7e4bb4d99a5213f24d08.svg"},65028:function(l,r,e){"use strict";l.exports=e.p+"static/media/Water.f50411984c5c24fa574d.svg"},99158:function(l,r,e){"use strict";l.exports=e.p+"static/media/Weather.e91dae647698d48365e3.svg"},81640:function(l,r,e){"use strict";l.exports=e.p+"static/media/Window.421664f57c35e5109aa2.svg"},62354:function(l,r,e){"use strict";l.exports=e.p+"static/media/names.e7efb5283d98000c74ac.txt"},44274:function(l,r,e){"use strict";l.exports=e.p+"static/media/Anteroom.93a742135f2c060ad619.svg"},28953:function(l,r,e){"use strict";l.exports=e.p+"static/media/Attic.bb5d690a160bb1d4edb2.svg"},2735:function(l,r,e){"use strict";l.exports=e.p+"static/media/Balcony.2f76ef0877aaa3bd2ff7.svg"},3152:function(l,r,e){"use strict";l.exports=e.p+"static/media/Barn.5d839e84c80918ce2ef0.svg"},26209:function(l,r,e){"use strict";l.exports=e.p+"static/media/Basement.fe636968eec9556bfd1f.svg"},30476:function(l,r,e){"use strict";l.exports=e.p+"static/media/Bathroom.27a777c66183f9f613db.svg"},62017:function(l,r,e){"use strict";l.exports=e.p+"static/media/Bedroom.2a16d8d98fafe965fd1b.svg"},7784:function(l,r,e){"use strict";l.exports=e.p+"static/media/Boiler Room.548e785e2f92b45f72b3.svg"},96997:function(l,r,e){"use strict";l.exports=e.p+"static/media/Carport.8337662544b9e95f4b27.svg"},97839:function(l,r,e){"use strict";l.exports=e.p+"static/media/Cellar.7ec1b1803a2437c8b78c.svg"},98779:function(l,r,e){"use strict";l.exports=e.p+"static/media/Chamber.71daaa4d14262dae029b.svg"},89116:function(l,r,e){"use strict";l.exports=e.p+"static/media/Corridor.93a742135f2c060ad619.svg"},9409:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dining Area.14dfc38cbb4fe041e9da.svg"},43251:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dining Room.14dfc38cbb4fe041e9da.svg"},62092:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dining.14dfc38cbb4fe041e9da.svg"},93989:function(l,r,e){"use strict";l.exports=e.p+"static/media/Dressing Room.5e6f8f64b0e8f91c473e.svg"},84290:function(l,r,e){"use strict";l.exports=e.p+"static/media/Driveway.fbd31101c5a80a8bb37a.svg"},20344:function(l,r,e){"use strict";l.exports=e.p+"static/media/Entrance.4c1404056847caf959b6.svg"},22186:function(l,r,e){"use strict";l.exports=e.p+"static/media/Equipment Room.db92bdca64f653c844f8.svg"},93029:function(l,r,e){"use strict";l.exports=e.p+"static/media/Front Yard.af9ce2d89aa4d7a9363e.svg"},96767:function(l,r,e){"use strict";l.exports=e.p+"static/media/Gallery.4e7f9433fae8b24fdfca.svg"},70377:function(l,r,e){"use strict";l.exports=e.p+"static/media/Garage.f7fc0a9b326d582afee6.svg"},72346:function(l,r,e){"use strict";l.exports=e.p+"static/media/Garden.51c2e94f62a74e20775d.svg"},22142:function(l,r,e){"use strict";l.exports=e.p+"static/media/Ground Floor.2b7c5c91db7f070935a2.svg"},68541:function(l,r,e){"use strict";l.exports=e.p+"static/media/Guest Bathroom.d07a9f1cf32a82d03267.svg"},56278:function(l,r,e){"use strict";l.exports=e.p+"static/media/Guest Room.41c7cfa38806f5009f82.svg"},27925:function(l,r,e){"use strict";l.exports=e.p+"static/media/Gym.7a0d22127ea3f557228a.svg"},83009:function(l,r,e){"use strict";l.exports=e.p+"static/media/Hall.9c2fa95419cb84ecda68.svg"},54013:function(l,r,e){"use strict";l.exports=e.p+"static/media/Home Theater.1e5f19a0b2a013f153f5.svg"},20157:function(l,r,e){"use strict";l.exports=e.p+"static/media/Kitchen.deb7f976c1f43f9039a2.svg"},24622:function(l,r,e){"use strict";l.exports=e.p+"static/media/Laundry Room.58da550dff0173676e02.svg"},52639:function(l,r,e){"use strict";l.exports=e.p+"static/media/Living Area.1c29b81e75b75e3310db.svg"},2767:function(l,r,e){"use strict";l.exports=e.p+"static/media/Living Room.3c380ab767be35f904e1.svg"},72328:function(l,r,e){"use strict";l.exports=e.p+"static/media/Locker Room.1e381bdf34bfce551d73.svg"},21273:function(l,r,e){"use strict";l.exports=e.p+"static/media/Nursery.9cecc0544bdb5c28500c.svg"},94238:function(l,r,e){"use strict";l.exports=e.p+"static/media/Office.7e6a38218390b655e270.svg"},58660:function(l,r,e){"use strict";l.exports=e.p+"static/media/Outdoors.da42e64a4b6ec2dd1e1c.svg"},9243:function(l,r,e){"use strict";l.exports=e.p+"static/media/Playroom.e64c9de43030c28d2f96.svg"},61737:function(l,r,e){"use strict";l.exports=e.p+"static/media/Pool.9452c0f84f53c7836f3d.svg"},53029:function(l,r,e){"use strict";l.exports=e.p+"static/media/Rear Wall.38843c33f1ea1f575500.svg"},1746:function(l,r,e){"use strict";l.exports=e.p+"static/media/Second Floor.a2d5ed32df336591c06b.svg"},67104:function(l,r,e){"use strict";l.exports=e.p+"static/media/Shed.491a2ad372036118002c.svg"},55323:function(l,r,e){"use strict";l.exports=e.p+"static/media/Sleeping Area.828017602bfcc2dd7dce.svg"},56448:function(l,r,e){"use strict";l.exports=e.p+"static/media/Stairway.9b007e08605296110003.svg"},43902:function(l,r,e){"use strict";l.exports=e.p+"static/media/Stairwell.0914feea948153a8637a.svg"},33998:function(l,r,e){"use strict";l.exports=e.p+"static/media/Storeroom.7de4e6f3364554459b8a.svg"},55262:function(l,r,e){"use strict";l.exports=e.p+"static/media/Summer House.541a9fec69f01105e244.svg"},91822:function(l,r,e){"use strict";l.exports=e.p+"static/media/Swimming Pool.190b378cb0707edb9461.svg"},59644:function(l,r,e){"use strict";l.exports=e.p+"static/media/Terrace.d71d07d9290674f2ca20.svg"},26012:function(l,r,e){"use strict";l.exports=e.p+"static/media/Toilet.83604dd2daafb67067dd.svg"},83405:function(l,r,e){"use strict";l.exports=e.p+"static/media/Upstairs.441813e54e0daca0882d.svg"},20324:function(l,r,e){"use strict";l.exports=e.p+"static/media/Wardrobe.e8019970a2b51412cfdc.svg"},70627:function(l,r,e){"use strict";l.exports=e.p+"static/media/Washroom.bfb54196f381f36de9d6.svg"},58215:function(l,r,e){"use strict";l.exports=e.p+"static/media/Wc.83604dd2daafb67067dd.svg"},7021:function(l,r,e){"use strict";l.exports=e.p+"static/media/Windscreen.6058448bf63f72dd5036.svg"},25842:function(l,r,e){"use strict";l.exports=e.p+"static/media/Workshop.7856e59fe4f164c90609.svg"},91104:function(l,r,e){"use strict";l.exports=e.p+"static/media/Workspace.97d73e419d966bfb6428.svg"},8939:function(l,r,e){"use strict";l.exports=e.p+"static/media/names.3a7dae0bd6b8b03b280f.txt"},95605:function(l){"use strict";l.exports=JSON.parse(`[{"_id":"hood","name":{"en":"Hood","ru":"\u0412\u044B\u0442\u044F\u0436\u043A\u0430","de":"Abzugshaube","fr":"Capot","it":"Cappe","nl":"Hood","pl":"Okapy","pt":"Hood","es":"Campana","zh-cn":"\u62BD\u6CB9\u70DF\u673A"},"icon":"Hoods.svg"},{"_id":"alarm_system","name":{"en":"Alarm System","ru":"\u0421\u0438\u0433\u043D\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u044F","de":"Alarmanlage","fr":"Syst\xE8mes D'Alarme","it":"Sistemi Di Allarme","nl":"Alarm Systems","pl":"Systemy Alarmowe","pt":"Sistemas De Alarme","es":"Sistemas De Alarma","zh-cn":"\u62A5\u8B66\u7CFB\u7EDF"},"icon":"Alarm Systems.svg"},{"_id":"battery_status","name":{"en":"Battery Status","ru":"\u0417\u0430\u0440\u044F\u0434 \u0431\u0430\u0442\u0430\u0440\u0435\u0438","de":"Batteriestatus","fr":"\xC9tat De La Batterie","it":"Stato Della Batteria","nl":"Batterij Status","pl":"Stan Baterii","pt":"Estado Da Bateria","es":"Estado De La Bater\xEDa","zh-cn":"\u7535\u6C60\u72B6\u6001"},"icon":"Battery Status.svg"},{"_id":"lighting","name":{"en":"Lighting","ru":"\u0421\u0432\u0435\u0442\u0438\u043B\u044C\u043D\u0438\u043A","de":"Beleuchtung","fr":"\xC9clairages","it":"Illuminazione","nl":"Verlichting","pl":"Oprawy O\u015Bwietleniowe","pt":"Ilumina\xE7\xF5es","es":"Iluminaciones","zh-cn":"\u7167\u660E"},"icon":"Lightings.svg"},{"_id":"shading","name":{"en":"Shading","ru":"\u0417\u0430\u0442\u0435\u043D\u0435\u043D\u0438\u0435","de":"Beschattungen","fr":"Ombres","it":"Ombreggiatura","nl":"Shading","pl":"Zacienienie","pt":"Shading","es":"Sombreado","zh-cn":"\u5E95\u7EB9"},"icon":"Shading.svg"},{"_id":"irrigation","name":{"en":"Irrigation","ru":"\u041E\u0440\u043E\u0448\u0435\u043D\u0438\u0435","de":"Bew\xE4sserung","fr":"Irrigation","it":"Irrigazione","nl":"Irrigatie","pl":"Nawadnianie","pt":"Irriga\xE7\xE3o","es":"Irrigaci\xF3n","zh-cn":"\u704C\u6E89"},"icon":"Irrigation.svg"},{"_id":"iron","name":{"en":"Iron","ru":"\u0423\u0442\u044E\u0433","de":"B\xFCgeleisen","fr":"Le Fer","it":"Ferro","nl":"Ijzer","pl":"\u017Belazo","pt":"Ferro","es":"Hierro","zh-cn":"\u94C1"},"icon":"Iron.svg"},{"_id":"computer","name":{"en":"Computer","ru":"\u041A\u043E\u043C\u043F\u044C\u044E\u0442\u0435\u0440","de":"Rechner","fr":"L'Ordinateur","it":"Computer","nl":"Computer","pl":"Komputer","pt":"Computador","es":"Ordenador","zh-cn":"\u7535\u8111"},"icon":"Computer.svg"},{"_id":"ceiling_spotlight","name":{"en":"Ceiling Spotlight","ru":"\u041F\u043E\u0442\u043E\u043B\u043E\u0447\u043D\u044B\u0439 \u043F\u0440\u043E\u0436\u0435\u043A\u0442\u043E\u0440","de":"Deckenspot","fr":"Plafond Spotlight","it":"Faretti A Soffitto","nl":"Plafond Spotlight","pl":"Reflektory Sufitowe","pt":"Tecto Foco","es":"Focos De Techo","zh-cn":"\u5929\u82B1\u5C04\u706F"},"icon":"Ceiling Spotlights.svg"},{"_id":"printer","name":{"en":"Printer","de":"Drucker","ru":"\u041F\u0440\u0438\u043D\u0442\u0435\u0440","pt":"Impressora","nl":"Printer","fr":"Imprimante","it":"Stampante","es":"Impresora","pl":"Drukarka","zh-cn":"\u6253\u5370\u673A"},"icon":"Printer.svg"},{"_id":"power_consumption","name":{"en":"Power Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u044F\u0435\u043C\u0430\u044F \u043C\u043E\u0449\u043D\u043E\u0441\u0442\u044C","de":"Stromverbrauch","fr":"Consommation D'\xC9nergie","it":"Consumo Di Energia","nl":"Energieverbruik","pl":"Pob\xF3r Energii","pt":"Consumo De Energia","es":"El Consumo De Energ\xEDa","zh-cn":"\u80FD\u91CF\u6D88\u8017"},"icon":"Power Consumption.svg"},{"_id":"window","name":{"en":"Window","ru":"\u041E\u043A\u043D\u043E","de":"Fenster","fr":"La Fen\xEAtre","it":"Finestra","nl":"Venster","pl":"Okno","pt":"Janela","es":"Ventana","zh-cn":"\u7A97\u6237"},"icon":"Window.svg"},{"_id":"garage_door","name":{"en":"Garage Door","ru":"\u0413\u0430\u0440\u0430\u0436\u043D\u044B\u0435 \u0412\u043E\u0440\u043E\u0442\u0430","de":"Garagentor","fr":"Portes De Garage","it":"Garage Door","nl":"Garage Door","pl":"Bramy Gara\u017Cowe","pt":"Portas De Garagem","es":"Las Puertas De Garaje","zh-cn":"\u8F66\u5E93\u95E8"},"icon":"Garage Doors.svg"},{"_id":"hairdryer","name":{"en":"Hairdryer","ru":"\u0424\u0435\u043D","de":"Haartrockner","fr":"S\xE8che-Cheveux","it":"Asciugacapelli","nl":"Haardroger","pl":"Suszarka Do W\u0142os\xF3w","pt":"Secador De Cabelo","es":"Secador De Pelo","zh-cn":"\u7535\u5439\u98CE"},"icon":"Hairdryer.svg"},{"_id":"hanging_lamp","name":{"en":"Hanging Lamp","ru":"\u041F\u043E\u0434\u0432\u0435\u0441\u043D\u043E\u0439 \u0441\u0432\u0435\u0442\u0438\u043B\u044C\u043D\u0438\u043A","de":"H\xE4ngelampe","fr":"Lampes Suspendues","it":"Lampade A Sospensione","nl":"Opknoping Lampen","pl":"Lampy Wisz\u0105ce","pt":"L\xE2mpadas De Suspens\xE3o","es":"L\xE1mparas Colgantes","zh-cn":"\u6302\u706F"},"icon":"Hanging Lamps.svg"},{"_id":"doorstep","name":{"en":"Enterance","ru":"\u0412\u0445\u043E\u0434\u043D\u0430\u044F \u0434\u0432\u0435\u0440\u044C","de":"Haust\xFCr","fr":"Seuil De Porte","it":"Gradino Della Porta","nl":"Drempel","pl":"Pr\xF3g","pt":"Porta","es":"Pelda\xF1o","zh-cn":"\u95E8\u9636"},"icon":"Doorstep.svg"},{"_id":"hot_water","name":{"en":"Hot Water","ru":"\u0413\u043E\u0440\u044F\u0447\u0430\u044F \u0432\u043E\u0434\u0430","de":"Hei\xDFwasser","fr":"Eau Chaude","it":"Acqua Calda","nl":"Heet Water","pl":"Gor\u0105ca Woda","pt":"\xC1gua Quente","es":"Agua Caliente","zh-cn":"\u70ED\u6C34"},"icon":"Hot Water.svg"},{"_id":"heating","name":{"en":"Heating","ru":"\u041E\u0442\u043E\u043F\u043B\u0435\u043D\u0438\u0435","de":"Heizung","fr":"Chauffe-Eau","it":"Riscaldatore","nl":"Verwarmer","pl":"Podgrzewacz","pt":"Aquecedor","es":"Calentador","zh-cn":"\u52A0\u70ED\u5668"},"icon":"Heater.svg"},{"_id":"stove","name":{"en":"Stove","ru":"\u041F\u0435\u0447\u044C","de":"Herd","fr":"Le Fourneau","it":"Stufa","nl":"Fornuis","pl":"Kuchenka","pt":"Forno","es":"Cocina","zh-cn":"\u706B\u7089"},"icon":"Stove.svg"},{"_id":"louvre","name":{"en":"Louvre","ru":"\u0416\u0430\u043B\u044E\u0437\u0438","de":"Jalousie","fr":"Persienne","it":"Persiana Di Ventilazione","nl":"Louvre","pl":"\u017Baluzja","pt":"Trapeira","es":"Lumbrera","zh-cn":"\u5362\u6D6E\u5BAB"},"icon":"Louvre.svg"},{"_id":"coffee_maker","name":{"en":"Coffee Maker","ru":"\u041A\u043E\u0444\u0435\u0432\u0430\u0440\u043A\u0430","de":"Kaffemaschine","fr":"Cafeti\xE8re","it":"Macchine Da Caff\xE8","nl":"Koffie Maker","pl":"Ekspresy Do Kawy","pt":"Cafeteira","es":"Cafetera","zh-cn":"\u5496\u5561\u58F6"},"icon":"Coffee Makers.svg"},{"_id":"cold_water","name":{"en":"Cold Water","ru":"\u0425\u043E\u043B\u043E\u0434\u043D\u0430\u044F \u0432\u043E\u0434\u0430","de":"Kaltwasser","fr":"Eau Froide","it":"Acqua Fredda","nl":"Koud Water","pl":"Zimna Woda","pt":"\xC1gua Fria","es":"Agua Fr\xEDa","zh-cn":"\u51B7\u6C34"},"icon":"Cold Water.svg"},{"_id":"climate","name":{"en":"Climate","ru":"\u041A\u043B\u0438\u043C\u0430\u0442","de":"Klima","fr":"Climat","it":"Clima","nl":"Klimaat","pl":"Klimat","pt":"Clima","es":"Clima","zh-cn":"\u6C14\u5019"},"icon":"Climate.svg"},{"_id":"speaker","name":{"en":"Speaker","ru":"\u0417\u0432\u0443\u043A\u043E\u0432\u0430\u044F \u0441\u0438\u0441\u0442\u0435\u043C\u0430","de":"Lautsprecher","fr":"Orateur","it":"Altoparlante","nl":"Spreker","pl":"G\u0142o\u015Bnik","pt":"Palestrante","es":"Altavoz","zh-cn":"\u626C\u58F0\u5668"},"icon":"Speaker.svg"},{"_id":"led_strip","name":{"en":"Led Strip","ru":"\u0421\u0432\u0435\u0442\u043E\u0434\u0438\u043E\u0434\u043D\u0430\u044F \u043B\u0435\u043D\u0442\u0430","de":"LED Leiste","fr":"Led Strip","it":"Led Strip","nl":"Loden Strip","pl":"Pasek Ledowy","pt":"Led Faixa","es":"Tira Llevada","zh-cn":"\u706F\u5E26"},"icon":"Led Strip.svg"},{"_id":"light","name":{"en":"Light","ru":"\u0421\u0432\u0435\u0442","de":"Licht","fr":"Lumi\xE8re","it":"Leggero","nl":"Licht","pl":"Lekki","pt":"Luz","es":"Luz","zh-cn":"\u5149"},"icon":"Light.svg"},{"_id":"fan","name":{"en":"Fan","ru":"\u0412\u0435\u043D\u0442\u0438\u043B\u044F\u0442\u043E\u0440","de":"L\xFCfter","fr":"Ventilateur","it":"Fan","nl":"Ventilator","pl":"Wentylator","pt":"Ventilador","es":"Ventilador","zh-cn":"\u6247\u5B50"},"icon":"Fan.svg"},{"_id":"humidity","name":{"en":"Humidity","ru":"\u0412\u043B\u0430\u0436\u043D\u043E\u0441\u0442\u044C","de":"Luftfeuchtigkeit","fr":"Humidit\xE9","it":"Umidit\xE0","nl":"Vochtigheid","pl":"Wilgotno\u015B\u0107","pt":"Umidade","es":"Humedad","zh-cn":"\u6E7F\u5EA6"},"icon":"Humidity.svg"},{"_id":"ventilation","name":{"en":"Ventilation","ru":"\u0412\u0435\u043D\u0442\u0438\u043B\u044F\u0446\u0438\u044F","de":"L\xFCftung","fr":"Ventilation","it":"Ventilazione","nl":"Ventilatie","pl":"Wentylacja","pt":"Ventila\xE7\xE3o","es":"Ventilaci\xF3n","zh-cn":"\u901A\u98CE"},"icon":"Ventilation.svg"},{"_id":"chandelier","name":{"en":"Chandelier","ru":"\u041B\u044E\u0441\u0442\u0440\u0430","de":"Kronleuchter","fr":"Lustre","it":"Lampadario","nl":"Kroonluchter","pl":"\u017Byrandol","pt":"Lustre","es":"Candelabro","zh-cn":"\u679D\u5F62\u540A\u706F"},"icon":"Chandelier.svg"},{"_id":"awning","name":{"en":"Awning","ru":"\u041C\u0430\u0440\u043A\u0438\u0437\u0430","de":"Markise","fr":"Auvents","it":"Tende","nl":"Luifels","pl":"Okrycia","pt":"Toldos","es":"Toldos","zh-cn":"\u906E\u9633\u7BF7"},"icon":"Awnings.svg"},{"_id":"music","name":{"en":"Music","ru":"\u041C\u0443\u0437\u044B\u043A\u0430","de":"Musik","fr":"Musique","it":"Musica","nl":"Muziek","pl":"Muzyka","pt":"M\xFAsica","es":"M\xFAsica","zh-cn":"\u97F3\u4E50"},"icon":"Music.svg"},{"_id":"people","name":{"en":"People","ru":"\u041B\u044E\u0434\u0438","de":"Personen","fr":"Gens","it":"Persone","nl":"Mensen","pl":"Ludzie","pt":"Pessoas","es":"Personas","zh-cn":"\u4EBA\u4EEC"},"icon":"People.svg"},{"_id":"pool","name":{"en":"Pool","ru":"\u0411\u0430\u0441\u0441\u0435\u0439\u043D","de":"Pool","fr":"Piscine","it":"Piscina","nl":"Zwembad","pl":"Basen","pt":"Piscina","es":"Piscina","zh-cn":"\u6C34\u6C60"},"icon":"Pool.svg"},{"_id":"pump","name":{"en":"Pump","ru":"\u041D\u0430\u0441\u043E\u0441","de":"Pumpe","fr":"Pompe","it":"Pompa","nl":"Pomp","pl":"Pompa","pt":"Bombear","es":"Bomba","zh-cn":"\u6CF5"},"icon":"Pump.svg"},{"_id":"outdoor_blinds","name":{"en":"Outdoor Blinds","ru":"\u0412\u043D\u0435\u0449\u0433\u0442\u0435 \u0436\u0430\u043B\u044E\u0437\u0438","de":"Raffstore","fr":"Volets","it":"Tende Da Esterni","nl":"Outdoor Blinds","pl":"Rolety Zewn\u0119trzne","pt":"Estores Exteriores","es":"Persianas Exteriores","zh-cn":"\u5BA4\u5916\u767E\u53F6\u7A97"},"icon":"Outdoor Blinds.svg"},{"_id":"mowing_machine","name":{"en":"Mowing Machine","ru":"\u0413\u0430\u0437\u043E\u043D\u043E\u043A\u043E\u0441\u0438\u043B\u043A\u0430","de":"Rasenm\xE4her","fr":"Machine De Fauchage","it":"Macchina Di Falciatura","nl":"Maaimachine","pl":"Kosiarka","pt":"Ro\xE7ada M\xE1quina","es":"Segadora","zh-cn":"\u5272\u8349\u673A"},"icon":"Mowing Machine.svg"},{"_id":"receiver","name":{"en":"Receiver","ru":"\u041F\u0440\u0438\u0441\u0442\u0430\u0432\u043A\u0430","de":"Receiver","fr":"Destinataire","it":"Ricevitore","nl":"Ontvanger","pl":"Odbiorca","pt":"Recebedor","es":"Receptor","zh-cn":"\u63A5\u6536\u8005"},"icon":"Receiver.svg"},{"_id":"shutters","name":{"en":"Shutters","ru":"\u0421\u0442\u0430\u0432\u043D\u0438","de":"Rollladen","fr":"Volets","it":"Persiane","nl":"Shutters","pl":"\u017Baluzje","pt":"Persianas","es":"Persianas","zh-cn":"\u767E\u53F6\u7A97"},"icon":"Shutters.svg"},{"_id":"smoke_detector","name":{"en":"Smoke detector","de":"Rauchmelder","ru":"\u0414\u0435\u0442\u0435\u043A\u0442\u043E\u0440 \u0434\u044B\u043C\u0430","pt":"Detector de fuma\xE7a","nl":"Rookdetector","fr":"D\xE9tecteur de fum\xE9e","it":"Rilevatore di fumo","es":"Detector de humo","pl":"Wykrywacz dymu","zh-cn":"\u70DF\u96FE\u63A2\u6D4B\u5668"},"icon":"SmokeDetector.svg"},{"_id":"lock","name":{"en":"Lock","ru":"\u0417\u0430\u043C\u043E\u043A","de":"Schlo\xDF","fr":"Fermer \xC0 Cl\xE9","it":"Serratura","nl":"Slot","pl":"Zamek","pt":"Trancar","es":"Cerrar Con Llave","zh-cn":"\u9501"},"icon":"Lock.svg"},{"_id":"security","name":{"en":"Security","ru":"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C","de":"Sicherheit","fr":"S\xE9curit\xE9","it":"Sicurezza","nl":"Veiligheid","pl":"Bezpiecze\u0144stwo","pt":"Seguran\xE7a","es":"Seguridad","zh-cn":"\u5B89\u5168"},"icon":"Security.svg"},{"_id":"dishwasher","name":{"en":"Dishwasher","ru":"\u041F\u043E\u0441\u0443\u0434\u043E\u043C\u043E\u0435\u0447\u043D\u0430\u044F \u043C\u0430\u0448\u0438\u043D\u0430","de":"Sp\xFClmaschine","fr":"Lave-Vaisselles","it":"Lavastoviglie","nl":"Vaatwassers","pl":"Zmywarki","pt":"M\xE1quinas De Lavar Lou\xE7a","es":"Lavaplatos","zh-cn":"\u6D17\u7897\u673A"},"icon":"Dishwashers.svg"},{"_id":"vacuum_cleaner","name":{"en":"Vacuum Cleaner","ru":"\u041F\u044B\u043B\u0435\u0441\u043E\u0441","de":"Staubsauger","fr":"Aspirateur","it":"Aspirapolvere","nl":"Stofzuiger","pl":"Odkurzacz","pt":"Aspirador De P\xF3","es":"Aspiradora","zh-cn":"\u5438\u5C18\u5668"},"icon":"Vacuum Cleaner.svg"},{"_id":"socket","name":{"en":"Socket","ru":"\u0420\u043E\u0437\u0435\u0442\u043A\u0430","de":"Steckdose","fr":"Prise","it":"Socket","nl":"Socket","pl":"Gniazdka","pt":"Tomada","es":"Z\xF3calo","zh-cn":"\u5957\u63A5\u5B57"},"icon":"Sockets.svg"},{"_id":"floor_lamp","name":{"en":"Floor Lamp","ru":"\u0422\u043E\u0440\u0448\u0435\u0440","de":"Stehlampe","fr":"Lampes Pour Plancher","it":"Lampade A Stelo","nl":"Vloerlampen","pl":"Lampy Pod\u0142ogowe","pt":"L\xE2mpadas Ch\xE3o","es":"L\xE1mparas De Pie","zh-cn":"\u843D\u5730\u706F"},"icon":"Floor Lamps.svg"},{"_id":"power_consumption","name":{"en":"Power Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u044F\u0435\u043C\u0430\u044F \u043C\u043E\u0449\u043D\u043E\u0441\u0442\u044C","de":"Stromverbrauch","fr":"Consommation D'\xC9nergie","it":"Consumo Di Energia","nl":"Energieverbruik","pl":"Pob\xF3r Energii","pt":"Consumo De Energia","es":"El Consumo De Energ\xEDa","zh-cn":"\u80FD\u91CF\u6D88\u8017"},"icon":"Power Consumption.svg"},{"_id":"temperature_sensor","name":{"en":"Temperature Sensor","ru":"\u0422\u0435\u043C\u043F\u0435\u0440\u0430\u0442\u0443\u0440\u043D\u044B\u0439 \u0434\u0430\u0442\u0447\u0438\u043A","de":"Temperatur-Sensor","fr":"Capteur De Temp\xE9rature","it":"Sensori Di Temperatura","nl":"Temperatuursensor","pl":"Czujniki Temperatury","pt":"Sensores De Temperatura","es":"Sensores De Temperatura","zh-cn":"\u6E29\u5EA6\u4F20\u611F\u5668"},"icon":"Temperature Sensors.svg"},{"_id":"table_lamp","name":{"en":"Table Lamp","ru":"\u041D\u0430\u0441\u0442\u043E\u043B\u044C\u043D\u0430\u044F \u043B\u0430\u043C\u043F\u0430","de":"Tischlampe","fr":"Lampe De Chevet","it":"Lampade Da Tavolo","nl":"Tafellampen","pl":"Lampy Sto\u0142owe","pt":"L\xE2mpadas De Mesa","es":"L\xE1mparas De Mesa","zh-cn":"\u53F0\u706F"},"icon":"Table Lamps.svg"},{"_id":"gate","name":{"en":"Gate","ru":"\u0412\u043E\u0440\u043E\u0442\u0430","de":"Tor","fr":"Porte","it":"Gate","nl":"Gate","pl":"Bramy","pt":"Port\xF5es","es":"Puertas","zh-cn":"\u76D6\u8328"},"icon":"Gates.svg"},{"_id":"dryer","name":{"en":"Dryer","ru":"\u0421\u0443\u0448\u0438\u043B\u043A\u0430","de":"Trockner","fr":"S\xE9choir","it":"Asciugatrice","nl":"Droger","pl":"Suszarka","pt":"Secador","es":"Secadora","zh-cn":"\u70D8\u5E72\u673A"},"icon":"Dryer.svg"},{"_id":"door","name":{"en":"Door","ru":"\u0414\u0432\u0435\u0440\u044C","de":"T\xFCr","fr":"Des Portes","it":"Porte","nl":"Deuren","pl":"Drzwi","pt":"Portas","es":"Puertas","zh-cn":"\u95E8"},"icon":"Doors.svg"},{"_id":"tv","name":{"en":"Tv","ru":"\u0422\u0435\u043B\u0435\u0432\u0438\u0437\u043E\u0440","de":"TV","fr":"La T\xE9l\xE9","it":"Tv","nl":"Tv","pl":"Telewizja","pt":"Televis\xE3o","es":"Televisor","zh-cn":"\u7535\u89C6"},"icon":"Tv.svg"},{"_id":"consumption","name":{"en":"Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u0435","de":"Verbrauch","fr":"Consommation","it":"Consumo","nl":"Consumptie","pl":"Konsumpcja","pt":"Consumo","es":"Consumo","zh-cn":"\u6D88\u8D39"},"icon":"Consumption.svg"},{"_id":"amplifier","name":{"en":"Amplifier","ru":"\u0423\u0441\u0438\u043B\u0438\u0442\u0435\u043B\u044C \u0437\u0432\u0443\u043A\u0430","de":"Verst\xE4rker","fr":"Amplificateur","it":"Amplificatore","nl":"Versterker","pl":"Wzmacniacz","pt":"Amplificador","es":"Amplificador","zh-cn":"\u653E\u5927\u5668"},"icon":"Amplifier.svg"},{"_id":"curtains","name":{"en":"Curtains","ru":"\u0428\u0442\u043E\u0440\u044B","de":"Vorh\xE4nge","fr":"Des Rideaux","it":"Le Tende","nl":"Gordijnen","pl":"Zas\u0142ony","pt":"Cortinas","es":"Cortinas","zh-cn":"\u7A97\u5E18"},"icon":"Curtains.svg"},{"_id":"sconce","name":{"en":"Sconce","ru":"\u041D\u0430\u0441\u0442\u0435\u043D\u043D\u044B\u0439 \u0441\u0432\u0435\u0442\u0438\u043B\u044C\u043D\u0438\u043A","de":"Wandlampe","fr":"Sconce","it":"Sconce","nl":"Sconce","pl":"Kinkiety","pt":"Arandelas","es":"Los Apliques","zh-cn":"\u58C1\u706F"},"icon":"Sconces.svg"},{"_id":"washing_machine","name":{"en":"Washing Machine","ru":"\u0421\u0442\u0438\u0440\u0430\u043B\u044C\u043D\u0430\u044F \u043C\u0430\u0448\u0438\u043D\u0430","de":"Waschmaschine","fr":"Machines \xC0 Laver","it":"Lavatrici","nl":"Wasmachines","pl":"Pralki","pt":"M\xE1quinas De Lavar Roupas","es":"Lavadoras","zh-cn":"\u6D17\u8863\u673A"},"icon":"Washing Machines.svg"},{"_id":"water","name":{"en":"Water","ru":"\u0412\u043E\u0434\u0430","de":"Wasser","fr":"L'Eau","it":"Acqua","nl":"Water","pl":"Woda","pt":"\xC1gua","es":"Agua","zh-cn":"\u6C34"},"icon":"Water.svg"},{"_id":"water_heater","name":{"en":"Water Heater","ru":"\u041D\u0430\u0433\u0440\u0435\u0432\u0430\u0442\u0435\u043B\u044C \u0432\u043E\u0434\u044B","de":"Wasserkocher","fr":"Chauffe-Eau","it":"Scaldabagno","nl":"Waterkoker","pl":"Podgrzewacz Wody","pt":"Aquecedor De \xC1gua","es":"Calentador De Agua","zh-cn":"\u70ED\u6C34\u5668"},"icon":"Water Heater.svg"},{"_id":"water_consumption","name":{"en":"Water Consumption","ru":"\u041F\u043E\u0442\u0440\u0435\u0431\u043B\u0435\u043D\u0438\u0435 \u0432\u043E\u0434\u044B","de":"Wasserverbrauch","fr":"Consommation D'Eau","it":"Consumo D'Acqua","nl":"Waterverbruik","pl":"Konsumpcja Wody","pt":"Consumo De \xC1gua","es":"Consumo De Agua","zh-cn":"\u8017\u6C34\u91CF"},"icon":"Water Consumption.svg"},{"_id":"weather","name":{"en":"Weather","ru":"\u041F\u043E\u0433\u043E\u0434\u0430","de":"Wetter","fr":"La M\xE9t\xE9o","it":"Tempo Metereologico","nl":"Weer","pl":"Pogoda","pt":"Clima","es":"Tiempo","zh-cn":"\u5929\u6C14"},"icon":"Weather.svg"}]`)},51916:function(l){"use strict";l.exports=JSON.parse(`[{"_id":"storeroom","name":{"en":"Storeroom","ru":"\u041A\u043B\u0430\u0434\u043E\u0432\u0430\u044F","de":"Abstellraum","fr":"D\xE9barras","it":"Dispensa","nl":"Bergplaats","pl":"Magazyn","pt":"Despensa","es":"Trastero","zh-cn":"\u5E93\u623F"},"icon":"Storeroom.svg"},{"_id":"second_floor","name":{"en":"Second floor","ru":"\u0412\u0442\u043E\u0440\u043E\u0439 \u044D\u0442\u0430\u0436","de":"Erster OG","pt":"Primeiro andar","nl":"Eerste verdieping","fr":"Premier \xE9tage","it":"Primo piano","es":"Primer piso","pl":"Pierwsze pi\u0119tro","zh-cn":"\u7B2C\u4E00\u5C42"},"icon":"Second Floor.svg"},{"_id":"dressing_room","name":{"en":"Dressing Room","ru":"\u0413\u0430\u0440\u0434\u0435\u0440\u043E\u0431\u043D\u0430\u044F","de":"Ankleide","fr":"Vestiaire","it":"Camerino","nl":"Kleedkamer","pl":"Przebieralnia","pt":"Provador","es":"Vestidor","zh-cn":"\u66F4\u8863\u5BA4"},"icon":"Dressing Room.svg"},{"_id":"workspace","name":{"en":"Workspace","ru":"\u0420\u0430\u0431\u043E\u0447\u0430\u044F \u0421\u0440\u0435\u0434\u0430","de":"Arbeitszimmer","fr":"Espace De Travail","it":"Area Di Lavoro","nl":"Workspace","pl":"Workspace","pt":"\xC1rea De Trabalho","es":"Espacio De Trabajo","zh-cn":"\u5DE5\u4F5C\u533A"},"icon":"Workspace.svg"},{"_id":"driveway","name":{"en":"Driveway","ru":"\u0414\u043E\u0440\u043E\u0433\u0430","de":"Auffahrt","fr":"All\xE9e","it":"Viale","nl":"Pad","pl":"Podjazd","pt":"Entrada Da Garagem","es":"Entrada De Coches","zh-cn":"\u8F66\u9053"},"icon":"Driveway.svg"},{"_id":"outdoors","name":{"en":"Outdoors","ru":"\u041D\u0430 \u0423\u043B\u0438\u0446\u0435","de":"Au\xDFenbereich","fr":"En Plein Air","it":"All'Aperto","nl":"Buitenshuis","pl":"Na Dworze","pt":"Ao Ar Livre","es":"Al Aire Libre","zh-cn":"\u6237\u5916"},"icon":"Outdoors.svg"},{"_id":"bathroom","name":{"en":"Bathroom","ru":"\u0412\u0430\u043D\u043D\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"Badezimmer","fr":"Salle De Bains","it":"Bagno","nl":"Badkamer","pl":"\u0141azienka","pt":"Banheiro","es":"Ba\xF1o","zh-cn":"\u6D74\u5BA4"},"icon":"Bathroom.svg"},{"_id":"balcony","name":{"en":"Balcony","ru":"\u0411\u0430\u043B\u043A\u043E\u043D","de":"Balkon","fr":"Balcon","it":"Balcone","nl":"Balkon","pl":"Balkon","pt":"Sacada","es":"Balc\xF3n","zh-cn":"\u9633\u53F0"},"icon":"Balcony.svg"},{"_id":"office","name":{"en":"Office","ru":"\u041E\u0444\u0438\u0441","de":"Office","fr":"Bureau","it":"Ufficio","nl":"Kantoor","pl":"Gabinet","pt":"Escrit\xF3rio","es":"Oficina","zh-cn":"\u529E\u516C\u5BA4"},"icon":"Office.svg"},{"_id":"carport","name":{"en":"Carport","ru":"\u041D\u0430\u0432\u0435\u0441","de":"Carport","fr":"Carport","it":"Posto Auto Coperto","nl":"Carport","pl":"Wiata","pt":"Telheiro","es":"Cochera","zh-cn":"\u8F66\u68DA"},"icon":"Carport.svg"},{"_id":"attic","name":{"en":"Attic","ru":"\u0427\u0435\u0440\u0434\u0430\u043A","de":"Dachgeschoss","fr":"Grenier","it":"Attico","nl":"Zolder","pl":"Poddasze","pt":"S\xF3t\xE3o","es":"\xC1tico","zh-cn":"\u9601\u697C"},"icon":"Attic.svg"},{"_id":"hall","name":{"en":"Hall","ru":"\u0417\u0430\u043B","de":"Diele","fr":"Salle","it":"Sala","nl":"Hal","pl":"Sala","pt":"Corredor","es":"Sala","zh-cn":"\u5927\u5385"},"icon":"Hall.svg"},{"_id":"entrance","name":{"en":"Entrance","ru":"\u0412\u0445\u043E\u0434","de":"Eingang","fr":"Entr\xE9e","it":"Ingresso","nl":"Ingang","pl":"Wej\u015Bcie","pt":"Entrada","es":"Entrada","zh-cn":"\u5165\u53E3"},"icon":"Entrance.svg"},{"_id":"ground_floor","name":{"en":"Ground Floor","ru":"\u041F\u0435\u0440\u0432\u044B\u0439 \u042D\u0442\u0430\u0436","de":"Erdgeschoss","fr":"Rez-De-Chauss\xE9e","it":"Piano Terra","nl":"Begane Grond","pl":"Parter","pt":"T\xE9rreo","es":"Planta Baja","zh-cn":"\u4E00\u697C"},"icon":"Ground Floor.svg"},{"_id":"dining_area","name":{"en":"Dining Area","ru":"\u0421\u0442\u043E\u043B\u043E\u0432\u0430\u044F","de":"Essbereich","fr":"Salle \xC0 Manger","it":"Zona Pranzo","nl":"Eethoek","pl":"Jadalnia","pt":"\xC1rea De Refei\xE7\xF5es","es":"Comedor","zh-cn":"\u7528\u9910\u533A"},"icon":"Dining Area.svg"},{"_id":"dining_room","name":{"en":"Dining Room","ru":"\u0421\u0442\u043E\u043B\u043E\u0432\u0430\u044F","de":"Esszimmer","fr":"Salle \xC0 Manger","it":"Sala Da Pranzo","nl":"Eetkamer","pl":"Jadalnia","pt":"Sala De Jantar","es":"Comedor","zh-cn":"\u996D\u5385"},"icon":"Dining Room.svg"},{"_id":"gym","name":{"en":"Gym","ru":"\u0421\u043F\u043E\u0440\u0442\u0437\u0430\u043B","de":"Fitnessraum","fr":"Gym","it":"Palestra","nl":"Sportschool","pl":"Si\u0142ownia","pt":"Gin\xE1sio","es":"Gimnasio","zh-cn":"\u5065\u8EAB\u623F"},"icon":"Gym.svg"},{"_id":"gallery","name":{"en":"Gallery","ru":"\u0413\u0430\u043B\u0435\u0440\u0435\u044F","de":"Galerie","fr":"Galerie","it":"Galleria","nl":"Galerij","pl":"Galeria","pt":"Galeria","es":"Galer\xEDa","zh-cn":"\u753B\u5ECA"},"icon":"Gallery.svg"},{"_id":"garage","name":{"en":"Garage","ru":"\u0413\u0430\u0440\u0430\u0436","de":"Garage","fr":"Garage","it":"Box Auto","nl":"Garage","pl":"Gara\u017C","pt":"Garagem","es":"Garaje","zh-cn":"\u8F66\u5E93"},"icon":"Garage.svg"},{"_id":"wardrobe","name":{"en":"Wardrobe","ru":"\u0413\u0430\u0440\u0434\u0435\u0440\u043E\u0431","de":"Garderobe","fr":"Penderie","it":"Armadio","nl":"Garderobe","pl":"Szafa","pt":"Guarda Roupa","es":"Armario","zh-cn":"\u8863\u67DC"},"icon":"Wardrobe.svg"},{"_id":"garden","name":{"en":"Garden","ru":"\u0421\u0430\u0434","de":"Garten","fr":"Jardin","it":"Giardino","nl":"Tuin","pl":"Ogr\xF3d","pt":"Jardim","es":"Jard\xEDn","zh-cn":"\u82B1\u56ED"},"icon":"Garden.svg"},{"_id":"summer_house","name":{"en":"Summer House","ru":"\u0414\u0430\u0447\u0430","de":"Gartenhaus","fr":"Maison D'\xC9t\xE9","it":"Casa Estiva","nl":"Zomerhuis","pl":"Domek Letniskowy","pt":"Summer House","es":"Casa De Verano","zh-cn":"\u51C9\u4EAD"},"icon":"Summer House.svg"},{"_id":"guest_bathroom","name":{"en":"Guest Bathroom","ru":"\u0413\u043E\u0441\u0442\u0435\u0432\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"G\xE4ste-WC","fr":"Salle De Bains Invit\xE9","it":"Guest Bathroom","nl":"Gastenbadkamer","pl":"\u0141azienka Go\u015Bcinna","pt":"Banheiro De H\xF3spedes","es":"Ba\xF1o De Visitas","zh-cn":"\u5BA2\u7528\u6D74\u5BA4"},"icon":"Guest Bathroom.svg"},{"_id":"guest_room","name":{"en":"Guest Room","ru":"\u0413\u043E\u0441\u0442\u0435\u0432\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"G\xE4stezimmer","fr":"Chambre D'Amis","it":"Stanza Degli Ospiti","nl":"Guest Room","pl":"Pok\xF3j Go\u015Bcinny","pt":"Quarto De H\xF3spedes","es":"Habitaci\xF3n De Hu\xE9spedes","zh-cn":"\u5BA2\u623F"},"icon":"Guest Room.svg"},{"_id":"laundry_room","name":{"en":"Laundry Room","ru":"\u041F\u0440\u0430\u0447\u0435\u0447\u043D\u0430\u044F","de":"Hauswirtschaftsraum","fr":"Buanderie","it":"Lavanderia","nl":"Wasruimte","pl":"Pralnia","pt":"Lavandaria","es":"Cuarto De Lavado","zh-cn":"\u6D17\u8863\u623F"},"icon":"Laundry Room.svg"},{"_id":"home_theater","name":{"en":"Home Theater","ru":"\u0414\u043E\u043C\u0430\u0448\u043D\u0438\u0439 \u0422\u0435\u0430\u0442\u0440","de":"Heimkino","fr":"Cin\xE9ma Maison","it":"Home Theater","nl":"Thuisbioscoop","pl":"Kino Domowe","pt":"Cinema Em Casa","es":"Cine En Casa","zh-cn":"\u5BB6\u5EAD\u7535\u5F71\u9662"},"icon":"Home Theater.svg"},{"_id":"boiler_room","name":{"en":"Boiler Room","ru":"\u0411\u043E\u0439\u043B\u0435\u0440\u043D\u0430\u044F","de":"Heizungsraum","fr":"Chaufferie","it":"Locale Caldaia","nl":"Boiler Room","pl":"Kot\u0142ownia","pt":"Sala Da Caldeira","es":"Sala De Calderas","zh-cn":"\u9505\u7089\u623F"},"icon":"Boiler Room.svg"},{"_id":"chamber","name":{"en":"Chamber","ru":"\u041A\u0430\u043C\u0435\u0440\u0430","de":"Kammer","fr":"Chambre","it":"Camera","nl":"Kamer","pl":"Izba","pt":"C\xE2mara","es":"C\xE1mara","zh-cn":"\u5546\u4F1A"},"icon":"Chamber.svg"},{"_id":"basement,_cellar","name":{"en":"Basement, Cellar","ru":"\u041F\u043E\u0434\u0432\u0430\u043B, \u041F\u043E\u0433\u0440\u0435\u0431","de":"Keller","fr":"Sous-Sol, Cave","it":"Taverna, Cantina","nl":"Kelder, Kelder","pl":"Piwnica, Piwnica","pt":"Por\xE3o, Adega","es":"S\xF3tano, Bodega","zh-cn":"\u5730\u4E0B\u5BA4\uFF0C\u5730\u7A96"},"icon":"Basement.svg"},{"_id":"nursery","name":{"en":"Nursery","ru":"\u041F\u0438\u0442\u043E\u043C\u043D\u0438\u043A","de":"Kinderzimmer","fr":"Garderie","it":"Asilo","nl":"Kinderkamer","pl":"\u017B\u0142obek","pt":"Ber\xE7\xE1rio","es":"Guarder\xEDa","zh-cn":"\u82D7\u5703"},"icon":"Nursery.svg"},{"_id":"corridor","name":{"en":"Corridor","ru":"\u041A\u043E\u0440\u0438\u0434\u043E\u0440","de":"Korridor","fr":"Couloir","it":"Corridoio","nl":"Gang","pl":"Korytarz","pt":"Corredor","es":"Corredor","zh-cn":"\u8D70\u5ECA"},"icon":"Corridor.svg"},{"_id":"kitchen","name":{"en":"Kitchen","ru":"\u041A\u0443\u0445\u043D\u044F","de":"K\xFCche","fr":"Cuisine","it":"Cucina","nl":"Keuken","pl":"Kuchnia","pt":"Cozinha","es":"Cocina","zh-cn":"\u53A8\u623F"},"icon":"Kitchen.svg"},{"_id":"upstairs","name":{"en":"Upstairs","ru":"\u0412\u0432\u0435\u0440\u0445 \u041F\u043E \u041B\u0435\u0441\u0442\u043D\u0438\u0446\u0435","de":"Obergeschoss","fr":"En Haut","it":"Di Sopra","nl":"Boven","pl":"Na G\xF3r\u0119","pt":"Andar De Cima","es":"Piso Superior","zh-cn":"\u697C\u4E0A"},"icon":"Upstairs.svg"},{"_id":"office","name":{"en":"Office","ru":"\u041E\u0444\u0438\u0441","de":"Office","fr":"Bureau","it":"Ufficio","nl":"Kantoor","pl":"Gabinet","pt":"Escrit\xF3rio","es":"Oficina","zh-cn":"\u529E\u516C\u5BA4"},"icon":"Office.svg"},{"_id":"pool","name":{"en":"Pool","ru":"\u0411\u0430\u0441\u0441\u0435\u0439\u043D","de":"Pool","fr":"Piscine","it":"Piscina","nl":"Zwembad","pl":"Basen","pt":"Piscina","es":"Piscina","zh-cn":"\u6C34\u6C60"},"icon":"Pool.svg"},{"_id":"rear_wall","name":{"en":"Rear Wall","ru":"\u0417\u0430\u0434\u043D\u044F\u044F \u0421\u0442\u0435\u043D\u043A\u0430","de":"R\xFCckwand","fr":"Paroi Arri\xE8re","it":"Parete Posteriore","nl":"Achterwand","pl":"Tylna \u015Aciana","pt":"Parede Traseira","es":"Pared Posterior","zh-cn":"\u540E\u5899"},"icon":"Rear Wall.svg"},{"_id":"barn","name":{"en":"Barn","ru":"\u0410\u043C\u0431\u0430\u0440","de":"Scheune","fr":"Grange","it":"Fienile","nl":"Schuur","pl":"Stodo\u0142a","pt":"Celeiro","es":"Granero","zh-cn":"\u8C37\u4ED3"},"icon":"Barn.svg"},{"_id":"sleeping_area","name":{"en":"Sleeping Area","ru":"\u0421\u043F\u0430\u043B\u044C\u043D\u043E\u0435 \u041C\u0435\u0441\u0442\u043E","de":"Schlafbereich","fr":"Coin Montagne","it":"Area Sleeping","nl":"Sleeping Area","pl":"Powierzchnia Spania","pt":"Sleeping Area","es":"\xC1rea De Dormir","zh-cn":"\u7761\u7720\u533A"},"icon":"Sleeping Area.svg"},{"_id":"bedroom","name":{"en":"Bedroom","ru":"\u0421\u043F\u0430\u043B\u044C\u043D\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"Schlafzimmer","fr":"Chambre","it":"Camera Da Letto","nl":"Slaapkamer","pl":"Sypialnia","pt":"Quarto","es":"Cuarto","zh-cn":"\u5367\u5BA4"},"icon":"Bedroom.svg"},{"_id":"shed","name":{"en":"Shed","ru":"\u0421\u0431\u0440\u0430\u0441\u044B\u0432\u0430\u0442\u044C","de":"Schuppen","fr":"Hangar","it":"Capannone","nl":"Schuur","pl":"Budka","pt":"Cabana","es":"Cobertizo","zh-cn":"\u68DA"},"icon":"Shed.svg"},{"_id":"swimming_pool","name":{"en":"Swimming Pool","ru":"\u041F\u043B\u0430\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u0411\u0430\u0441\u0441\u0435\u0439\u043D","de":"Schwimmbad","fr":"Piscine","it":"Piscina","nl":"Zwembad","pl":"Basen","pt":"Piscina","es":"Piscina","zh-cn":"\u6E38\u6CF3\u6C60"},"icon":"Swimming Pool.svg"},{"_id":"dining","name":{"en":"Dining","ru":"\u041E\u0431\u0435\u0434\u0435\u043D\u043D\u044B\u0439","de":"Speis","fr":"\xC0 Manger","it":"Cenare","nl":"Dining","pl":"Jadalnia","pt":"Jantar","es":"Comida","zh-cn":"\u7528\u9910"},"icon":"Dining.svg"},{"_id":"playroom","name":{"en":"Playroom","ru":"\u0418\u0433\u0440\u043E\u0432\u0430\u044F \u041A\u043E\u043C\u043D\u0430\u0442\u0430","de":"Spielzimmer","fr":"Salle De Jeux","it":"Stanza Dei Giochi","nl":"Speelkamer","pl":"Pok\xF3j Zabaw","pt":"Sala De Jogos","es":"Cuarto De Jugar","zh-cn":"\u6E38\u620F\u5BA4"},"icon":"Playroom.svg"},{"_id":"stairway","name":{"en":"Stairway","ru":"\u041B\u0435\u0441\u0442\u043D\u0438\u0446\u0430","de":"Treppe","fr":"Escalier","it":"Scala","nl":"Trap","pl":"Klatka Schodowa","pt":"Escada","es":"Escalera","zh-cn":"\u697C\u68AF"},"icon":"Stairway.svg"},{"_id":"equipment_room","name":{"en":"Equipment Room","ru":"\u041E\u0431\u043E\u0440\u0443\u0434\u043E\u0432\u0430\u043D\u0438\u0435 \u041D\u043E\u043C\u0435\u0440\u0430","de":"Technikraum","fr":"Salle D'\xC9quipement","it":"Stanza Degli Attrezzi","nl":"Technische Ruimte","pl":"Wyposa\u017Cenie Pokoi","pt":"Sala De Equipamentos","es":"Cuarto De Equipos","zh-cn":"\u673A\u623F"},"icon":"Equipment Room.svg"},{"_id":"terrace","name":{"en":"Terrace","ru":"\u0422\u0435\u0440\u0440\u0430\u0441\u0430","de":"Terrasse","fr":"Terrasse","it":"Terrazza","nl":"Terras","pl":"Taras","pt":"Terra\xE7o","es":"Terraza","zh-cn":"\u9633\u53F0"},"icon":"Terrace.svg"},{"_id":"toilet","name":{"en":"Toilet","ru":"\u0422\u0443\u0430\u043B\u0435\u0442","de":"Toilette","fr":"Toilette","it":"Gabinetto","nl":"Toilet","pl":"Toaleta","pt":"Banheiro","es":"Inodoro","zh-cn":"\u6D17\u624B\u95F4"},"icon":"Toilet.svg"},{"_id":"stairwell","name":{"en":"Stairwell","ru":"\u041B\u0435\u0441\u0442\u043D\u0438\u0447\u043D\u0430\u044F \u043A\u043B\u0435\u0442\u043A\u0430","de":"Treppenhaus","fr":"Cage D'Escalier","it":"Tromba Delle Scale","nl":"Trappenhuis","pl":"Klatka Schodowa","pt":"Caixa De Escada","es":"Hueco De Escalera","zh-cn":"\u697C\u68AF\u95F4"},"icon":"Stairwell.svg"},{"_id":"locker_room","name":{"en":"Locker Room","ru":"\u041A\u0430\u043C\u0435\u0440\u0430 \u0425\u0440\u0430\u043D\u0435\u043D\u0438\u044F","de":"Umkleideraum","fr":"Vestiaire","it":"Spogliatoio","nl":"Kleedkamer","pl":"Szatnia","pt":"Vesti\xE1rio","es":"Vestuario","zh-cn":"\u66F4\u8863\u5BA4"},"icon":"Locker Room.svg"},{"_id":"basement","name":{"en":"Basement","ru":"\u041F\u043E\u0434\u0432\u0430\u043B","de":"Untergeschoss","fr":"Sous-Sol","it":"Seminterrato","nl":"Kelder","pl":"Piwnica","pt":"Por\xE3o","es":"S\xF3tano","zh-cn":"\u5730\u4E0B\u5BA4"},"icon":"Basement.svg"},{"_id":"front_yard","name":{"en":"Front Yard","ru":"\u041F\u0435\u0440\u0435\u0434\u043D\u0438\u0439 \u0414\u0432\u043E\u0440","de":"Vorgarten","fr":"Front Yard","it":"Cortile","nl":"Voortuin","pl":"Podw\xF3rko","pt":"Jardim Da Frente","es":"Patio Delantero","zh-cn":"\u524D\u9662"},"icon":"Front Yard.svg"},{"_id":"anteroom","name":{"en":"Anteroom","ru":"\u041F\u0435\u0440\u0435\u0434\u043D\u044F\u044F","de":"Vorraum","fr":"Antichambre","it":"Anticamera","nl":"Voorkamer","pl":"Przedpok\xF3j","pt":"Ante-Sala","es":"Antesala","zh-cn":"\u63A5\u5F85\u5BA4"},"icon":"Anteroom.svg"},{"_id":"washroom","name":{"en":"Washroom","ru":"\u0423\u0431\u043E\u0440\u043D\u0430\u044F","de":"Waschraum","fr":"Toilettes","it":"Bagno","nl":"Waskamer","pl":"Umywalnia","pt":"Banheiro","es":"Ba\xF1o","zh-cn":"\u536B\u751F\u95F4"},"icon":"Washroom.svg"},{"_id":"wc","name":{"en":"Wc","ru":"\u0422\u0443\u0430\u043B\u0435\u0442","de":"WC","fr":"Toilettes","it":"Bagno","nl":"Wc","pl":"Toaleta","pt":"Banheiro","es":"Wc","zh-cn":"\u5395\u6240"},"icon":"Wc.svg"},{"_id":"workshop","name":{"en":"Workshop","ru":"\u041C\u0430\u0441\u0442\u0435\u0440\u0441\u043A\u0430\u044F","de":"Werkstatt","fr":"Atelier","it":"Laboratorio","nl":"Werkplaats","pl":"Warsztat","pt":"Oficina","es":"Taller","zh-cn":"\u4F5C\u574A"},"icon":"Workshop.svg"},{"_id":"windscreen","name":{"en":"Windscreen","ru":"\u0412\u0435\u0442\u0440\u043E\u0432\u043E\u0435 \u0421\u0442\u0435\u043A\u043B\u043E","de":"Windfang","fr":"Pare-Brise","it":"Parabrezza","nl":"Voorruit","pl":"Szyba Przednia","pt":"P\xE1ra-Brisas","es":"Parabrisas","zh-cn":"\u98CE\u6863"},"icon":"Windscreen.svg"},{"_id":"living_area","name":{"en":"Living Area","ru":"\u0416\u0438\u043B\u0430\u044F \u041F\u043B\u043E\u0449\u0430\u0434\u044C","de":"Wohnbereich","fr":"Salon","it":"Zona Giorno","nl":"Living Area","pl":"Powierzchnia Mieszkalna","pt":"Sala-De-Estar","es":"Sala De Estar","zh-cn":"\u751F\u6D3B\u533A\u57DF"},"icon":"Living Area.svg"},{"_id":"living_room","name":{"en":"Living Room","ru":"\u0413\u043E\u0441\u0442\u0438\u043D\u043D\u0430\u044F","de":"Wohnzimmer","fr":"Le Salon","it":"Soggiorno","nl":"Woonkamer","pl":"Salon","pt":"Sala De Estar","es":"Sala De Estar","zh-cn":"\u5BA2\u5385"},"icon":"Living Room.svg"},{"_id":"living_room","name":{"en":"Living Room","ru":"\u0413\u043E\u0441\u0442\u0438\u043D\u043D\u0430\u044F","de":"Wohnzimmer","fr":"Le Salon","it":"Soggiorno","nl":"Woonkamer","pl":"Salon","pt":"Sala De Estar","es":"Sala De Estar","zh-cn":"\u5BA2\u5385"},"icon":"Living Room.svg"}]`)}}]); + +//# sourceMappingURL=178.f52a4814.chunk.js.map \ No newline at end of file diff --git a/admin/static/js/178.f52a4814.chunk.js.map b/admin/static/js/178.f52a4814.chunk.js.map new file mode 100644 index 000000000..235dbea02 --- /dev/null +++ b/admin/static/js/178.f52a4814.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/@babel/runtime/helpers/toArray.js","../node_modules/@icons/material/CheckIcon.js","../node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","../node_modules/@iobroker/adapter-react-v5/Components/ColorPicker.js","../node_modules/@iobroker/adapter-react-v5/Components/CustomModal.jsx","../node_modules/@iobroker/adapter-react-v5/Components/FileBrowser.js","../node_modules/@iobroker/adapter-react-v5/Components/FileViewer.js","../node_modules/@iobroker/adapter-react-v5/Components/IconPicker.js","../node_modules/@iobroker/adapter-react-v5/Components/IconSelector.js","../node_modules/@iobroker/adapter-react-v5/Components/Image.js","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ChipInput.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigAlive.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigAutocomplete.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigAutocompleteSendTo.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCRON.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCertificateSelect.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCheckbox.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigChip.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigColor.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCoordinates.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigCustom.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigDatePicker.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigFile.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigFileSelector.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigFunc.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigGeneric.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigIP.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigImageUpload.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigInstanceSelect.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigJsonEditor.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigLanguage.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigNumber.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigObjectId.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigPanel.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigPassword.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigPattern.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigRoom.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSelect.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSelectSendTo.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSendto.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSetState.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigSlider.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticDivider.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticHeader.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticImage.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigStaticText.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTable.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTabs.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigText.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTextSendTo.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTimePicker.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigTopic.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/ConfigUser.jsx","../node_modules/@iobroker/adapter-react-v5/Components/JsonConfigComponent/JsonConfigComponent/index.jsx","../node_modules/@iobroker/adapter-react-v5/Components/Loaders/Loaders/PT.js","../node_modules/@iobroker/adapter-react-v5/Components/Loaders/Loaders/Vendor.js","../node_modules/@iobroker/adapter-react-v5/Components/Logo.js","../node_modules/@iobroker/adapter-react-v5/Components/MDUtils.js","../node_modules/@iobroker/adapter-react-v5/Components/SelectWithIcon.js","../node_modules/@iobroker/adapter-react-v5/Components/TextWithIcon.js","../node_modules/@iobroker/adapter-react-v5/Components/ToggleThemeMenu.js","../node_modules/@iobroker/adapter-react-v5/Components/TreeTable.js","../node_modules/@iobroker/adapter-react-v5/Components/UploadImage.jsx","../node_modules/@iobroker/adapter-react-v5/Dialogs/ComplexCron.js","../node_modules/@iobroker/adapter-react-v5/Dialogs/FileSelect.js","../node_modules/@iobroker/adapter-react-v5/Dialogs/SimpleCron.js","../node_modules/@iobroker/adapter-react-v5/Dialogs/TextInput.js","../node_modules/@iobroker/adapter-react-v5/icons/IconFx.js","../node_modules/@iobroker/adapter-react-v5/icons/IconLogout.js","../node_modules/@iobroker/adapter-react-v5/icons/IconNoIcon.js","../node_modules/@mui/icons-material/ArrowBack.js","../node_modules/@mui/icons-material/ArrowDownward.js","../node_modules/@mui/icons-material/ArrowUpward.js","../node_modules/@mui/icons-material/Article.js","../node_modules/@mui/icons-material/Bookmark.js","../node_modules/@mui/icons-material/BookmarkBorder.js","../node_modules/@mui/icons-material/Brightness4.js","../node_modules/@mui/icons-material/Brightness5.js","../node_modules/@mui/icons-material/Brightness6.js","../node_modules/@mui/icons-material/Brightness7.js","../node_modules/@mui/icons-material/Clear.js","../node_modules/@mui/icons-material/Colorize.js","../node_modules/@mui/icons-material/CreateNewFolder.js","../node_modules/@mui/icons-material/Crop.js","../node_modules/@mui/icons-material/ExpandMore.js","../node_modules/@mui/icons-material/FilterAlt.js","../node_modules/@mui/icons-material/FilterAltOff.js","../node_modules/@mui/icons-material/FolderOpen.js","../node_modules/@mui/icons-material/GpsFixed.js","../node_modules/@mui/icons-material/Help.js","../node_modules/@mui/icons-material/InsertDriveFile.js","../node_modules/@mui/icons-material/Language.js","../node_modules/@mui/icons-material/List.js","../node_modules/@mui/icons-material/MusicNote.js","../node_modules/@mui/icons-material/NavigateNext.js","../node_modules/@mui/icons-material/PlayArrow.js","../node_modules/@mui/icons-material/SaveAlt.js","../node_modules/@mui/icons-material/UploadFile.js","../node_modules/@mui/icons-material/VerticalAlignBottom.js","../node_modules/@mui/icons-material/VerticalAlignTop.js","../node_modules/@mui/icons-material/Videocam.js","../node_modules/@mui/icons-material/ViewHeadline.js","../node_modules/@mui/icons-material/ViewModule.js","../node_modules/@mui/icons-material/Visibility.js","../node_modules/@mui/icons-material/VisibilityOff.js","../node_modules/@mui/icons-material/Warning.js","../node_modules/@mui/x-date-pickers/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@mui/x-date-pickers/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/x-date-pickers/internals/utils/utils.js","../node_modules/@mui/x-date-pickers/MonthPicker/PickersMonth.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/@mui/x-date-pickers/internals/hooks/useUtils.js","../node_modules/@mui/x-date-pickers/MonthPicker/monthPickerClasses.js","../node_modules/@mui/x-date-pickers/MonthPicker/MonthPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useDateValidation.js","../node_modules/@mui/x-date-pickers/CalendarPicker/useCalendarState.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersFadeTransitionGroup.js","../node_modules/@mui/utils/esm/useEnhancedEffect.js","../node_modules/@mui/x-date-pickers/internals/constants/dimensions.js","../node_modules/@mui/x-date-pickers/PickersDay/pickersDayClasses.js","../node_modules/@mui/x-date-pickers/PickersDay/PickersDay.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersSlideTransition.js","../node_modules/@mui/x-date-pickers/CalendarPicker/DayPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/useViews.js","../node_modules/@mui/x-date-pickers/internals/components/icons/index.js","../node_modules/@mui/x-date-pickers/internals/components/PickersArrowSwitcher.js","../node_modules/@mui/x-date-pickers/internals/utils/time-utils.js","../node_modules/@mui/x-date-pickers/internals/hooks/date-helpers-hooks.js","../node_modules/@mui/x-date-pickers/internals/utils/warning.js","../node_modules/@mui/x-date-pickers/CalendarPicker/PickersCalendarHeader.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/WrapperVariantContext.js","../node_modules/@mui/x-date-pickers/YearPicker/PickersYear.js","../node_modules/@mui/x-date-pickers/YearPicker/yearPickerClasses.js","../node_modules/@mui/x-date-pickers/YearPicker/YearPicker.js","../node_modules/@mui/x-date-pickers/internals/utils/date-utils.js","../node_modules/@mui/x-date-pickers/internals/components/PickerViewRoot/PickerViewRoot.js","../node_modules/@mui/x-date-pickers/internals/utils/defaultReduceAnimations.js","../node_modules/@mui/x-date-pickers/CalendarPicker/calendarPickerClasses.js","../node_modules/@mui/x-date-pickers/CalendarPicker/CalendarPicker.js","../node_modules/@mui/x-date-pickers/CalendarPickerSkeleton/calendarPickerSkeletonClasses.js","../node_modules/@mui/x-date-pickers/CalendarPickerSkeleton/CalendarPickerSkeleton.js","../node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/x-date-pickers/ClockPicker/shared.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPointer.js","../node_modules/@mui/x-date-pickers/ClockPicker/Clock.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumber.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockNumbers.js","../node_modules/@mui/x-date-pickers/ClockPicker/clockPickerClasses.js","../node_modules/@mui/x-date-pickers/ClockPicker/ClockPicker.js","../node_modules/@mui/x-date-pickers/DatePicker/shared.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbar.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePickerToolbar.js","../node_modules/@mui/x-date-pickers/PickersActionBar/PickersActionBar.js","../node_modules/@mui/x-date-pickers/internals/components/PickersPopper.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/DesktopWrapper.js","../node_modules/rifm/dist/rifm.esm.js","../node_modules/@mui/x-date-pickers/internals/utils/text-field-helper.js","../node_modules/@mui/x-date-pickers/internals/hooks/useMaskedInput.js","../node_modules/@mui/x-date-pickers/internals/components/KeyboardDateInput.js","../node_modules/@mui/x-date-pickers/internals/hooks/useIsLandscape.js","../node_modules/@mui/x-date-pickers/internals/components/CalendarOrClockPicker/CalendarOrClockPicker.js","../node_modules/@mui/x-date-pickers/internals/hooks/useOpenState.js","../node_modules/@mui/x-date-pickers/internals/hooks/usePickerState.js","../node_modules/@mui/x-date-pickers/DesktopDatePicker/DesktopDatePicker.js","../node_modules/@mui/x-date-pickers/internals/components/PickersModalDialog.js","../node_modules/@mui/x-date-pickers/internals/components/wrappers/MobileWrapper.js","../node_modules/@mui/x-date-pickers/internals/components/PureDateInput.js","../node_modules/@mui/x-date-pickers/MobileDatePicker/MobileDatePicker.js","../node_modules/@mui/x-date-pickers/DatePicker/DatePicker.js","../node_modules/@mui/x-date-pickers/DateTimePicker/shared.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarText.js","../node_modules/@mui/x-date-pickers/internals/components/PickersToolbarButton.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerTabs.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePickerToolbar.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useTimeValidation.js","../node_modules/@mui/x-date-pickers/internals/hooks/validation/useDateTimeValidation.js","../node_modules/@mui/x-date-pickers/DesktopDateTimePicker/DesktopDateTimePicker.js","../node_modules/@mui/x-date-pickers/MobileDateTimePicker/MobileDateTimePicker.js","../node_modules/@mui/x-date-pickers/DateTimePicker/DateTimePicker.js","../node_modules/@mui/x-date-pickers/TimePicker/shared.js","../node_modules/@mui/x-date-pickers/TimePicker/timePickerToolbarClasses.js","../node_modules/@mui/x-date-pickers/TimePicker/TimePickerToolbar.js","../node_modules/@mui/x-date-pickers/DesktopTimePicker/DesktopTimePicker.js","../node_modules/@mui/x-date-pickers/MobileTimePicker/MobileTimePicker.js","../node_modules/@mui/x-date-pickers/internals/components/PickerStaticWrapper/pickerStaticWrapperClasses.js","../node_modules/@mui/x-date-pickers/internals/components/PickerStaticWrapper/PickerStaticWrapper.js","../node_modules/@mui/x-date-pickers/StaticDatePicker/StaticDatePicker.js","../node_modules/@mui/x-date-pickers/StaticDateTimePicker/StaticDateTimePicker.js","../node_modules/@mui/x-date-pickers/StaticTimePicker/StaticTimePicker.js","../node_modules/@mui/x-date-pickers/TimePicker/TimePicker.js","../node_modules/@mui/x-date-pickers/locales/nlNL.js","../node_modules/@mui/x-date-pickers/locales/ptBR.js","../node_modules/@mui/x-date-pickers/locales/trTR.js","../node_modules/@mui/x-date-pickers/locales/deDE.js","../node_modules/@mui/x-date-pickers/locales/frFR.js","../node_modules/@mui/x-date-pickers/locales/svSE.js","../node_modules/@mui/x-date-pickers/index.js","../node_modules/cropperjs/dist/cropper.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castFunction.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/eq.js","../node_modules/lodash/forOwn.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/map.js","../node_modules/lodash/memoize.js","../node_modules/lodash/property.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/toString.js","../node_modules/react-color/es/helpers/alpha.js","../node_modules/react-color/es/helpers/checkboard.js","../node_modules/react-color/es/components/common/Checkboard.js","../node_modules/react-color/es/components/common/Alpha.js","../node_modules/react-color/es/components/common/EditableInput.js","../node_modules/react-color/es/helpers/hue.js","../node_modules/react-color/es/components/common/Hue.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignMergeValue.js","../node_modules/lodash-es/_createBaseFor.js","../node_modules/lodash-es/_baseFor.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/isArrayLikeObject.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_safeGet.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/toPlainObject.js","../node_modules/lodash-es/_baseMergeDeep.js","../node_modules/lodash-es/_baseMerge.js","../node_modules/lodash-es/identity.js","../node_modules/lodash-es/_apply.js","../node_modules/lodash-es/_overRest.js","../node_modules/lodash-es/constant.js","../node_modules/lodash-es/_baseSetToString.js","../node_modules/lodash-es/_shortOut.js","../node_modules/lodash-es/_setToString.js","../node_modules/lodash-es/_baseRest.js","../node_modules/lodash-es/_isIterateeCall.js","../node_modules/lodash-es/_createAssigner.js","../node_modules/lodash-es/merge.js","../node_modules/react-color/es/components/common/Raised.js","../node_modules/lodash-es/now.js","../node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/lodash-es/_baseTrim.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/toNumber.js","../node_modules/lodash-es/debounce.js","../node_modules/lodash-es/throttle.js","../node_modules/react-color/es/helpers/saturation.js","../node_modules/react-color/es/components/common/Saturation.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseForOwn.js","../node_modules/lodash-es/_createBaseEach.js","../node_modules/lodash-es/_baseEach.js","../node_modules/lodash-es/_castFunction.js","../node_modules/lodash-es/forEach.js","../node_modules/react-color/es/helpers/color.js","../node_modules/react-color/es/components/common/ColorWrap.js","../node_modules/react-color/es/helpers/interaction.js","../node_modules/react-color/es/components/common/Swatch.js","../node_modules/react-color/es/components/alpha/AlphaPointer.js","../node_modules/react-color/es/components/alpha/Alpha.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_setCacheAdd.js","../node_modules/lodash-es/_setCacheHas.js","../node_modules/lodash-es/_SetCache.js","../node_modules/lodash-es/_arraySome.js","../node_modules/lodash-es/_cacheHas.js","../node_modules/lodash-es/_equalArrays.js","../node_modules/lodash-es/_mapToArray.js","../node_modules/lodash-es/_setToArray.js","../node_modules/lodash-es/_equalByTag.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_equalObjects.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/lodash-es/_baseIsEqual.js","../node_modules/lodash-es/_baseIsMatch.js","../node_modules/lodash-es/_isStrictComparable.js","../node_modules/lodash-es/_getMatchData.js","../node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/lodash-es/_baseMatches.js","../node_modules/lodash-es/_isKey.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/_castPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseGet.js","../node_modules/lodash-es/get.js","../node_modules/lodash-es/_baseHasIn.js","../node_modules/lodash-es/_hasPath.js","../node_modules/lodash-es/hasIn.js","../node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/lodash-es/_baseProperty.js","../node_modules/lodash-es/_basePropertyDeep.js","../node_modules/lodash-es/property.js","../node_modules/lodash-es/_baseIteratee.js","../node_modules/lodash-es/_baseMap.js","../node_modules/lodash-es/map.js","../node_modules/react-color/es/components/block/BlockSwatches.js","../node_modules/react-color/es/components/block/Block.js","../node_modules/material-colors/dist/colors.es2015.js","../node_modules/react-color/es/components/circle/CircleSwatch.js","../node_modules/react-color/es/components/circle/Circle.js","../node_modules/lodash-es/isUndefined.js","../node_modules/react-color/es/components/chrome/ChromeFields.js","../node_modules/react-color/es/components/chrome/ChromePointer.js","../node_modules/react-color/es/components/chrome/ChromePointerCircle.js","../node_modules/react-color/es/components/chrome/Chrome.js","../node_modules/react-color/es/components/compact/CompactColor.js","../node_modules/react-color/es/components/compact/CompactFields.js","../node_modules/react-color/es/components/compact/Compact.js","../node_modules/react-color/es/components/github/GithubSwatch.js","../node_modules/react-color/es/components/github/Github.js","../node_modules/react-color/es/components/hue/HuePointer.js","../node_modules/react-color/es/components/hue/Hue.js","../node_modules/react-color/es/components/material/Material.js","../node_modules/react-color/es/components/photoshop/PhotoshopFields.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","../node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","../node_modules/react-color/es/components/photoshop/PhotoshopButton.js","../node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","../node_modules/react-color/es/components/photoshop/Photoshop.js","../node_modules/react-color/es/components/sketch/SketchFields.js","../node_modules/react-color/es/components/sketch/SketchPresetColors.js","../node_modules/react-color/es/components/sketch/Sketch.js","../node_modules/react-color/es/components/slider/SliderSwatch.js","../node_modules/react-color/es/components/slider/SliderSwatches.js","../node_modules/react-color/es/components/slider/SliderPointer.js","../node_modules/react-color/es/components/slider/Slider.js","../node_modules/react-color/es/components/swatches/SwatchesColor.js","../node_modules/react-color/es/components/swatches/SwatchesGroup.js","../node_modules/react-color/es/components/swatches/Swatches.js","../node_modules/react-color/es/components/twitter/Twitter.js","../node_modules/react-color/es/components/google/GooglePointerCircle.js","../node_modules/react-color/es/components/google/GooglePointer.js","../node_modules/react-color/es/components/google/GoogleFields.js","../node_modules/react-color/es/components/google/Google.js","../node_modules/react-colorful/src/hooks/useEventCallback.ts","../node_modules/react-colorful/src/utils/clamp.ts","../node_modules/react-colorful/src/components/common/Interactive.tsx","../node_modules/react-colorful/src/utils/format.ts","../node_modules/react-colorful/src/components/common/Pointer.tsx","../node_modules/react-colorful/src/utils/round.ts","../node_modules/react-colorful/src/utils/convert.ts","../node_modules/react-colorful/src/components/common/Hue.tsx","../node_modules/react-colorful/src/components/common/Saturation.tsx","../node_modules/react-colorful/src/utils/compare.ts","../node_modules/react-colorful/src/hooks/useColorManipulation.ts","../node_modules/react-colorful/src/utils/nonce.ts","../node_modules/react-colorful/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-colorful/src/hooks/useStyleSheet.ts","../node_modules/react-colorful/src/components/common/ColorPicker.tsx","../node_modules/react-colorful/src/components/HexColorPicker.tsx","../node_modules/react-colorful/src/components/common/Alpha.tsx","../node_modules/react-colorful/src/components/common/AlphaColorPicker.tsx","../node_modules/react-colorful/src/components/HslaColorPicker.tsx","../node_modules/react-colorful/src/components/HslaStringColorPicker.tsx","../node_modules/react-colorful/src/components/HslColorPicker.tsx","../node_modules/react-colorful/src/components/HslStringColorPicker.tsx","../node_modules/react-colorful/src/components/HsvaColorPicker.tsx","../node_modules/react-colorful/src/components/HsvaStringColorPicker.tsx","../node_modules/react-colorful/src/components/HsvColorPicker.tsx","../node_modules/react-colorful/src/components/HsvStringColorPicker.tsx","../node_modules/react-colorful/src/components/RgbaColorPicker.tsx","../node_modules/react-colorful/src/components/RgbaStringColorPicker.tsx","../node_modules/react-colorful/src/components/RgbColorPicker.tsx","../node_modules/react-colorful/src/components/RgbStringColorPicker.tsx","../node_modules/react-colorful/src/utils/validate.ts","../node_modules/react-colorful/src/components/common/ColorInput.tsx","../node_modules/react-colorful/src/components/HexColorInput.tsx","../node_modules/react-cropper/dist/react-cropper.es.js","../node_modules/reactcss/lib/autoprefix.js","../node_modules/reactcss/lib/components/active.js","../node_modules/reactcss/lib/components/hover.js","../node_modules/reactcss/lib/flattenNames.js","../node_modules/reactcss/lib/index.js","../node_modules/reactcss/lib/loop.js","../node_modules/reactcss/lib/mergeClasses.js","../node_modules/tinycolor2/tinycolor.js"],"names":["styles","theme","color","width","height","borderRadius","delButton","marginTop","swatch","padding","background","boxShadow","display","cursor","verticalAlign","swatchDisabled","opacity","popover","position","zIndex","cover","top","right","bottom","left","textDense","marginBottom","ColorPicker","props","setState","displayColorPicker","state","onChange","getColor","value","style","openAbove","Object","assign","className","disabled","marginRight","name","root","classes","e","handleChange","target","handleClick","handleClose","pColor","sColor","isHex","rgb","r","toString","padStart","g","b","a","rgb2hex","m","match","length","parseInt","React","Component","propTypes","PropTypes","bool","string","func","isRequired","object","_export","withStyles","modalDialog","minWidth","maxWidth","overflowHidden","overflow","titleIcon","content","fontSize","languageButton","spacing","languageButtonActive","palette","primary","main","CustomModal","toggleTranslation","noTranslation","title","fullWidth","help","progress","icon","applyDisabled","applyButton","open","onClose","children","titleButtonApply","titleButtonClose","onApply","textInput","defaultValue","useState","setValue","useEffect","Icon","paper","I18n","getLanguage","Utils","clsx","t","paddingTop","defaultProps","any","ROW_HEIGHT","BUTTON_WIDTH","TILE_HEIGHT","TILE_WIDTH","NOT_FOUND","dialog","mixins","toolbar","minHeight","filesDiv","overflowX","overflowY","filesDivTable","filesDivTile","alignContent","alignItems","flexWrap","flex","itemTile","userSelect","textAlign","transition","margin","secondary","light","invertColor","itemNameFolderTile","fontWeight","itemNameTile","textOverflow","wordBreak","itemFolderIconTile","paddingLeft","itemFolderIconBack","mode","itemSizeTile","itemImageTile","objectFit","itemIconTile","itemSelected","itemTable","lineHeight","itemNameTable","flexGrow","itemNameFolderTable","itemSizeTable","itemAccessTable","paddingRight","justifyContent","itemImageTable","maxHeight","itemIconTable","itemFolderTable","itemFolderTemp","itemFolderIconTable","marginLeft","itemDownloadButtonTable","itemAclButtonTable","itemDeleteButtonTable","uploadDiv","uploadDivDragging","uploadCenterDiv","border","uploadCenterIcon","uploadCenterText","uploadCloseButton","uploadCenterTextAndIcon","menuButtonExpertActive","pathDiv","whiteSpace","pathDivInput","pathDivBreadcrumb","paddingBottom","borderBottom","pathDivBreadcrumbDir","pathDivBreadcrumbSlash","pathDivBreadcrumbFile","backgroundImageLight","backgroundImageDark","backgroundImageColored","direction","specialFolder","USER_DATA","folder","dir","parts","split","pop","join","path","ext","getFileExtension","toLowerCase","TABLE","TILE","FileBrowser","id","fileName","size","key","pos","lastIndexOf","substring","console","log","folders","_tempTimeout","clearTimeout","setTimeout","browseFolder","then","array","backgroundImage","indexOf","window","_localStorage","localStorage","setItem","expanded","getItem","limitPath","limitToObjectID","limitToPath","endsWith","JSON","parse","filter","startsWith","viewType","showViewTypeButton","selected","currentDir","isFile","getParentDir","filterEmpty","expertMode","addFolder","uploadFile","deleteItem","marked","viewer","formatEditFile","errorText","modalEditOfAccess","queueLength","loadAllFolders","allFoldersLoaded","fileErrors","imagePrefix","levelPadding","mounted","suppressDeleteConfirm","browseList","browseListRunning","initialReadFinished","supportSubscribes","browseFolders","Promise","resolve","findItem","pathFocus","scrollToSelected","el","document","getElementById","scrollIntoView","loadFolders","socket","checkFeatureSupported","result","subscribeFiles","onFileChange","unsubscribeFiles","values","forEach","timer","foldersList","_newFolders","_resolve","keys","shift","adapter","relPath","reject","push","processBrowseList","level","processing","readDir","files","item","folderId","_checkEmpty","force","all","map","error","readMetaItems","objs","_folders","userData","obj","_id","findIndex","splice","common","meta","from","ts","acl","sort","unshift","alert","readDirSerial","file","isDir","stats","modified","modifiedAt","sortFolders","stopPropagation","stringify","temp","err","lastSelect","Date","now","onSelect","cb","filterFiles","includes","filterByType","EXTENSIONS","IconOpen","IconClosed","isUserData","isSpecialData","select","changeFolder","toggleFolder","lang","end","undefined","formatAcl","allowDownload","allowDelete","formatBytes","access","permissions","images","getClassBackgroundImage","onerror","getFileIcon","formatSize","getEditFile","res","renderBackFolder","renderFolder","renderFile","renderItems","showExpertButton","menuButton","allowCreateFolder","allowUpload","setStateBackgroundImage","parentFolder","find","findFirstFolder","text","parent","replace","setOpacityTimer","items","getElementsByClassName","i","data","writeFile64","_item","acceptedFiles","count","reader","FileReader","onabort","onload","readAsArrayBuffer","getRootProps","getInputProps","deleteRecursive","deleteFolder","parentId","f","deleteFile","newState","themeName","info","changed","it","p","part","keyCode","changeToPath","renderBreadcrumb","ready","foldersLoading","showToolbar","renderToolbar","renderPath","renderInputDialog","renderUpload","renderDeleteDialog","allowView","renderViewDialog","modalEditOfAccessControl","modalEditOfAccessObjData","renderError","tileView","withWidth","textarea","img","dialogTitle","code","txt","audio","video","buffer","binary","bytes","Uint8Array","len","byteLength","String","fromCharCode","btoa","FileViewer","timeout","readFile","forceUpdate","href","editingValue","Buffer","_","editing","copyPossible","imgError","type","detectMimeType","bufferToBase64","onFileChanged","newValue","readOnly","scrollPaper","getContent","copyToClipboard","IconPicker","IconCustom","useStyles","makeStyles","formContainer","formControl","divContainer","dragField","formIcon","onDrop","useCallback","addEventListener","readAsDataURL","useDropzone","isDragActive","customClasses","label","previewClassName","icons","onlyRooms","onlyDevices","base64","backgroundColor","devices","rooms","IconSelector","opened","names","loading","promises","src","en","getSvg","isAnyName","templates","_i","template","image","require","offset","loadAllIcons","endAdornment","svgContainer","createElement","innerHTML","svg","firstElementChild","remove","removeChild","ret","prop","toUpperCase","Image","created","showError","getSvgFromData","atob","getElementFromSource","inner","svgProps","serializeAttrs","attributes","__html","variantComponent","standard","Input","filled","FilledInput","outlined","OutlinedInput","bottomLineColor","inputRoot","boxSizing","input","appearance","WebkitTapHighlightColor","chipContainer","flexFlow","labeled","labelShrink","helperText","focused","underline","transform","transitions","create","duration","shorter","easing","easeOut","pointerEvents","borderBottomColor","borderBottomStyle","chip","marginDense","keyCodes","BACKSPACE","DELETE","LEFT_ARROW","RIGHT_ARROW","ChipInput","chips","focusedChip","inputValue","isClean","isFocused","chipsUpdated","prevPropsValue","actualInput","focus","event","onBlur","addChipOptions","blurBehavior","clearInputOnFail","delayBeforeAdd","numChipsBefore","inputBlurTimeout","numChipsAfter","handleAddChip","clearInput","onFocus","_keyPressed","_preventChipCreation","onKeyDown","isDefaultPrevented","newChipKeyCodes","newChipKeys","preventDefault","handleDeleteChip","updateInput","onKeyUp","onKeyPress","onUpdateInput","ref","inputRef","labelRef","createRef","variant","labelNode","ReactDOM","findDOMNode","current","blur","options","onBeforeAdd","dataSourceConfig","allowDuplicates","some","c","onAdd","updateChips","trim","onDelete","slice","additionalUpdates","alwaysShowPlaceholder","chipRenderer","defaultChipRenderer","clearInputValueOnChange","dataSource","disableUnderline","FormHelperTextProps","fullWidthInput","InputProps","InputLabelProps","placeholder","required","rootRef","other","actualInputValue","hasInput","shrinkFloatingLabel","shrink","chipComponents","isDisabled","isReadOnly","handleDelete","InputMore","notched","labelWidth","offsetWidth","startAdornment","InputComponent","handleUpdateInput","handleKeyDown","handleKeyPress","handleKeyUp","handleInputFocus","handleInputBlur","setActualInputRef","oneOf","shape","node","arrayOf","number","blue","notAlive","ConfigAlive","instance","getInstance","getState","alive","val","schema","adapterName","getPattern","textAlive","textNotAlive","ConfigGeneric","ConfigAutocomplete","getValue","attr","selectOptions","Array","isArray","DIFFERENT_LABEL","DIFFERENT_VALUE","isIndeterminate","indeterminate","freeSolo","option","params","getText","renderHelp","helpLink","themeType","onError","ConfigAutocompleteSendTo","askInstance","jsonData","sendTo","command","list","context","getContext","alsoDependsOn","maxLength","max","button","ConfigCRON","showDialog","simple","complex","dateFormat","isFloatComma","ConfigCertificateSelect","getCertificates","NONE_LABEL","NONE_VALUE","ConfigCheckbox","checked","validatorErrorText","ConfigLanguage","delimiter","prevValue","index","ConfigColor","showColorDialog","colorDialogValue","textColor","isUseBright","renderColorDialog","onPaste","ConfigCoordinates","autoInit","getCoordinates","getSystemConfig","longitude","latitude","divider","navigator","geolocation","getCurrentPosition","coords","getSystemCoordinates","getOrLoadRemote","remote","shareScope","remoteFallbackUrl","existingRemote","querySelector","__initialized","init","__webpack_share_scopes__","d","script","setAttribute","async","getElementsByTagName","appendChild","loadComponent","sharedScope","module","url","container","get","factory","Module","ConfigCustom","location","protocol","host","i18n","i18nURL","fetch","json","extendTranslations","uniqueName","fileToLoad","componentName","component","xs","lg","md","sm","darkStyle","newLine","flexBasis","ConfigDatePicker","systemConfig","fullWidthOneButton","fullWidthIcon","selectedImage","IMAGE_EXT","AUDIO_EXT","VIDEO_EXT","DOC_EXT","JS_EXT","ConfigFile","loadFile","AudioContext","buf","ConfigFileSelector","base64ToArrayBuffer","decodeAudioData","source","createBufferSource","connect","destination","start","extension","backgroundSize","backgroundRepeat","play","showFileBrowser","selectOnlyFolders","getIcon","disableEdit","renderFileBrowser","fullWidthTwoButtons","fullWidthThreeButtons","dropZone","dropZoneEmpty","flexDirection","disabledOpacity","deleteButton","dropzoneRef","objectID","upload","updateFiles","readFiles","pattern","folderName","dirFiles","readFolder","ok","regExp","RegExp","test","maxSize","Math","round","reduce","byte","isOk","withFolder","noSize","noNone","buttons","refresh","element","accept","last","errors","message","uploadError","binaryString","charCodeAt","ConfigFunc","getEnums","enums","confirmDialog","confirmNewValue","confirmAttr","confirmData","isError","custom","defaultFunc","executeCustom","instanceObj","arrayIndex","globalData","execute","registerOnForceUpdate","onUpdate","LIKE_SELECT","defaultSendTo","defaultSendToDone","sendToTimeout","confirm","cancel","confirmDepAttr","confirmDepNewValue","confirmOldValue","condition","confirmDependsOn","z","dep","onChangeDependsOn","calculateFunc","customObj","hiddenDependsOn","hidden","labelDependsOn","helpDependsOn","ignoreOwnChanges","_attr","Function","originalData","validator","link","renderTextWithA","calculate","hideOnlyControl","validatorNoSaveOnError","renderedItem","renderItem","commandRunning","tooltip","buttonTooltip","buttonTooltipNoTranslation","renderConfirmDialog","getPrototypeOf","constructor","customs","ConfigIP","getHostByIp","ips","listenOnAllPorts","address","onlyIp4","family","onlyIp6","ConfigImageUpload","imageRef","fileExists","exist","_getUrl","update","port","hostname","crop","ConfigInstanceSelect","getHistory","getAdapterInstances","instances","subscribeObject","onInstancesUpdate","unsubscribeObject","wrapper","ConfigJsonEditor","initialized","showSelectId","LANGUAGES","languages","system","changeGuiLanguage","setLanguage","changeLanguage","language","control","textWithArrows","arrows","arrowUp","arrowDown","ConfigNumber","_value","arr","parseFloat","min","isNumber","step","isFinite","isNaN","ConfigObjectId","components","autocomplete","autocompleteSendTo","certificate","checkbox","ConfigChip","coordinates","cron","datePicker","ConfigStaticDivider","fileSelector","header","ConfigStaticHeader","ip","jsonEditor","objectId","password","ConfigPassword","ConfigPattern","room","ConfigRoom","ConfigSelect","selectSendTo","ConfigSelectSendTo","ConfigSendto","ConfigSetState","slider","ConfigSlider","staticImage","ConfigStaticImage","staticLink","ConfigStaticText","staticText","table","ConfigTable","ConfigText","textSendTo","ConfigTextSendTo","timePicker","ConfigTimePicker","topic","ConfigTopic","user","ConfigUser","heading","ConfigPanel","collapsable","multiEdit","noMultiEdit","ItemComponent","ConfigPanelStyled","onCommandRunning","panel","themaType","isParentTab","halfWidth1","halfWidth2","PASSWORD_PLACEHOLDER","_repeat","_visible","_notEqual","repeatPassword","repeat","onChangePassword","autoComplete","form","visible","passwordRepeat","copy","initialValue","menuPaper","multiple","_getValue","gap","v","showAllValues","manual","_error","_message","response","args","arg","_onClick","renderErrorDialog","renderMessageDialog","getObject","ack","okText","unit","marks","borderStyle","contrastText","marginBlockEnd","marginBlockStart","headerText","visuallyHidden","clip","addIcon","highlight","dark","rootTool","silver","filteredOut","buttonEmpty","buttonCell","nameOfFirstAttr","nameOfSecondAttr","row","property","orderCheck","order","orderBy","isAsc","newOrder","stableSort","iteration","applyFilter","comparator","getComparator","stabilizedThis","visibleValue","onChangeWrapper","updateVisible","typingTimer","objKeyName","objValue","arrayToObject","objValueName","handleRequestSort","newItem","accumulator","currentValue","clear","filterRefs","valueInputRef","idx","objectToArray","filterOn","attrItem","schemaForAttribute","schemaItem","valueChange","newObj","buttonsWidth","headCell","noDelete","doAnyFilterSet","isAnyFilterSet","allowAddByFilter","enhancedTableHead","onMoveUp","onMoveDown","descendingComparator","tabs","ConfigTabs","tab","dialogName","prefix","namespace","convertID2Topic","getUsers","users","_users","getObjectNameFromObj","getInvertedColor","JsonConfigComponent","onValueChange","_data","forceUpdateHandlers","updateData","buildDependencies","readData","readSettings","getCompactSystemConfig","subscribeState","onAlive","_list","flatten","attrs","warn","depObj","forceAttrUpdate","exists","ptStyles","LoaderPT","head","vendorStyles","LoaderVendor","logo","Logo","evt","contents","onLoad","readAsText","news","titleLang","desc","generateFile","handleFileSelect","click","readme","win","download","filename","encodeURIComponent","body","MDUtils","extractHeader","lines","_header","line","doc","different","SelectWithIcon","wordDifferent","allowNone","removePrefix","dense","inputProps","clone","oneOfType","div","TextWithIcon","moreClasses","toggleTheme","lookup","getAttr","setAttr","tableContainer","cell","rowMainWithChildren","rowMainWithoutChildren","rowNoEdit","cellExpand","cellButton","cellHeader","width_name_nicknames","width_ioType","width_type","width_displayTraits","width_roomHint","rowSecondary","fontStyle","cellSecondary","fieldEditWithButton","fieldEdit","fieldButton","colorDialog","subText","glow","animation","_a","_b","TreeTable","editMode","deleteMode","editData","columns","field","useTable","showSelectColor","glowOnChange","col","renderCellEditSelect","editComponent","renderCellEditCustom","renderCellEditBoolean","renderCellEditColor","renderCellEditObjectID","renderCellEditString","EditComponent","newVal","selectCallback","selectIdValue","_val","newColor","editable","cellStyle","renderCellEdit","renderCellNonEdit","sub","subField","subLookup","mainText","subStyle","levelShift","renderCellWithSubField","ii","renderCell","newData","renderLine","headerStyle","noSort","noAdd","updateTimeout","renderHead","renderSelectIdDialog","renderSelectColorDialog","oldLine","cropperStyles","outline","buttonRemoveWrapper","buttonCropWrapper","UploadImage","anchorEl","cropHandler","cropperRef","removeIconFunc","currentTarget","Boolean","imageElement","cropper","getCroppedCanvas","toDataURL","headerID","radio","dialogPaper","DialogComplexCron","onOk","clearButton","handleClear","handleOk","handleCancel","dialogMobile","contentMobile","titleRoot","DialogFileSelect","filters","isFolder","isMobile","innerWidth","isDoubleClick","DialogSimpleCron","TextInput","titleText","promptText","labelText","charCode","verify","rule","applyText","cancelText","IconFx","onClick","IconLogout","IconNoIcon","handler","callbackRef","useRef","fn","clamp","isTouch","getParentWindow","ownerDocument","defaultView","self","getRelativePosition","touchId","rect","getBoundingClientRect","pointer","touches","identifier","pageX","pageXOffset","pageY","pageYOffset","preventDefaultMove","Interactive","onMove","onKey","rest","onMoveCallback","useEventCallback","onKeyCallback","hasTouch","useMemo","handleMove","toggleDocumentEvents","handleMoveEnd","touch","parentWindow","toggleEvent","removeEventListener","nativeEvent","changedTouches","which","handleMoveStart","onTouchStart","onMouseDown","tabIndex","role","formatClassName","Pointer","nodeClassName","digits","base","pow","angleUnits","grad","turn","rad","PI","hexToRgba","hex","substr","parseHue","Number","hslaStringToHsva","hslString","exec","hslaToHsva","h","s","l","hslStringToHsva","hsvaToHsla","hh","hsvaToHslString","hsva","hsvaToHslaString","hsvaToRgba","floor","hsvaStringToHsva","hsvString","roundHsva","hsvStringToHsva","rgbaStringToHsva","rgbaString","rgbaToHsva","rgbStringToHsva","format","delta","Hue","hue","interaction","aria-label","aria-valuetext","Saturation","containerStyle","equalColorObjects","first","second","equalColorString","colorModel","onChangeCallback","toHsva","updateHsva","cache","equal","newHsva","fromHsva","nonce","useIsomorphicLayoutEffect","useLayoutEffect","getNonce","__webpack_nonce__","setNonce","hash","styleElementMap","Map","useStyleSheet","nodeRef","parentDocument","has","styleElement","set","defaultColor","useColorManipulation","HexColorPicker","Alpha","gradientStyle","AlphaColorPicker","HslaColorPicker","HslaStringColorPicker","HslColorPicker","HslStringColorPicker","HsvaColorPicker","HsvaStringColorPicker","HsvColorPicker","HsvStringColorPicker","RgbaColorPicker","RgbaStringColorPicker","RgbColorPicker","RgbStringColorPicker","matcher","ColorInput","escape","validate","process","onBlurCallback","handleBlur","spellCheck","HexColorInput","prefixed","alpha"],"mappings":"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","file":"static/js/178.f52a4814.chunk.js","sourcesContent":["var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\n\nmodule.exports = _toArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' })\n );\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar DEFAULT_SIZE = 24;\n\nexports.default = function (_ref) {\n var _ref$fill = _ref.fill,\n fill = _ref$fill === undefined ? 'currentColor' : _ref$fill,\n _ref$width = _ref.width,\n width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height,\n _ref$style = _ref.style,\n style = _ref$style === undefined ? {} : _ref$style,\n props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']);\n\n return _react2.default.createElement(\n 'svg',\n _extends({\n viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE,\n style: _extends({ fill: fill, width: width, height: height }, style)\n }, props),\n _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' })\n );\n};","/**\n * Copyright 2018-2022 bluefox \n *\n * Licensed under the Creative Commons Attribution-NonCommercial License, Version 4.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://creativecommons.org/licenses/by-nc/4.0/legalcode.txt\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n **/\nimport React from 'react';\nimport {ChromePicker} from 'react-color';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\nimport IconDelete from '@mui/icons-material/Delete';\n\nconst styles = theme => ({\n color: {\n width: 36,\n height: 14,\n borderRadius: 2,\n },\n delButton: {\n //width: 32,\n //height: 32,\n marginTop: 16,\n },\n swatch: {\n marginTop: 16,\n padding: 5,\n background: '#fff',\n borderRadius: 1,\n boxShadow: '0 0 0 1px rgba(0,0,0,.1)',\n display: 'inline-block',\n cursor: 'pointer',\n verticalAlign: 'middle',\n },\n swatchDisabled: {\n opacity: 0.5,\n cursor: 'default'\n },\n popover: {\n position: 'absolute',\n zIndex: 2,\n },\n cover: {\n position: 'fixed',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n textDense: {\n marginTop: 0,\n marginBottom: 0,\n }\n});\n\n/**\n * @typedef {object} Rgb\n * @property {number} r The red component of the color (0-255).\n * @property {number} g The green component of the color (0-255).\n * @property {number} b The blue component of the color (0-255).\n * @property {number} a The alpha component of the color (0-255).\n *\n * @typedef {string | Rgb | { rgb: Rgb }} Color Definition of a color.\n *\n * @typedef {object} ColorPickerProps\n * @property {boolean} [disabled] Set to true to disable the color picker.\n * @property {Color} [value] The currently selected color.\n * @property {(rgba: string) => void} [onChange] The color change callback.\n * @property {string} [name] The name.\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n * @property {boolean} [openAbove] Open the color picker above the field?\n *\n * @extends {React.Component}\n */\nclass ColorPicker extends React.Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n this.state = {\n displayColorPicker: false,\n color: this.props.value || this.props.color,\n };\n }\n\n /**\n * Get the state derived from the given properties and state.\n * @param {{ color: Color; }} props\n * @param {{ color: Color; }} state\n */\n static getDerivedStateFromProps(props, state) {\n const pColor = ColorPicker.getColor(props.value || props.color);\n const sColor = ColorPicker.getColor(state.color);\n if (pColor !== sColor) {\n return {color: props.value || props.color}\n } else {\n return null;\n }\n }\n\n /**\n * @private\n */\n handleClick = () => {\n this.setState({displayColorPicker: !this.state.displayColorPicker});\n };\n\n /**\n * @private\n */\n handleClose = () => {\n this.setState({displayColorPicker: false});\n };\n\n /**\n * Convert the given color to hex ('#rrggbb') or rgba ('rgba(r,g,b,a)') format.\n * @param {Color} [color]\n * @param {boolean} [isHex] The returning string should be in hex format\n * @returns {string} the hex or rgba representation of the given color.\n */\n static getColor(color, isHex) {\n if (color && typeof color === 'object') {\n if (color.rgb) {\n if (isHex) {\n return '#' + color.rgb.r.toString(16).padStart(2, '0') + color.rgb.g.toString(16).padStart(2, '0') + color.rgb.b.toString(16).padStart(2, '0');\n } else {\n return 'rgba(' + color.rgb.r + ',' + color.rgb.g + ',' + color.rgb.b + ',' + color.rgb.a + ')';\n }\n } else {\n if (isHex) {\n return '#' + color.r.toString(16).padStart(2, '0') + color.g.toString(16).padStart(2, '0') + color.b.toString(16).padStart(2, '0');\n } else {\n return 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')';\n }\n }\n } else {\n return isHex ? ColorPicker.rgb2hex(color || '') : color || '';\n }\n }\n\n /**\n * Convert rgb() or rgba() format to hex format #rrggbb.\n * @param {string} rgb\n * @returns {string}\n */\n static rgb2hex(rgb){\n const m = rgb.match(/^rgba?[\\s+]?\\([\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?,[\\s+]?(\\d+)[\\s+]?/i);\n\n return m && m.length === 4 ? '#' +\n parseInt(m[1],10).toString(16).padStart(2, '0') +\n parseInt(m[2],10).toString(16).padStart(2, '0') +\n parseInt(m[3],10).toString(16).padStart(2, '0') : rgb;\n }\n\n /**\n * @private\n */\n handleChange = color => {\n this.setState({color});\n this.props.onChange && this.props.onChange(ColorPicker.getColor(color));\n };\n\n render() {\n const color = ColorPicker.getColor(this.state.color);\n let style = {};\n\n if (this.state.displayColorPicker && this.props.openAbove) {\n style = {\n top: -241,\n };\n }\n\n return \n this.handleChange(e.target.value)}\n />\n {color ? this.handleChange('')}\n size=\"small\"\n className={this.props.classes.delButton}\n style={color ? {} : {opacity: 0, cursor: 'default'}}\n > : null}\n
!this.props.disabled && this.handleClick()}>\n
\n
\n { this.state.displayColorPicker && !this.props.disabled ?
\n
this.handleClose()}/>\n this.handleChange(color)} />\n
: null }\n
;\n }\n}\n\nColorPicker.propTypes = {\n disabled: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n name: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n openAbove: PropTypes.bool,\n};\n\n/** @type {typeof ColorPicker} */\nconst _export = withStyles(styles)(ColorPicker);\nexport default _export;","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\nimport Button from '@mui/material/Button';\nimport {Dialog, DialogActions, DialogContent, DialogTitle, IconButton, TextField} from '@mui/material';\nimport { withStyles } from '@mui/styles';\n\nimport CheckIcon from '@mui/icons-material/Check';\nimport CloseIcon from '@mui/icons-material/Close';\nimport LanguageIcon from '@mui/icons-material/Language';\n\nimport Utils from './Utils';\nimport I18n from '../i18n';\n\nconst styles = theme => ({\n modalDialog: {\n minWidth: 400,\n maxWidth: 800,\n },\n overflowHidden: {\n display: 'flex',\n overflow: 'hidden'\n },\n titleIcon: {\n marginRight: 5,\n },\n content: {\n fontSize: 16,\n },\n languageButton: {\n position: 'absolute',\n right: theme.spacing(1),\n top: theme.spacing(1)\n },\n languageButtonActive: {\n color: theme.palette.primary.main\n },\n});\n\nconst CustomModal = ({ toggleTranslation, noTranslation, title, fullWidth, help, maxWidth, progress, icon, applyDisabled, applyButton, classes, open, onClose, children, titleButtonApply, titleButtonClose, onApply, textInput, defaultValue, overflowHidden }) => {\n const [value, setValue] = useState(defaultValue);\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n let Icon = null;\n\n if (icon) {\n Icon = icon;\n }\n\n return \n {title && \n {icon ? : null}\n {title}\n {I18n.getLanguage() !== 'en' && toggleTranslation ? toggleTranslation()}\n title={I18n.t('Disable/Enable translation')}\n >\n \n : null}\n }\n \n {textInput && setValue(e.target.value)}\n // customValue\n />}\n {children}\n {help ?
{help}
: null}\n
\n \n {applyButton && }\n disabled={progress || (applyDisabled && defaultValue === value)}\n onClick={() => onApply(textInput ? value : '')}\n variant=\"contained\"\n color=\"primary\"\n >\n {I18n.t(titleButtonApply)}\n }\n }\n >\n {I18n.t(titleButtonClose)}\n \n \n ;\n}\n\nCustomModal.defaultProps = {\n open: false,\n onApply: () => { },\n onClose: () => { },\n applyButton: true,\n applyDisabled: false,\n titleButtonClose: 'Cancel',\n titleButtonApply: 'Ok',\n overflowHidden: false,\n help: ''\n};\n\nCustomModal.propTypes = {\n icon: PropTypes.object,\n open: PropTypes.bool,\n onClose: PropTypes.func,\n children: PropTypes.any,\n titleButtonClose: PropTypes.string,\n titleButtonApply: PropTypes.string,\n onApply: PropTypes.func,\n fullWidth: PropTypes.bool,\n maxWidth: PropTypes.string,\n help: PropTypes.string,\n noTranslation: PropTypes.bool,\n toggleTranslation: PropTypes.func,\n};\n\nexport default withStyles(styles)(CustomModal);\n","/**\n * Copyright 2020-2022, bluefox \n *\n * MIT License\n *\n **/\nimport React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\nimport Dropzone from 'react-dropzone';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Toolbar from '@mui/material/Toolbar';\nimport IconButton from '@mui/material/IconButton';\nimport Fab from '@mui/material/Fab';\nimport Dialog from '@mui/material/Dialog';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogActions from '@mui/material/DialogActions';\nimport Button from '@mui/material/Button';\nimport Input from '@mui/material/Input';\nimport { Hidden, Tooltip } from '@mui/material';\n\nimport ErrorDialog from '../Dialogs/Error';\nimport Utils from './Utils';\nimport TextInputDialog from '../Dialogs/TextInput';\nimport { EXTENSIONS } from './FileViewer';\nimport FileViewer from './FileViewer';\n// import FileViewer from '@iobroker/adapter-react-v5/Components/FileViewer';\n\n// Icons\nimport RefreshIcon from '@mui/icons-material/Refresh';\nimport CloseIcon from '@mui/icons-material/Close';\nimport JsonIcon from '@mui/icons-material/Bookmark';\nimport CssIcon from '@mui/icons-material/BookmarkBorder';\nimport HtmlIcon from '@mui/icons-material/Description';\nimport EditIcon from '@mui/icons-material/Edit';\nimport JSIcon from '@mui/icons-material/Code';\nimport FileIcon from '@mui/icons-material/InsertDriveFile';\nimport UploadIcon from '@mui/icons-material/Publish';\nimport MusicIcon from '@mui/icons-material/MusicNote';\nimport DownloadIcon from '@mui/icons-material/SaveAlt';\nimport AddFolderIcon from '@mui/icons-material/CreateNewFolder';\nimport EmptyFilterIcon from '@mui/icons-material/FolderOpen';\nimport IconList from '@mui/icons-material/List';\nimport IconTile from '@mui/icons-material/ViewModule';\nimport IconBack from '@mui/icons-material/ArrowBack';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\n\nimport ExpertIcon from '../icons/IconExpert';\nimport IconClosed from '../icons/IconClosed';\nimport IconOpen from '../icons/IconOpen';\nimport IconNoIcon from '../icons/IconNoIcon';\n\nimport withWidth from './withWidth';\n\nconst ROW_HEIGHT = 32;\nconst BUTTON_WIDTH = 32;\nconst TILE_HEIGHT = 120;\nconst TILE_WIDTH = 64;\n\nconst NOT_FOUND = 'Not found';\n\nconst styles = theme => ({\n dialog: {\n height: `calc(100% - ${theme.mixins.toolbar.minHeight}px)`,\n },\n root: {\n width: '100%',\n overflow: 'hidden',\n height: '100%',\n position: 'relative',\n },\n filesDiv: {\n width: `calc(100% - ${theme.spacing(2)})`,\n overflowX: 'hidden',\n overflowY: 'auto',\n padding: theme.spacing(1),\n },\n filesDivTable: {\n height: `calc(100% - ${48 + parseInt(theme.spacing(1), 10)}px)`,\n },\n filesDivTile: {\n height: `calc(100% - ${48 * 2 + parseInt(theme.spacing(1), 10)}px)`,\n display: 'flex',\n alignContent: 'flex-start',\n alignItems: 'stretch',\n flexWrap: 'wrap',\n flex: `0 0 ${TILE_WIDTH}px`,\n },\n\n itemTile: {\n position: 'relative',\n userSelect: 'none',\n cursor: 'pointer',\n height: TILE_HEIGHT,\n width: TILE_WIDTH,\n display: 'inline-block',\n textAlign: 'center',\n opacity: 0.1,\n transition: 'opacity 1s',\n margin: 4,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameFolderTile: {\n fontWeight: 'bold',\n },\n itemNameTile: {\n width: '100%',\n height: 32,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n fontSize: 12,\n textAlign: 'center',\n wordBreak: 'break-all',\n },\n itemFolderIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n paddingLeft: 8,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemFolderIconBack: {\n position: 'absolute',\n top: 22,\n left: 18,\n zIndex: 1,\n color: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n },\n itemSizeTile: {\n width: '100%',\n height: 16,\n textAlign: 'center',\n fontSize: 10,\n },\n itemImageTile: {\n width: 'calc(100% - 8px)',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n margin: 4,\n display: 'block',\n textAlign: 'center',\n objectFit: 'contain',\n },\n itemIconTile: {\n width: '100%',\n height: TILE_HEIGHT - 32 - 16 - 8, // name + size\n display: 'block',\n objectFit: 'contain',\n },\n\n itemSelected: {\n background: theme.palette.primary.main,\n color: Utils.invertColor(theme.palette.primary.main, true),\n },\n\n itemTable: {\n userSelect: 'none',\n cursor: 'pointer',\n height: ROW_HEIGHT,\n display: 'inline-flex',\n lineHeight: `${ROW_HEIGHT}px`,\n '&:hover': {\n background: theme.palette.secondary.light,\n color: Utils.invertColor(theme.palette.secondary.main, true),\n },\n },\n itemNameTable: {\n display: 'inline-block',\n paddingLeft: 10,\n fontSize: '1rem',\n verticalAlign: 'top',\n flexGrow: 1,\n },\n itemNameFolderTable: {\n fontWeight: 'bold',\n },\n itemSizeTable: {\n display: 'inline-block',\n width: 60,\n verticalAlign: 'top',\n textAlign: 'right',\n },\n itemAccessTable: {\n // display: 'inline-block',\n verticalAlign: 'top',\n width: 60,\n textAlign: 'right',\n paddingRight: 5,\n display: 'flex',\n justifyContent: 'center',\n },\n itemImageTable: {\n display: 'inline-block',\n width: 30,\n marginTop: 1,\n objectFit: 'contain',\n maxHeight: 30,\n },\n itemIconTable: {\n display: 'inline-block',\n marginTop: 1,\n width: 30,\n height: 30,\n },\n itemFolderTable: {\n\n },\n itemFolderTemp: {\n opacity: 0.4,\n },\n itemFolderIconTable: {\n marginTop: 1,\n marginLeft: theme.spacing(1),\n display: 'inline-block',\n width: 30,\n height: 30,\n color: theme.palette.secondary.main || '#fbff7d',\n },\n itemDownloadButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n '& span': {\n paddingTop: 9,\n },\n '& svg': {\n width: 14,\n height: 14,\n fontSize: '1rem',\n },\n },\n itemAclButtonTable: {\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n fontSize: 12,\n display: 'flex',\n },\n itemDeleteButtonTable: {\n display: 'inline-block',\n width: BUTTON_WIDTH,\n height: ROW_HEIGHT,\n minWidth: BUTTON_WIDTH,\n verticalAlign: 'top',\n padding: 0,\n '& svg': {\n width: 18,\n height: 18,\n fontSize: '1.5rem',\n },\n },\n\n uploadDiv: {\n top: 0,\n zIndex: 1,\n bottom: 0,\n left: 0,\n right: 0,\n position: 'absolute',\n opacity: 0.9,\n textAlign: 'center',\n background: '#FFFFFF',\n },\n uploadDivDragging: {\n opacity: 1,\n },\n\n uploadCenterDiv: {\n margin: 20,\n border: '3px dashed grey',\n borderRadius: 30,\n width: 'calc(100% - 40px)',\n height: 'calc(100% - 40px)',\n position: 'relative',\n color: theme.palette.mode === 'dark' ? '#222' : '#CCC',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n },\n uploadCenterIcon: {\n width: '25%',\n height: '25%',\n },\n uploadCenterText: {\n fontSize: 24,\n fontWeight: 'bold',\n },\n uploadCloseButton: {\n zIndex: 2,\n position: 'absolute',\n top: 30,\n right: 30,\n },\n uploadCenterTextAndIcon: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n height: '30%',\n width: '50%',\n margin: '-15% 0 0 -25%',\n },\n menuButtonExpertActive: {\n color: '#c00000',\n },\n pathDiv: {\n display: 'flex',\n width: `calc(100% - ${theme.spacing(2)})`,\n marginLeft: theme.spacing(1),\n marginRight: theme.spacing(1),\n textOverflow: 'clip',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n },\n pathDivInput: {\n width: '100%',\n },\n pathDivBreadcrumb: {\n paddingTop: 3,\n paddingBottom: 2,\n borderBottom: 'solid 1px',\n },\n pathDivBreadcrumbDir: {\n paddingLeft: 4,\n paddingRight: 4,\n paddingBottom: 4,\n cursor: 'pointer',\n '&:hover': {\n background: theme.palette.mode === 'dark' ? '#333' : '#CCC',\n },\n },\n pathDivBreadcrumbSlash: {\n paddingLeft: 4,\n paddingRight: 4,\n paddingBottom: 4,\n opacity: 0.7,\n },\n pathDivBreadcrumbFile: {\n cursor: 'pointer',\n flexGrow: 1,\n },\n backgroundImageLight: {\n background: 'white',\n },\n backgroundImageDark: {\n background: 'black',\n },\n backgroundImageColored: {\n background: 'silver',\n },\n '@media screen and (max-width: 500px)': {\n itemNameTable: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n textAlign: 'end',\n direction: 'rtl',\n },\n },\n specialFolder: {\n color: theme.palette.mode === 'dark' ? '#229b0f' : '#5dd300'\n }\n});\n\nconst USER_DATA = '0_userdata.0';\n\nfunction sortFolders(a, b) {\n if (a.folder && b.folder) {\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n }\n if (a.folder) {\n return -1;\n }\n if (b.folder) {\n return 1;\n }\n return a.name > b.name ? 1 : (a.name < b.name ? -1 : 0);\n}\n\nfunction getParentDir(dir) {\n const parts = (dir || '').split('/');\n parts.length && parts.pop();\n return parts.join('/');\n}\n\nfunction isFile(path) {\n const ext = Utils.getFileExtension(path);\n if (ext && ext.toLowerCase().match(/[a-z]+/) && ext.length < 5) {\n return true;\n }\n\n return false;\n}\n\nconst TABLE = 'Table';\nconst TILE = 'Tile';\n\n/**\n * @extends {React.Component}\n */\nclass FileBrowser extends Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n let expanded = (window._localStorage || window.localStorage).getItem('files.expanded') || '[]';\n\n if (this.props.limitPath) {\n const parts = this.props.limitPath.split('/');\n this.limitToObjectID = parts[0];\n this.limitToPath = !parts.length ? null : (parts.length === 1 && parts[0] === '' ? null : parts.join('/'));\n if (this.limitToPath && this.limitToPath.endsWith('/')) {\n this.limitToPath.substring(0, this.limitToPath.length - 1);\n }\n }\n\n try {\n expanded = JSON.parse(expanded);\n if (this.limitToPath) {\n expanded = expanded.filter(id => id.startsWith(this.limitToPath + '/') || id === this.limitToPath || this.limitToPath.startsWith(id + '/'));\n }\n } catch (e) {\n expanded = [];\n }\n\n let viewType;\n if (this.props.showViewTypeButton) {\n viewType = (window._localStorage || window.localStorage).getItem('files.viewType') || TABLE;\n } else {\n viewType = TABLE;\n }\n\n const selected = this.props.selected || (window._localStorage || window.localStorage).getItem('files.selected') || USER_DATA;\n let currentDir = '';\n if (isFile(selected)) {\n currentDir = getParentDir(selected);\n } else {\n currentDir = selected;\n }\n const backgroundImage = (window._localStorage || window.localStorage).getItem('files.backgroundImage') || null;\n\n this.state = {\n viewType,\n folders: {},\n filterEmpty: (window._localStorage || window.localStorage).getItem('files.empty') !== 'false',\n expanded,\n currentDir,\n expertMode: this.props.expertMode,\n addFolder: false,\n uploadFile: false,\n deleteItem: '',\n marked: [],\n viewer: '',\n formatEditFile: '',\n path: selected,\n selected,\n errorText: '',\n modalEditOfAccess: false,\n backgroundImage,\n queueLength: 0,\n loadAllFolders: false,\n allFoldersLoaded: false,\n fileErrors: [],\n };\n\n this.imagePrefix = this.props.imagePrefix || './files/';\n\n this.levelPadding = this.props.levelPadding || 20;\n this.mounted = true;\n this.suppressDeleteConfirm = 0;\n\n this.browseList = [];\n this.browseListRunning = false;\n this.initialReadFinished = false;\n this.supportSubscribes = null;\n this._tempTimeout = {};\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.expertMode !== undefined && props.expertMode !== state.expertMode) {\n return { expertMode: props.expertMode, loadAllFolders: true };\n }\n\n return null;\n }\n\n loadFolders() {\n this.initialReadFinished = false;\n\n return this.browseFolder('/')\n .then(folders => {\n return this.state.viewType === TABLE ?\n this.browseFolders([...this.state.expanded], folders)\n :\n (this.state.currentDir && this.state.currentDir !== '/' && (!this.limitToObjectID || this.state.currentDir.startsWith(this.limitToObjectID)) ? this.browseFolder(this.state.currentDir, folders) : Promise.resolve(folders))\n })\n .then(folders => this.setState({ folders }, () => {\n if (this.state.viewType === TABLE && !this.findItem(this.state.selected)) {\n const parts = this.state.selected.split('/');\n while (parts.length && !this.findItem(parts.join('/'))) {\n parts.pop();\n }\n let selected;\n if (parts.length) {\n selected = parts.join('/');\n } else {\n selected = USER_DATA;\n }\n this.setState({ selected, path: selected, pathFocus: false }, () => this.scrollToSelected());\n } else {\n this.scrollToSelected();\n }\n this.initialReadFinished = true;\n }));\n }\n\n scrollToSelected() {\n if (this.mounted) {\n const el = document.getElementById(this.state.selected);\n el && el.scrollIntoView();\n }\n }\n\n componentDidMount() {\n this.mounted = true;\n this.loadFolders();\n return this.props.socket.checkFeatureSupported('BINARY_STATE_EVENT')\n .then(result => {\n this.supportSubscribes = result;\n this.supportSubscribes && this.props.socket.subscribeFiles('*', '*', this.onFileChange);\n });\n }\n\n componentWillUnmount() {\n this.supportSubscribes && this.props.socket.unsubscribeFiles('*', '*', this.onFileChange);\n this.mounted = false;\n this.browseList = null;\n this.browseListRunning = false;\n Object.values(this._tempTimeout)\n .forEach(timer => timer && clearTimeout(timer));\n this._tempTimeout = {};\n }\n\n browseFolders(foldersList, _newFolders, _resolve) {\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder => _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (!_resolve) {\n return new Promise(resolve => this.browseFolders(foldersList, _newFolders, resolve));\n }\n\n if (!foldersList || !foldersList.length) {\n return _resolve(_newFolders);\n }\n\n return this.browseFolder(foldersList.shift(), _newFolders)\n .then(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0))\n .catch(() => setTimeout(() => this.browseFolders(foldersList, _newFolders, _resolve), 0));\n }\n\n readDirSerial(adapter, relPath) {\n return new Promise((resolve, reject) => {\n if (this.browseList) { // if component still mounted\n this.browseList.push({\n resolve, reject, adapter, relPath,\n });\n !this.browseListRunning && this.processBrowseList();\n }\n });\n }\n\n processBrowseList(level) {\n if (!this.browseListRunning && this.browseList && this.browseList.length) {\n this.browseListRunning = true;\n if (this.browseList.length > 10) {\n // not too often\n if (!(this.browseList.length % 10)) {\n this.setState({ queueLength: this.browseList.length });\n }\n } else {\n this.setState({ queueLength: this.browseList.length });\n }\n\n this.browseList[0].processing = true;\n this.props.socket.readDir(this.browseList[0].adapter, this.browseList[0].relPath)\n .then(files => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const resolve = item.resolve;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n resolve(files);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n })\n .catch(e => {\n if (this.browseList) { // if component still mounted\n const item = this.browseList.shift();\n if (item) {\n const reject = item.reject;\n item.resolve = null;\n item.reject = null;\n item.adapter = null;\n item.relPath = null;\n reject(e);\n this.browseListRunning = false;\n if (this.browseList.length) {\n if (level < 5) {\n this.processBrowseList(level + 1);\n } else {\n setTimeout(() => this.processBrowseList(0), 0);\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n } else {\n this.setState({ queueLength: 0 });\n }\n }\n });\n }\n }\n\n browseFolder(folderId, _newFolders, _checkEmpty, force) {\n if (typeof _newFolders === 'boolean') {\n force = _newFolders;\n _newFolders = null;\n }\n\n if (!_newFolders) {\n _newFolders = {};\n Object.keys(this.state.folders).forEach(folder =>\n _newFolders[folder] = this.state.folders[folder]);\n }\n\n if (_newFolders[folderId] && !force) {\n if (!_checkEmpty) {\n return new Promise((resolve, reject) =>\n Promise.all(_newFolders[folderId].filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(error => { })))\n .then(() => resolve(_newFolders))\n .catch(error => reject(error)));\n }\n\n return Promise.resolve(_newFolders);\n }\n\n if (!folderId || folderId === '/') {\n return this.props.socket.readMetaItems()\n .then(objs => {\n const _folders = [];\n let userData = null;\n\n // load only adapter.admin and not other meta files like hm-rpc.0.devices.blablabla\n if (!this.state.expertMode) {\n objs = objs.filter(obj => !obj._id.endsWith('.admin'));\n }\n const pos = objs.findIndex(obj => obj._id === 'system.meta.uuid');\n if (pos !== -1) {\n objs.splice(pos, 1);\n }\n\n // remember, that all folders are loaded\n if (this.state.expertMode) {\n this.setState({ allFoldersLoaded: true, loadFolders: false });\n }\n\n objs.forEach(obj => {\n if (this.limitToObjectID && this.limitToObjectID !== obj._id) {\n return;\n }\n\n const item = {\n id: obj._id,\n name: obj._id,\n title: (obj.common && obj.common.name) || obj._id,\n meta: true,\n from: obj.from,\n ts: obj.ts,\n color: obj.common && obj.common.color,\n icon: obj.common && obj.common.icon,\n folder: true,\n acl: obj.acl,\n level: 0,\n };\n if (item.id === USER_DATA) {\n // user data must be first\n userData = item;\n } else {\n _folders.push(item);\n }\n });\n _folders.sort((a, b) => (a.id > b.id ? 1 : (a.id < b.id ? -1 : 0)));\n if (!this.limitToObjectID || this.limitToObjectID === USER_DATA) {\n userData && _folders.unshift(userData);\n }\n\n _newFolders[folderId || '/'] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders.filter(item => item.folder).map(item =>\n this.browseFolder(item.id, _newFolders, true)\n .catch(error => { })))\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => this.initialReadFinished && window.alert(`Cannot read meta items: ${e}`));\n }\n\n const parts = folderId.split('/');\n const level = parts.length;\n const adapter = parts.shift();\n const relPath = parts.join('/');\n\n // make all requests here serial\n return this.readDirSerial(adapter, relPath)\n .then(files => {\n const _folders = [];\n files.forEach(file => {\n const item = {\n id: `${folderId}/${file.file}`,\n ext: Utils.getFileExtension(file.file),\n folder: file.isDir,\n name: file.file,\n size: file.stats && file.stats.size,\n modified: file.modifiedAt,\n acl: file.acl,\n level,\n };\n\n if (this.limitToPath) {\n if (item.folder && (item.id.startsWith(this.limitToPath + '/') || item.id === this.limitToPath || this.limitToPath.startsWith(item.id + '/'))) {\n _folders.push(item);\n } else if (item.id.startsWith(this.limitToPath + '/')) {\n _folders.push(item);\n }\n } else {\n _folders.push(item);\n }\n });\n\n _folders.sort(sortFolders);\n _newFolders[folderId] = _folders;\n\n if (!_checkEmpty) {\n return Promise.all(_folders\n .filter(item => item.folder)\n .map(item => this.browseFolder(item.id, _newFolders, true))\n )\n .then(() => _newFolders);\n }\n\n return _newFolders;\n })\n .catch(e => {\n this.initialReadFinished && window.alert(`Cannot read ${adapter}${relPath ? `/${relPath}` : ''}: ${e}`);\n _newFolders[folderId] = [];\n return _newFolders;\n });\n }\n\n toggleFolder(item, e) {\n e && e.stopPropagation();\n const expanded = [...this.state.expanded];\n const pos = expanded.indexOf(item.id);\n if (pos === -1) {\n expanded.push(item.id);\n expanded.sort();\n\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n\n if (!item.temp) {\n return this.browseFolder(item.id)\n .then(folders => this.setState({ expanded, folders }))\n .catch(err => window.alert(err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', item.id) : this.props.t('ra_Cannot read \"%s\"', item.id)));\n } else {\n this.setState({ expanded });\n }\n } else {\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ expanded });\n }\n }\n\n onFileChange = (id, fileName, size) => {\n const key = id + '/' + fileName;\n const pos = key.lastIndexOf('/');\n const folder = key.substring(0, pos);\n console.log(`File changed ${key}[${size}]`);\n\n if (this.state.folders[folder]) {\n this._tempTimeout[folder] && clearTimeout(this._tempTimeout[folder]);\n\n this._tempTimeout[folder] = setTimeout(() => {\n delete this._tempTimeout[folder];\n\n this.browseFolder(folder, true)\n .then(folders => this.setState({ folders }));\n }, 300);\n }\n };\n\n changeFolder(e, folder) {\n e && e.stopPropagation();\n\n this.lastSelect = Date.now();\n\n folder = folder || getParentDir(this.state.currentDir);\n\n if (folder === '/') {\n folder = '';\n }\n\n (window._localStorage || window.localStorage).setItem('files.currentDir', folder);\n\n if (folder && !this.state.folders[folder]) {\n return this.browseFolder(folder)\n .then(folders =>\n this.setState({\n folders,\n path: folder,\n currentDir: folder,\n selected: folder,\n pathFocus: false\n }, () =>\n this.props.onSelect && this.props.onSelect('')));\n }\n\n return this.setState({\n currentDir: folder,\n selected: folder,\n path: folder,\n pathFocus: false\n }, () =>\n this.props.onSelect && this.props.onSelect(''));\n }\n\n select(id, e, cb) {\n if (typeof e === 'function') {\n cb = e;\n e = null;\n }\n e && e.stopPropagation();\n this.lastSelect = Date.now();\n (window._localStorage || window.localStorage).setItem('files.selected', id);\n this.setState({ selected: id, path: id, pathFocus: false }, () => {\n if (this.props.onSelect) {\n const ext = Utils.getFileExtension(id);\n if ((!this.props.filterFiles || this.props.filterFiles.includes(ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(ext))\n ) {\n this.props.onSelect(id, false, !!this.state.folders[id]);\n } else {\n this.props.onSelect('');\n }\n }\n cb && cb();\n });\n }\n\n renderFolder(item, expanded) {\n if (this.state.filterEmpty && (!this.state.folders[item.id] || !this.state.folders[item.id].length) && item.id !== USER_DATA && !item.temp) {\n return null;\n }\n const Icon = expanded ? IconOpen : IconClosed;\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const isUserData = item.name === USER_DATA;\n const isSpecialData = isUserData || item.name === 'vis.0';\n\n return this.state.viewType === TABLE ? this.select(item.id, e) : this.changeFolder(e, item.id)}\n onDoubleClick={e => this.state.viewType === TABLE && this.toggleFolder(item, e)}\n title={item.title && typeof item.title === 'object' ? (item.title[this.props.lang] || item.title.end || '') : (item.title || null)}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n item.temp && this.props.classes['itemFolderTemp'],\n )}\n >\n this.toggleFolder(item, e) : undefined} />\n\n
{isUserData ? this.props.t('ra_User files') : item.name}
\n\n \n
{this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : ''}
\n
\n\n \n {this.state.viewType === TABLE ? this.formatAcl(item.acl) : null}\n \n\n \n {this.state.viewType === TABLE && this.props.expertMode ?
: null}\n \n {this.state.viewType === TABLE && this.props.allowDownload ?
: null}\n\n {this.state.viewType === TABLE && this.props.allowDelete && this.state.folders[item.id] && this.state.folders[item.id].length ?\n {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n \n \n :\n (this.state.viewType === TABLE && this.props.allowDelete ?
: null)}\n
;\n }\n\n renderBackFolder() {\n return this.changeFolder(e)}\n title={this.props.t('ra_Back to %s', getParentDir(this.state.currentDir))}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFolder${this.state.viewType}`],\n )}\n >\n \n \n\n ..
\n
;\n }\n\n formatSize(size) {\n return
{size || size === 0 ? Utils.formatBytes(size) : ''}
;\n }\n\n formatAcl(acl) {\n let access = acl && (acl.permissions || acl.file);\n if (access) {\n access = access.toString(16).padStart(3, '0');\n }\n\n return
\n this.setState({ modalEditOfAccess: true })}\n className={this.props.classes['itemAclButton' + this.state.viewType]}\n >{access || '---'}\n
;\n }\n\n getFileIcon(ext) {\n switch (ext) {\n case 'json':\n return ;\n\n case 'css':\n return ;\n\n case 'js':\n case 'ts':\n return ;\n\n case 'html':\n case 'md':\n return ;\n\n case 'mp3':\n case 'ogg':\n case 'wav':\n case 'm4a':\n case 'mp4':\n case 'flac':\n return ;\n\n default:\n return ;\n }\n }\n\n static getEditFile(ext) {\n switch (ext) {\n case 'json':\n case 'js':\n case 'html':\n case 'txt':\n return true;\n default:\n return false;\n }\n }\n\n setStateBackgroundImage = () => {\n const array = ['light', 'dark', 'colored', 'delete'];\n this.setState(({ backgroundImage }) => {\n if (array.indexOf(backgroundImage) !== -1 && array.length - 1 !== array.indexOf(backgroundImage)) {\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[array.indexOf(backgroundImage) + 1]);\n return { backgroundImage: array[array.indexOf(backgroundImage) + 1] };\n }\n (window._localStorage || window.localStorage).setItem('files.backgroundImage', array[0]);\n return { backgroundImage: array[0] };\n });\n }\n\n getClassBackgroundImage = () => {\n // ['light', 'dark', 'colored', 'delete']\n switch (this.state.backgroundImage) {\n case 'light':\n return this.props.classes.backgroundImageLight;\n case 'dark':\n return this.props.classes.backgroundImageDark;\n case 'colored':\n return this.props.classes.backgroundImageColored;\n case 'delete':\n return null;\n default:\n return null;\n }\n }\n\n renderFile(item) {\n const padding = this.state.viewType === TABLE ? item.level * this.levelPadding : 0;\n const ext = Utils.getFileExtension(item.name);\n\n return {\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n onClick={e => this.select(item.id, e)}\n style={this.state.viewType === TABLE ? { marginLeft: padding, width: `calc(100% - ${padding}px)` } : {}}\n className={Utils.clsx(\n 'browserItem',\n this.props.classes[`item${this.state.viewType}`],\n this.props.classes[`itemFile${this.state.viewType}`],\n this.state.selected === item.id && this.props.classes.itemSelected,\n )}\n >\n {EXTENSIONS.images.includes(ext) ?\n this.state.fileErrors.includes(item.id) ?\n :\n {\n e.target.onerror = null;\n const fileErrors = [...this.state.fileErrors];\n if (!fileErrors.includes(item.id)) {\n fileErrors.push(item.id);\n this.setState({ fileErrors });\n }\n }}\n className={Utils.clsx(this.props.classes['itemImage' + this.state.viewType], this.getClassBackgroundImage())}\n src={this.imagePrefix + item.id} alt={item.name}\n />\n :\n this.getFileIcon(ext)}\n
{item.name}
\n {this.formatSize(item.size)}\n {this.state.viewType === TABLE ? this.formatAcl(item.acl) : null}\n \n {this.state.viewType === TABLE && this.props.expertMode && FileBrowser.getEditFile(ext) ?\n {\n e.stopPropagation();\n if (!this.props.onSelect) {\n this.setState({ viewer: this.imagePrefix + item.id, formatEditFile: ext });\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n this.props.onSelect(item.id, true, !!this.state.folders[item.id]);\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n \n \n :\n
}\n \n {this.state.viewType === TABLE && this.props.allowDownload ? e.stopPropagation()}\n size=\"large\"\n >\n \n : null}\n\n {this.state.viewType === TABLE &&\n this.props.allowDelete &&\n item.id !== 'vis.0/' &&\n item.id !== USER_DATA\n ?\n {\n e.stopPropagation();\n if (this.suppressDeleteConfirm > Date.now()) {\n this.deleteItem(item.id);\n } else {\n this.setState({ deleteItem: item.id });\n }\n }}\n className={this.props.classes[`itemDeleteButton${this.state.viewType}`]}\n size=\"large\"\n >\n \n \n :\n (this.state.viewType === TABLE && this.props.allowDelete ?\n
\n :\n null\n )\n }\n
;\n }\n\n renderItems(folderId) {\n if (this.state.folders && this.state.folders[folderId]) {\n // tile\n if (this.state.viewType === TILE) {\n const res = [];\n if (folderId && folderId !== '/') {\n res.push(this.renderBackFolder());\n }\n this.state.folders[folderId].forEach(item => {\n if (item.folder) {\n res.push(this.renderFolder(item));\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n }\n });\n return res;\n }\n return this.state.folders[folderId].map(item => {\n const res = [];\n if (item.folder) {\n const expanded = this.state.expanded.includes(item.id);\n\n res.push(this.renderFolder(item, expanded));\n if (this.state.folders[item.id] && expanded) {\n res.push(this.renderItems(item.id));\n }\n } else if (\n (!this.props.filterFiles || this.props.filterFiles.includes(item.ext)) &&\n (!this.props.filterByType || EXTENSIONS[this.props.filterByType].includes(item.ext))\n ) {\n res.push(this.renderFile(item));\n } else {\n return null;\n }\n\n return res;\n });\n }\n\n return
\n \n
\n {this.state.queueLength}\n
\n
;\n }\n\n renderToolbar() {\n return \n {this.props.showExpertButton ? this.setState({ expertMode: !this.state.expertMode })}\n size=\"large\"\n >\n \n : null}\n {this.props.showViewTypeButton ? {\n const viewType = this.state.viewType === TABLE ? TILE : TABLE;\n (window._localStorage || window.localStorage).setItem('files.viewType', viewType);\n let currentDir = this.state.selected;\n if (isFile(currentDir)) {\n currentDir = getParentDir(currentDir);\n }\n this.setState({ viewType, currentDir }, () => {\n if (this.state.viewType === TABLE) {\n this.scrollToSelected();\n }\n });\n }}\n size=\"large\"\n >\n {this.state.viewType !== TABLE ? : }\n : null}\n {\n (window._localStorage || window.localStorage).setItem('file.empty', !this.state.filterEmpty);\n this.setState({ filterEmpty: !this.state.filterEmpty });\n }}\n size=\"large\"\n >\n \n \n this.setState({ folders: {} }, () => this.loadFolders())}\n size=\"large\"\n >\n \n \n {this.props.allowCreateFolder ? this.setState({ addFolder: true })}\n size=\"large\"\n >\n \n : null}\n {this.props.allowUpload ? this.setState({ uploadFile: true })}\n size=\"large\"\n >\n \n : null}\n \n \n \n \n \n ;\n }\n\n findItem(id, folders) {\n folders = folders || this.state.folders;\n if (!folders) {\n return null;\n }\n const parts = id.split('/');\n parts.pop();\n const parentFolder = parts.join('/') || '/';\n if (!folders[parentFolder]) {\n return null;\n }\n return folders[parentFolder].find(item => item.id === id);\n }\n\n renderInputDialog() {\n if (this.state.addFolder) {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n return window.alert(this.props.t('ra_Invalid parent folder!'));\n }\n\n return this.state.folders[parentFolder].find(item => item.name === text) ? '' : this.props.t('ra_Duplicate name')}\n onClose={name => {\n if (name) {\n const folders = {};\n Object.keys(this.state.folders).forEach(folder => folders[folder] = this.state.folders[folder]);\n const parent = this.findItem(parentFolder);\n const id = `${parentFolder}/${name}`;\n folders[parentFolder].push({\n id,\n level: parent.level + 1,\n name,\n folder: true,\n temp: true,\n });\n\n folders[parentFolder].sort(sortFolders);\n\n folders[id] = [];\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n }\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n this.setState({ addFolder: false, folders, expanded }, () =>\n this.select(id));\n } else {\n this.setState({ addFolder: false });\n }\n }}\n replace={text => text.replace(/[^-_\\w\\d]/, '_')}\n />;\n }\n return null;\n }\n\n componentDidUpdate(/* prevProps , prevState, snapshot */) {\n this.setOpacityTimer && clearTimeout(this.setOpacityTimer);\n this.setOpacityTimer = setTimeout(() => {\n this.setOpacityTimer = null;\n const items = window.document.getElementsByClassName('browserItem');\n for (let i = 0; i < items.length; i++) {\n items[i].style.opacity = 1;\n }\n }, 100);\n }\n\n uploadFile(fileName, data) {\n const parts = fileName.split('/');\n const adapter = parts.shift();\n return this.props.socket.writeFile64(adapter, parts.join('/'), data)\n .catch(e => window.alert(`Cannot write file: ${e}`));\n }\n\n findFirstFolder(id) {\n let parentFolder = id;\n const item = this.findItem(parentFolder);\n // find folder\n if (item && !item.folder) {\n const parts = parentFolder.split('/');\n parts.pop();\n parentFolder = '';\n while (parts.length) {\n const _item = this.findItem(parts.join('/'));\n if (_item && _item.folder) {\n parentFolder = parts.join('/');\n break;\n }\n }\n }\n\n return parentFolder;\n }\n\n renderUpload() {\n if (this.state.uploadFile) {\n return [\n this.setState({ uploadFile: false })}\n >\n \n ,\n this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={acceptedFiles => {\n let count = acceptedFiles.length;\n\n acceptedFiles.forEach(file => {\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n const parentFolder = this.findFirstFolder(this.state.selected);\n\n if (!parentFolder) {\n return window.alert(this.props.t('ra_Invalid parent folder!'));\n }\n const id = `${parentFolder}/${file.name}`;\n\n this.uploadFile(id, reader.result)\n .then(() => {\n if (!--count) {\n this.setState({ uploadFile: false }, () => {\n if (this.supportSubscribes) {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ expanded }, () =>\n this.select(id));\n } else {\n setTimeout(() =>\n this.browseFolder(parentFolder, true)\n .then(folders => {\n // open current folder\n const expanded = [...this.state.expanded];\n if (!expanded.includes(parentFolder)) {\n expanded.push(parentFolder);\n expanded.sort();\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n }\n this.setState({ folders, expanded }, () =>\n this.select(id));\n })\n , 500);\n }\n });\n }\n });\n };\n\n reader.readAsArrayBuffer(file);\n });\n }}\n >\n {({ getRootProps, getInputProps }) => (\n \n \n
\n
\n \n
\n {\n this.state.uploadFile === 'dragging' ? this.props.t('ra_Drop file here') :\n this.props.t('ra_Place your files here or click here to open the browse dialog')\n }\n
\n
\n
\n
)}\n ,\n ];\n }\n return null;\n }\n\n deleteRecursive(id) {\n const item = this.findItem(id);\n if (item.folder) {\n return (this.state.folders[id] ? Promise.all(this.state.folders[id].map(_item =>\n this.deleteRecursive(_item.id))) : Promise.resolve())\n .then(() => {\n // If it is folder of second level\n if (item.level >= 1) {\n const parts = id.split('/');\n const adapter = parts.shift();\n this.props.socket.deleteFolder(adapter, parts.join('/'))\n .then(() => {\n // remove this folder\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n delete folders[item.id];\n // delete folder from parent item\n const parentId = getParentDir(item.id);\n const parentFolder = folders[parentId];\n if (parentFolder) {\n const pos = parentFolder.indexOf(parentFolder.find(f => f.id === item.id));\n if (pos !== -1) {\n parentFolder.splice(pos, 1);\n }\n\n this.select(parentId, () => this.setState({ folders }));\n }\n });\n }\n });\n }\n\n const parts = id.split('/');\n const adapter = parts.shift();\n if (parts.length) {\n return this.props.socket.deleteFile(adapter, parts.join('/'))\n .catch(e => window.alert(`Cannot delete file: ${e}`));\n }\n return Promise.resolve();\n }\n\n deleteItem(deleteItem) {\n deleteItem = deleteItem || this.state.deleteItem;\n\n this.setState({ deleteItem: '' }, () =>\n this.deleteRecursive(deleteItem)\n .then(() => {\n const newState = {};\n const pos = this.state.expanded.indexOf(deleteItem);\n if (pos !== -1) {\n const expanded = [...this.state.expanded];\n expanded.splice(pos, 1);\n (window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));\n newState.expanded = expanded;\n }\n\n if (!this.supportSubscribes) {\n let parentFolder = this.findFirstFolder(deleteItem);\n const folders = {};\n Object.keys(this.state.folders).forEach(name => {\n if (name !== parentFolder && !name.startsWith(parentFolder + '/')) {\n folders[name] = this.state.folders[name];\n }\n });\n newState.folders = folders;\n\n this.setState(newState, () =>\n setTimeout(() => this.browseFolders([...this.state.expanded], folders)\n .then(folders => this.setState({ folders })), 200));\n\n } else {\n this.setState(newState);\n }\n })\n );\n }\n\n renderDeleteDialog() {\n if (this.state.deleteItem) {\n return this.setState({ deleteItem: '' })}\n aria-labelledby=\"form-dialog-title\"\n >\n {this.props.t('ra_Confirm deletion of %s', this.state.deleteItem.split('/').pop())}\n \n \n {this.props.t('ra_Are you sure?')}\n \n \n \n {\n this.suppressDeleteConfirm = Date.now() + 60000 * 5;\n this.deleteItem();\n }}\n >\n {this.props.t('ra_Delete (no confirm for 5 mins)')}\n \n \n \n \n ;\n }\n return false;\n }\n\n renderViewDialog() {\n return this.state.viewer ? this.setState({ viewer: '', formatEditFile: '' })}\n /> : null;\n }\n\n renderError() {\n if (this.state.errorText) {\n return this.setState({ errorText: '' })} />;\n }\n return null;\n }\n\n updateItemsAcl(info) {\n const folders = JSON.parse(JSON.stringify(this.state.folders));\n let changed;\n info.forEach(it => {\n const item = this.findItem(it.id, folders);\n if (item && JSON.stringify(item.acl) !== JSON.stringify(it.acl)) {\n item.acl = it.acl;\n changed = true;\n }\n });\n changed && this.setState({ folders });\n }\n\n changeToPath() {\n setTimeout(() => {\n if (this.state.path !== this.state.selected && (!this.lastSelect || Date.now() - this.lastSelect > 100)) {\n let folder = this.state.path;\n if (isFile(this.state.path)) {\n folder = getParentDir(this.state.path);\n }\n new Promise(resolve => {\n if (!this.state.folders[folder]) {\n return this.browseFolder(folder)\n .then(folders => this.setState({ folders }, () => resolve(true)))\n .catch(err => this.setState({ errorText: err === NOT_FOUND ? this.props.t('ra_Cannot find \"%s\"', folder) : this.props.t('ra_Cannot read \"%s\"', folder) }));\n }\n return resolve(true);\n })\n .then(result =>\n result && this.setState({ selected: this.state.path, currentDir: folder, pathFocus: false }));\n } else if (!this.lastSelect || Date.now() - this.lastSelect > 100) {\n this.setState({ pathFocus: false });\n }\n }, 100);\n }\n\n renderBreadcrumb() {\n const parts = this.state.selected.startsWith('/') ? this.state.selected.split('/') : (`/${this.state.selected}`).split('/');\n const p = [];\n return parts.map((part, i) => {\n part && p.push(part);\n const path = p.join('/');\n if (i < parts.length - 1) {\n return [\n
this.changeFolder(e, path || '/')}>\n {part || this.props.t('ra_Root')}\n
,\n {'>'}];\n }\n return
this.setState({ pathFocus: true })}>{part}
;\n });\n }\n\n renderPath() {\n return
\n {this.state.pathFocus ?\n e.keyCode === 13 && this.changeToPath()}\n onBlur={() => this.changeToPath()}\n onChange={e => this.setState({ path: e.target.value })}\n className={this.props.classes.pathDivInput}\n />\n :\n this.renderBreadcrumb()\n }\n
;\n }\n\n render() {\n if (!this.props.ready) {\n return ;\n }\n\n if (this.state.loadAllFolders && !this.foldersLoading) {\n this.foldersLoading = true;\n setTimeout(() => {\n this.setState({ loadAllFolders: false, folders: {} }, () => {\n this.foldersLoading = false;\n this.loadFolders();\n });\n }, 300);\n }\n\n return
\n {this.props.showToolbar ? this.renderToolbar() : null}\n {this.state.viewType === TILE ? this.renderPath() : null}\n
\n {this.state.viewType === TABLE ? this.renderItems('/') : this.renderItems(this.state.currentDir || '/')}\n
\n {this.props.allowUpload ? this.renderInputDialog() : null}\n {this.props.allowUpload ? this.renderUpload() : null}\n {this.props.allowDelete ? this.renderDeleteDialog() : null}\n {this.props.allowView ? this.renderViewDialog() : null}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n {this.renderError()}\n
;\n }\n}\n\nFileBrowser.defaultProps = {\n modalEditOfAccessControl: () => { },\n};\n\nFileBrowser.propTypes = {\n style: PropTypes.object,\n className: PropTypes.string,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n socket: PropTypes.object.isRequired,\n ready: PropTypes.bool,\n expertMode: PropTypes.bool,\n showToolbar: PropTypes.bool,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n imagePrefix: PropTypes.string,\n showExpertButton: PropTypes.bool,\n viewType: PropTypes.string,\n showViewTypeButton: PropTypes.bool,\n\n selected: PropTypes.string,\n tileView: PropTypes.bool,\n filterFiles: PropTypes.array, // like ['png', 'svg', 'bmp', 'jpg', 'jpeg']\n filterByType: PropTypes.string, // images, code or txt from FileViewer.EXTENSIONS\n onSelect: PropTypes.func, // function (id, isDoubleClick)\n\n modalEditOfAccessControl: PropTypes.func,\n};\n\n/** @type {typeof FileBrowser} */\nconst _export = withWidth()(withStyles(styles)(FileBrowser));\nexport default _export;","import React, { Component } from 'react';\nimport { withStyles } from '@mui/styles';\nimport PropTypes from 'prop-types';\n\nimport TextField from '@mui/material/TextField';\nimport Button from '@mui/material/Button';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport { IconButton } from '@mui/material';\n\nimport IconNoIcon from '../icons/IconNoIcon';\nimport withWidth from './withWidth';\nimport Utils from './Utils';\n\n// Icons\nimport { FaCopy as CopyIcon } from 'react-icons/fa';\nimport Brightness5Icon from '@mui/icons-material/Brightness6';\nimport CloseIcon from '@mui/icons-material/Close';\nimport SaveIcon from '@mui/icons-material/Save';\n\nconst styles = theme => ({\n dialog: {\n height: '100%',\n },\n paper: {\n height: 'calc(100% - 64px)',\n },\n content: {\n textAlign: 'center',\n },\n textarea: {\n width: '100%',\n height: '100%',\n },\n img: {\n width: 'auto',\n height: 'calc(100% - 5px)',\n objectFit: 'contain',\n },\n dialogTitle: {\n justifyContent: 'space-between',\n display: 'flex'\n }\n});\n\nexport const EXTENSIONS = {\n images: ['png', 'jpg', 'svg', 'jpeg', 'bmp'],\n code: ['js', 'json', 'md'],\n txt: ['log', 'txt', 'html', 'css', 'xml'],\n audio: ['mp3', 'wav', 'ogg', 'acc'],\n video: ['mp4', 'mov', 'avi'],\n};\n\nfunction bufferToBase64(buffer) {\n let binary = '';\n let bytes = new Uint8Array(buffer);\n let len = bytes.byteLength;\n for (let i = 0; i < len && i < 50; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n}\n\n/**\n * @typedef {object} FileViewerProps\n * @property {import('../types').Translator} t Translation function\n * @property {ioBroker.Languages} [lang] The selected language.\n * @property {boolean} [expertMode] Is expert mode enabled? (default: false)\n * @property {() => void} onClose Callback when the viewer is closed.\n * @property {string} href The URL to the file to be displayed.\n *\n * @extends {React.Component}\n */\nclass FileViewer extends Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n const ext = Utils.getFileExtension(this.props.href);\n\n this.state = {\n text: null,\n code: null,\n ext,\n editing: !!this.props.formatEditFile || false,\n editingValue: null,\n copyPossible: EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext),\n forceUpdate: Date.now(),\n changed: false,\n imgError: false,\n };\n }\n\n readFile() {\n if (this.props.href) {\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.socket.readFile(adapter, name)\n .then(data => {\n if (data.file !== undefined) {\n data = data.file;\n }\n\n const newState = {copyPossible: this.state.copyPossible};\n // try to detect valid extension\n if (data.type === 'Buffer') {\n const ext = Utils.detectMimeType(bufferToBase64(data.data));\n if (ext) {\n newState.ext = ext;\n newState.copyPossible = EXTENSIONS.code.includes(ext) || EXTENSIONS.txt.includes(ext);\n }\n }\n\n if (newState.copyPossible) {\n if (EXTENSIONS.txt.includes(this.state.ext)) {\n newState.text = data;\n newState.editingValue = data;\n } else if (EXTENSIONS.code.includes(this.state.ext)) {\n newState.code = data;\n newState.editingValue = data;\n }\n }\n\n this.setState(newState);\n })\n .catch(e => window.alert('Cannot read file: ' + e));\n }\n }\n\n componentDidMount() {\n this.readFile();\n\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n componentWillUnmount() {\n this.timeout && clearTimeout(this.timeout);\n const parts = this.props.href.split('/');\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.supportSubscribes && this.props.socket.subscribeFiles(adapter, name, this.onFileChanged);\n }\n\n onFileChanged = (id, fileName, size) => {\n if (!this.state.changed) {\n this.timeout && clearTimeout(this.timeout);\n this.timeout = setTimeout(() => {\n this.timeout = null;\n if (size === null) {\n window.alert('Show file was deleted!');\n } else if (this.state.text !== null || this.state.code !== null) {\n this.readFile();\n } else {\n this.setState({ forceUpdate: Date.now() });\n }\n }, 300);\n }\n };\n\n writeFile64 = () => {\n const parts = this.props.href.split('/');\n const data = this.state.editingValue;\n parts.splice(0, 2);\n const adapter = parts[0];\n const name = parts.splice(1).join('/');\n this.props.socket.writeFile64(adapter, name, Buffer.from(data).toString('base64'))\n .then(_ => this.props.onClose())\n .catch(e => window.alert('Cannot write file: ' + e));\n }\n\n getEditFile(ext) {\n switch (ext) {\n case 'json':\n return 'json';\n case 'js':\n return 'javascript';\n case 'html':\n return 'html';\n case 'txt':\n return 'html';\n default:\n return 'json';\n }\n }\n\n getContent() {\n if (EXTENSIONS.images.includes(this.state.ext)) {\n if (this.state.imgError) {\n return ;\n } else {\n return {\n e.target.onerror = null;\n this.setState({ imgError: true });\n }}\n className={Utils.clsx(this.props.classes.img, this.props.getClassBackgroundImage())}\n src={this.props.href + '?ts=' + this.state.forceUpdate}\n alt={this.props.href}\n />;\n }\n } else if (this.state.code !== null || this.state.text !== null || this.state.editing) {\n return this.setState({ editingValue: newValue, changed: true })}\n InputProps={{ readOnly: !this.state.editing,}}\n />;\n }\n }\n\n render() {\n return this.props.onClose()}\n fullWidth={true}\n maxWidth=\"xl\"\n aria-labelledby=\"form-dialog-title\"\n >\n
\n {this.props.t(this.state.editing ? 'Edit' : 'View') + ': ' + this.props.href}\n {EXTENSIONS.images.includes(this.state.ext) &&
\n \n \n \n
\n }\n
\n \n {this.getContent()}\n \n \n {this.state.copyPossible ?\n Utils.copyToClipboard(this.state.text || this.state.code, e)}\n startIcon={}\n >\n {this.props.t('Copy content')}\n : null}\n {this.state.editing ?\n }\n >\n {this.props.t('Save')}\n : null}\n this.props.onClose()}\n color=\"primary\"\n startIcon={}\n >\n {this.props.t('Close')}\n \n \n ;\n }\n}\n\nFileViewer.propTypes = {\n t: PropTypes.func,\n lang: PropTypes.string,\n expertMode: PropTypes.bool,\n onClose: PropTypes.func,\n href: PropTypes.string.isRequired,\n supportSubscribes: PropTypes.bool,\n};\n\n/** @type {typeof FileViewer} */\nconst _export = withWidth()(withStyles(styles)(FileViewer));\nexport default _export;\n","import React, {useCallback} from 'react';\nimport PropTypes from 'prop-types';\nimport {useDropzone} from 'react-dropzone';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport IconButton from '@mui/material/IconButton';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport IconSelector from './IconSelector';\nimport Icon from './Icon';\nimport I18n from '../i18n';\nimport Utils from './Utils';\n\n/**\n * @typedef {object} IconPickerProps\n * @property {string} [value] The value.\n * @property {string} [label] The label.\n * @property {boolean} [disabled] Set to true to disable the icon picker.\n * @property {(icon: string) => void} onChange The icon change callback.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {React.CSSProperties} [style] Additional styling for this component.\n * @property {string} [className] The CSS class name.\n *\n * @extends {React.Component}\n */\nlet IconPicker = function (props) {\n let IconCustom = props.icon;\n\n const useStyles = makeStyles(theme => ({\n formContainer : {\n display: 'flex',\n justifyContent: 'left',\n alignItems: 'center'\n },\n formControl : {\n display: 'flex',\n padding: 24,\n flexGrow: 1000\n },\n divContainer: {\n width: 32 + 24,\n height: 32,\n whiteSpace: 'nowrap',\n lineHeight: '32px',\n marginRight: 8\n },\n dragField: {\n textAlign: 'center',\n display: 'table',\n minHeight: 90,\n width: 'calc(100% - 60px)',\n border: '2px dashed #777',\n borderRadius: 10,\n padding: 4,\n },\n formIcon : {\n margin: 10,\n opacity: 0.6\n },\n text: {\n display: 'table-cell',\n verticalAlign: 'middle',\n }\n }));\n\n const classes = useStyles();\n\n const onDrop = useCallback(acceptedFiles => {\n const reader = new FileReader();\n\n reader.addEventListener('load', () =>\n props.onChange(reader.result), false);\n\n if (acceptedFiles[0]) {\n reader.readAsDataURL(acceptedFiles[0]);\n }\n }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n const {getRootProps, getInputProps, isDragActive} = useDropzone({onDrop});\n\n return
\n {IconCustom ? : null}\n \n \n { props.label }\n \n
\n {props.value ?\n
\n \n {!props.disabled && props.onChange('')}\n >\n \n }\n
\n :\n (!props.disabled && props.onChange(base64)}\n t={I18n.t}\n lang={I18n.getLanguage()}\n />)\n }\n\n {!props.disabled && \n \n {\n isDragActive ?\n {I18n.t('ra_Drop the files here...')} :\n {I18n.t(`ra_Drag 'n' drop some files here, or click to select files`)}\n }\n
}\n
\n \n
;\n};\n\nIconPicker.propTypes = {\n previewClassName: PropTypes.string,\n icon: PropTypes.object,\n customClasses: PropTypes.object,\n label: PropTypes.string,\n value: PropTypes.any,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n};\n\n/** @type {typeof IconPicker} */\nexport default IconPicker;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport DialogTitle from '@mui/material/DialogTitle';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport Button from '@mui/material/Button';\nimport IconButton from '@mui/material/IconButton';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport TextField from '@mui/material/TextField';\nimport Tooltip from '@mui/material/Tooltip';\n\nimport CloseIcon from '@mui/icons-material/Close';\nimport ClearIcon from '@mui/icons-material/Clear';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\n// import devices from '../assets/devices/list.json';\nconst devices = [\n {\n \"_id\": \"hood\",\n \"name\": {\n \"en\": \"Hood\",\n \"ru\": \"Вытяжка\",\n \"de\": \"Abzugshaube\",\n \"fr\": \"Capot\",\n \"it\": \"Cappe\",\n \"nl\": \"Hood\",\n \"pl\": \"Okapy\",\n \"pt\": \"Hood\",\n \"es\": \"Campana\",\n \"zh-cn\": \"抽油烟机\"\n },\n \"icon\": \"Hoods.svg\"\n },\n {\n \"_id\": \"alarm_system\",\n \"name\": {\n \"en\": \"Alarm System\",\n \"ru\": \"Сигнализация\",\n \"de\": \"Alarmanlage\",\n \"fr\": \"Systèmes D'Alarme\",\n \"it\": \"Sistemi Di Allarme\",\n \"nl\": \"Alarm Systems\",\n \"pl\": \"Systemy Alarmowe\",\n \"pt\": \"Sistemas De Alarme\",\n \"es\": \"Sistemas De Alarma\",\n \"zh-cn\": \"报警系统\"\n },\n \"icon\": \"Alarm Systems.svg\"\n },\n {\n \"_id\": \"battery_status\",\n \"name\": {\n \"en\": \"Battery Status\",\n \"ru\": \"Заряд батареи\",\n \"de\": \"Batteriestatus\",\n \"fr\": \"État De La Batterie\",\n \"it\": \"Stato Della Batteria\",\n \"nl\": \"Batterij Status\",\n \"pl\": \"Stan Baterii\",\n \"pt\": \"Estado Da Bateria\",\n \"es\": \"Estado De La Batería\",\n \"zh-cn\": \"电池状态\"\n },\n \"icon\": \"Battery Status.svg\"\n },\n {\n \"_id\": \"lighting\",\n \"name\": {\n \"en\": \"Lighting\",\n \"ru\": \"Светильник\",\n \"de\": \"Beleuchtung\",\n \"fr\": \"Éclairages\",\n \"it\": \"Illuminazione\",\n \"nl\": \"Verlichting\",\n \"pl\": \"Oprawy Oświetleniowe\",\n \"pt\": \"Iluminações\",\n \"es\": \"Iluminaciones\",\n \"zh-cn\": \"照明\"\n },\n \"icon\": \"Lightings.svg\"\n },\n {\n \"_id\": \"shading\",\n \"name\": {\n \"en\": \"Shading\",\n \"ru\": \"Затенение\",\n \"de\": \"Beschattungen\",\n \"fr\": \"Ombres\",\n \"it\": \"Ombreggiatura\",\n \"nl\": \"Shading\",\n \"pl\": \"Zacienienie\",\n \"pt\": \"Shading\",\n \"es\": \"Sombreado\",\n \"zh-cn\": \"底纹\"\n },\n \"icon\": \"Shading.svg\"\n },\n {\n \"_id\": \"irrigation\",\n \"name\": {\n \"en\": \"Irrigation\",\n \"ru\": \"Орошение\",\n \"de\": \"Bewässerung\",\n \"fr\": \"Irrigation\",\n \"it\": \"Irrigazione\",\n \"nl\": \"Irrigatie\",\n \"pl\": \"Nawadnianie\",\n \"pt\": \"Irrigação\",\n \"es\": \"Irrigación\",\n \"zh-cn\": \"灌溉\"\n },\n \"icon\": \"Irrigation.svg\"\n },\n {\n \"_id\": \"iron\",\n \"name\": {\n \"en\": \"Iron\",\n \"ru\": \"Утюг\",\n \"de\": \"Bügeleisen\",\n \"fr\": \"Le Fer\",\n \"it\": \"Ferro\",\n \"nl\": \"Ijzer\",\n \"pl\": \"Żelazo\",\n \"pt\": \"Ferro\",\n \"es\": \"Hierro\",\n \"zh-cn\": \"铁\"\n },\n \"icon\": \"Iron.svg\"\n },\n {\n \"_id\": \"computer\",\n \"name\": {\n \"en\": \"Computer\",\n \"ru\": \"Компьютер\",\n \"de\": \"Rechner\",\n \"fr\": \"L'Ordinateur\",\n \"it\": \"Computer\",\n \"nl\": \"Computer\",\n \"pl\": \"Komputer\",\n \"pt\": \"Computador\",\n \"es\": \"Ordenador\",\n \"zh-cn\": \"电脑\"\n },\n \"icon\": \"Computer.svg\"\n },\n {\n \"_id\": \"ceiling_spotlight\",\n \"name\": {\n \"en\": \"Ceiling Spotlight\",\n \"ru\": \"Потолочный прожектор\",\n \"de\": \"Deckenspot\",\n \"fr\": \"Plafond Spotlight\",\n \"it\": \"Faretti A Soffitto\",\n \"nl\": \"Plafond Spotlight\",\n \"pl\": \"Reflektory Sufitowe\",\n \"pt\": \"Tecto Foco\",\n \"es\": \"Focos De Techo\",\n \"zh-cn\": \"天花射灯\"\n },\n \"icon\": \"Ceiling Spotlights.svg\"\n },\n {\n \"_id\": \"printer\",\n \"name\": {\n \"en\": \"Printer\",\n \"de\": \"Drucker\",\n \"ru\": \"Принтер\",\n \"pt\": \"Impressora\",\n \"nl\": \"Printer\",\n \"fr\": \"Imprimante\",\n \"it\": \"Stampante\",\n \"es\": \"Impresora\",\n \"pl\": \"Drukarka\",\n \"zh-cn\": \"打印机\"\n },\n \"icon\": \"Printer.svg\"\n },\n {\n \"_id\": \"power_consumption\",\n \"name\": {\n \"en\": \"Power Consumption\",\n \"ru\": \"Потребляемая мощность\",\n \"de\": \"Stromverbrauch\",\n \"fr\": \"Consommation D'Énergie\",\n \"it\": \"Consumo Di Energia\",\n \"nl\": \"Energieverbruik\",\n \"pl\": \"Pobór Energii\",\n \"pt\": \"Consumo De Energia\",\n \"es\": \"El Consumo De Energía\",\n \"zh-cn\": \"能量消耗\"\n },\n \"icon\": \"Power Consumption.svg\"\n },\n {\n \"_id\": \"window\",\n \"name\": {\n \"en\": \"Window\",\n \"ru\": \"Окно\",\n \"de\": \"Fenster\",\n \"fr\": \"La Fenêtre\",\n \"it\": \"Finestra\",\n \"nl\": \"Venster\",\n \"pl\": \"Okno\",\n \"pt\": \"Janela\",\n \"es\": \"Ventana\",\n \"zh-cn\": \"窗户\"\n },\n \"icon\": \"Window.svg\"\n },\n {\n \"_id\": \"garage_door\",\n \"name\": {\n \"en\": \"Garage Door\",\n \"ru\": \"Гаражные Ворота\",\n \"de\": \"Garagentor\",\n \"fr\": \"Portes De Garage\",\n \"it\": \"Garage Door\",\n \"nl\": \"Garage Door\",\n \"pl\": \"Bramy Garażowe\",\n \"pt\": \"Portas De Garagem\",\n \"es\": \"Las Puertas De Garaje\",\n \"zh-cn\": \"车库门\"\n },\n \"icon\": \"Garage Doors.svg\"\n },\n {\n \"_id\": \"hairdryer\",\n \"name\": {\n \"en\": \"Hairdryer\",\n \"ru\": \"Фен\",\n \"de\": \"Haartrockner\",\n \"fr\": \"Sèche-Cheveux\",\n \"it\": \"Asciugacapelli\",\n \"nl\": \"Haardroger\",\n \"pl\": \"Suszarka Do Włosów\",\n \"pt\": \"Secador De Cabelo\",\n \"es\": \"Secador De Pelo\",\n \"zh-cn\": \"电吹风\"\n },\n \"icon\": \"Hairdryer.svg\"\n },\n {\n \"_id\": \"hanging_lamp\",\n \"name\": {\n \"en\": \"Hanging Lamp\",\n \"ru\": \"Подвесной светильник\",\n \"de\": \"Hängelampe\",\n \"fr\": \"Lampes Suspendues\",\n \"it\": \"Lampade A Sospensione\",\n \"nl\": \"Opknoping Lampen\",\n \"pl\": \"Lampy Wiszące\",\n \"pt\": \"Lâmpadas De Suspensão\",\n \"es\": \"Lámparas Colgantes\",\n \"zh-cn\": \"挂灯\"\n },\n \"icon\": \"Hanging Lamps.svg\"\n },\n {\n \"_id\": \"doorstep\",\n \"name\": {\n \"en\": \"Enterance\",\n \"ru\": \"Входная дверь\",\n \"de\": \"Haustür\",\n \"fr\": \"Seuil De Porte\",\n \"it\": \"Gradino Della Porta\",\n \"nl\": \"Drempel\",\n \"pl\": \"Próg\",\n \"pt\": \"Porta\",\n \"es\": \"Peldaño\",\n \"zh-cn\": \"门阶\"\n },\n \"icon\": \"Doorstep.svg\"\n },\n {\n \"_id\": \"hot_water\",\n \"name\": {\n \"en\": \"Hot Water\",\n \"ru\": \"Горячая вода\",\n \"de\": \"Heißwasser\",\n \"fr\": \"Eau Chaude\",\n \"it\": \"Acqua Calda\",\n \"nl\": \"Heet Water\",\n \"pl\": \"Gorąca Woda\",\n \"pt\": \"Água Quente\",\n \"es\": \"Agua Caliente\",\n \"zh-cn\": \"热水\"\n },\n \"icon\": \"Hot Water.svg\"\n },\n {\n \"_id\": \"heating\",\n \"name\": {\n \"en\": \"Heating\",\n \"ru\": \"Отопление\",\n \"de\": \"Heizung\",\n \"fr\": \"Chauffe-Eau\",\n \"it\": \"Riscaldatore\",\n \"nl\": \"Verwarmer\",\n \"pl\": \"Podgrzewacz\",\n \"pt\": \"Aquecedor\",\n \"es\": \"Calentador\",\n \"zh-cn\": \"加热器\"\n },\n \"icon\": \"Heater.svg\"\n },\n {\n \"_id\": \"stove\",\n \"name\": {\n \"en\": \"Stove\",\n \"ru\": \"Печь\",\n \"de\": \"Herd\",\n \"fr\": \"Le Fourneau\",\n \"it\": \"Stufa\",\n \"nl\": \"Fornuis\",\n \"pl\": \"Kuchenka\",\n \"pt\": \"Forno\",\n \"es\": \"Cocina\",\n \"zh-cn\": \"火炉\"\n },\n \"icon\": \"Stove.svg\"\n },\n {\n \"_id\": \"louvre\",\n \"name\": {\n \"en\": \"Louvre\",\n \"ru\": \"Жалюзи\",\n \"de\": \"Jalousie\",\n \"fr\": \"Persienne\",\n \"it\": \"Persiana Di Ventilazione\",\n \"nl\": \"Louvre\",\n \"pl\": \"Żaluzja\",\n \"pt\": \"Trapeira\",\n \"es\": \"Lumbrera\",\n \"zh-cn\": \"卢浮宫\"\n },\n \"icon\": \"Louvre.svg\"\n },\n {\n \"_id\": \"coffee_maker\",\n \"name\": {\n \"en\": \"Coffee Maker\",\n \"ru\": \"Кофеварка\",\n \"de\": \"Kaffemaschine\",\n \"fr\": \"Cafetière\",\n \"it\": \"Macchine Da Caffè\",\n \"nl\": \"Koffie Maker\",\n \"pl\": \"Ekspresy Do Kawy\",\n \"pt\": \"Cafeteira\",\n \"es\": \"Cafetera\",\n \"zh-cn\": \"咖啡壶\"\n },\n \"icon\": \"Coffee Makers.svg\"\n },\n {\n \"_id\": \"cold_water\",\n \"name\": {\n \"en\": \"Cold Water\",\n \"ru\": \"Холодная вода\",\n \"de\": \"Kaltwasser\",\n \"fr\": \"Eau Froide\",\n \"it\": \"Acqua Fredda\",\n \"nl\": \"Koud Water\",\n \"pl\": \"Zimna Woda\",\n \"pt\": \"Água Fria\",\n \"es\": \"Agua Fría\",\n \"zh-cn\": \"冷水\"\n },\n \"icon\": \"Cold Water.svg\"\n },\n {\n \"_id\": \"climate\",\n \"name\": {\n \"en\": \"Climate\",\n \"ru\": \"Климат\",\n \"de\": \"Klima\",\n \"fr\": \"Climat\",\n \"it\": \"Clima\",\n \"nl\": \"Klimaat\",\n \"pl\": \"Klimat\",\n \"pt\": \"Clima\",\n \"es\": \"Clima\",\n \"zh-cn\": \"气候\"\n },\n \"icon\": \"Climate.svg\"\n },\n {\n \"_id\": \"speaker\",\n \"name\": {\n \"en\": \"Speaker\",\n \"ru\": \"Звуковая система\",\n \"de\": \"Lautsprecher\",\n \"fr\": \"Orateur\",\n \"it\": \"Altoparlante\",\n \"nl\": \"Spreker\",\n \"pl\": \"Głośnik\",\n \"pt\": \"Palestrante\",\n \"es\": \"Altavoz\",\n \"zh-cn\": \"扬声器\"\n },\n \"icon\": \"Speaker.svg\"\n },\n {\n \"_id\": \"led_strip\",\n \"name\": {\n \"en\": \"Led Strip\",\n \"ru\": \"Светодиодная лента\",\n \"de\": \"LED Leiste\",\n \"fr\": \"Led Strip\",\n \"it\": \"Led Strip\",\n \"nl\": \"Loden Strip\",\n \"pl\": \"Pasek Ledowy\",\n \"pt\": \"Led Faixa\",\n \"es\": \"Tira Llevada\",\n \"zh-cn\": \"灯带\"\n },\n \"icon\": \"Led Strip.svg\"\n },\n {\n \"_id\": \"light\",\n \"name\": {\n \"en\": \"Light\",\n \"ru\": \"Свет\",\n \"de\": \"Licht\",\n \"fr\": \"Lumière\",\n \"it\": \"Leggero\",\n \"nl\": \"Licht\",\n \"pl\": \"Lekki\",\n \"pt\": \"Luz\",\n \"es\": \"Luz\",\n \"zh-cn\": \"光\"\n },\n \"icon\": \"Light.svg\"\n },\n {\n \"_id\": \"fan\",\n \"name\": {\n \"en\": \"Fan\",\n \"ru\": \"Вентилятор\",\n \"de\": \"Lüfter\",\n \"fr\": \"Ventilateur\",\n \"it\": \"Fan\",\n \"nl\": \"Ventilator\",\n \"pl\": \"Wentylator\",\n \"pt\": \"Ventilador\",\n \"es\": \"Ventilador\",\n \"zh-cn\": \"扇子\"\n },\n \"icon\": \"Fan.svg\"\n },\n {\n \"_id\": \"humidity\",\n \"name\": {\n \"en\": \"Humidity\",\n \"ru\": \"Влажность\",\n \"de\": \"Luftfeuchtigkeit\",\n \"fr\": \"Humidité\",\n \"it\": \"Umidità\",\n \"nl\": \"Vochtigheid\",\n \"pl\": \"Wilgotność\",\n \"pt\": \"Umidade\",\n \"es\": \"Humedad\",\n \"zh-cn\": \"湿度\"\n },\n \"icon\": \"Humidity.svg\"\n },\n {\n \"_id\": \"ventilation\",\n \"name\": {\n \"en\": \"Ventilation\",\n \"ru\": \"Вентиляция\",\n \"de\": \"Lüftung\",\n \"fr\": \"Ventilation\",\n \"it\": \"Ventilazione\",\n \"nl\": \"Ventilatie\",\n \"pl\": \"Wentylacja\",\n \"pt\": \"Ventilação\",\n \"es\": \"Ventilación\",\n \"zh-cn\": \"通风\"\n },\n \"icon\": \"Ventilation.svg\"\n },\n {\n \"_id\": \"chandelier\",\n \"name\": {\n \"en\": \"Chandelier\",\n \"ru\": \"Люстра\",\n \"de\": \"Kronleuchter\",\n \"fr\": \"Lustre\",\n \"it\": \"Lampadario\",\n \"nl\": \"Kroonluchter\",\n \"pl\": \"Żyrandol\",\n \"pt\": \"Lustre\",\n \"es\": \"Candelabro\",\n \"zh-cn\": \"枝形吊灯\"\n },\n \"icon\": \"Chandelier.svg\"\n },\n {\n \"_id\": \"awning\",\n \"name\": {\n \"en\": \"Awning\",\n \"ru\": \"Маркиза\",\n \"de\": \"Markise\",\n \"fr\": \"Auvents\",\n \"it\": \"Tende\",\n \"nl\": \"Luifels\",\n \"pl\": \"Okrycia\",\n \"pt\": \"Toldos\",\n \"es\": \"Toldos\",\n \"zh-cn\": \"遮阳篷\"\n },\n \"icon\": \"Awnings.svg\"\n },\n {\n \"_id\": \"music\",\n \"name\": {\n \"en\": \"Music\",\n \"ru\": \"Музыка\",\n \"de\": \"Musik\",\n \"fr\": \"Musique\",\n \"it\": \"Musica\",\n \"nl\": \"Muziek\",\n \"pl\": \"Muzyka\",\n \"pt\": \"Música\",\n \"es\": \"Música\",\n \"zh-cn\": \"音乐\"\n },\n \"icon\": \"Music.svg\"\n },\n {\n \"_id\": \"people\",\n \"name\": {\n \"en\": \"People\",\n \"ru\": \"Люди\",\n \"de\": \"Personen\",\n \"fr\": \"Gens\",\n \"it\": \"Persone\",\n \"nl\": \"Mensen\",\n \"pl\": \"Ludzie\",\n \"pt\": \"Pessoas\",\n \"es\": \"Personas\",\n \"zh-cn\": \"人们\"\n },\n \"icon\": \"People.svg\"\n },\n {\n \"_id\": \"pool\",\n \"name\": {\n \"en\": \"Pool\",\n \"ru\": \"Бассейн\",\n \"de\": \"Pool\",\n \"fr\": \"Piscine\",\n \"it\": \"Piscina\",\n \"nl\": \"Zwembad\",\n \"pl\": \"Basen\",\n \"pt\": \"Piscina\",\n \"es\": \"Piscina\",\n \"zh-cn\": \"水池\"\n },\n \"icon\": \"Pool.svg\"\n },\n {\n \"_id\": \"pump\",\n \"name\": {\n \"en\": \"Pump\",\n \"ru\": \"Насос\",\n \"de\": \"Pumpe\",\n \"fr\": \"Pompe\",\n \"it\": \"Pompa\",\n \"nl\": \"Pomp\",\n \"pl\": \"Pompa\",\n \"pt\": \"Bombear\",\n \"es\": \"Bomba\",\n \"zh-cn\": \"泵\"\n },\n \"icon\": \"Pump.svg\"\n },\n {\n \"_id\": \"outdoor_blinds\",\n \"name\": {\n \"en\": \"Outdoor Blinds\",\n \"ru\": \"Внещгте жалюзи\",\n \"de\": \"Raffstore\",\n \"fr\": \"Volets\",\n \"it\": \"Tende Da Esterni\",\n \"nl\": \"Outdoor Blinds\",\n \"pl\": \"Rolety Zewnętrzne\",\n \"pt\": \"Estores Exteriores\",\n \"es\": \"Persianas Exteriores\",\n \"zh-cn\": \"室外百叶窗\"\n },\n \"icon\": \"Outdoor Blinds.svg\"\n },\n {\n \"_id\": \"mowing_machine\",\n \"name\": {\n \"en\": \"Mowing Machine\",\n \"ru\": \"Газонокосилка\",\n \"de\": \"Rasenmäher\",\n \"fr\": \"Machine De Fauchage\",\n \"it\": \"Macchina Di Falciatura\",\n \"nl\": \"Maaimachine\",\n \"pl\": \"Kosiarka\",\n \"pt\": \"Roçada Máquina\",\n \"es\": \"Segadora\",\n \"zh-cn\": \"割草机\"\n },\n \"icon\": \"Mowing Machine.svg\"\n },\n {\n \"_id\": \"receiver\",\n \"name\": {\n \"en\": \"Receiver\",\n \"ru\": \"Приставка\",\n \"de\": \"Receiver\",\n \"fr\": \"Destinataire\",\n \"it\": \"Ricevitore\",\n \"nl\": \"Ontvanger\",\n \"pl\": \"Odbiorca\",\n \"pt\": \"Recebedor\",\n \"es\": \"Receptor\",\n \"zh-cn\": \"接收者\"\n },\n \"icon\": \"Receiver.svg\"\n },\n {\n \"_id\": \"shutters\",\n \"name\": {\n \"en\": \"Shutters\",\n \"ru\": \"Ставни\",\n \"de\": \"Rollladen\",\n \"fr\": \"Volets\",\n \"it\": \"Persiane\",\n \"nl\": \"Shutters\",\n \"pl\": \"Żaluzje\",\n \"pt\": \"Persianas\",\n \"es\": \"Persianas\",\n \"zh-cn\": \"百叶窗\"\n },\n \"icon\": \"Shutters.svg\"\n },\n {\n \"_id\": \"smoke_detector\",\n \"name\": {\n \"en\": \"Smoke detector\",\n \"de\": \"Rauchmelder\",\n \"ru\": \"Детектор дыма\",\n \"pt\": \"Detector de fumaça\",\n \"nl\": \"Rookdetector\",\n \"fr\": \"Détecteur de fumée\",\n \"it\": \"Rilevatore di fumo\",\n \"es\": \"Detector de humo\",\n \"pl\": \"Wykrywacz dymu\",\n \"zh-cn\": \"烟雾探测器\"\n },\n \"icon\": \"SmokeDetector.svg\"\n },\n {\n \"_id\": \"lock\",\n \"name\": {\n \"en\": \"Lock\",\n \"ru\": \"Замок\",\n \"de\": \"Schloß\",\n \"fr\": \"Fermer À Clé\",\n \"it\": \"Serratura\",\n \"nl\": \"Slot\",\n \"pl\": \"Zamek\",\n \"pt\": \"Trancar\",\n \"es\": \"Cerrar Con Llave\",\n \"zh-cn\": \"锁\"\n },\n \"icon\": \"Lock.svg\"\n },\n {\n \"_id\": \"security\",\n \"name\": {\n \"en\": \"Security\",\n \"ru\": \"Безопасность\",\n \"de\": \"Sicherheit\",\n \"fr\": \"Sécurité\",\n \"it\": \"Sicurezza\",\n \"nl\": \"Veiligheid\",\n \"pl\": \"Bezpieczeństwo\",\n \"pt\": \"Segurança\",\n \"es\": \"Seguridad\",\n \"zh-cn\": \"安全\"\n },\n \"icon\": \"Security.svg\"\n },\n {\n \"_id\": \"dishwasher\",\n \"name\": {\n \"en\": \"Dishwasher\",\n \"ru\": \"Посудомоечная машина\",\n \"de\": \"Spülmaschine\",\n \"fr\": \"Lave-Vaisselles\",\n \"it\": \"Lavastoviglie\",\n \"nl\": \"Vaatwassers\",\n \"pl\": \"Zmywarki\",\n \"pt\": \"Máquinas De Lavar Louça\",\n \"es\": \"Lavaplatos\",\n \"zh-cn\": \"洗碗机\"\n },\n \"icon\": \"Dishwashers.svg\"\n },\n {\n \"_id\": \"vacuum_cleaner\",\n \"name\": {\n \"en\": \"Vacuum Cleaner\",\n \"ru\": \"Пылесос\",\n \"de\": \"Staubsauger\",\n \"fr\": \"Aspirateur\",\n \"it\": \"Aspirapolvere\",\n \"nl\": \"Stofzuiger\",\n \"pl\": \"Odkurzacz\",\n \"pt\": \"Aspirador De Pó\",\n \"es\": \"Aspiradora\",\n \"zh-cn\": \"吸尘器\"\n },\n \"icon\": \"Vacuum Cleaner.svg\"\n },\n {\n \"_id\": \"socket\",\n \"name\": {\n \"en\": \"Socket\",\n \"ru\": \"Розетка\",\n \"de\": \"Steckdose\",\n \"fr\": \"Prise\",\n \"it\": \"Socket\",\n \"nl\": \"Socket\",\n \"pl\": \"Gniazdka\",\n \"pt\": \"Tomada\",\n \"es\": \"Zócalo\",\n \"zh-cn\": \"套接字\"\n },\n \"icon\": \"Sockets.svg\"\n },\n {\n \"_id\": \"floor_lamp\",\n \"name\": {\n \"en\": \"Floor Lamp\",\n \"ru\": \"Торшер\",\n \"de\": \"Stehlampe\",\n \"fr\": \"Lampes Pour Plancher\",\n \"it\": \"Lampade A Stelo\",\n \"nl\": \"Vloerlampen\",\n \"pl\": \"Lampy Podłogowe\",\n \"pt\": \"Lâmpadas Chão\",\n \"es\": \"Lámparas De Pie\",\n \"zh-cn\": \"落地灯\"\n },\n \"icon\": \"Floor Lamps.svg\"\n },\n {\n \"_id\": \"power_consumption\",\n \"name\": {\n \"en\": \"Power Consumption\",\n \"ru\": \"Потребляемая мощность\",\n \"de\": \"Stromverbrauch\",\n \"fr\": \"Consommation D'Énergie\",\n \"it\": \"Consumo Di Energia\",\n \"nl\": \"Energieverbruik\",\n \"pl\": \"Pobór Energii\",\n \"pt\": \"Consumo De Energia\",\n \"es\": \"El Consumo De Energía\",\n \"zh-cn\": \"能量消耗\"\n },\n \"icon\": \"Power Consumption.svg\"\n },\n {\n \"_id\": \"temperature_sensor\",\n \"name\": {\n \"en\": \"Temperature Sensor\",\n \"ru\": \"Температурный датчик\",\n \"de\": \"Temperatur-Sensor\",\n \"fr\": \"Capteur De Température\",\n \"it\": \"Sensori Di Temperatura\",\n \"nl\": \"Temperatuursensor\",\n \"pl\": \"Czujniki Temperatury\",\n \"pt\": \"Sensores De Temperatura\",\n \"es\": \"Sensores De Temperatura\",\n \"zh-cn\": \"温度传感器\"\n },\n \"icon\": \"Temperature Sensors.svg\"\n },\n {\n \"_id\": \"table_lamp\",\n \"name\": {\n \"en\": \"Table Lamp\",\n \"ru\": \"Настольная лампа\",\n \"de\": \"Tischlampe\",\n \"fr\": \"Lampe De Chevet\",\n \"it\": \"Lampade Da Tavolo\",\n \"nl\": \"Tafellampen\",\n \"pl\": \"Lampy Stołowe\",\n \"pt\": \"Lâmpadas De Mesa\",\n \"es\": \"Lámparas De Mesa\",\n \"zh-cn\": \"台灯\"\n },\n \"icon\": \"Table Lamps.svg\"\n },\n {\n \"_id\": \"gate\",\n \"name\": {\n \"en\": \"Gate\",\n \"ru\": \"Ворота\",\n \"de\": \"Tor\",\n \"fr\": \"Porte\",\n \"it\": \"Gate\",\n \"nl\": \"Gate\",\n \"pl\": \"Bramy\",\n \"pt\": \"Portões\",\n \"es\": \"Puertas\",\n \"zh-cn\": \"盖茨\"\n },\n \"icon\": \"Gates.svg\"\n },\n {\n \"_id\": \"dryer\",\n \"name\": {\n \"en\": \"Dryer\",\n \"ru\": \"Сушилка\",\n \"de\": \"Trockner\",\n \"fr\": \"Séchoir\",\n \"it\": \"Asciugatrice\",\n \"nl\": \"Droger\",\n \"pl\": \"Suszarka\",\n \"pt\": \"Secador\",\n \"es\": \"Secadora\",\n \"zh-cn\": \"烘干机\"\n },\n \"icon\": \"Dryer.svg\"\n },\n {\n \"_id\": \"door\",\n \"name\": {\n \"en\": \"Door\",\n \"ru\": \"Дверь\",\n \"de\": \"Tür\",\n \"fr\": \"Des Portes\",\n \"it\": \"Porte\",\n \"nl\": \"Deuren\",\n \"pl\": \"Drzwi\",\n \"pt\": \"Portas\",\n \"es\": \"Puertas\",\n \"zh-cn\": \"门\"\n },\n \"icon\": \"Doors.svg\"\n },\n {\n \"_id\": \"tv\",\n \"name\": {\n \"en\": \"Tv\",\n \"ru\": \"Телевизор\",\n \"de\": \"TV\",\n \"fr\": \"La Télé\",\n \"it\": \"Tv\",\n \"nl\": \"Tv\",\n \"pl\": \"Telewizja\",\n \"pt\": \"Televisão\",\n \"es\": \"Televisor\",\n \"zh-cn\": \"电视\"\n },\n \"icon\": \"Tv.svg\"\n },\n {\n \"_id\": \"consumption\",\n \"name\": {\n \"en\": \"Consumption\",\n \"ru\": \"Потребление\",\n \"de\": \"Verbrauch\",\n \"fr\": \"Consommation\",\n \"it\": \"Consumo\",\n \"nl\": \"Consumptie\",\n \"pl\": \"Konsumpcja\",\n \"pt\": \"Consumo\",\n \"es\": \"Consumo\",\n \"zh-cn\": \"消费\"\n },\n \"icon\": \"Consumption.svg\"\n },\n {\n \"_id\": \"amplifier\",\n \"name\": {\n \"en\": \"Amplifier\",\n \"ru\": \"Усилитель звука\",\n \"de\": \"Verstärker\",\n \"fr\": \"Amplificateur\",\n \"it\": \"Amplificatore\",\n \"nl\": \"Versterker\",\n \"pl\": \"Wzmacniacz\",\n \"pt\": \"Amplificador\",\n \"es\": \"Amplificador\",\n \"zh-cn\": \"放大器\"\n },\n \"icon\": \"Amplifier.svg\"\n },\n {\n \"_id\": \"curtains\",\n \"name\": {\n \"en\": \"Curtains\",\n \"ru\": \"Шторы\",\n \"de\": \"Vorhänge\",\n \"fr\": \"Des Rideaux\",\n \"it\": \"Le Tende\",\n \"nl\": \"Gordijnen\",\n \"pl\": \"Zasłony\",\n \"pt\": \"Cortinas\",\n \"es\": \"Cortinas\",\n \"zh-cn\": \"窗帘\"\n },\n \"icon\": \"Curtains.svg\"\n },\n {\n \"_id\": \"sconce\",\n \"name\": {\n \"en\": \"Sconce\",\n \"ru\": \"Настенный светильник\",\n \"de\": \"Wandlampe\",\n \"fr\": \"Sconce\",\n \"it\": \"Sconce\",\n \"nl\": \"Sconce\",\n \"pl\": \"Kinkiety\",\n \"pt\": \"Arandelas\",\n \"es\": \"Los Apliques\",\n \"zh-cn\": \"壁灯\"\n },\n \"icon\": \"Sconces.svg\"\n },\n {\n \"_id\": \"washing_machine\",\n \"name\": {\n \"en\": \"Washing Machine\",\n \"ru\": \"Стиральная машина\",\n \"de\": \"Waschmaschine\",\n \"fr\": \"Machines À Laver\",\n \"it\": \"Lavatrici\",\n \"nl\": \"Wasmachines\",\n \"pl\": \"Pralki\",\n \"pt\": \"Máquinas De Lavar Roupas\",\n \"es\": \"Lavadoras\",\n \"zh-cn\": \"洗衣机\"\n },\n \"icon\": \"Washing Machines.svg\"\n },\n {\n \"_id\": \"water\",\n \"name\": {\n \"en\": \"Water\",\n \"ru\": \"Вода\",\n \"de\": \"Wasser\",\n \"fr\": \"L'Eau\",\n \"it\": \"Acqua\",\n \"nl\": \"Water\",\n \"pl\": \"Woda\",\n \"pt\": \"Água\",\n \"es\": \"Agua\",\n \"zh-cn\": \"水\"\n },\n \"icon\": \"Water.svg\"\n },\n {\n \"_id\": \"water_heater\",\n \"name\": {\n \"en\": \"Water Heater\",\n \"ru\": \"Нагреватель воды\",\n \"de\": \"Wasserkocher\",\n \"fr\": \"Chauffe-Eau\",\n \"it\": \"Scaldabagno\",\n \"nl\": \"Waterkoker\",\n \"pl\": \"Podgrzewacz Wody\",\n \"pt\": \"Aquecedor De Água\",\n \"es\": \"Calentador De Agua\",\n \"zh-cn\": \"热水器\"\n },\n \"icon\": \"Water Heater.svg\"\n },\n {\n \"_id\": \"water_consumption\",\n \"name\": {\n \"en\": \"Water Consumption\",\n \"ru\": \"Потребление воды\",\n \"de\": \"Wasserverbrauch\",\n \"fr\": \"Consommation D'Eau\",\n \"it\": \"Consumo D'Acqua\",\n \"nl\": \"Waterverbruik\",\n \"pl\": \"Konsumpcja Wody\",\n \"pt\": \"Consumo De Água\",\n \"es\": \"Consumo De Agua\",\n \"zh-cn\": \"耗水量\"\n },\n \"icon\": \"Water Consumption.svg\"\n },\n {\n \"_id\": \"weather\",\n \"name\": {\n \"en\": \"Weather\",\n \"ru\": \"Погода\",\n \"de\": \"Wetter\",\n \"fr\": \"La Météo\",\n \"it\": \"Tempo Metereologico\",\n \"nl\": \"Weer\",\n \"pl\": \"Pogoda\",\n \"pt\": \"Clima\",\n \"es\": \"Tiempo\",\n \"zh-cn\": \"天气\"\n },\n \"icon\": \"Weather.svg\"\n }\n];\n\n// import rooms from '../assets/rooms/list.json';\nconst rooms = [\n {\n \"_id\": \"storeroom\",\n \"name\": {\n \"en\": \"Storeroom\",\n \"ru\": \"Кладовая\",\n \"de\": \"Abstellraum\",\n \"fr\": \"Débarras\",\n \"it\": \"Dispensa\",\n \"nl\": \"Bergplaats\",\n \"pl\": \"Magazyn\",\n \"pt\": \"Despensa\",\n \"es\": \"Trastero\",\n \"zh-cn\": \"库房\"\n },\n \"icon\": \"Storeroom.svg\"\n },\n {\n \"_id\": \"second_floor\",\n \"name\": {\n \"en\": \"Second floor\",\n \"ru\": \"Второй этаж\",\n \"de\": \"Erster OG\",\n \"pt\": \"Primeiro andar\",\n \"nl\": \"Eerste verdieping\",\n \"fr\": \"Premier étage\",\n \"it\": \"Primo piano\",\n \"es\": \"Primer piso\",\n \"pl\": \"Pierwsze piętro\",\n \"zh-cn\": \"第一层\"\n },\n \"icon\": \"Second Floor.svg\"\n },\n {\n \"_id\": \"dressing_room\",\n \"name\": {\n \"en\": \"Dressing Room\",\n \"ru\": \"Гардеробная\",\n \"de\": \"Ankleide\",\n \"fr\": \"Vestiaire\",\n \"it\": \"Camerino\",\n \"nl\": \"Kleedkamer\",\n \"pl\": \"Przebieralnia\",\n \"pt\": \"Provador\",\n \"es\": \"Vestidor\",\n \"zh-cn\": \"更衣室\"\n },\n \"icon\": \"Dressing Room.svg\"\n },\n {\n \"_id\": \"workspace\",\n \"name\": {\n \"en\": \"Workspace\",\n \"ru\": \"Рабочая Среда\",\n \"de\": \"Arbeitszimmer\",\n \"fr\": \"Espace De Travail\",\n \"it\": \"Area Di Lavoro\",\n \"nl\": \"Workspace\",\n \"pl\": \"Workspace\",\n \"pt\": \"Área De Trabalho\",\n \"es\": \"Espacio De Trabajo\",\n \"zh-cn\": \"工作区\"\n },\n \"icon\": \"Workspace.svg\"\n },\n {\n \"_id\": \"driveway\",\n \"name\": {\n \"en\": \"Driveway\",\n \"ru\": \"Дорога\",\n \"de\": \"Auffahrt\",\n \"fr\": \"Allée\",\n \"it\": \"Viale\",\n \"nl\": \"Pad\",\n \"pl\": \"Podjazd\",\n \"pt\": \"Entrada Da Garagem\",\n \"es\": \"Entrada De Coches\",\n \"zh-cn\": \"车道\"\n },\n \"icon\": \"Driveway.svg\"\n },\n {\n \"_id\": \"outdoors\",\n \"name\": {\n \"en\": \"Outdoors\",\n \"ru\": \"На Улице\",\n \"de\": \"Außenbereich\",\n \"fr\": \"En Plein Air\",\n \"it\": \"All'Aperto\",\n \"nl\": \"Buitenshuis\",\n \"pl\": \"Na Dworze\",\n \"pt\": \"Ao Ar Livre\",\n \"es\": \"Al Aire Libre\",\n \"zh-cn\": \"户外\"\n },\n \"icon\": \"Outdoors.svg\"\n },\n {\n \"_id\": \"bathroom\",\n \"name\": {\n \"en\": \"Bathroom\",\n \"ru\": \"Ванная Комната\",\n \"de\": \"Badezimmer\",\n \"fr\": \"Salle De Bains\",\n \"it\": \"Bagno\",\n \"nl\": \"Badkamer\",\n \"pl\": \"Łazienka\",\n \"pt\": \"Banheiro\",\n \"es\": \"Baño\",\n \"zh-cn\": \"浴室\"\n },\n \"icon\": \"Bathroom.svg\"\n },\n {\n \"_id\": \"balcony\",\n \"name\": {\n \"en\": \"Balcony\",\n \"ru\": \"Балкон\",\n \"de\": \"Balkon\",\n \"fr\": \"Balcon\",\n \"it\": \"Balcone\",\n \"nl\": \"Balkon\",\n \"pl\": \"Balkon\",\n \"pt\": \"Sacada\",\n \"es\": \"Balcón\",\n \"zh-cn\": \"阳台\"\n },\n \"icon\": \"Balcony.svg\"\n },\n {\n \"_id\": \"office\",\n \"name\": {\n \"en\": \"Office\",\n \"ru\": \"Офис\",\n \"de\": \"Office\",\n \"fr\": \"Bureau\",\n \"it\": \"Ufficio\",\n \"nl\": \"Kantoor\",\n \"pl\": \"Gabinet\",\n \"pt\": \"Escritório\",\n \"es\": \"Oficina\",\n \"zh-cn\": \"办公室\"\n },\n \"icon\": \"Office.svg\"\n },\n {\n \"_id\": \"carport\",\n \"name\": {\n \"en\": \"Carport\",\n \"ru\": \"Навес\",\n \"de\": \"Carport\",\n \"fr\": \"Carport\",\n \"it\": \"Posto Auto Coperto\",\n \"nl\": \"Carport\",\n \"pl\": \"Wiata\",\n \"pt\": \"Telheiro\",\n \"es\": \"Cochera\",\n \"zh-cn\": \"车棚\"\n },\n \"icon\": \"Carport.svg\"\n },\n {\n \"_id\": \"attic\",\n \"name\": {\n \"en\": \"Attic\",\n \"ru\": \"Чердак\",\n \"de\": \"Dachgeschoss\",\n \"fr\": \"Grenier\",\n \"it\": \"Attico\",\n \"nl\": \"Zolder\",\n \"pl\": \"Poddasze\",\n \"pt\": \"Sótão\",\n \"es\": \"Ático\",\n \"zh-cn\": \"阁楼\"\n },\n \"icon\": \"Attic.svg\"\n },\n {\n \"_id\": \"hall\",\n \"name\": {\n \"en\": \"Hall\",\n \"ru\": \"Зал\",\n \"de\": \"Diele\",\n \"fr\": \"Salle\",\n \"it\": \"Sala\",\n \"nl\": \"Hal\",\n \"pl\": \"Sala\",\n \"pt\": \"Corredor\",\n \"es\": \"Sala\",\n \"zh-cn\": \"大厅\"\n },\n \"icon\": \"Hall.svg\"\n },\n {\n \"_id\": \"entrance\",\n \"name\": {\n \"en\": \"Entrance\",\n \"ru\": \"Вход\",\n \"de\": \"Eingang\",\n \"fr\": \"Entrée\",\n \"it\": \"Ingresso\",\n \"nl\": \"Ingang\",\n \"pl\": \"Wejście\",\n \"pt\": \"Entrada\",\n \"es\": \"Entrada\",\n \"zh-cn\": \"入口\"\n },\n \"icon\": \"Entrance.svg\"\n },\n {\n \"_id\": \"ground_floor\",\n \"name\": {\n \"en\": \"Ground Floor\",\n \"ru\": \"Первый Этаж\",\n \"de\": \"Erdgeschoss\",\n \"fr\": \"Rez-De-Chaussée\",\n \"it\": \"Piano Terra\",\n \"nl\": \"Begane Grond\",\n \"pl\": \"Parter\",\n \"pt\": \"Térreo\",\n \"es\": \"Planta Baja\",\n \"zh-cn\": \"一楼\"\n },\n \"icon\": \"Ground Floor.svg\"\n },\n {\n \"_id\": \"dining_area\",\n \"name\": {\n \"en\": \"Dining Area\",\n \"ru\": \"Столовая\",\n \"de\": \"Essbereich\",\n \"fr\": \"Salle À Manger\",\n \"it\": \"Zona Pranzo\",\n \"nl\": \"Eethoek\",\n \"pl\": \"Jadalnia\",\n \"pt\": \"Área De Refeições\",\n \"es\": \"Comedor\",\n \"zh-cn\": \"用餐区\"\n },\n \"icon\": \"Dining Area.svg\"\n },\n {\n \"_id\": \"dining_room\",\n \"name\": {\n \"en\": \"Dining Room\",\n \"ru\": \"Столовая\",\n \"de\": \"Esszimmer\",\n \"fr\": \"Salle À Manger\",\n \"it\": \"Sala Da Pranzo\",\n \"nl\": \"Eetkamer\",\n \"pl\": \"Jadalnia\",\n \"pt\": \"Sala De Jantar\",\n \"es\": \"Comedor\",\n \"zh-cn\": \"饭厅\"\n },\n \"icon\": \"Dining Room.svg\"\n },\n {\n \"_id\": \"gym\",\n \"name\": {\n \"en\": \"Gym\",\n \"ru\": \"Спортзал\",\n \"de\": \"Fitnessraum\",\n \"fr\": \"Gym\",\n \"it\": \"Palestra\",\n \"nl\": \"Sportschool\",\n \"pl\": \"Siłownia\",\n \"pt\": \"Ginásio\",\n \"es\": \"Gimnasio\",\n \"zh-cn\": \"健身房\"\n },\n \"icon\": \"Gym.svg\"\n },\n {\n \"_id\": \"gallery\",\n \"name\": {\n \"en\": \"Gallery\",\n \"ru\": \"Галерея\",\n \"de\": \"Galerie\",\n \"fr\": \"Galerie\",\n \"it\": \"Galleria\",\n \"nl\": \"Galerij\",\n \"pl\": \"Galeria\",\n \"pt\": \"Galeria\",\n \"es\": \"Galería\",\n \"zh-cn\": \"画廊\"\n },\n \"icon\": \"Gallery.svg\"\n },\n {\n \"_id\": \"garage\",\n \"name\": {\n \"en\": \"Garage\",\n \"ru\": \"Гараж\",\n \"de\": \"Garage\",\n \"fr\": \"Garage\",\n \"it\": \"Box Auto\",\n \"nl\": \"Garage\",\n \"pl\": \"Garaż\",\n \"pt\": \"Garagem\",\n \"es\": \"Garaje\",\n \"zh-cn\": \"车库\"\n },\n \"icon\": \"Garage.svg\"\n },\n {\n \"_id\": \"wardrobe\",\n \"name\": {\n \"en\": \"Wardrobe\",\n \"ru\": \"Гардероб\",\n \"de\": \"Garderobe\",\n \"fr\": \"Penderie\",\n \"it\": \"Armadio\",\n \"nl\": \"Garderobe\",\n \"pl\": \"Szafa\",\n \"pt\": \"Guarda Roupa\",\n \"es\": \"Armario\",\n \"zh-cn\": \"衣柜\"\n },\n \"icon\": \"Wardrobe.svg\"\n },\n {\n \"_id\": \"garden\",\n \"name\": {\n \"en\": \"Garden\",\n \"ru\": \"Сад\",\n \"de\": \"Garten\",\n \"fr\": \"Jardin\",\n \"it\": \"Giardino\",\n \"nl\": \"Tuin\",\n \"pl\": \"Ogród\",\n \"pt\": \"Jardim\",\n \"es\": \"Jardín\",\n \"zh-cn\": \"花园\"\n },\n \"icon\": \"Garden.svg\"\n },\n {\n \"_id\": \"summer_house\",\n \"name\": {\n \"en\": \"Summer House\",\n \"ru\": \"Дача\",\n \"de\": \"Gartenhaus\",\n \"fr\": \"Maison D'Été\",\n \"it\": \"Casa Estiva\",\n \"nl\": \"Zomerhuis\",\n \"pl\": \"Domek Letniskowy\",\n \"pt\": \"Summer House\",\n \"es\": \"Casa De Verano\",\n \"zh-cn\": \"凉亭\"\n },\n \"icon\": \"Summer House.svg\"\n },\n {\n \"_id\": \"guest_bathroom\",\n \"name\": {\n \"en\": \"Guest Bathroom\",\n \"ru\": \"Гостевая Комната\",\n \"de\": \"Gäste-WC\",\n \"fr\": \"Salle De Bains Invité\",\n \"it\": \"Guest Bathroom\",\n \"nl\": \"Gastenbadkamer\",\n \"pl\": \"Łazienka Gościnna\",\n \"pt\": \"Banheiro De Hóspedes\",\n \"es\": \"Baño De Visitas\",\n \"zh-cn\": \"客用浴室\"\n },\n \"icon\": \"Guest Bathroom.svg\"\n },\n {\n \"_id\": \"guest_room\",\n \"name\": {\n \"en\": \"Guest Room\",\n \"ru\": \"Гостевая Комната\",\n \"de\": \"Gästezimmer\",\n \"fr\": \"Chambre D'Amis\",\n \"it\": \"Stanza Degli Ospiti\",\n \"nl\": \"Guest Room\",\n \"pl\": \"Pokój Gościnny\",\n \"pt\": \"Quarto De Hóspedes\",\n \"es\": \"Habitación De Huéspedes\",\n \"zh-cn\": \"客房\"\n },\n \"icon\": \"Guest Room.svg\"\n },\n {\n \"_id\": \"laundry_room\",\n \"name\": {\n \"en\": \"Laundry Room\",\n \"ru\": \"Прачечная\",\n \"de\": \"Hauswirtschaftsraum\",\n \"fr\": \"Buanderie\",\n \"it\": \"Lavanderia\",\n \"nl\": \"Wasruimte\",\n \"pl\": \"Pralnia\",\n \"pt\": \"Lavandaria\",\n \"es\": \"Cuarto De Lavado\",\n \"zh-cn\": \"洗衣房\"\n },\n \"icon\": \"Laundry Room.svg\"\n },\n {\n \"_id\": \"home_theater\",\n \"name\": {\n \"en\": \"Home Theater\",\n \"ru\": \"Домашний Театр\",\n \"de\": \"Heimkino\",\n \"fr\": \"Cinéma Maison\",\n \"it\": \"Home Theater\",\n \"nl\": \"Thuisbioscoop\",\n \"pl\": \"Kino Domowe\",\n \"pt\": \"Cinema Em Casa\",\n \"es\": \"Cine En Casa\",\n \"zh-cn\": \"家庭电影院\"\n },\n \"icon\": \"Home Theater.svg\"\n },\n {\n \"_id\": \"boiler_room\",\n \"name\": {\n \"en\": \"Boiler Room\",\n \"ru\": \"Бойлерная\",\n \"de\": \"Heizungsraum\",\n \"fr\": \"Chaufferie\",\n \"it\": \"Locale Caldaia\",\n \"nl\": \"Boiler Room\",\n \"pl\": \"Kotłownia\",\n \"pt\": \"Sala Da Caldeira\",\n \"es\": \"Sala De Calderas\",\n \"zh-cn\": \"锅炉房\"\n },\n \"icon\": \"Boiler Room.svg\"\n },\n {\n \"_id\": \"chamber\",\n \"name\": {\n \"en\": \"Chamber\",\n \"ru\": \"Камера\",\n \"de\": \"Kammer\",\n \"fr\": \"Chambre\",\n \"it\": \"Camera\",\n \"nl\": \"Kamer\",\n \"pl\": \"Izba\",\n \"pt\": \"Câmara\",\n \"es\": \"Cámara\",\n \"zh-cn\": \"商会\"\n },\n \"icon\": \"Chamber.svg\"\n },\n {\n \"_id\": \"basement,_cellar\",\n \"name\": {\n \"en\": \"Basement, Cellar\",\n \"ru\": \"Подвал, Погреб\",\n \"de\": \"Keller\",\n \"fr\": \"Sous-Sol, Cave\",\n \"it\": \"Taverna, Cantina\",\n \"nl\": \"Kelder, Kelder\",\n \"pl\": \"Piwnica, Piwnica\",\n \"pt\": \"Porão, Adega\",\n \"es\": \"Sótano, Bodega\",\n \"zh-cn\": \"地下室,地窖\"\n },\n \"icon\": \"Basement.svg\"\n },\n {\n \"_id\": \"nursery\",\n \"name\": {\n \"en\": \"Nursery\",\n \"ru\": \"Питомник\",\n \"de\": \"Kinderzimmer\",\n \"fr\": \"Garderie\",\n \"it\": \"Asilo\",\n \"nl\": \"Kinderkamer\",\n \"pl\": \"Żłobek\",\n \"pt\": \"Berçário\",\n \"es\": \"Guardería\",\n \"zh-cn\": \"苗圃\"\n },\n \"icon\": \"Nursery.svg\"\n },\n {\n \"_id\": \"corridor\",\n \"name\": {\n \"en\": \"Corridor\",\n \"ru\": \"Коридор\",\n \"de\": \"Korridor\",\n \"fr\": \"Couloir\",\n \"it\": \"Corridoio\",\n \"nl\": \"Gang\",\n \"pl\": \"Korytarz\",\n \"pt\": \"Corredor\",\n \"es\": \"Corredor\",\n \"zh-cn\": \"走廊\"\n },\n \"icon\": \"Corridor.svg\"\n },\n {\n \"_id\": \"kitchen\",\n \"name\": {\n \"en\": \"Kitchen\",\n \"ru\": \"Кухня\",\n \"de\": \"Küche\",\n \"fr\": \"Cuisine\",\n \"it\": \"Cucina\",\n \"nl\": \"Keuken\",\n \"pl\": \"Kuchnia\",\n \"pt\": \"Cozinha\",\n \"es\": \"Cocina\",\n \"zh-cn\": \"厨房\"\n },\n \"icon\": \"Kitchen.svg\"\n },\n {\n \"_id\": \"upstairs\",\n \"name\": {\n \"en\": \"Upstairs\",\n \"ru\": \"Вверх По Лестнице\",\n \"de\": \"Obergeschoss\",\n \"fr\": \"En Haut\",\n \"it\": \"Di Sopra\",\n \"nl\": \"Boven\",\n \"pl\": \"Na Górę\",\n \"pt\": \"Andar De Cima\",\n \"es\": \"Piso Superior\",\n \"zh-cn\": \"楼上\"\n },\n \"icon\": \"Upstairs.svg\"\n },\n {\n \"_id\": \"office\",\n \"name\": {\n \"en\": \"Office\",\n \"ru\": \"Офис\",\n \"de\": \"Office\",\n \"fr\": \"Bureau\",\n \"it\": \"Ufficio\",\n \"nl\": \"Kantoor\",\n \"pl\": \"Gabinet\",\n \"pt\": \"Escritório\",\n \"es\": \"Oficina\",\n \"zh-cn\": \"办公室\"\n },\n \"icon\": \"Office.svg\"\n },\n {\n \"_id\": \"pool\",\n \"name\": {\n \"en\": \"Pool\",\n \"ru\": \"Бассейн\",\n \"de\": \"Pool\",\n \"fr\": \"Piscine\",\n \"it\": \"Piscina\",\n \"nl\": \"Zwembad\",\n \"pl\": \"Basen\",\n \"pt\": \"Piscina\",\n \"es\": \"Piscina\",\n \"zh-cn\": \"水池\"\n },\n \"icon\": \"Pool.svg\"\n },\n {\n \"_id\": \"rear_wall\",\n \"name\": {\n \"en\": \"Rear Wall\",\n \"ru\": \"Задняя Стенка\",\n \"de\": \"Rückwand\",\n \"fr\": \"Paroi Arrière\",\n \"it\": \"Parete Posteriore\",\n \"nl\": \"Achterwand\",\n \"pl\": \"Tylna Ściana\",\n \"pt\": \"Parede Traseira\",\n \"es\": \"Pared Posterior\",\n \"zh-cn\": \"后墙\"\n },\n \"icon\": \"Rear Wall.svg\"\n },\n {\n \"_id\": \"barn\",\n \"name\": {\n \"en\": \"Barn\",\n \"ru\": \"Амбар\",\n \"de\": \"Scheune\",\n \"fr\": \"Grange\",\n \"it\": \"Fienile\",\n \"nl\": \"Schuur\",\n \"pl\": \"Stodoła\",\n \"pt\": \"Celeiro\",\n \"es\": \"Granero\",\n \"zh-cn\": \"谷仓\"\n },\n \"icon\": \"Barn.svg\"\n },\n {\n \"_id\": \"sleeping_area\",\n \"name\": {\n \"en\": \"Sleeping Area\",\n \"ru\": \"Спальное Место\",\n \"de\": \"Schlafbereich\",\n \"fr\": \"Coin Montagne\",\n \"it\": \"Area Sleeping\",\n \"nl\": \"Sleeping Area\",\n \"pl\": \"Powierzchnia Spania\",\n \"pt\": \"Sleeping Area\",\n \"es\": \"Área De Dormir\",\n \"zh-cn\": \"睡眠区\"\n },\n \"icon\": \"Sleeping Area.svg\"\n },\n {\n \"_id\": \"bedroom\",\n \"name\": {\n \"en\": \"Bedroom\",\n \"ru\": \"Спальная Комната\",\n \"de\": \"Schlafzimmer\",\n \"fr\": \"Chambre\",\n \"it\": \"Camera Da Letto\",\n \"nl\": \"Slaapkamer\",\n \"pl\": \"Sypialnia\",\n \"pt\": \"Quarto\",\n \"es\": \"Cuarto\",\n \"zh-cn\": \"卧室\"\n },\n \"icon\": \"Bedroom.svg\"\n },\n {\n \"_id\": \"shed\",\n \"name\": {\n \"en\": \"Shed\",\n \"ru\": \"Сбрасывать\",\n \"de\": \"Schuppen\",\n \"fr\": \"Hangar\",\n \"it\": \"Capannone\",\n \"nl\": \"Schuur\",\n \"pl\": \"Budka\",\n \"pt\": \"Cabana\",\n \"es\": \"Cobertizo\",\n \"zh-cn\": \"棚\"\n },\n \"icon\": \"Shed.svg\"\n },\n {\n \"_id\": \"swimming_pool\",\n \"name\": {\n \"en\": \"Swimming Pool\",\n \"ru\": \"Плавательный Бассейн\",\n \"de\": \"Schwimmbad\",\n \"fr\": \"Piscine\",\n \"it\": \"Piscina\",\n \"nl\": \"Zwembad\",\n \"pl\": \"Basen\",\n \"pt\": \"Piscina\",\n \"es\": \"Piscina\",\n \"zh-cn\": \"游泳池\"\n },\n \"icon\": \"Swimming Pool.svg\"\n },\n {\n \"_id\": \"dining\",\n \"name\": {\n \"en\": \"Dining\",\n \"ru\": \"Обеденный\",\n \"de\": \"Speis\",\n \"fr\": \"À Manger\",\n \"it\": \"Cenare\",\n \"nl\": \"Dining\",\n \"pl\": \"Jadalnia\",\n \"pt\": \"Jantar\",\n \"es\": \"Comida\",\n \"zh-cn\": \"用餐\"\n },\n \"icon\": \"Dining.svg\"\n },\n {\n \"_id\": \"playroom\",\n \"name\": {\n \"en\": \"Playroom\",\n \"ru\": \"Игровая Комната\",\n \"de\": \"Spielzimmer\",\n \"fr\": \"Salle De Jeux\",\n \"it\": \"Stanza Dei Giochi\",\n \"nl\": \"Speelkamer\",\n \"pl\": \"Pokój Zabaw\",\n \"pt\": \"Sala De Jogos\",\n \"es\": \"Cuarto De Jugar\",\n \"zh-cn\": \"游戏室\"\n },\n \"icon\": \"Playroom.svg\"\n },\n {\n \"_id\": \"stairway\",\n \"name\": {\n \"en\": \"Stairway\",\n \"ru\": \"Лестница\",\n \"de\": \"Treppe\",\n \"fr\": \"Escalier\",\n \"it\": \"Scala\",\n \"nl\": \"Trap\",\n \"pl\": \"Klatka Schodowa\",\n \"pt\": \"Escada\",\n \"es\": \"Escalera\",\n \"zh-cn\": \"楼梯\"\n },\n \"icon\": \"Stairway.svg\"\n },\n {\n \"_id\": \"equipment_room\",\n \"name\": {\n \"en\": \"Equipment Room\",\n \"ru\": \"Оборудование Номера\",\n \"de\": \"Technikraum\",\n \"fr\": \"Salle D'Équipement\",\n \"it\": \"Stanza Degli Attrezzi\",\n \"nl\": \"Technische Ruimte\",\n \"pl\": \"Wyposażenie Pokoi\",\n \"pt\": \"Sala De Equipamentos\",\n \"es\": \"Cuarto De Equipos\",\n \"zh-cn\": \"机房\"\n },\n \"icon\": \"Equipment Room.svg\"\n },\n {\n \"_id\": \"terrace\",\n \"name\": {\n \"en\": \"Terrace\",\n \"ru\": \"Терраса\",\n \"de\": \"Terrasse\",\n \"fr\": \"Terrasse\",\n \"it\": \"Terrazza\",\n \"nl\": \"Terras\",\n \"pl\": \"Taras\",\n \"pt\": \"Terraço\",\n \"es\": \"Terraza\",\n \"zh-cn\": \"阳台\"\n },\n \"icon\": \"Terrace.svg\"\n },\n {\n \"_id\": \"toilet\",\n \"name\": {\n \"en\": \"Toilet\",\n \"ru\": \"Туалет\",\n \"de\": \"Toilette\",\n \"fr\": \"Toilette\",\n \"it\": \"Gabinetto\",\n \"nl\": \"Toilet\",\n \"pl\": \"Toaleta\",\n \"pt\": \"Banheiro\",\n \"es\": \"Inodoro\",\n \"zh-cn\": \"洗手间\"\n },\n \"icon\": \"Toilet.svg\"\n },\n {\n \"_id\": \"stairwell\",\n \"name\": {\n \"en\": \"Stairwell\",\n \"ru\": \"Лестничная клетка\",\n \"de\": \"Treppenhaus\",\n \"fr\": \"Cage D'Escalier\",\n \"it\": \"Tromba Delle Scale\",\n \"nl\": \"Trappenhuis\",\n \"pl\": \"Klatka Schodowa\",\n \"pt\": \"Caixa De Escada\",\n \"es\": \"Hueco De Escalera\",\n \"zh-cn\": \"楼梯间\"\n },\n \"icon\": \"Stairwell.svg\"\n },\n {\n \"_id\": \"locker_room\",\n \"name\": {\n \"en\": \"Locker Room\",\n \"ru\": \"Камера Хранения\",\n \"de\": \"Umkleideraum\",\n \"fr\": \"Vestiaire\",\n \"it\": \"Spogliatoio\",\n \"nl\": \"Kleedkamer\",\n \"pl\": \"Szatnia\",\n \"pt\": \"Vestiário\",\n \"es\": \"Vestuario\",\n \"zh-cn\": \"更衣室\"\n },\n \"icon\": \"Locker Room.svg\"\n },\n {\n \"_id\": \"basement\",\n \"name\": {\n \"en\": \"Basement\",\n \"ru\": \"Подвал\",\n \"de\": \"Untergeschoss\",\n \"fr\": \"Sous-Sol\",\n \"it\": \"Seminterrato\",\n \"nl\": \"Kelder\",\n \"pl\": \"Piwnica\",\n \"pt\": \"Porão\",\n \"es\": \"Sótano\",\n \"zh-cn\": \"地下室\"\n },\n \"icon\": \"Basement.svg\"\n },\n {\n \"_id\": \"front_yard\",\n \"name\": {\n \"en\": \"Front Yard\",\n \"ru\": \"Передний Двор\",\n \"de\": \"Vorgarten\",\n \"fr\": \"Front Yard\",\n \"it\": \"Cortile\",\n \"nl\": \"Voortuin\",\n \"pl\": \"Podwórko\",\n \"pt\": \"Jardim Da Frente\",\n \"es\": \"Patio Delantero\",\n \"zh-cn\": \"前院\"\n },\n \"icon\": \"Front Yard.svg\"\n },\n {\n \"_id\": \"anteroom\",\n \"name\": {\n \"en\": \"Anteroom\",\n \"ru\": \"Передняя\",\n \"de\": \"Vorraum\",\n \"fr\": \"Antichambre\",\n \"it\": \"Anticamera\",\n \"nl\": \"Voorkamer\",\n \"pl\": \"Przedpokój\",\n \"pt\": \"Ante-Sala\",\n \"es\": \"Antesala\",\n \"zh-cn\": \"接待室\"\n },\n \"icon\": \"Anteroom.svg\"\n },\n {\n \"_id\": \"washroom\",\n \"name\": {\n \"en\": \"Washroom\",\n \"ru\": \"Уборная\",\n \"de\": \"Waschraum\",\n \"fr\": \"Toilettes\",\n \"it\": \"Bagno\",\n \"nl\": \"Waskamer\",\n \"pl\": \"Umywalnia\",\n \"pt\": \"Banheiro\",\n \"es\": \"Baño\",\n \"zh-cn\": \"卫生间\"\n },\n \"icon\": \"Washroom.svg\"\n },\n {\n \"_id\": \"wc\",\n \"name\": {\n \"en\": \"Wc\",\n \"ru\": \"Туалет\",\n \"de\": \"WC\",\n \"fr\": \"Toilettes\",\n \"it\": \"Bagno\",\n \"nl\": \"Wc\",\n \"pl\": \"Toaleta\",\n \"pt\": \"Banheiro\",\n \"es\": \"Wc\",\n \"zh-cn\": \"厕所\"\n },\n \"icon\": \"Wc.svg\"\n },\n {\n \"_id\": \"workshop\",\n \"name\": {\n \"en\": \"Workshop\",\n \"ru\": \"Мастерская\",\n \"de\": \"Werkstatt\",\n \"fr\": \"Atelier\",\n \"it\": \"Laboratorio\",\n \"nl\": \"Werkplaats\",\n \"pl\": \"Warsztat\",\n \"pt\": \"Oficina\",\n \"es\": \"Taller\",\n \"zh-cn\": \"作坊\"\n },\n \"icon\": \"Workshop.svg\"\n },\n {\n \"_id\": \"windscreen\",\n \"name\": {\n \"en\": \"Windscreen\",\n \"ru\": \"Ветровое Стекло\",\n \"de\": \"Windfang\",\n \"fr\": \"Pare-Brise\",\n \"it\": \"Parabrezza\",\n \"nl\": \"Voorruit\",\n \"pl\": \"Szyba Przednia\",\n \"pt\": \"Pára-Brisas\",\n \"es\": \"Parabrisas\",\n \"zh-cn\": \"风档\"\n },\n \"icon\": \"Windscreen.svg\"\n },\n {\n \"_id\": \"living_area\",\n \"name\": {\n \"en\": \"Living Area\",\n \"ru\": \"Жилая Площадь\",\n \"de\": \"Wohnbereich\",\n \"fr\": \"Salon\",\n \"it\": \"Zona Giorno\",\n \"nl\": \"Living Area\",\n \"pl\": \"Powierzchnia Mieszkalna\",\n \"pt\": \"Sala-De-Estar\",\n \"es\": \"Sala De Estar\",\n \"zh-cn\": \"生活区域\"\n },\n \"icon\": \"Living Area.svg\"\n },\n {\n \"_id\": \"living_room\",\n \"name\": {\n \"en\": \"Living Room\",\n \"ru\": \"Гостинная\",\n \"de\": \"Wohnzimmer\",\n \"fr\": \"Le Salon\",\n \"it\": \"Soggiorno\",\n \"nl\": \"Woonkamer\",\n \"pl\": \"Salon\",\n \"pt\": \"Sala De Estar\",\n \"es\": \"Sala De Estar\",\n \"zh-cn\": \"客厅\"\n },\n \"icon\": \"Living Room.svg\"\n },\n {\n \"_id\": \"living_room\",\n \"name\": {\n \"en\": \"Living Room\",\n \"ru\": \"Гостинная\",\n \"de\": \"Wohnzimmer\",\n \"fr\": \"Le Salon\",\n \"it\": \"Soggiorno\",\n \"nl\": \"Woonkamer\",\n \"pl\": \"Salon\",\n \"pt\": \"Sala De Estar\",\n \"es\": \"Sala De Estar\",\n \"zh-cn\": \"客厅\"\n },\n \"icon\": \"Living Room.svg\"\n }\n];\n\nclass IconSelector extends Component {\n constructor(props) {\n super(props);\n this.state = {\n opened: false,\n names: [],\n filter: '',\n icons: props.icons || null,\n };\n }\n\n loadAllIcons() {\n if (this.state.loading || this.state.icons) {\n return;\n }\n this.setState({loading: true}, () => {\n const icons = [];\n const names = [];\n\n if (!this.props.icons) {\n let templates = this.props.onlyRooms || (!this.props.onlyRooms && !this.props.onlyDevices) ? rooms : null;\n\n const promises = [];\n if (templates) {\n templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/rooms/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i] = icon));\n });\n }\n\n templates = this.props.onlyDevices || (!this.props.onlyRooms && !this.props.onlyDevices) ? devices : null;\n if (templates) {\n const offset = promises.length;\n templates && templates.forEach(item => {\n if (item.name && typeof item.name === 'object') {\n item.name = item.name[this.props.lang] || item.name.en || item._id;\n }\n item.name = item.name || item._id;\n });\n\n templates = templates.filter((item, i) => !templates.find((_item, _i) => i !== _i && _item.icon === item.icon && _item.name === item.name));\n\n templates.forEach((template, i) => {\n let image;\n try {\n image = require(`../assets/devices/${template.icon}`);\n } catch (e) {\n return Promise.resolve(null);\n }\n\n names[i + offset] = template.name;\n\n promises.push(Utils.getSvg(image)\n .then(icon =>\n icons[i + offset] = icon));\n });\n }\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n } else {\n const promises = this.props.icons.map((item, i) => {\n let href;\n if (typeof item === 'object') {\n href = item.icon || item.src || item.href;\n names[i] = typeof item.name === 'object' ? item.name[this.props.lang] || item.name.en || item._id : item.name;\n if (!names[i]) {\n const parts = href.split('.');\n parts.pop();\n names[i] = parts[parts.length - 1];\n }\n } else {\n href = item;\n }\n\n if (href) {\n if (href.startsWith('data:')) {\n icons[i] = href;\n return Promise.resolve();\n } else {\n return Utils.getSvg(href)\n .then(icon =>\n icons[i] = icon);\n }\n } else {\n return Promise.resolve();\n }\n });\n\n Promise.all(promises)\n .then(() =>\n this.setState({icons, loading: false, names, isAnyName: names.find(i => i)}));\n }\n });\n }\n\n render() {\n if (this.state.loading) {\n return ;\n }\n\n return <>\n this.setState({opened: true}, () => this.loadAllIcons())} style={{minWidth: 40, marginRight: 8}}\n >...\n {this.state.opened ? this.setState({opened: false})} open={true}>\n {this.props.t('ra_Select predefined icon')}\n {this.state.isAnyName ? this.setState({filter: e.target.value.toLowerCase()})}\n placeholder={this.props.t('ra_Filter')}\n InputProps={{\n endAdornment: this.state.filter\n ?\n this.setState({filter: ''})}>\n \n \n :\n undefined,\n }}\n /> : null}\n \n \n
\n {this.state.icons && this.state.icons.map((icon, i) => {\n if (!this.state.filter || (this.state.names[i] && this.state.names[i].toLowerCase().includes(this.state.filter))) {\n return \n \n this.setState({opened: false}, () =>\n (this.props.onSelect || this.props.onChange)(icon))\n }\n size=\"large\"\n >\n \n \n ;\n } else {\n return null;\n }\n })}\n
\n
\n \n this.setState({opened: false})}\n startIcon={}\n >\n {this.props.t('ra_Close')}\n \n \n
: null}\n ;\n }\n}\n\nIconSelector.propTypes = {\n icons: PropTypes.array,\n onlyRooms: PropTypes.bool,\n onlyDevices: PropTypes.bool,\n onSelect: PropTypes.func, // one of onSelect or onChange are required\n onChange: PropTypes.func,\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\n/** @type {typeof IconSelector} */\nexport default IconSelector;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport IconNoIcon from '../icons/IconNoIcon';\n\nfunction getElementFromSource(src) {\n const svgContainer = document.createElement('div');\n svgContainer.innerHTML = src;\n const svg = svgContainer.firstElementChild;\n if (svg.remove) {\n svg.remove();\n } else {\n svgContainer.removeChild(svg);\n }\n\n svgContainer.remove();\n return svg;\n}\n\nfunction serializeAttrs(map) {\n const ret = {};\n for (let prop, i = 0; i < map.length; i++) {\n const key = map[i].name;\n if (key === 'class') {\n prop = 'className';\n }\n else if (!key.startsWith('data-')) {\n prop = key.replace(/[-|:]([a-z])/g, g => g[1].toUpperCase());\n } else {\n prop = key;\n }\n\n ret[prop] = map[i].value;\n }\n return ret;\n}\n\n/**\n * @typedef {object} ImageProps\n * @property {string} [color] The color.\n * @property {string} [src] The source of the image.\n * @property {string} [imagePrefix] The image prefix (default: './files/')\n * @property {string} [className] The CSS class name.\n * @property {boolean} [showError] Show image errors (or just show no image)?\n *\n * @extends {React.Component}\n */\nclass Image extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n svg: !!(this.props.src && this.props.src.startsWith('data:')),\n created: true,\n color: this.props.color || '',\n src: this.props.src || '',\n imgError: false,\n showError: this.props.showError,\n };\n\n this.svg = this.state.svg ? this.getSvgFromData(this.state.src) : null;\n }\n\n static getDerivedStateFromProps(props, state) {\n const newState = {};\n let changed = false;\n\n if (props && state && props.src !== state.src) {\n newState.src = props.src;\n newState.svg = props.src && props.src.startsWith('data:');\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.color !== state.color) {\n newState.color = props.color;\n newState.created = false;\n changed = true;\n }\n\n if (props && state && props.showError !== state.showError) {\n newState.showError = props.showError;\n changed = true;\n }\n\n return changed ? newState : null;\n }\n\n getSvgFromData(src) {\n const len = 'data:image/svg+xml;base64,';\n if (!src.startsWith(len)) {\n return null;\n }\n src = src.substring(len.length);\n try {\n src = atob(src);\n const svg = getElementFromSource(src);\n const inner = svg.innerHTML;\n const svgProps = serializeAttrs(svg.attributes || []);\n\n svg.remove();\n\n return ;\n } catch (e) {\n\n }\n return null;\n }\n\n render() {\n if (this.state.svg) {\n if (!this.state.created) {\n setTimeout(() => {\n this.svg = this.getSvgFromData(this.state.src);\n this.setState({created: true});\n }, 50);\n }\n\n return this.svg;\n } else if (this.state.src) {\n if (this.state.imgError || !this.state.src) {\n return ;\n } else {\n return this.props.showError ? this.setState({imgError: true}) : this.setState({src: ''})}\n />;\n }\n } else {\n return null;\n }\n }\n}\n\nImage.propTypes = {\n color: PropTypes.string,\n src: PropTypes.string.isRequired,\n className: PropTypes.string,\n imagePrefix: PropTypes.string,\n};\n\nexport default Image;","/**\n * Notice: Some code was adapted from Material-UI's text field.\n * Copyright (c) 2014 Call-Em-All (https://github.com/callemall/material-ui)\n */\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport PropTypes from 'prop-types'\nimport Input from '@mui/material/Input'\nimport FilledInput from '@mui/material/FilledInput/FilledInput'\nimport OutlinedInput from '@mui/material/OutlinedInput'\nimport InputLabel from '@mui/material/InputLabel'\nimport Chip from '@mui/material/Chip'\nimport withStyles from '@mui/styles/withStyles'\nimport blue from '@mui/material/colors/blue'\nimport FormControl from '@mui/material/FormControl'\nimport FormHelperText from '@mui/material/FormHelperText'\nimport Utils from '../Utils';\n\nconst variantComponent = {\n standard: Input,\n filled: FilledInput,\n outlined: OutlinedInput,\n};\n\nconst styles = (theme) => {\n const light = theme.palette.type === 'light';\n const bottomLineColor = light ? 'rgba(0, 0, 0, 0.42)' : 'rgba(255, 255, 255, 0.7)';\n\n return {\n root: {},\n inputRoot: {\n display: 'inline-flex',\n flexWrap: 'wrap',\n flex: 1,\n marginTop: 0,\n minWidth: 70,\n '&$outlined,&$filled': {\n boxSizing: 'border-box',\n },\n '&$outlined': {\n paddingTop: 14,\n },\n '&$filled': {\n paddingTop: 28,\n }\n },\n input: {\n display: 'inline-block',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n appearance: 'none', // Remove border in Safari, doesn't seem to break anything in other browsers\n WebkitTapHighlightColor: 'rgba(0,0,0,0)', // Remove mobile color flashing (deprecated style).\n float: 'left',\n flex: 1,\n },\n chipContainer: {\n display: 'flex',\n flexFlow: 'row wrap',\n cursor: 'text',\n marginBottom: -2,\n minHeight: 40,\n '&$labeled&$standard': {\n marginTop: 18,\n },\n },\n outlined: {\n '& input': {\n height: 16,\n paddingTop: 4,\n paddingBottom: 12,\n marginTop: 4,\n marginBottom: 4,\n },\n },\n standard: {},\n filled: {\n '& input': {\n height: 22,\n marginBottom: 4,\n marginTop: 4,\n paddingTop: 0,\n },\n '$marginDense & input': {\n height: 26,\n },\n },\n labeled: {},\n label: {\n top: 4,\n '&$outlined&:not($labelShrink)': {\n top: 2,\n '$marginDense &': {\n top: 5,\n }\n },\n '&$filled&:not($labelShrink)': {\n top: 15,\n '$marginDense &': {\n top: 20,\n },\n },\n },\n labelShrink: {\n top: 0,\n },\n helperText: {\n marginBottom: -20,\n },\n focused: {},\n disabled: {},\n underline: {\n '&:after': {\n borderBottom: `2px solid ${theme.palette.primary[light ? 'dark' : 'light']}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\"',\n position: 'absolute',\n right: 0,\n transform: 'scaleX(0)',\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shorter,\n easing: theme.transitions.easing.easeOut,\n }),\n pointerEvents: 'none', // Transparent to the hover style.\n },\n '&$focused:after': {\n transform: 'scaleX(1)',\n },\n '&$error:after': {\n borderBottomColor: theme.palette.error.main,\n transform: 'scaleX(1)', // error is always underlined in red\n },\n '&:before': {\n borderBottom: `1px solid ${bottomLineColor}`,\n left: 0,\n bottom: 0,\n // Doing the other way around crash on IE 11 \"''\" https://github.com/cssinjs/jss/issues/242\n content: '\"\\\\00a0\"',\n position: 'absolute',\n right: 0,\n transition: theme.transitions.create('border-bottom-color', {\n duration: theme.transitions.duration.shorter,\n }),\n pointerEvents: 'none', // Transparent to the hover style.\n },\n '&:hover:not($disabled):not($focused):not($error):before': {\n borderBottom: `2px solid ${theme.palette.text.primary}`,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n borderBottom: `1px solid ${bottomLineColor}`,\n }\n },\n '&$disabled:before': {\n borderBottomStyle: 'dotted',\n }\n },\n error: {\n '&:after': {\n backgroundColor: theme.palette.error.main,\n transform: 'scaleX(1)', // error is always underlined in red\n }\n },\n chip: {\n margin: '0 8px 8px 0',\n float: 'left',\n },\n marginDense: {},\n }\n}\n\nconst keyCodes = {\n BACKSPACE: 8,\n DELETE: 46,\n LEFT_ARROW: 37,\n RIGHT_ARROW: 39,\n};\n\nclass ChipInput extends React.Component {\n state = {\n chips: [],\n errorText: undefined,\n focusedChip: null,\n inputValue: '',\n isClean: true,\n isFocused: false,\n chipsUpdated: false,\n prevPropsValue: [],\n };\n\n constructor(props) {\n super(props);\n if (props.defaultValue) {\n this.state.chips = props.defaultValue;\n }\n this.labelRef = React.createRef();\n this.input = React.createRef();\n }\n\n componentDidMount() {\n if (this.props.variant === 'outlined') {\n this.labelNode = ReactDOM.findDOMNode(this.labelRef.current);\n this.forceUpdate();\n }\n }\n\n componentWillUnmount() {\n clearTimeout(this.inputBlurTimeout);\n }\n\n static getDerivedStateFromProps(props, state) {\n let newState = null;\n\n if (props.value && props.value.length !== state.prevPropsValue.length) {\n newState = {prevPropsValue: props.value};\n if (props.clearInputValueOnChange) {\n newState.inputValue = '';\n }\n }\n\n // if change detection is only needed for clearInputValueOnChange\n if (props.clearInputValueOnChange && props.value && props.value.length !== state.prevPropsValue.length) {\n newState = {prevPropsValue: props.value, inputValue: ''};\n }\n\n if (props.disabled) {\n newState = {...newState, focusedChip: null};\n }\n\n if (!state.chipsUpdated && props.defaultValue) {\n newState = {...newState, chips: props.defaultValue};\n }\n\n return newState;\n }\n\n /**\n * Blurs this component.\n * @public\n */\n blur() {\n if (this.input) {\n this.actualInput.blur();\n }\n }\n\n /**\n * Focuses this component.\n * @public\n */\n focus = () => {\n this.actualInput.focus();\n if (this.state.focusedChip) {\n this.setState({focusedChip: null});\n }\n }\n\n handleInputBlur = event => {\n if (this.props.onBlur) {\n this.props.onBlur(event);\n }\n this.setState({ isFocused: false });\n if (this.state.focusedChip) {\n this.setState({ focusedChip: null });\n }\n const value = event.target.value;\n let addChipOptions;\n switch (this.props.blurBehavior) {\n case 'add-or-clear':\n addChipOptions = { clearInputOnFail: true };\n // falls through\n case 'add':\n if (this.props.delayBeforeAdd) {\n // Let's assume that we only want to add the existing content as chip, when\n // another event has not added a chip within 200ms .\n // e.g. onSelection Callback in Autocomplete case\n const numChipsBefore = (this.props.value || this.state.chips).length;\n this.inputBlurTimeout = setTimeout(() => {\n const numChipsAfter = (this.props.value || this.state.chips).length;\n if (numChipsBefore === numChipsAfter) {\n this.handleAddChip(value, addChipOptions);\n } else {\n this.clearInput();\n }\n }, 150);\n } else {\n this.handleAddChip(value, addChipOptions);\n }\n break;\n\n case 'clear':\n this.clearInput();\n break;\n\n default:\n break;\n }\n }\n\n handleInputFocus = event => {\n this.setState({ isFocused: true });\n if (this.props.onFocus) {\n this.props.onFocus(event);\n }\n }\n\n handleKeyDown = event => {\n const { focusedChip } = this.state;\n this._keyPressed = false;\n this._preventChipCreation = false;\n\n if (this.props.onKeyDown) {\n // Needed for arrow controls on menu in autocomplete scenario\n this.props.onKeyDown(event);\n // Check if the callback marked the event as isDefaultPrevented() and skip further actions\n // enter key for example should not always add the current value of the inputField\n if (event.isDefaultPrevented()) {\n return;\n }\n }\n const chips = this.props.value || this.state.chips;\n if (this.props.newChipKeyCodes.includes(event.keyCode) || this.props.newChipKeys.includes(event.key)) {\n const result = this.handleAddChip(event.target.value);\n if (result !== false) {\n event.preventDefault();\n }\n return;\n }\n\n switch (event.keyCode) {\n case keyCodes.BACKSPACE:\n if (event.target.value === '') {\n if (focusedChip) {\n this.handleDeleteChip(chips[focusedChip], focusedChip);\n if (focusedChip) {\n this.setState({focusedChip: focusedChip - 1});\n }\n } else {\n this.setState({focusedChip: chips.length - 1});\n }\n }\n break;\n case keyCodes.DELETE:\n if (event.target.value === '' && focusedChip) {\n this.handleDeleteChip(chips[focusedChip], focusedChip);\n if (focusedChip <= chips.length - 1) {\n this.setState({ focusedChip });\n }\n }\n break;\n case keyCodes.LEFT_ARROW:\n if (focusedChip == null && event.target.value === '' && chips.length) {\n this.setState({ focusedChip: chips.length - 1 });\n } else if (focusedChip != null && focusedChip > 0) {\n this.setState({ focusedChip: focusedChip - 1 });\n }\n break;\n case keyCodes.RIGHT_ARROW:\n if (focusedChip != null && focusedChip < chips.length - 1) {\n this.setState({ focusedChip: focusedChip + 1 });\n } else {\n this.setState({ focusedChip: null });\n }\n break;\n default:\n this.setState({ focusedChip: null });\n break;\n }\n }\n\n handleKeyUp = event => {\n if (!this._preventChipCreation && (this.props.newChipKeyCodes.indexOf(event.keyCode) >= 0 || this.props.newChipKeys.indexOf(event.key) >= 0) && this._keyPressed) {\n this.clearInput();\n } else {\n this.updateInput(event.target.value);\n }\n if (this.props.onKeyUp) {\n this.props.onKeyUp(event);\n }\n }\n\n handleKeyPress = event => {\n this._keyPressed = true;\n if (this.props.onKeyPress) {\n this.props.onKeyPress(event);\n }\n }\n\n handleUpdateInput = e => {\n if (this.props.inputValue == null) {\n this.updateInput(e.target.value);\n }\n\n if (this.props.onUpdateInput) {\n this.props.onUpdateInput(e);\n }\n }\n\n /**\n * Handles adding a chip.\n * @param {string|object} chip Value of the chip, either a string or an object (if dataSourceConfig is set)\n * @param {object=} options Additional options\n * @param {boolean=} options.clearInputOnFail If `true`, and `onBeforeAdd` returns `false`, clear the input\n * @returns True if the chip was added (or at least `onAdd` was called), false if adding the chip was prevented\n */\n handleAddChip(chip, options) {\n if (this.props.onBeforeAdd && !this.props.onBeforeAdd(chip)) {\n this._preventChipCreation = true;\n if (options && options.clearInputOnFail) {\n this.clearInput();\n }\n return false;\n }\n this.clearInput();\n const chips = this.props.value || this.state.chips;\n\n if (this.props.dataSourceConfig) {\n if (typeof chip === 'string') {\n chip = {\n [this.props.dataSourceConfig.text]: chip,\n [this.props.dataSourceConfig.value]: chip\n };\n }\n\n if (this.props.allowDuplicates || !chips.some(c => c[this.props.dataSourceConfig.value] === chip[this.props.dataSourceConfig.value])) {\n if (this.props.value && this.props.onAdd) {\n this.props.onAdd(chip);\n } else {\n this.updateChips([...this.state.chips, chip]);\n }\n }\n return true;\n }\n\n if (chip.trim().length > 0) {\n if (this.props.allowDuplicates || !chips.includes(chip)) {\n if (this.props.value && this.props.onAdd) {\n this.props.onAdd(chip);\n } else {\n this.updateChips([...this.state.chips, chip]);\n }\n }\n return true;\n }\n return false;\n }\n\n handleDeleteChip(chip, i) {\n if (!this.props.value) {\n const chips = this.state.chips.slice();\n const changed = chips.splice(i, 1); // remove the chip at index i\n if (changed) {\n let focusedChip = this.state.focusedChip;\n if (this.state.focusedChip === i) {\n focusedChip = null;\n } else if (this.state.focusedChip > i) {\n focusedChip = this.state.focusedChip - 1;\n }\n this.updateChips(chips, { focusedChip });\n }\n } else if (this.props.onDelete) {\n this.props.onDelete(chip, i);\n }\n }\n\n updateChips(chips, additionalUpdates = {}) {\n this.setState({ chips, chipsUpdated: true, ...additionalUpdates });\n if (this.props.onChange) {\n this.props.onChange(chips);\n }\n }\n\n /**\n * Clears the text field for adding new chips.\n * This only works in uncontrolled input mode, i.e. if the inputValue prop is not used.\n * @public\n */\n clearInput() {\n this.updateInput('');\n }\n\n updateInput(value) {\n this.setState({ inputValue: value });\n }\n\n /**\n * Set the reference to the actual input, that is the input of the Input.\n * @param {object} ref - The reference\n */\n setActualInputRef = ref => {\n this.actualInput = ref;\n this.props.inputRef && this.props.inputRef(ref);\n }\n\n render() {\n const {\n allowDuplicates,\n alwaysShowPlaceholder,\n blurBehavior,\n children,\n chipRenderer = defaultChipRenderer,\n classes,\n className,\n clearInputValueOnChange,\n dataSource,\n dataSourceConfig,\n defaultValue,\n delayBeforeAdd,\n disabled,\n disableUnderline,\n error,\n filter,\n FormHelperTextProps,\n fullWidth,\n fullWidthInput,\n helperText,\n id,\n InputProps = {},\n inputRef,\n InputLabelProps = {},\n inputValue,\n label,\n newChipKeyCodes,\n newChipKeys,\n onBeforeAdd,\n onAdd,\n onBlur,\n onDelete,\n onChange,\n onFocus,\n onKeyDown,\n onKeyPress,\n onKeyUp,\n onUpdateInput,\n placeholder,\n readOnly,\n required,\n rootRef,\n value,\n variant,\n ...other\n } = this.props;\n\n const chips = value || this.state.chips || [];\n const actualInputValue = inputValue != null ? inputValue : this.state.inputValue;\n\n const hasInput = (this.props.value || actualInputValue).length || actualInputValue.length;\n const shrinkFloatingLabel = InputLabelProps.shrink != null\n ? InputLabelProps.shrink\n : (label != null && (hasInput || this.state.isFocused || chips.length));\n\n const chipComponents = chips.map((chip, i) => {\n const value = dataSourceConfig ? chip[dataSourceConfig.value] : chip;\n return chipRenderer(\n {\n value,\n text: dataSourceConfig ? chip[dataSourceConfig.text] : chip,\n chip,\n isDisabled: !!disabled,\n isReadOnly: readOnly,\n isFocused: this.state.focusedChip === i,\n handleClick: () => this.setState({focusedChip: i}),\n handleDelete: () => this.handleDeleteChip(chip, i),\n className: classes.chip\n },\n i\n );\n });\n\n const InputMore = {}\n if (variant === 'outlined') {\n InputMore.notched = shrinkFloatingLabel;\n InputMore.labelWidth =\n (shrinkFloatingLabel && this.labelNode && this.labelNode.offsetWidth) ||\n 0;\n }\n\n if (variant !== 'standard') {\n InputMore.startAdornment = {chipComponents};\n } else {\n InputProps.disableUnderline = true;\n }\n\n const InputComponent = variantComponent[variant];\n\n return 0 ? undefined : required}\n onClick={this.focus}\n disabled={disabled}\n variant={variant}\n {...other}\n >\n {label && \n {label}\n }\n \n {variant === 'standard' && chipComponents}\n \n
\n {helperText && \n {helperText}\n }\n ;\n }\n}\n\nChipInput.propTypes = {\n /** Allows duplicate chips if set to true. */\n allowDuplicates: PropTypes.bool,\n /** If true, the placeholder will always be visible. */\n alwaysShowPlaceholder: PropTypes.bool,\n /** Behavior when the chip input is blurred: `'clear'` clears the input, `'add'` creates a chip and `'ignore'` keeps the input. */\n blurBehavior: PropTypes.oneOf(['clear', 'add', 'add-or-clear', 'ignore']),\n /** A function of the type `({ value, text, chip, isFocused, isDisabled, isReadOnly, handleClick, handleDelete, className }, key) => node` that returns a chip based on the given properties. This can be used to customize chip styles. Each item in the `dataSource` array will be passed to `chipRenderer` as arguments `chip`, `value` and `text`. If `dataSource` is an array of objects and `dataSourceConfig` is present, then `value` and `text` will instead correspond to the object values defined in `dataSourceConfig`. If `dataSourceConfig` is not set and `dataSource` is an array of objects, then a custom `chipRenderer` must be set. `chip` is always the raw value from `dataSource`, either an object or a string. */\n chipRenderer: PropTypes.func,\n /** Whether the input value should be cleared if the `value` prop is changed. */\n clearInputValueOnChange: PropTypes.bool,\n /** Data source for auto complete. This should be an array of strings or objects. */\n dataSource: PropTypes.array,\n /** Config for objects list dataSource, e.g. `{ text: 'text', value: 'value' }`. If not specified, the `dataSource` must be a flat array of strings or a custom `chipRenderer` must be set to handle the objects. */\n dataSourceConfig: PropTypes.shape({\n text: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n }),\n /** The chips to display by default (for uncontrolled mode). */\n defaultValue: PropTypes.array,\n /** Whether to use `setTimeout` to delay adding chips in case other input events like `onSelection` need to fire first */\n delayBeforeAdd: PropTypes.bool,\n /** Disables the chip input if set to true. */\n disabled: PropTypes.bool,\n /** Disable the input underline. Only valid for 'standard' variant */\n disableUnderline: PropTypes.bool,\n /** Props to pass through to the `FormHelperText` component. */\n FormHelperTextProps: PropTypes.object,\n /** If true, the chip input will fill the available width. */\n fullWidth: PropTypes.bool,\n /** If true, the input field will always be below the chips and fill the available space. By default, it will try to be beside the chips. */\n fullWidthInput: PropTypes.bool,\n /** Helper text that is displayed below the input. */\n helperText: PropTypes.node,\n /** Props to pass through to the `InputLabel`. */\n InputLabelProps: PropTypes.object,\n /** Props to pass through to the `Input`. */\n InputProps: PropTypes.object,\n /** Use this property to pass a ref callback to the native input component. */\n inputRef: PropTypes.func,\n /** The input value (enables controlled mode for the text input if set). */\n inputValue: PropTypes.string,\n /* The content of the floating label. */\n label: PropTypes.node,\n /** The key codes (`KeyboardEvent.keyCode`) used to determine when to create a new chip. */\n newChipKeyCodes: PropTypes.arrayOf(PropTypes.number),\n /** The keys (`KeyboardEvent.key`) used to determine when to create a new chip. */\n newChipKeys: PropTypes.arrayOf(PropTypes.string),\n /** Callback function that is called when a new chip was added (in controlled mode). */\n onAdd: PropTypes.func,\n /** Callback function that is called with the chip to be added and should return true to add the chip or false to prevent the chip from being added without clearing the text input. */\n onBeforeAdd: PropTypes.func,\n /** Callback function that is called when the chips change (in uncontrolled mode). */\n onChange: PropTypes.func,\n /** Callback function that is called when a new chip was removed (in controlled mode). */\n onDelete: PropTypes.func,\n /** Callback function that is called when the input changes. */\n onUpdateInput: PropTypes.func,\n /** A placeholder that is displayed if the input has no values. */\n placeholder: PropTypes.string,\n /** Makes the chip input read-only if set to true. */\n readOnly: PropTypes.bool,\n /** The chips to display (enables controlled mode if set). */\n value: PropTypes.array,\n /** The variant of the Input component */\n variant: PropTypes.oneOf(['outlined', 'standard', 'filled'])\n}\n\nChipInput.defaultProps = {\n allowDuplicates: false,\n blurBehavior: 'clear',\n clearInputValueOnChange: false,\n delayBeforeAdd: false,\n disableUnderline: false,\n newChipKeyCodes: [13],\n newChipKeys: ['Enter'],\n variant: 'standard'\n};\n\nexport default withStyles(styles, {name: 'WAMuiChipInput'})(ChipInput);\n\nexport const defaultChipRenderer = ({\n value,\n text,\n isFocused,\n isDisabled,\n isReadOnly,\n handleClick,\n handleDelete,\n className\n}, key) =>\n ;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n },\n notAlive: {\n color: '#a30000'\n },\n});\n\nclass ConfigAlive extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n const instance = this.getInstance();\n\n this.props.socket.getState(instance + '.alive')\n .then(state => this.setState({alive: !!(state && state.val), instance}));\n }\n\n getInstance() {\n let instance = this.props.schema.instance || (this.props.adapterName + '.' + this.props.instance);\n if (instance.includes('${')) {\n instance = this.getPattern(instance);\n }\n if (instance && !instance.startsWith('system.adapter.')) {\n instance = 'system.adapter.' + instance;\n }\n return instance;\n }\n\n renderItem() {\n if (this.getInstance() !== this.state.instance) {\n setTimeout(() => {\n const instance = this.getInstance();\n if (instance) {\n this.props.socket.getState(instance + '.alive')\n .then(state => this.setState({alive: !!(state && state.val), instance}));\n } else {\n this.setState({alive: null, instance})\n }\n }, 200);\n }\n\n if (this.state.alive !== false && this.state.alive !== true) {\n return null;\n }\n\n const instance = this.state.instance.replace(/^system.adapter./, '');\n return
\n {this.state.alive ?\n this.props.schema.textAlive !== undefined ? (this.props.schema.textAlive ? I18n.t(this.props.schema.textAlive, instance) : '') : I18n.t('ra_Instance %s is alive', instance)\n :\n this.props.schema.textNotAlive !== undefined ? (this.props.schema.textNotAlive ? I18n.t(this.props.schema.textNotAlive, instance) : '') : I18n.t('ra_Instance %s is not alive', instance)\n }\n
;\n }\n}\n\nConfigAlive.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n};\n\nexport default withStyles(styles)(ConfigAlive);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocomplete extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions = this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)));\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n // eslint-disable-next-line\n item = this.state.value !== null && this.state.value !== undefined && options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n }\n\n return {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n options={options}\n getOptionLabel={option => (option && option.label) || ''}\n renderInput={params => }\n />;\n }\n}\n\nConfigAutocomplete.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocomplete);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigAutocompleteSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const selectOptions = this.props.schema.options ?\n this.props.schema.options.map(item => typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item)))\n :\n [];\n\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.command || 'send', data)\n .then(list => {\n if (list && Array.isArray(list)) {\n list.forEach(item =>\n selectOptions.push(typeof item === 'string' ? {label: item, value: item} : JSON.parse(JSON.stringify(item))));\n }\n\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions, context: this.getContext()});\n } else {\n this.setState({value, selectOptions, context: this.getContext()});\n }\n });\n } else {\n // if __different\n if (Array.isArray(value)) {\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n }\n\n getContext() {\n const context = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n return JSON.stringify(context);\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => this.askInstance(), 300);\n }\n }\n\n let item;\n let options = JSON.parse(JSON.stringify(this.state.selectOptions));\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_LABEL;\n\n if (isIndeterminate) {\n [...this.state.value]\n .filter(val => !options.find(it => it.value === val))\n .forEach(item => options.push({label: item.toString(), value: item}));\n\n item = {label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE};\n options.unshift(item);\n } else {\n item = this.state.value !== null && this.state.value !== undefined &&\n //eslint-disable-next-line\n options.find(item => item.value == this.state.value); // let \"==\" be and not ===\n\n if (this.state.value !== null && this.state.value !== undefined && !item) {\n item = {value: this.state.value, label: this.state.value};\n options.push(item);\n }\n item = item || null;\n }\n\n if (!options.length) {\n return {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n } else {\n return (option && option.label) || ''}\n className={this.props.classes.indeterminate}\n onInputChange={e => {\n if (e) {\n const val = e.target.value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }\n }}\n onChange={(_, value) => {\n const val = typeof value === 'object' ? (value ? value.value : '') : value;\n if (val !== this.state.value) {\n this.setState({value: val}, () => this.onChange(this.props.attr, val));\n }\n }}\n renderInput={(params) =>\n }\n />;\n }\n }\n}\n\nConfigAutocompleteSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigAutocompleteSendTo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport { Button, TextField } from '@mui/material';\n\nimport DialogCron from '../..//Dialogs/Cron';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n flex: {\n display: 'flex'\n },\n button: {\n height: 48,\n marginLeft: 4,\n minWidth: 48,\n }\n});\n\nclass ConfigCRON extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || '';\n this.setState({ value});\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema, attr } = this.props;\n const { value, showDialog } = this.state;\n\n return \n {this.getText(schema.label)}\n
\n {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(attr, value))\n }}\n />\n this.setState({ showDialog: true })}\n >...\n
\n {showDialog ? this.setState({ showDialog: false })}\n cancel={I18n.t('ra_Cancel')}\n ok={I18n.t('ra_Ok')}\n onOk={value =>\n this.setState({ showDialog: false, value }, () =>\n this.onChange(attr, value))}\n /> : null}\n
;\n }\n}\n\nConfigCRON.propTypes = {\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n};\n\nexport default withStyles(styles)(ConfigCRON);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport I18n from '../../i18n';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigCertificateSelect extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let selectOptions = await this.props.socket.getCertificates();\n\n selectOptions = selectOptions\n .filter(el => {\n const name = this.props.attr.toLowerCase();\n\n if (name.includes(el.type)) {\n return true;\n } else if (el.type === 'public' && name.includes('cert')) {\n return true;\n } else if (el.type === 'private' && (name.includes('priv') || name.includes('key'))) {\n return true;\n } else if (el.type === 'chained' && (name.includes('chain') || name.includes('ca'))) {\n return true;\n }\n\n return false;\n })\n .map(el => ({label: el.name, value: el.name}));\n\n selectOptions.unshift({label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE});\n\n this.setState({value, selectOptions});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n // eslint-disable-next-line\n const item = this.state.selectOptions?.find(item => item.value === this.state.value);\n\n return \n {this.getText(this.props.schema.label)}\n this.getText(item?.label, this.props.schema.noTranslation !== false)}\n onChange={e =>\n this.setState({ value: e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value))}\n >\n {this.state.selectOptions?.map(item =>\n {\n this.getText(item.label, this.props.schema.noTranslation !== false)\n })}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigCertificateSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCertificateSelect);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport Checkbox from '@mui/material/Checkbox';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport I18n from '../../i18n';\n\nconst styles = theme => ({\n error: {\n color: 'red'\n }\n});\n\nclass ConfigCheckbox extends ConfigGeneric {\n renderItem(error, disabled) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let isIndeterminate = Array.isArray(value);\n\n return \n {\n e.preventDefault();\n e.stopPropagation();\n this.onChange(this.props.attr, !value);\n }}\n control={ {\n if (isIndeterminate) {\n this.onChange(this.props.attr, true);\n } else {\n this.onChange(this.props.attr, e.target.checked);\n }\n }}\n disabled={!!disabled}\n />}\n label={this.getText(this.props.schema.label)}\n />\n {\n error ? (this.props.schema.validatorErrorText ? I18n.t(this.props.schema.validatorErrorText) : I18n.t('ra_Error')) :\n null}\n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n \n }\n}\n\nConfigCheckbox.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCheckbox);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ChipInput from './ChipInput';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigLanguage extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr);\n if (this.props.schema.delimiter && typeof value === 'string') {\n const parts = value.split(this.props.schema.delimiter).map(a => a.trim()).filter(a => a);\n this.setState({ value: parts });\n } else {\n this.setState({ value: value || [] });\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const { attr,schema } = this.props;\n const { value } = this.state;\n return \n {\n const newValue = JSON.parse(JSON.stringify(value));\n newValue.push(chip);\n this.setState({ value: newValue, prevValue: '' }, () => {\n if (this.props.schema.delimiter) {\n this.onChange(attr, newValue.join(this.props.schema.delimiter + ' '));\n } else {\n this.onChange(attr, newValue);\n }\n });\n }}\n onDelete={(chip, index) => {\n const newValue = JSON.parse(JSON.stringify(value));\n newValue.splice(index, 1);\n this.setState({ value: newValue, prevValue: '' }, () => {\n if (this.props.schema.delimiter) {\n this.onChange(attr, newValue.join(this.props.schema.delimiter + ' '));\n } else {\n this.onChange(attr, newValue);\n }\n });\n }}\n />\n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigLanguage.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigLanguage);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {withStyles} from '@mui/styles';\nimport { ChromePicker } from 'react-color';\n\nimport IconButton from '@mui/material/IconButton';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\n\nimport ClearIcon from '@mui/icons-material/Close';\n\nimport Utils from '../Utils';\nimport ColorPicker from '../ColorPicker';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({});\n\nclass ConfigColor extends ConfigGeneric {\n renderColorDialog() {\n return !!this.state.showColorDialog && this.setState({showColorDialog: false})}\n open={this.state.showColorDialog}>\n {\n this.setState({colorDialogValue: value}, () =>\n this.onChange(this.props.attr, ColorPicker.getColor(this.state.colorDialogValue, true)));\n }}\n />\n ;\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n let textColor = Utils.isUseBright(value, null);\n if (textColor === null) {\n textColor = undefined;\n }\n return <>\n { this.renderColorDialog() }\n this.setState({showColorDialog: true, colorDialogValue: value})}\n onChange={e => {\n const color = e.target.value;\n this.onChange(this.props.attr, color);\n }}\n inputProps={{\n style: {\n //paddingLeft: noPadding ? 0 : 8,\n backgroundColor: value,\n color: textColor ? '#FFF' : '#000'\n }\n }}\n InputProps={{\n endAdornment: value ?\n {\n e.stopPropagation();\n this.onChange(this.props.attr, '');\n }}>\n \n \n : undefined,\n }}\n InputLabelProps={{shrink: true}}\n />\n ;\n }\n}\n\nConfigColor.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigColor);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport Fab from '@mui/material/Fab';\n\nimport IconGpsFixed from '@mui/icons-material/GpsFixed';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n width: {\n width: 'calc(100% - 40px)',\n }\n});\n\nclass ConfigCoordinates extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value && this.props.schema.autoInit) {\n setTimeout(() => this.getCoordinates(), 300);\n }\n }\n\n getSystemCoordinates() {\n return this.props.socket.getSystemConfig()\n .then(obj => {\n if (obj && obj.common && (obj.common.longitude || obj.common.latitude)) {\n window.alert(I18n.t('ra_Used system settings'));\n this.setState({ value: obj.common.latitude + (this.props.schema.divider || ',') + obj.common.longitude });\n } else {\n window.alert(I18n.t('ra_Cannot determine position: System settings are empty and GPS detection is disabled in browser'));\n }\n });\n }\n\n getCoordinates() {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n if (position && position.coords) {\n this.setState({value: position.coords.latitude + (this.props.schema.divider || ',') + position.coords.longitude});\n } else {\n this.getSystemCoordinates();\n }\n },\n error => {\n this.getSystemCoordinates();\n }\n );\n } else {\n this.getSystemCoordinates();\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n return <>\n {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n this.getCoordinates()}>\n ;\n }\n}\n\nConfigCoordinates.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigCoordinates);","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport LinearProgress from '@mui/material/LinearProgress';\nimport Grid from '@mui/material/Grid';\n\nimport i18n from '../../i18n';\nconst getOrLoadRemote = (remote, shareScope, remoteFallbackUrl = undefined) =>\n new Promise((resolve, reject) => {\n // check if remote exists on window\n if (!window[remote]) {\n // search dom to see if remote tag exists, but might still be loading (async)\n const existingRemote = document.querySelector(`script[data-webpack=\"${remote}\"]`);\n // when remote is loaded.\n const onload = async () => {\n // check if it was initialized\n if (window[remote]) {\n if (!window[remote].__initialized) {\n // if share scope doesn't exist (like in webpack 4) then expect shareScope to be a manual object\n if (typeof __webpack_share_scopes__ === 'undefined') {\n // use default share scope object passed in manually\n await window[remote].init(shareScope.default);\n } else {\n // otherwise, init share scope as usual\n // eslint-disable-next-line\n await window[remote].init(__webpack_share_scopes__[shareScope]);\n }\n // mark remote as initialized\n window[remote].__initialized = true;\n }\n } else {\n console.error('Cannot load ' + remote);\n return reject('Cannot load ' + remote);\n }\n // resolve promise so marking remote as loaded\n resolve(window[remote]);\n };\n\n if (existingRemote) {\n // if existing remote but not loaded, hook into its onload and wait for it to be ready\n existingRemote.onload = onload;\n existingRemote.onerror = reject;\n // check if remote fallback exists as param passed to function\n // TODO: should scan public config for a matching key if no override exists\n } else if (remoteFallbackUrl) {\n // inject remote if a fallback exists and call the same onload function\n const d = document;\n const script = d.createElement('script');\n script.type = 'text/javascript';\n // mark as data-webpack so runtime can track it internally\n script.setAttribute('data-webpack', `${remote}`);\n script.async = true;\n script.onerror = reject;\n script.onload = onload;\n script.src = remoteFallbackUrl;\n d.getElementsByTagName('head')[0].appendChild(script);\n } else {\n // no remote and no fallback exist, reject\n reject(`Cannot Find Remote ${remote} to inject`);\n }\n } else {\n // remote already instantiated, resolve\n resolve(window[remote]);\n }\n });\n\nconst loadComponent = (remote, sharedScope, module, url) => async () => {\n const container = await getOrLoadRemote(remote, sharedScope, url);\n const factory = await container.get(module);\n const Module = factory();\n return Module;\n};\n\nclass ConfigCustom extends Component {\n constructor(props) {\n super(props);\n // schema.url - location of Widget\n // schema.name - Component name\n // schema.i18n - i18n\n\n this.state = {\n Component: null,\n error: '',\n };\n }\n\n // load component dynamically\n async componentDidMount() {\n if (!this.props.schema.url) {\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: 'URL is empty. Cannot load custom component!' });\n return;\n }\n\n let url;\n if (this.props.schema.url.startsWith('http:') || this.props.schema.url.startsWith('https:')) {\n url = this.props.schema.url;\n } else if (this.props.schema.url.startsWith('./')) {\n url = `${window.location.protocol}//${window.location.host}${this.props.schema.url.replace(/^\\./, '')}`;\n } else {\n url = `${window.location.protocol}//${window.location.host}/adapter/${this.props.adapterName}/${this.props.schema.url}`;\n }\n\n if (this.props.schema.i18n === true) {\n // load i18n from files\n const pos = url.lastIndexOf('/');\n let i18nURL;\n if (pos !== -1) {\n i18nURL = url.substring(0, pos);\n } else {\n i18nURL = url;\n }\n const lang = i18n.getLanguage();\n const file = `${i18nURL}/i18n/${lang}.json`;\n\n await fetch(file)\n .then(data => data.json())\n .then(json => i18n.extendTranslations(json, lang))\n .catch(error => console.log(`Cannot load i18n \"${file}\": ${error}`));\n } else if (this.props.schema.i18n && typeof this.props.schema.i18n === 'object') {\n try {\n i18n.extendTranslations(this.props.schema.i18n);\n } catch (error) {\n console.error(`Cannot import i18n: ${error}`);\n }\n }\n\n try {\n const [uniqueName, fileToLoad, ...componentName] = this.props.schema.name.split('/');\n console.log(uniqueName, fileToLoad, componentName.join('/'));\n // const component = await window.importFederation(uniqueName, {url, format: 'esm', from: 'vite'}, fileToLoad);\n const component = (await loadComponent(uniqueName, 'default', `./${fileToLoad}`, url)()).default;\n\n if (!component || !component || !component[componentName.join('/')]) {\n const keys = Object.keys(component || {});\n console.error('URL is empty. Cannot load custom component!');\n this.setState({ error: `Component ${this.props.schema.name} not found in ${this.props.schema.url}. Found: ${keys.join(', ')}` });\n } else {\n this.setState({ Component: component[componentName.join('/')] });\n }\n } catch (error) {\n this.setState({ error: `Cannot import from ${this.props.schema.url}: ${error}` });\n }\n }\n\n render() {\n const Component = this.state.Component;\n\n // render temporary placeholder\n if (!Component) {\n if (this.state.error) {\n return;\n } else {\n const schema = this.props.schema || {};\n\n const item = \n {this.state.error ?
{this.state.error}
: }\n ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n ;\n } else {\n return item;\n }\n }\n }\n\n return ;\n }\n}\n\nConfigCustom.propTypes = {\n socket: PropTypes.object,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n attr: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object.isRequired,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default ConfigCustom;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { DatePicker } from '@mui/x-date-pickers';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigDatePicker extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n InputLabelProps={{\n shrink: true,\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n}\n\nConfigDatePicker.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigDatePicker);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconText from '@mui/icons-material/Article';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconCode from '@mui/icons-material/Code';\nimport IconPlay from '@mui/icons-material/PlayArrow';\n\nimport FileSelectDialog from '../../Dialogs/FileSelect';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigFileSelector from './ConfigFileSelector';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 69px)',\n marginRight: 4,\n },\n fullWidthIcon: {\n width: 'calc(100% - 119px)',\n marginRight: 4,\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFile extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return { value };\n } else {\n return null;\n }\n }\n\n loadFile() {\n const pos = this.state.value.indexOf('/');\n if (pos !== -1) {\n const adapter = this.state.value.substring(0, pos);\n const path = this.state.value.substring(pos + 1);\n return this.props.socket.readFile(adapter, path, true);\n }\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon() {\n const extension = this.state.value.split('.').pop().toLowerCase();\n if (IMAGE_EXT.includes(extension)) {\n return
;\n } else if (AUDIO_EXT.includes(extension)) {\n return this.play()}>;\n } else if (DOC_EXT.includes(extension)) {\n return ;\n } else if (VIDEO_EXT.includes(extension)) {\n return ;\n } else if (JS_EXT.includes(extension)) {\n return ;\n }\n return null;\n }\n\n renderFileBrowser() {\n if (!this.state.showFileBrowser) {\n return null;\n } else {\n return this.setState({ showFileBrowser: false})}\n onOk={value => {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n selectOnlyFolders={this.props.schema.selectOnlyFolders}\n allowUpload={this.props.schema.allowUpload}\n allowDownload={this.props.schema.allowDownload}\n allowCreateFolder={this.props.schema.allowCreateFolder}\n allowView={this.props.schema.allowView}\n showToolbar={this.props.schema.showToolbar}\n limitPath={this.props.schema.limitPath}\n />;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const icon = this.getIcon();\n\n return
\n {icon}\n {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n \n {this.renderFileBrowser()}\n
;\n }\n}\n\nConfigFile.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFile);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport Dropzone from 'react-dropzone';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport IconButton from '@mui/material/IconButton';\nimport ListItemText from '@mui/material/ListItemText';\nimport ListItemIcon from '@mui/material/ListItemIcon';\n\nimport IconRefresh from '@mui/icons-material/Refresh';\nimport IconUpload from '@mui/icons-material/UploadFile';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconPlay from '@mui/icons-material/PlayArrow';\nimport IconAudio from '@mui/icons-material/MusicNote';\nimport IconVideo from '@mui/icons-material/Videocam';\nimport IconText from '@mui/icons-material/Article';\nimport IconCode from '@mui/icons-material/Code';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\nimport Utils from '../../Components/Utils';\nimport I18n from '../../i18n';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n fullWidthOneButton: {\n width: 'calc(100% - 42px)'\n },\n fullWidthTwoButtons: {\n width: 'calc(100% - 84px)'\n },\n fullWidthThreeButtons: {\n width: 'calc(100% - 126x)'\n },\n dropZone: {\n width: '100%',\n height: '100%',\n position: 'absolute',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: '100%',\n height: '100%',\n position: 'absolute',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n error: {\n border: '2px solid red'\n },\n deleteButton: {\n\n },\n selectedImage: {\n height: 40,\n width: 40,\n display: 'inline-block',\n marginRight: 8,\n }\n});\n\nconst IMAGE_EXT = ['jpg', 'jpeg', 'svg', 'png', 'webp'];\nconst AUDIO_EXT = ['mp3', 'ogg', 'wav', 'aac'];\nconst VIDEO_EXT = ['avi', 'mp4', 'mov'];\nconst DOC_EXT = ['txt', 'log', 'html', 'htm'];\nconst JS_EXT = ['json', 'js', 'ts'];\n\nclass ConfigFileSelector extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.dropzoneRef = React.createRef();\n this.imagePrefix = this.props.imagePrefix === undefined ? './files' : this.props.imagePrefix;\n }\n\n componentDidMount() {\n super.componentDidMount();\n\n this.objectID = (this.props.schema.objectID || '0_userdata.0').replace('%INSTANCE%', this.props.instance);\n this.path = this.props.schema.upload;\n if (this.path) {\n if (this.path === '/') {\n this.path = '';\n } else {\n if (!this.path.endsWith('/')) {\n this.path = this.path + '/';\n }\n }\n }\n\n // read files\n this.updateFiles()\n .then(() => {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n });\n }\n\n updateFiles() {\n return this.readFiles(this.props.schema.pattern)\n .then(files => this.setState({ files }));\n }\n\n async readFolder(folderName, files, filter) {\n try {\n const dirFiles = await this.props.socket.readDir(this.objectID, folderName.replace(/^\\//, '') || null);\n for (let f = 0; f < dirFiles.length; f++) {\n const file = dirFiles[f];\n if (file.isDir) {\n // read it\n await this.readFolder(`${folderName + file.file}/`, files, filter);\n } else {\n let ok = false;\n if (filter === '*.*' && file.file.includes('.')) {\n ok = true;\n } else if (!filter || filter === '*') {\n ok = true;\n } else if (filter === '.*' && file.file.startsWith('.')) {\n ok = true;\n } else {\n const regExp = new RegExp('^' + filter.replace(/\\./g, '\\\\.').replace(/\\*/g,'.*') + '$');\n ok = regExp.test(file.file);\n }\n\n ok && files.push({ name: folderName + file.file, size: file.stats ? Utils.formatBytes(file.stats.size) : '--' })\n }\n }\n } catch (e) {\n console.error(`Cannot read \"${folderName}\": ${e}`);\n }\n\n return files;\n }\n\n async readFiles(pattern) {\n const files = [];\n pattern = pattern || this.props.schema.pattern;\n if (!pattern) {\n pattern = '**/*.*';\n }\n let filter;\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n filter = pattern;\n } else {\n filter = pattern.substring(pos + 1);\n }\n\n if (pattern.startsWith('**')) {\n // read all folders\n await this.readFolder('/', files, filter);\n } else {\n const pos = pattern.lastIndexOf('/');\n if (pos === -1) {\n await this.readFolder('/', files, filter);\n } else {\n const folder = pattern.substring(0, pos + 1);\n await this.readFolder(folder, files, filter);\n }\n }\n\n return files;\n }\n\n onDrop(acceptedFiles) {\n const file = acceptedFiles[0];\n const reader = new FileReader();\n const maxSize = this.props.schema.maxSize || (2 * 1024 * 1024);\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(I18n.t('File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n this.props.socket.writeFile64(this.objectID, this.path + file.name, base64)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot upload file: ' + e));\n };\n reader.readAsArrayBuffer(file);\n }\n\n renderDeleteDialog() {\n if (!this.state.deleteFile) {\n return null;\n }\n return {\n const deleteFile = this.state.deleteFile;\n this.setState({deleteFile: false}, () => {\n if (isOk) {\n this.props.socket.deleteFile(this.objectID, deleteFile)\n .then(() => this.updateFiles())\n .catch(e => window.alert('Cannot delete file: ' + e));\n }\n });\n }}\n />;\n }\n\n static base64ToArrayBuffer(base64) {\n const binaryString = window.atob(base64);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n loadFile() {\n return this.props.socket.readFile(this.objectID, this.state.value, true);\n }\n\n play() {\n this.loadFile()\n .then(data => {\n if (typeof AudioContext !== 'undefined') {\n const context = new AudioContext();\n const buf = ConfigFileSelector.base64ToArrayBuffer(data.file);\n context.decodeAudioData(buf, buffer => {\n const source = context.createBufferSource(); // creates a sound source\n source.buffer = buffer; // tell the source which sound to play\n source.connect(context.destination); // connect the source to the context's destination (the speakers)\n source.start(0);\n }, err => window.alert('Cannot play: ' + err));\n }\n });\n }\n\n getIcon(item) {\n if (!item || !item.extension) {\n return null;\n }\n if (IMAGE_EXT.includes(item.extension)) {\n return
;\n } else if (AUDIO_EXT.includes(item.extension)) {\n return ;\n } else if (DOC_EXT.includes(item.extension)) {\n return ;\n } else if (VIDEO_EXT.includes(item.extension)) {\n return ;\n } else if (JS_EXT.includes(item.extension)) {\n return ;\n }\n return null;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.files) {\n return null;\n }\n let folders = [];\n if (!this.props.schema.withFolder) {\n this.state.files.forEach(file => {\n const pos = file.name.lastIndexOf('/');\n if (pos === -1) {\n if (!folders.includes('/')) {\n folders.push('/');\n }\n } else {\n const folder = file.name.substring(0, pos + 1);\n if (!folders.includes(folder)) {\n folders.push(folder);\n }\n }\n });\n }\n\n const selectOptions = this.state.files\n .map(file => ({\n value: file.name,\n label: !this.props.schema.withFolder && folders.length === 1 ? `${file.name.substring(folders[0].length)}` : `${file.name}` + (this.props.schema.noSize ? '' : `(${file.size})`),\n extension: file.name.toLowerCase().split('.').pop(),\n }));\n\n if (!this.props.schema.noNone) {\n selectOptions.unshift({label: I18n.t('ra_none'), value: ''});\n }\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value === this.state.value);\n\n let buttons = 0;\n\n if (this.props.schema.upload) {\n buttons++;\n }\n if (this.props.schema.refresh) {\n buttons++;\n }\n let play = this.state.value && (this.state.value.endsWith('.mp3') || this.state.value.endsWith('.ogg') || this.state.value.endsWith('.wav'));\n // show play button\n if (play) {\n buttons++;\n }\n\n const element =
\n \n {this.getText(this.props.schema.label)}\n {\n return <>{this.getIcon(item)}{item?.label || ''}\n }}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {selectOptions.map(item => {\n return \n {this.getIcon(item)}\n {item.label}\n {this.props.schema.delete && item.value ?\n this.setState({deleteFile: item.value})}> : null}\n ;\n })}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n \n { this.props.schema.refresh && this.updateFiles()}> }\n { this.props.schema.upload && this.dropzoneRef.current?.open()}> }\n { play && this.play()}> }\n
;\n\n if (!this.props.schema.upload) {\n return <>{element}{this.renderDeleteDialog()};\n } else {\n let accept = {'*/*': []};\n if (this.props.schema.pattern) {\n const last = this.props.schema.pattern.split('/').pop().toLowerCase().replace(/.*\\./, '');\n if (last === 'png' || last === 'jpg' || last === 'svg') {\n accept = {\n 'image/*': ['.png', '.jpg', '.svg']\n };\n } else if (last === 'mp3' || last === 'ogg' || last === 'wav') {\n accept = {\n 'audio/*': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'ics') {\n accept = {\n 'text/calendar': ['.mp3', '.ogg', '.wav', '.mp4']\n };\n } else if (last === 'txt') {\n accept = {\n 'text/plain': ['.txt']\n };\n } else if (last === 'pem') {\n accept = {\n 'text/plain': ['.pem']\n };\n } else if (last === 'pem') {\n accept = {\n '*/*': ['.' + last]\n };\n }\n }\n\n return {\n this.setState({ uploadFile: 'dragging' });\n }}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || I18n.t('Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => \n \n {this.state.uploadFile === 'dragging' ?
\n
\n \n
{\n this.state.uploadFile === 'dragging' ? I18n.t('ra_Drop file here') :\n I18n.t('ra_Place your files here or click here to open the browse dialog')}
\n
\n
: null}\n {element}\n {this.renderDeleteDialog()}\n
}\n ;\n }\n }\n}\n\nConfigFileSelector.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n imagePrefix: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFileSelector);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('functions')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.functions.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return \n {this.getText(this.props.schema.label)}\n item ? : ''}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {this.state.selectOptions.map(item =>\n \n \n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigFunc.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFunc);","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport Grid from '@mui/material/Grid';\nimport Button from '@mui/material/Button';\n\nimport IconInfo from '@mui/icons-material/Info';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nclass ConfigGeneric extends Component {\n static DIFFERENT_VALUE = '__different__';\n static DIFFERENT_LABEL = 'ra___different__';\n static NONE_VALUE = '';\n static NONE_LABEL = 'ra_none';\n static AsyncFunction = Object.getPrototypeOf(async function(){}).constructor;\n\n constructor(props) {\n super(props);\n\n this.state = {\n confirmDialog: false,\n confirmNewValue: null,\n confirmAttr: null,\n confirmData: null,\n };\n\n this.isError = {};\n\n if (this.props.schema) {\n if (this.props.custom) {\n this.defaultValue = this.props.schema.defaultFunc ? this.executeCustom(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n } else {\n this.defaultValue = this.props.schema.defaultFunc ? this.execute(this.props.schema.defaultFunc, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : this.props.schema.default;\n }\n }\n\n this.lang = I18n.getLanguage();\n }\n\n componentDidMount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n const LIKE_SELECT = ['select', 'autocomplete', 'autocompleteSendTo'];\n // init default value\n if (this.defaultValue !== undefined) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (value === undefined || (LIKE_SELECT.includes(this.props.schema.type) && (value === '' || value === null))) {\n setTimeout(() => {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, this.defaultValue, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, this.defaultValue);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }, 100);\n }\n } else if (this.props.schema.defaultSendTo) {\n this.sendTo();\n }\n }\n\n sendTo() {\n if (this.props.alive) {\n this.defaultSendToDone = true;\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n } else {\n data = {\n attr: this.props.attr,\n value: ConfigGeneric.getValue(this.props.data, this.props.attr),\n };\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.defaultSendTo, data)\n .then(value => {\n if (value !== null && value !== undefined) {\n if (this.props.custom) {\n this.props.onChange(this.props.attr, value, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n //this.onChange(this.props.attr, this.defaultValue);\n } else {\n ConfigGeneric.setValue(this.props.data, this.props.attr, value);\n this.props.onChange(this.props.data, undefined, () =>\n this.props.forceUpdate([this.props.attr], this.props.data));\n }\n }\n });\n } else {\n this.defaultSendToDone = false;\n // show error, that instance does not started\n this.onError(this.props.attr, I18n.t('ra_Instance %s is not alive', this.props.instance));\n }\n }\n\n componentWillUnmount() {\n this.props.registerOnForceUpdate && this.props.registerOnForceUpdate(this.props.attr)\n if (this.sendToTimeout) {\n clearTimeout(this.sendToTimeout);\n this.sendToTimeout = null;\n }\n }\n\n onUpdate = data => {\n const value = ConfigGeneric.getValue(data || this.props.data, this.props.attr) || '';\n if (this.state.value !== value) {\n this.setState({ value });\n } else {\n this.forceUpdate();\n }\n }\n\n static getValue(data, attr) {\n if (typeof attr === 'string') {\n return ConfigGeneric.getValue(data, attr.split('.'));\n } else {\n if (attr.length === 1) {\n return data[attr[0]];\n } else {\n const part = attr.shift();\n if (typeof data[part] === 'object') {\n return ConfigGeneric.getValue(data[part], attr);\n } else {\n return null;\n }\n }\n }\n }\n\n static setValue(data, attr, value) {\n if (typeof attr === 'string') {\n return ConfigGeneric.setValue(data, attr.split('.'), value);\n } else {\n if (attr.length === 1) {\n if (value === null) {\n delete data[attr[0]];\n } else {\n data[attr[0]] = value;\n }\n } else {\n const part = attr.shift();\n if (!data[part] || typeof data[part] === 'object') {\n data[part] = data[part] || {};\n }\n return ConfigGeneric.setValue(data[part], attr, value);\n }\n }\n }\n\n getText(text, noTranslation) {\n if (!text) {\n return '';\n }\n\n if (typeof text === 'string') {\n text = noTranslation ? text : I18n.t(text);\n if (text.includes('${')) {\n return this.getPattern(text);\n } else {\n return text;\n }\n } else if (text && typeof text === 'object') {\n if (text.func) {\n // calculate pattern\n if (typeof text.func === 'object') {\n return this.getPattern(text.func[this.lang] || text.func.en || '');\n } else {\n this.getPattern(text.func);\n }\n } else {\n return text[this.lang] || text.en || '';\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = ;\n } else if (confirm.type === 'error') {\n icon = ;\n } else if (confirm.type === 'info') {\n icon = ;\n }\n\n return \n this.setState({ confirmDialog: false}, () => {\n if (isOk) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n if (this.state.confirmDepAttr) {\n ConfigGeneric.setValue(data, this.state.confirmDepAttr, this.state.confirmDepNewValue);\n }\n\n ConfigGeneric.setValue(data, this.state.confirmAttr, this.state.confirmNewValue);\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null}, () =>\n this.props.onChange(data));\n } else {\n this.setState({confirmDialog: false, confirmDepAttr: null, confirmDepNewValue: null, confirmNewValue: null, confirmAttr: null, confirmOldValue: null, confirmData: null});\n }\n })\n }\n />;\n }\n\n onChange(attr, newValue) {\n const data = JSON.parse(JSON.stringify(this.props.data));\n ConfigGeneric.setValue(data, attr, newValue);\n\n if (this.props.schema.confirm && this.execute(this.props.schema.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmData: null,\n });\n } else {\n // find any inputs with confirmation\n if (this.props.schema.confirmDependsOn) {\n for (let z = 0; z < this.props.schema.confirmDependsOn.length; z++) {\n const dep = this.props.schema.confirmDependsOn[z];\n if (dep.confirm) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n if (this.execute(dep.confirm.condition, false, data, this.props.arrayIndex, this.props.globalData)) {\n return this.setState({\n confirmDialog: true,\n confirmNewValue: newValue,\n confirmAttr: attr,\n confirmDepNewValue: val,\n confirmDepAttr: dep.attr,\n confirmData: dep.confirm,\n });\n }\n }\n }\n }\n\n const changed = [];\n if (this.props.schema.onChangeDependsOn) {\n for (let z = 0; z < this.props.schema.onChangeDependsOn.length; z++) {\n const dep = this.props.schema.onChangeDependsOn[z];\n if (dep.onChange) {\n const val = ConfigGeneric.getValue(data, dep.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(dep.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(dep.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n\n if (newValue !== val) {\n ConfigGeneric.setValue(data, dep.attr, newValue);\n changed.push(dep.attr);\n }\n }\n }\n }\n\n if (this.props.schema.hiddenDependsOn) {\n for (let z = 0; z < this.props.schema.hiddenDependsOn.length; z++) {\n const dep = this.props.schema.hiddenDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.labelDependsOn) {\n for (let z = 0; z < this.props.schema.labelDependsOn.length; z++) {\n const dep = this.props.schema.labelDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.helpDependsOn) {\n for (let z = 0; z < this.props.schema.helpDependsOn.length; z++) {\n const dep = this.props.schema.helpDependsOn[z];\n dep.hidden && changed.push(dep.attr);\n }\n }\n\n if (this.props.schema.onChange && !this.props.schema.onChange.ignoreOwnChanges) {\n const val = ConfigGeneric.getValue(data, this.props.attr);\n\n const newValue = this.props.custom ?\n this.executeCustom(this.props.schema.onChange.calculateFunc, data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData)\n :\n this.execute(this.props.schema.onChange.calculateFunc, val, data, this.props.arrayIndex, this.props.globalData);\n if (newValue !== val) {\n ConfigGeneric.setValue(data, this.props.attr, newValue);\n }\n }\n\n if (this.props.custom) {\n this.props.onChange(attr, newValue);\n\n changed && changed.length && changed.forEach((_attr, i) =>\n setTimeout(() => this.props.onChange(_attr, ConfigGeneric.getValue(data, attr)), i * 50));\n } else {\n this.props.onChange(data, undefined, () =>\n changed.length && this.props.forceUpdate(changed, data));\n }\n }\n }\n\n execute(func, defaultValue, data, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return defaultValue;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', '_instance', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket, this.props.instance, arrayIndex, globalData);\n // console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return defaultValue;\n }\n }\n }\n\n executeCustom(func, data, customObj, instanceObj, arrayIndex, globalData) {\n if (func && typeof func === 'object') {\n func = func.func;\n }\n\n if (!func) {\n return null;\n } else {\n try {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'arrayIndex', 'globalData', func.includes('return') ? func : 'return ' + func);\n const result = f(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket, arrayIndex, globalData);\n console.log(result);\n return result;\n } catch (e) {\n console.error(`Cannot execute ${func}: ${e}`);\n return null;\n }\n }\n }\n\n calculate(schema) {\n let error;\n let disabled;\n let hidden;\n let defaultValue;\n\n if (this.props.custom) {\n error = schema.validator ? !this.executeCustom(schema.validator, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.executeCustom(schema.disabled, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.executeCustom(schema.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.executeCustom(schema.defaultFunc, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData) : schema.default;\n } else {\n error = schema.validator ? !this.execute(schema.validator, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n disabled = schema.disabled ? this.execute(schema.disabled, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n hidden = schema.hidden ? this.execute(schema.hidden, false, this.props.data, this.props.arrayIndex, this.props.globalData) : false;\n defaultValue = schema.defaultFunc ? this.execute(schema.defaultFunc, schema.default, this.props.data, this.props.arrayIndex, this.props.globalData) : schema.default;\n }\n\n return { error, disabled, hidden, defaultValue };\n }\n\n onError(attr, error) {\n if (!error) {\n delete this.isError[attr];\n } else {\n this.isError[attr] = error;\n }\n\n this.props.onError && this.props.onError(attr, error);\n }\n\n renderItem(error, disabled, defaultValue) {\n return this.getText(this.props.schema.label) || this.getText(this.props.schema.text)\n }\n\n renderHelp(text, link, noTranslation) {\n if (!link) {\n text = this.getText(text, noTranslation) || '';\n if (text && text.includes('{this.getText(text, noTranslation)};\n }\n }\n\n getPattern(pattern) {\n if (!pattern) {\n return '';\n } else {\n if (typeof pattern === 'object') {\n pattern = pattern.func;\n }\n\n try {\n if (this.props.custom) {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', 'instanceObj', 'customObj', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n const result = f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.instanceObj, this.props.customObj, this.props.socket);\n return result;\n } else {\n // eslint-disable-next-line no-new-func\n const f = new Function('data', 'originalData', '_system', '_alive', '_common', '_socket', 'return `' + pattern.replace(/`/g, '\\\\`') + '`');\n return f(this.props.data, this.props.originalData, this.props.systemConfig, this.props.alive, this.props.common, this.props.socket);\n }\n } catch (e) {\n console.error(`Cannot execute ${pattern}: ${e}`);\n return pattern;\n }\n }\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n if (this.props.alive && this.defaultSendToDone === false) {\n this.sendToTimeout = setTimeout(() => {this.sendToTimeout = null; this.sendTo();}, 200);\n }\n\n const { error, disabled, hidden, defaultValue } = this.calculate(schema);\n\n if (hidden) {\n // Remove all errors if element is hidden\n if (Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n\n if (schema.hideOnlyControl) {\n const item = ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n ;\n } else {\n return item;\n }\n } else {\n return null;\n }\n } else {\n // Add error\n if (schema.validatorNoSaveOnError) {\n if (error && !Object.keys(this.isError).length) {\n this.isError = {[this.props.attr]: schema.validatorErrorText ? I18n.t(schema.validatorErrorText) : true};\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr, isError[attr])),\n 100, JSON.parse(JSON.stringify(this.isError)));\n } else if (!error && Object.keys(this.isError).length) {\n setTimeout(isError =>\n Object.keys(isError).forEach(attr => this.props.onError(attr)),\n 100, JSON.parse(JSON.stringify(this.isError)));\n this.isError = {};\n }\n }\n\n const renderedItem = this.renderItem(error, disabled || this.props.commandRunning || this.props.disabled, defaultValue);\n\n const item = \n { this.props.schema.defaultSendTo && this.props.schema.button ? \n {renderedItem}\n this.sendTo()}\n title={this.props.schema.buttonTooltip ? this.getText(this.props.schema.buttonTooltip, this.props.schema.buttonTooltipNoTranslation) : I18n.t('ra_Request data by instance')}\n >{this.getText(this.props.schema.button)}\n \n :\n renderedItem\n }\n ;\n\n if (schema.newLine) {\n return <>\n
\n {this.renderConfirmDialog()}\n {item}\n ;\n } else {\n if (this.state.confirmDialog) {\n return <>\n {this.renderConfirmDialog()}\n {item}\n ;\n } else {\n return item;\n }\n }\n }\n }\n}\n\nConfigGeneric.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n attr: PropTypes.string,\n value: PropTypes.any,\n themeName: PropTypes.string,\n style: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n forceUpdate: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n};\n\nexport default ConfigGeneric;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigIP extends ConfigGeneric {\n\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getHostByIp(this.props.common.host)\n .then(ips => {\n // [{name, address, family}]\n if (!this.props.schema.listenOnAllPorts) {\n ips = ips.filter(item => item.address !== '0.0.0.0' && item.address !== '::');\n }\n if (this.props.schema.onlyIp4) {\n ips = ips.filter(item => item.family === 'ipv4');\n } else\n if (this.props.schema.onlyIp6) {\n ips = ips.filter(item => item.family === 'ipv6');\n }\n ips.forEach(item => {\n if (item.address === '0.0.0.0') {\n item.name = '[IPv4] 0.0.0.0 - ' + I18n.t('ra_Listen on all IPs');\n } else\n if (item.address === '::') {\n item.name = '[IPv6] :: - ' + I18n.t('ra_Listen on all IPs');\n }\n });\n this.setState({ips});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const item = this.state.ips?.find(item => item.address === value);\n\n return \n {this.getText(this.props.schema.label)}\n item?.name || val}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.ips?.map((item, i) =>\n {item.name})}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigIP.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigIP);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\n\nimport UploadImage from '../UploadImage';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n image: {\n width: 100\n }\n});\n\nclass ConfigImageUpload extends ConfigGeneric {\n constructor(props) {\n super(props);\n this.imageRef = React.createRef();\n this.index = Date.now();\n }\n async componentDidMount() {\n super.componentDidMount();\n\n if (this.props.schema.base64) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n } else {\n this.props.socket.fileExists(this.props.adapterName + '.' + this.props.instance, this.props.attr)\n .then(exist => {\n if (exist && this.imageRef.current) {\n this.imageRef.current.src = this._getUrl();\n this.imageRef.current.style.display = 'block';\n }\n });\n }\n }\n\n _getUrl(update) {\n if (update) {\n this.index = Date.now();\n }\n let url = `files/${this.props.adapterName}.${this.props.instance}/${this.props.attr}?t=${this.index}`;\n if (window.location.port === '3000') {\n url = `${window.location.protocol}//${window.location.hostname}:8081/${url}`;\n }\n\n return url;\n }\n\n renderItem(error, disabled, defaultValue) {\n // eslint-disable-next-line\n return \n {this.getText(this.props.schema.label)}\n {\n if (this.props.schema.base64) {\n this.setState({ value: null }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n // delete file to /instance/attr\n this.props.socket.deleteFile(this.props.adapterName + '.' + this.props.instance, this.props.attr);\n // update image\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'none';\n this.imageRef.current.src = '';\n }\n }\n }}\n onChange={base64 => {\n if (this.props.schema.base64) {\n this.setState({ value: base64 }, () =>\n this.onChange(this.props.attr, this.state.value));\n } else {\n if (base64.startsWith('data')) {\n base64 = base64.split(',')[1];\n }\n // upload file to /instance/attr\n this.props.socket.writeFile64(this.props.adapterName + '.' + this.props.instance, this.props.attr, base64)\n .then(() => {\n if (this.imageRef.current) {\n this.imageRef.current.style.display = 'block';\n this.imageRef.current.src = this._getUrl(true);\n }\n });\n }\n }}\n t={I18n.t}\n />\n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n {this.props.schema.base64 ? null : }\n ;\n }\n}\n\nConfigImageUpload.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigImageUpload);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n});\n\nclass ConfigInstanceSelect extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n let adapter = this.props.schema.adapter;\n if (adapter === '_dataSources') {\n adapter = undefined;\n }\n\n this.props.socket.getAdapterInstances(adapter, true)\n .then(async instances => {\n let selectOptions;\n if (this.props.schema.adapter === '_dataSources') {\n // get only \"data-sources\", like history, sql, influx\n instances = instances.filter(instance => instance && instance.common && instance.common.getHistory);\n } else if (this.props.schema.adapter) {\n instances = instances.filter(instance => instance && instance._id.startsWith('system.adapter.' + this.props.schema.adapter + '.'));\n }\n\n selectOptions = instances.map(instance => ({\n value: this.props.schema.long ? instance._id :\n (this.props.schema.short ? instance._id.split('.').pop() : instance._id.replace(/^system\\.adapter\\./, '')),\n label: `${instance.common.name} [${instance._id.replace(/^system\\.adapter\\./, '')}]`\n }));\n\n selectOptions.sort((a, b) => {\n if (a.value > b.value) {\n return 1;\n } else if (a.value < b.value) {\n return -1;\n } else {\n return 0;\n }\n });\n\n selectOptions.unshift({ label: I18n.t(ConfigGeneric.NONE_LABEL), value: ConfigGeneric.NONE_VALUE });\n if (this.props.schema.all) {\n selectOptions.unshift({ label: I18n.t('sch_all'), value: '*' });\n }\n\n this.setState({ value: value || '', selectOptions });\n\n await this.props.socket.subscribeObject(`system.adapter.${adapter ? adapter + '.' : ''}*`, this.onInstancesUpdate);\n });\n }\n\n componentWillUnmount() {\n this.props.socket.unsubscribeObject('system.adapter.*', this.onInstancesUpdate)\n .then(() => {});\n super.componentWillUnmount();\n }\n\n onInstancesUpdate = (id, obj) => {\n if (!id.match(/^system\\.adapter\\.[-_a-z\\d]+\\.\\d+$/)) {\n return;\n }\n const _id = this.props.schema.long ? id : (this.props.schema.short ? id.split('.').pop() : id.replace(/^system\\.adapter\\./, ''));\n const index = this.state.selectOptions.findIndex(item => item.value === _id);\n if (!obj) {\n // deleted\n if (index !== -1) {\n const selectOptions = JSON.parse(JSON.stringify(this.state.selectOptions));\n\n const newState = {};\n if (this.state.value === selectOptions[index].value) {\n newState.value = ConfigGeneric.NONE_VALUE;\n }\n selectOptions.splice(index, 1);\n newState.selectOptions = selectOptions;\n\n this.setState(newState);\n }\n } else {\n if (this.props.schema.adapter === '_dataSources' && (!obj.common || !obj.common.getHistory)) {\n return;\n }\n\n if (index === -1) {\n const selectOptions = JSON.parse(JSON.stringify(this.state.selectOptions));\n selectOptions.push({\n value: this.props.schema.long ? obj._id :\n (this.props.schema.short ? obj._id.split('.').pop() : obj._id.replace(/^system\\.adapter\\./, '')),\n label: `${obj.common.name} [${obj._id.replace(/^system\\.adapter\\./, '')}]`\n });\n selectOptions.sort((a, b) => a.label > b.label ? 1 : (a.label < b.label ? -1 : 0));\n this.setState({ selectOptions });\n }\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(item => item.value === this.state.value);\n\n return \n {this.props.schema.label ? {this.getText(this.props.schema.label)} : null }\n this.getText(item?.label, true)}\n onChange={e =>\n this.setState({ value: e.target.value }, () =>\n this.onChange(this.props.attr, this.state.value))}\n >\n {this.state.selectOptions.map(item =>\n {\n this.getText(item.label, true)\n })}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigInstanceSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigInstanceSelect);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport { Button } from '@mui/material';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport I18n from '../../i18n';\nimport CustomModal from '../CustomModal';\n\n// import AceEditor from 'react-ace';\n// import 'ace-builds/webpack-resolver';\n// import 'ace-builds/src-noconflict/mode-json';\n// import 'ace-builds/src-noconflict/theme-clouds_midnight';\n// import 'ace-builds/src-noconflict/theme-chrome';\n// import 'ace-builds/src-noconflict/ext-language_tools';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n flex: {\n display: 'flex'\n },\n button: {\n height: 48,\n // marginLeft: 4,\n minWidth: 48,\n },\n wrapper: {\n width: 'calc(100vw - 40px)',\n height: 'calc(100vh - 188px)',\n }\n});\n\nclass ConfigJsonEditor extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || {};\n this.setState({ value, initialized: true });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.initialized) {\n return null;\n }\n const { classes, schema, data, attr } = this.props;\n const { value, showSelectId } = this.state;\n return \n
\n this.setState({ showSelectId: true })}\n >{I18n.t('ra_JSON editor')}\n
\n {showSelectId ? this.setState({ showSelectId: false, value: ConfigGeneric.getValue(data, attr) || {} })}\n onApply={() => this.setState({ showSelectId: false }, () => this.onChange(attr, value))}\n >\n
\n {/* this.setState({ value: newValue })}\n name=\"ConfigJsonEditor\"\n fontSize={14}\n setOptions={{\n enableBasicAutocompletion: true,\n enableLiveAutocompletion: true,\n enableSnippets: true\n }}\n editorProps={{ $blockScrolling: true }}\n />*/}\n
NOT SUPPORTED
\n
\n : null}\n {schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n
;\n }\n}\n\nConfigJsonEditor.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigJsonEditor);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nconst LANGUAGES =[\n {\n value: 'en',\n label: 'English'\n },\n {\n value: 'de',\n label: 'Deutsch'\n },\n {\n value: 'ru',\n label: 'русский'\n },\n {\n value: 'pt',\n label: 'Portugues'\n },\n {\n value: 'nl',\n label: 'Nederlands'\n },\n {\n value: 'fr',\n label: 'français'\n },\n {\n value: 'it',\n label: 'Italiano'\n },\n {\n value: 'es',\n label: 'Espanol'\n },\n {\n value: 'pl',\n label: 'Polski'\n },\n {\n value: 'zh-ch',\n label: '简体中文'\n }\n];\n\nclass ConfigLanguage extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n const languages = [...LANGUAGES];\n if (this.props.schema.system) {\n languages.unshift({value: '', label: I18n.t('ra_System language')});\n }\n\n this.setState({value: value || I18n.getLanguage(), selectOptions: languages});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions?.find(item => item.value === this.state.value || (!item.value && !this.state.value));\n\n return \n {this.getText(this.props.schema.label)}\n this.getText(item?.label, this.props.schema.noTranslation)}\n onChange={e => {\n const value = e.target.value === '_' ? '' : e.target.value;\n this.setState({ value }, () => {\n this.onChange(this.props.attr, value);\n if (this.props.schema.changeGuiLanguage) {\n if (value) {\n if (value === I18n.getLanguage()) {\n return;\n }\n I18n.setLanguage(value);\n this.props.changeLanguage && this.props.changeLanguage();\n } else {\n this.props.socket.getSystemConfig()\n .then(systemConfig => {\n if (systemConfig.common.language === I18n.getLanguage()) {\n return;\n }\n if (systemConfig.common.language) {\n I18n.setLanguage(systemConfig.common.language);\n this.props.changeLanguage && this.props.changeLanguage();\n }\n });\n }\n }\n });\n }}\n >\n {this.state.selectOptions?.map(item =>\n {item.label})}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigLanguage.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigLanguage);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField, FormControl } from '@mui/material';\n\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n },\n control: {\n flexDirection: 'row',\n width: '100%'\n },\n textWithArrows: {\n width: 'calc(100% - 12px)',\n },\n arrows: {\n width: 12,\n display: 'inline'\n },\n arrowUp: {\n fontSize: 10,\n userSelect: 'none',\n cursor: 'pointer',\n },\n arrowDown: {\n fontSize: 10,\n userSelect: 'none',\n cursor: 'pointer',\n }\n});\n\nclass ConfigNumber extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const _value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ _value });\n //this.props.registerOnForceUpdate(this.props.attr, this.onUpdate);\n }\n\n static getDerivedStateFromProps(props, state) {\n if ((props.schema.min !== undefined && props.schema.min < 0) ||\n (props.schema.max !== undefined && props.schema.max < 0)\n ) {\n return null;\n }\n const _value = ConfigGeneric.getValue(props.data, props.attr);\n if (_value === null || _value === undefined || _value.toString() !== parseFloat(state._value).toString()) {\n return { _value };\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n const arr = [...this.state.value].map(item => ({label: item.toString(), value: item}));\n arr.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n\n return option.label === value.label}\n onChange={(_, value) =>\n this.onChange(this.props.attr, value ? parseFloat(value.value) : this.props.schema.min || 0)}\n options={arr}\n getOptionLabel={option => option.label}\n renderInput={params => }\n />;\n } else {\n if (!error && this.state._value !== null && this.state._value !== undefined) {\n if (this.props.schema.min !== undefined && this.state._value < this.props.schema.min) {\n error = I18n.t('ra_Too small');\n }\n if (this.props.schema.max !== undefined && this.state._value > this.props.schema.max) {\n error = I18n.t('ra_Too big');\n }\n }\n\n let type = 'number';\n if ((this.props.schema.min !== undefined && this.props.schema.min < 0) ||\n (this.props.schema.max !== undefined && this.props.schema.max < 0)\n ) {\n type = 'text';\n }\n\n const isNumber = this.state._value !== null &&\n this.state._value !== undefined &&\n (typeof this.state._value === 'number' ||\n (typeof this.state._value === 'string' &&\n this.state._value.trim() === parseFloat(this.state._value).toString())\n );\n\n return \n {\n const _value = e.target.value;\n if (isFinite(_value)) {\n if (this.props.schema.min !== undefined && parseFloat(_value) < this.props.schema.min) {\n this.onError(this.props.attr, I18n.t('ra_Too small'));\n } else if (this.props.schema.max !== undefined && parseFloat(_value) > this.props.schema.max) {\n this.onError(this.props.attr, I18n.t('ra_Too big'));\n } else if (_value === '-' || isNaN(parseFloat(_value))) {\n this.onError(this.props.attr, I18n.t('ra_Not a number'));\n } else {\n this.onError(this.props.attr); // clear error\n }\n } else if (_value !== '') {\n this.onError(this.props.attr, I18n.t('ra_Not a number'));\n } else {\n this.onError(this.props.attr); // clear error\n }\n\n this.setState({ _value }, () => {\n if (_value.trim() === parseFloat(_value).toString()) {\n this.onChange(this.props.attr, parseFloat(_value) || 0);\n }\n });\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={error && typeof error === 'string' ? error : this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n {type === 'text' && isNumber ?
\n {\n let _value = parseFloat(this.state._value) + 1;\n if (this.props.schema.max !== undefined && _value <= this.props.schema.max) {\n this.setState({ _value });\n }\n }}\n >▲
\n {\n let _value = parseFloat(this.state._value) - 1;\n if (this.props.schema.min !== undefined && _value >= this.props.schema.min) {\n this.setState({ _value });\n }\n }}\n >▼
\n
: null}\n ;\n }\n }\n}\n\nConfigNumber.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigNumber);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport FormControl from '@mui/material/FormControl';\nimport { Button, TextField } from '@mui/material';\n\nimport DialogSelectID from '../../Dialogs/SelectID';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n flex: {\n display: 'flex'\n },\n button: {\n height: 48,\n marginLeft: 4,\n minWidth: 48,\n }\n});\n\nclass ConfigObjectId extends ConfigGeneric {\n async componentDidMount() {\n super.componentDidMount();\n const { data, attr } = this.props;\n const value = ConfigGeneric.getValue(data, attr) || '';\n this.setState({ value, initialized: true});\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.initialized) {\n return null;\n }\n const { classes, schema, socket, attr } = this.props;\n const { value, showSelectId } = this.state;\n\n return \n {this.getText(schema.label)}\n
\n {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(attr, value))\n }}\n />\n this.setState({ showSelectId: true })}\n >...\n
\n {showSelectId ? this.setState({ showSelectId: false })}\n onOk={value =>\n this.setState({ showSelectId: false, value }, () =>\n this.onChange(attr, value))}\n /> : null}\n
;\n }\n}\n\nConfigObjectId.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n};\n\nexport default withStyles(styles)(ConfigObjectId);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport Grid from '@mui/material/Grid';\nimport Accordion from '@mui/material/Accordion';\nimport AccordionSummary from '@mui/material/AccordionSummary';\nimport AccordionDetails from '@mui/material/AccordionDetails';\nimport Typography from '@mui/material/Typography';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigAlive from './ConfigAlive';\nimport ConfigAutocomplete from './ConfigAutocomplete';\nimport ConfigAutocompleteSendTo from './ConfigAutocompleteSendTo';\nimport ConfigCRON from './ConfigCRON';\nimport ConfigCertificateSelect from './ConfigCertificateSelect';\nimport ConfigCheckbox from './ConfigCheckbox';\nimport ConfigChip from './ConfigChip';\nimport ConfigColor from './ConfigColor';\nimport ConfigCoordinates from './ConfigCoordinates';\nimport ConfigCustom from './ConfigCustom';\nimport ConfigDatePicker from './ConfigDatePicker';\nimport ConfigFile from './ConfigFile';\nimport ConfigFileSelector from './ConfigFileSelector';\nimport ConfigFunc from './ConfigFunc';\nimport ConfigIP from './ConfigIP';\nimport ConfigImageUpload from './ConfigImageUpload';\nimport ConfigInstanceSelect from './ConfigInstanceSelect';\nimport ConfigJsonEditor from './ConfigJsonEditor';\nimport ConfigLanguage from './ConfigLanguage';\nimport ConfigNumber from './ConfigNumber';\nimport ConfigObjectId from './ConfigObjectId';\nimport ConfigPassword from './ConfigPassword';\nimport ConfigPattern from './ConfigPattern';\nimport ConfigRoom from './ConfigRoom';\nimport ConfigSelect from './ConfigSelect';\nimport ConfigSelectSendTo from './ConfigSelectSendTo';\nimport ConfigSendto from './ConfigSendto';\nimport ConfigSetState from './ConfigSetState';\nimport ConfigSlider from './ConfigSlider';\nimport ConfigStaticDivider from './ConfigStaticDivider';\nimport ConfigStaticHeader from './ConfigStaticHeader';\nimport ConfigStaticImage from './ConfigStaticImage';\nimport ConfigStaticText from './ConfigStaticText';\nimport ConfigTable from './ConfigTable';\nimport ConfigText from './ConfigText';\nimport ConfigTextSendTo from './ConfigTextSendTo';\nimport ConfigTimePicker from './ConfigTimePicker';\nimport ConfigTopic from './ConfigTopic';\nimport ConfigUser from './ConfigUser';\n\nconst components = {\n alive: ConfigAlive,\n autocomplete: ConfigAutocomplete,\n autocompleteSendTo: ConfigAutocompleteSendTo,\n certificate: ConfigCertificateSelect,\n checkbox: ConfigCheckbox,\n chip: ConfigChip, // deprecated. Use \"chips\"\n chips: ConfigChip,\n color: ConfigColor,\n coordinates: ConfigCoordinates,\n cron: ConfigCRON,\n custom: ConfigCustom,\n datePicker: ConfigDatePicker,\n divider: ConfigStaticDivider,\n file: ConfigFile,\n fileSelector: ConfigFileSelector,\n func: ConfigFunc,\n header: ConfigStaticHeader,\n image: ConfigImageUpload,\n instance: ConfigInstanceSelect,\n ip: ConfigIP,\n jsonEditor: ConfigJsonEditor,\n language: ConfigLanguage,\n number: ConfigNumber,\n objectId: ConfigObjectId,\n password: ConfigPassword,\n pattern: ConfigPattern,\n room: ConfigRoom,\n select: ConfigSelect,\n selectSendTo: ConfigSelectSendTo,\n sendTo: ConfigSendto,\n setState: ConfigSetState,\n slider: ConfigSlider,\n staticImage: ConfigStaticImage,\n staticLink: ConfigStaticText,\n staticText: ConfigStaticText,\n table: ConfigTable,\n text: ConfigText,\n textSendTo: ConfigTextSendTo,\n timePicker: ConfigTimePicker,\n topic: ConfigTopic,\n user: ConfigUser,\n};\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n //height: '100%',\n },\n paper: {\n margin: 10,\n height: 'calc(100vh - 235px) !important',\n width: 'auto !important',\n overflowY: 'auto',\n paddingBottom: theme.spacing(1)\n },\n padding: {\n padding: 10,\n },\n heading: {\n\n },\n primary: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.mode === 'dark' ? 'inherit' : '#FFF'\n },\n secondary: {\n backgroundColor: theme.palette.secondary.main,\n }\n});\n\nclass ConfigPanel extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n if (this.props.schema && this.props.schema.collapsable) {\n this.setState({expanded: (window._localStorage || window.localStorage).getItem(this.props.adapterName + '.' + this.props.attr) === 'true'});\n }\n }\n\n renderItems(items, disabled) {\n const classes = this.props.classes || {};\n\n return items ? Object.keys(items).map(attr => {\n if (this.props.multiEdit && items[attr].noMultiEdit) {\n return null;\n }\n\n const type = items[attr].type || 'panel';\n let ItemComponent;\n if (type === 'custom') {\n // name\n // url\n if (items[attr].url) {\n ItemComponent = ConfigCustom;\n } else\n if (this.props.customs && this.props.customs[items[attr].component]) {\n ItemComponent = this.props.customs[items[attr].component];\n } else {\n console.error('Cannot find custom component: ' + items[attr].component);\n ItemComponent = ConfigGeneric;\n }\n } else if (type === 'panel') {\n ItemComponent = ConfigPanelStyled;\n } else {\n ItemComponent = components[type] || ConfigGeneric;\n }\n\n return ;\n }) : null;\n }\n\n render() {\n const schema = this.props.schema;\n\n if (!schema) {\n return null;\n }\n\n const { disabled, hidden } = this.calculate(schema);\n\n const items = this.props.schema.items;\n const classes = this.props.classes || {};\n\n if (hidden) {\n if (schema.hideOnlyControl) {\n const item = ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n \n } else {\n return item;\n }\n } else {\n return null;\n }\n } else\n if (this.props.table) {\n return this.renderItems(items, disabled);\n } else\n if (this.props.custom) {\n return \n {this.renderItems(items, disabled)}\n ;\n } else {\n let content;\n if (schema.collapsable) {\n content = {\n (window._localStorage || window.localStorage).setItem(this.props.adapterName + '.' + this.props.attr, this.state.expanded ? 'false' : 'true');\n this.setState({expanded: !this.state.expanded});\n }}\n >\n }\n style={Object.assign({}, schema.style, this.props.themeType ? schema.darkStyle : {})}\n className={clsx(classes.fullWidth, schema.color === 'primary' && classes.primary, schema.color === 'secondary' && classes.secondary)}\n >\n {this.getText(schema.label)}\n \n \n \n {this.renderItems(items, disabled)}\n \n \n \n } else {\n content = \n \n {this.renderItems(items, disabled)}\n \n
;\n }\n\n if (!this.props.isParentTab) {\n const item = \n {content}\n ;\n\n if (schema.newLine) {\n return <>\n
\n {item}\n ;\n } else {\n return item;\n }\n } else {\n return content;\n }\n }\n }\n}\n\nConfigPanel.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n index: PropTypes.number,\n customs: PropTypes.object,\n alive: PropTypes.bool,\n systemConfig: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n multiEdit: PropTypes.bool,\n isParentTab: PropTypes.bool,\n imagePrefix: PropTypes.string,\n changeLanguage: PropTypes.func,\n\n arrayIndex: PropTypes.number,\n globalData: PropTypes.object,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n\n forceUpdate: PropTypes.func,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n registerOnForceUpdate: PropTypes.func,\n};\n\nconst ConfigPanelStyled = withStyles(styles)(ConfigPanel);\n\nexport default ConfigPanelStyled;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\n\nimport Visibility from '@mui/icons-material/Visibility';\nimport VisibilityOff from '@mui/icons-material/VisibilityOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n display: 'inline-block'\n },\n halfWidth1: {\n width: `calc(50% - ${theme.spacing(0.5)})`,\n display: 'inline-block',\n marginRight: theme.spacing(1),\n },\n halfWidth2: {\n width: `calc(50% - ${theme.spacing(0.5)})`,\n display: 'inline-block'\n }\n});\n\nconst PASSWORD_PLACEHOLDER = '____ppp____';\n\nclass ConfigPassword extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({\n _repeat: value ? PASSWORD_PLACEHOLDER : '',\n _visible: false,\n value: value ? PASSWORD_PLACEHOLDER : '',\n _notEqual: false\n });\n }\n\n onChangePassword(password, repeatPassword) {\n if (password === undefined) {\n password = this.state.value;\n }\n if (repeatPassword === undefined) {\n repeatPassword = this.state._repeat;\n }\n const _notEqual = !!this.props.schema.repeat && repeatPassword !== password;\n this.setState({value: password, _repeat: repeatPassword, _notEqual}, () => {\n if (_notEqual) {\n this.onError(this.props.attr, I18n.t('ra_Passwords are not equal!'));\n } else {\n this.onError(this.props.attr); // clear error\n this.onChange(this.props.attr, password);\n }\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (this.state._notEqual === undefined) {\n return null;\n }\n\n const password = this.onChangePassword(e.target.value)}\n label={this.getText(this.props.schema.label)}\n inputProps={{\n autoComplete: 'new-password',\n form: {autoComplete: 'off'},\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined\n }}\n helperText={this.state._notEqual ? I18n.t('ra_Passwords are not equal!') : this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n InputProps={{endAdornment: this.state.value && this.state.value !== PASSWORD_PLACEHOLDER && this.props.schema.visible ? \n {\n e.preventDefault();\n e.stopPropagation();\n this.setState({_visible: !this.state._visible});\n }}\n edge='end'\n >\n {this.state._visible ? : }\n \n : undefined\n }}\n />;\n\n if (this.props.schema.repeat) {\n const passwordRepeat = this.onChangePassword(undefined, e.target.value)}\n label={`${this.getText(this.props.schema.label)} (${I18n.t('ra_repeat')})`}\n inputProps={{\n autoComplete: 'new-password',\n form: {autoComplete: 'off'},\n maxLength: this.props.schema.maxLength || this.props.schema.max || undefined\n }}\n helperText={this.state._notEqual ? I18n.t('ra_Passwords are not equal!') : this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n InputProps={{endAdornment: this.state._repeat && this.state._repeat !== PASSWORD_PLACEHOLDER ? \n {\n e.preventDefault();\n e.stopPropagation();\n this.setState({_visible: !this.state._visible});\n }}\n edge='end'\n >\n {this.state._visible ? : }\n \n : undefined\n }}\n />;\n\n return
\n
{password}
\n
{passwordRepeat}
\n
;\n } else {\n return password;\n }\n }\n}\n\nConfigPassword.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigPassword);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\n\nimport IconButton from '@mui/material/IconButton';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nimport copy from '../copy-to-clipboard';\nimport CopyIcon from '../../icons/IconCopy';\n\nconst styles = theme => ({\n});\n\nclass ConfigPattern extends ConfigGeneric {\n renderItem(error, disabled) {\n return {\n copy(this.getPattern(this.props.schema.pattern));\n window.alert('Copied');\n }}>\n \n \n : undefined,\n }}\n value={this.getPattern(this.props.schema.pattern)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n}\n\nConfigPattern.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigPattern);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport TextWithIcon from '../TextWithIcon';\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigFunc extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.props.socket.getEnums('rooms')\n .then(enums => {\n const selectOptions = Object.keys(enums)\n .map(id => ({ value: this.props.schema.short ? id.replace('enum.rooms.', '') : id, label: this.getText(enums[id].common.name), obj: enums[id]}));\n this.setState({ value, selectOptions });\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const item = this.state.selectOptions.find(item => item.value === this.state.value);\n\n return \n {this.getText(this.props.schema.label)}\n item ? : ''}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () =>\n this.onChange(this.props.attr, this.state.value));\n }}\n >\n {this.state.selectOptions.map(item =>\n \n \n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigFunc.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigFunc);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport I18n from '../../i18n';\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigSelect extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n const selectOptions = JSON.parse(JSON.stringify(this.props.schema.options));\n\n // if __different\n if (Array.isArray(value)) {\n this.initialValue = [...value];\n selectOptions.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n this.setState({value: ConfigGeneric.DIFFERENT_VALUE, selectOptions});\n } else {\n this.setState({value, selectOptions});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n if (!this.state.selectOptions) {\n return null;\n }\n\n const selectOptions = (this.state.selectOptions || []).filter(item => {\n if (!item.hidden) {\n return true;\n } else if (this.props.custom) {\n return !this.executeCustom(item.hidden, this.props.data, this.props.customObj, this.props.instanceObj, this.props.arrayIndex, this.props.globalData);\n } else {\n return !this.execute(item.hidden, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData);\n }\n });\n\n // eslint-disable-next-line\n const item = selectOptions.find(item => item.value == this.state.value); // let \"==\" be and not ===\n\n return \n {this.getText(this.props.schema.label)}\n this.getText(item?.label, this.props.schema.noTranslation)}\n onChange={e => {\n this.setState({value: e.target.value === '_' ? '' : e.target.value}, () => {\n if (this.state.value === ConfigGeneric.DIFFERENT_VALUE) {\n this.onChange(this.props.attr, this.initialValue);\n } else {\n this.onChange(this.props.attr, this.state.value);\n }\n });\n }}\n >\n {selectOptions.map(item =>\n {this.getText(item.label, this.props.schema.noTranslation)})}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigSelect.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSelect);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\nimport TextField from '@mui/material/TextField';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport ListItemText from '@mui/material/ListItemText';\nimport Checkbox from '@mui/material/Checkbox';\nimport Chip from '@mui/material/Chip';\nimport Box from '@mui/material/Box';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n menuPaper: {\n maxHeight: 800\n },\n});\n\n/*\nto use this option, your adapter must implement listUart message\n\nadapter.on('message', obj => {\n if (obj) {\n switch (obj.command) {\n case 'command':\n if (obj.callback) {\n try {\n const serialport = require('serialport');\n if (serialport) {\n // read all found serial ports\n serialport.list()\n .then(ports => {\n adapter.log.info('List of port: ' + JSON.stringify(ports));\n adapter.sendTo(obj.from, obj.command, ports.map(item =>\n ({label: item.path, value: item.path})), obj.callback);\n })\n .catch(e => {\n adapter.sendTo(obj.from, obj.command, [], obj.callback);\n adapter.log.error(e)\n });\n } else {\n adapter.log.warn('Module serialport is not available');\n adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);\n }\n } catch (e) {\n adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);\n }\n }\n\n break;\n }\n }\n});\n */\n\nclass ConfigSelectSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance(){\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {}, this.props.data);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.command || 'send', data)\n .then(list =>\n this.setState({list, context: this.getContext()}));\n } else {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n this.setState({ value });\n }\n }\n\n getContext() {\n const context = {};\n\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n\n return JSON.stringify(context);\n }\n\n _getValue() {\n let value = this.state.value === null || this.state.value === undefined ? ConfigGeneric.getValue(this.props.data, this.props.attr) : this.state.value;\n\n if (this.props.schema.multiple) {\n if (typeof value === 'string') {\n value = [value];\n } else if (value === null || value === undefined) {\n value = [];\n }\n }\n\n return value;\n }\n\n renderItem(error, disabled, defaultValue) {\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => this.askInstance(), 300);\n }\n }\n\n let value = this._getValue();\n\n if (!this.props.alive) {\n if (this.props.schema.multiple || this.props.schema.manual === false) {\n return I18n.t('ra_Cannot retrieve options, as instance is offline');\n } else {\n return {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n } else\n if (!this.state.list) {\n return ;\n } else {\n const selectOptions = (this.state.list || [])\n .filter(item => {\n if (!item.hidden) {\n return true;\n } else if (this.props.custom) {\n return !this.executeCustom(item.hidden, this.props.schema.default, this.props.data, this.props.instanceObj, this.props.arrayIndex, this.props.globalData);\n } else {\n return !this.execute(item.hidden, this.props.schema.default, this.props.data, this.props.arrayIndex, this.props.globalData);\n }\n });\n\n const item = selectOptions.find(item => item.value === value);\n\n return \n {this.getText(this.props.schema.label)}\n \n this.props.schema.multiple ?\n \n {val.map(v => {\n const item = selectOptions.find(_item => _item.value === v);\n if (item || this.props.schema.showAllValues !== false) {\n const label = item?.label || v;\n return {\n e.stopPropagation();\n e.preventDefault ();\n let _value = JSON.parse(JSON.stringify(this._getValue()));\n const pos = value.indexOf(v);\n if (pos !== -1) {\n _value.splice(pos, 1);\n this.setState({ value: _value }, () => this.onChange(this.props.attr, _value));\n }\n }}*/ />;\n } else {\n return null;\n }\n })}\n \n :\n (item?.label || val)\n }\n onChange={e => {\n this.onChange(this.props.attr, e.target.value);\n }}\n >\n {selectOptions.map((item, i) =>\n \n { this.props.schema.multiple ? {\n let _value = JSON.parse(JSON.stringify(this._getValue()));\n const pos = value.indexOf(item.value);\n if (pos !== -1) {\n _value.splice(pos, 1);\n } else {\n _value.push(item.value);\n _value.sort();\n }\n this.setState({ value: _value }, () => this.onChange(this.props.attr, _value));\n }}/> : null }\n \n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n }\n}\n\nConfigSelectSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n adapterName: PropTypes.string,\n alive: PropTypes.bool,\n instance: PropTypes.number,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSelectSendTo);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport DialogError from '../../Dialogs/Error';\nimport DialogMessage from '../../Dialogs/Message';\nimport ConfirmDialog from '../../Dialogs/Confirm';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nclass ConfigSendto extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.setState( {_error: '', _message: ''});\n }\n\n renderErrorDialog() {\n if (this.state._error) {\n return this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n renderMessageDialog() {\n if (this.state._message) {\n return this.setState({_error: ''})} />;\n } else {\n return null;\n }\n }\n\n _onClick() {\n this.props.onCommandRunning(true);\n\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData, {}, this.props.data);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(\n `${this.props.adapterName}.${this.props.instance}`,\n this.props.schema.command || 'send',\n data\n )\n .then(response => {\n if (response?.error) {\n if (this.props.schema.error && this.props.schema.error[response.error]) {\n let error = this.getText(this.props.schema.error[response.error]);\n if (response.args) {\n response.args.forEach(arg => error = error.replace('%s', arg));\n }\n this.setState({_error: error});\n } else {\n this.setState({_error: response.error ? I18n.t(response.error) : I18n.t('ra_Error')});\n }\n } else {\n if (response?.result && this.props.schema.result && this.props.schema.result[response.result]) {\n let text = this.getText(this.props.schema.result[response.result]);\n if (response.args) {\n response.args.forEach(arg => text = text.replace('%s', arg));\n }\n window.alert(text);\n } else {\n if (response?.result) {\n window.alert(typeof response.result === 'object' ? JSON.stringify(response.result) : response.result);\n } else {\n window.alert(I18n.t('ra_Ok'));\n }\n }\n }\n })\n .catch(e => {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n this.setState({_error: this.getText(this.props.schema.error[e.toString()])});\n } else {\n this.setState({_error: I18n.t(e.toString()) || I18n.t('ra_Error')});\n }\n })\n .then(() => this.props.onCommandRunning(false))\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = ;\n } else if (confirm.type === 'error') {\n icon = ;\n } else if (confirm.type === 'info') {\n icon = ;\n }\n\n return \n this.setState({ confirmDialog: false}, () =>\n isOk && this._onClick())\n }\n />;\n }\n\n renderItem(error, disabled, defaultValue) {\n return
\n {\n if (this.props.schema.confirm) {\n this.setState({confirmDialog: true});\n } else {\n this._onClick();\n }\n }}\n >\n {this.props.schema.icon ? : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n \n {this.renderErrorDialog()}\n {this.renderMessageDialog()}\n
;\n }\n}\n\nConfigSendto.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSendto);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport I18n from '../../i18n';\nimport Icon from '../Icon';\nimport ConfirmDialog from '../../Dialogs/Confirm';\nimport ConfigGeneric from './ConfigGeneric';\nimport IconWarning from '@mui/icons-material/Warning';\nimport IconError from '@mui/icons-material/Error';\nimport IconInfo from '@mui/icons-material/Info';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 24,\n height: 24,\n marginRight: 4\n }\n});\n\nclass ConfigSetState extends ConfigGeneric {\n async _onClick() {\n let val = this.props.schema.val;\n if (typeof val === 'string' && val.includes('${')) {\n val = this.getPattern(val);\n const obj = await this.props.socket.getObject(this.props.schema.id);\n if (obj?.common?.type === 'number') {\n val = parseFloat(val);\n } else if (obj?.common?.type === 'boolean') {\n val = val === 'true' || val === true || val === '1' || val === 1;\n }\n }\n\n try {\n await this.props.socket.setState(this.props.schema.id, {val, ack: !!this.props.schema.ack});\n this.props.schema.okText && window.alert(this.getText(this.props.schema.okText));\n } catch (e) {\n if (this.props.schema.error && this.props.schema.error[e.toString()]) {\n window.alert(this.getText(this.props.schema.error[e.toString()]));\n } else {\n window.alert(I18n.t(e.toString()) || I18n.t('ra_Error'));\n }\n }\n }\n\n renderConfirmDialog() {\n if (!this.state.confirmDialog) {\n return null;\n }\n const confirm = this.state.confirmData || this.props.schema.confirm;\n let icon = null;\n if (confirm.type === 'warning') {\n icon = ;\n } else if (confirm.type === 'error') {\n icon = ;\n } else if (confirm.type === 'info') {\n icon = ;\n }\n\n return \n this.setState({ confirmDialog: false}, async () =>\n isOk && (await this._onClick()))\n }\n />;\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n if (this.props.schema.confirm) {\n this.setState({confirmDialog: true});\n } else {\n await this._onClick();\n }\n }}\n >\n {this.props.schema.icon ? : null}\n {this.getText(this.props.schema.label, this.props.schema.noTranslation)}\n ;\n }\n}\n\nConfigSetState.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSetState);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Box, Typography, Slider } from '@mui/material';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n },\n slider: {\n marginLeft: 10,\n marginRight: 10,\n width: 'calc(100% - 20px)',\n }\n});\n\nclass ConfigSlider extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const _value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ _value });\n }\n\n static getDerivedStateFromProps(props, state) {\n if ((props.schema.min !== undefined && props.schema.min < 0) ||\n (props.schema.max !== undefined && props.schema.max < 0)\n ) {\n return null;\n }\n const _value = ConfigGeneric.getValue(props.data, props.attr);\n if (_value === null || _value === undefined || _value.toString() !== parseFloat(state._value).toString()) {\n return { _value };\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n const min = this.props.schema.min || 0;\n const max = this.props.schema.max || 100;\n const unit = this.props.schema.unit || '';\n\n const marks = [\n { value: min, label: min + unit},\n { value: max, label: max + unit}\n ];\n\n return \n {this.props.schema.label ? \n {this.getText(this.props.schema.label)}\n : null}\n value + unit}\n step={this.props.schema.step || ((max - min) / 100)}\n valueLabelDisplay=\"auto\"\n marks={marks}\n disabled={!!disabled}\n error={error || ''}\n onChange={e => {\n const _value = e.target.value;\n this.setState({ _value }, () =>\n this.onChange(this.props.attr, _value));\n }}\n />\n {this.props.schema.help ? \n {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n : null}\n ;\n }\n}\n\nConfigSlider.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigSlider);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%',\n backgroundColor: theme.palette.mode === 'dark' ? '#FFF' : '#000',\n borderStyle: 'hidden',\n },\n primary: {\n backgroundColor: theme.palette.primary.main\n },\n secondary: {\n backgroundColor: theme.palette.secondary.main\n }\n});\n\nclass ConfigStaticDivider extends ConfigGeneric {\n renderItem() {\n return ;\n }\n}\n\nConfigStaticDivider.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticDivider);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n header: {\n width: '100%',\n background: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n padding: '4px !important',\n borderRadius: 3,\n marginBlockEnd: 0,\n marginBlockStart: 0,\n },\n});\n\nclass ConfigStaticHeader extends ConfigGeneric {\n renderItem() {\n switch ((this.props.schema.size || 5).toString()) {\n case '1':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '2':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '3':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '4':\n return

\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n

;\n\n case '5':\n default:\n return
\n {this.getText(this.props.schema.text, this.props.schema.noTranslation)}\n
;\n }\n }\n}\n\nConfigStaticHeader.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticHeader);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n height: '100%',\n width: '100%',\n }\n});\n\nclass ConfigStaticImage extends ConfigGeneric {\n renderItem() {\n let src = this.props.schema.src;\n if (src && !src.startsWith('.') &&\n !src.startsWith('http') &&\n !src.startsWith(`adapter/${this.props.adapterName}/`) &&\n !src.startsWith(`./adapter/${this.props.adapterName}/`)\n ) {\n src = `adapter/${this.props.adapterName}/${src}`;\n }\n\n return this.props.schema.href && window.open(this.props.schema.href, '_blank') : null}\n alt=\"\"\n />;\n }\n}\n\nConfigStaticImage.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticImage);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Button from '@mui/material/Button';\n\nimport Icon from '../Icon';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n height: '100%',\n width: '100%',\n }\n});\n\nclass ConfigStaticText extends ConfigGeneric {\n renderItem(error, disabled) {\n if (this.props.schema.button) {\n return {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}\n >\n {this.props.schema.icon ? : null}\n {this.getText(this.props.schema.text || this.props.schema.label, this.props.schema.noTranslation)}\n \n } else {\n\n return {\n // calculate one more time just before call\n const href = this.props.schema.href ? this.getText(this.props.schema.href, true) : null;\n href && window.open(href, '_blank');\n } : null}>\n {this.getText(this.props.schema.text || this.props.schema.label)}\n ;\n }\n }\n}\n\nConfigStaticText.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigStaticText);\n","import React, { createRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { /*lighten,*/ withStyles } from '@mui/styles';\nimport clsx from 'clsx';\n\nimport FormHelperText from '@mui/material/FormHelperText';\nimport { IconButton, InputAdornment, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, TableSortLabel, TextField, Toolbar, Tooltip, Typography } from '@mui/material';\n\nimport AddIcon from '@mui/icons-material/Add';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport CloseIcon from '@mui/icons-material/Close';\nimport UpIcon from '@mui/icons-material/ArrowUpward';\nimport DownIcon from '@mui/icons-material/ArrowDownward';\nimport IconFilterOn from '@mui/icons-material/FilterAlt';\nimport IconFilterOff from '@mui/icons-material/FilterAltOff';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n root: {\n width: '100%',\n },\n paper: {\n width: '100%',\n marginBottom: theme.spacing(2),\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n headerText: {\n width: '100%'\n },\n table: {\n minWidth: 750,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n addIcon: {\n display: 'flex',\n justifyContent: 'space-between'\n },\n highlight:\n theme.palette.mode === 'light'\n ? {\n color: theme.palette.secondary.main,\n // backgroundColor: lighten(theme.palette.secondary.light, 0.85),\n }\n : {\n color: theme.palette.text.primary,\n backgroundColor: theme.palette.secondary.dark,\n },\n title: {\n flex: '1 1 100%',\n },\n rootTool: {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(1),\n },\n silver: {\n opacity: 0.2\n },\n flex: {\n display: 'flex'\n },\n filteredOut: {\n padding: 10,\n display: 'flex',\n textAlign: 'center'\n },\n buttonEmpty: {\n width: 30,\n display: 'inline-block'\n },\n buttonCell: {\n whiteSpace: 'nowrap',\n }\n});\n\nfunction objectToArray(object, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const array = [];\n Object.keys(object).forEach(key => {\n const item = {};\n item[nameOfFirstAttr] = key;\n\n if (nameOfSecondAttr) {\n item[nameOfSecondAttr] = object[key]\n array.push(item);\n } else {\n array.push(Object.assign(item, object[key]));\n }\n });\n\n return array;\n}\n\nfunction arrayToObject(array, nameOfFirstAttr, nameOfSecondAttr) {\n nameOfFirstAttr = nameOfFirstAttr || 'key';\n\n const object = {};\n\n array.forEach(row => {\n let key = row[nameOfFirstAttr];\n if (key === null || key === undefined) {\n key = '';\n }\n delete row[nameOfFirstAttr];\n\n if (nameOfSecondAttr) {\n object[key] = row[nameOfSecondAttr];\n } else {\n object[key] = row;\n }\n });\n\n return object;\n}\n\nclass ConfigTable extends ConfigGeneric {\n constructor(props) {\n super(props)\n this.filterRefs = {};\n this.props.schema.items = this.props.schema.items || [];\n this.props.schema.items.forEach(el => {\n if (el.filter) {\n this.filterRefs[el.attr] = createRef();\n }\n });\n }\n\n async componentDidMount() {\n super.componentDidMount();\n let value = ConfigGeneric.getValue(this.props.data, this.props.attr) || [];\n\n // if the list is given as an object\n if (this.props.schema.objKeyName) {\n value = objectToArray(value, this.props.schema.objKeyName, this.props.schema.objValueName);\n }\n\n if (!Array.isArray(value)) {\n value = [];\n }\n\n const visibleValue = value.map((_, i) => i);\n\n this.setState({\n value,\n visibleValue,\n orderBy: /*this.props.schema.items.length ? this.props.schema.items[0].attr : */'',\n order: 'asc',\n iteration: 0,\n filterOn: [],\n });\n }\n\n componentWillUnmount() {\n this.typingTimer && clearTimeout(this.typingTimer)\n this.typingTimer = null;\n super.componentWillUnmount();\n }\n\n itemTable(attrItem, data, idx) {\n const { value, systemConfig } = this.state;\n const { schema } = this.props;\n const schemaForAttribute = schema.items && schema.items.find(el => el.attr === attrItem);\n\n if (!schemaForAttribute) {\n return null;\n }\n\n const schemaItem = {\n items: {\n [attrItem]: schemaForAttribute\n }\n };\n\n return {\n const newObj = JSON.parse(JSON.stringify(value));\n newObj[idx][attr] = valueChange;\n this.setState({ value: newObj }, () =>\n this.onChangeWrapper(newObj,true));\n }}\n onError={(error, attr) => this.onError(error, attr)}\n />;\n }\n\n static descendingComparator(a, b, orderBy) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n } else\n if (b[orderBy] > a[orderBy]) {\n return 1;\n } else {\n return 0;\n }\n }\n\n static getComparator(order, orderBy) {\n return order === 'desc'\n ? (a, b) => ConfigTable.descendingComparator(a, b, orderBy)\n : (a, b) => -ConfigTable.descendingComparator(a, b, orderBy);\n }\n\n handleRequestSort = (property, orderCheck = false) => {\n const { order, orderBy } = this.state;\n if (orderBy) {\n const isAsc = orderBy === property && order === 'asc';\n const newOrder = orderCheck ? order : (isAsc ? 'desc' : 'asc');\n const newValue = this.stableSort(newOrder, property);\n this.setState({ order: newOrder, orderBy: property, iteration: this.state.iteration + 10000 }, () =>\n this.applyFilter(false, newValue));\n }\n }\n\n stableSort = (order, orderBy) => {\n const { value } = this.state;\n const comparator = ConfigTable.getComparator(order, orderBy);\n const stabilizedThis = value.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n }\n\n enhancedTableHead(buttonsWidth) {\n const { schema, classes } = this.props;\n const { order, orderBy } = this.state;\n return \n \n {schema.items && schema.items.map(headCell => (\n \n
\n {headCell.sort && this.handleRequestSort(headCell.attr)}\n />}\n {headCell.filter && this.state.filterOn.includes(headCell.attr) ?\n this.applyFilter()}\n title={I18n.t('ra_You can filter entries by entering here some text')}\n InputProps={{\n endAdornment: this.filterRefs[headCell.attr]?.current?.children[0]?.children[0]?.value && \n {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }}\n >\n \n \n ,\n }}\n fullWidth\n placeholder={this.getText(headCell.title)}\n />\n : {this.getText(headCell.title)}}\n { headCell.filter ? {\n const filterOn = [...this.state.filterOn];\n const pos = this.state.filterOn.indexOf(headCell.attr);\n if (pos === -1) {\n filterOn.push(headCell.attr);\n } else {\n filterOn.splice(pos, 1);\n }\n this.setState({ filterOn }, () => {\n if (pos && this.filterRefs[headCell.attr].current.children[0].children[0].value) {\n this.filterRefs[headCell.attr].current.children[0].children[0].value = '';\n this.applyFilter();\n }\n });\n }}\n >{this.state.filterOn.includes(headCell.attr) ? : } : null}\n
\n \n ))}\n {!schema.noDelete && \n \n \n \n }\n
\n
;\n }\n\n onDelete = index => () => {\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n let visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n newValue.splice(index, 1);\n const pos = visibleValue.indexOf(index);\n if (pos !== -1) {\n visibleValue.splice(pos, 1);\n visibleValue = visibleValue.map(i => i > index ? i - 1 : i);\n }\n\n this.setState({ value: newValue, visibleValue, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(newValue));\n };\n\n onChangeWrapper = (newValue, updateVisible = false) => {\n this.typingTimer && clearTimeout(this.typingTimer);\n\n this.typingTimer = setTimeout((value, updateVisible) => {\n this.typingTimer = null;\n\n if (this.props.schema.objKeyName) {\n const objValue = arrayToObject(JSON.parse(JSON.stringify(value)), this.props.schema.objKeyName, this.props.schema.objValueName);\n this.onChange(this.props.attr, objValue);\n } else {\n this.onChange(this.props.attr, value);\n }\n\n if (updateVisible) {\n this.applyFilter(false, value);\n this.handleRequestSort(this.state.orderBy, true);\n }\n }, 300, newValue, updateVisible);\n }\n\n onAdd = () => {\n const { schema } = this.props;\n const newValue = JSON.parse(JSON.stringify(this.state.value));\n const visibleValue = JSON.parse(JSON.stringify(this.state.visibleValue));\n\n const newItem = schema.items && schema.items.reduce((accumulator, currentValue) => {\n let defaultValue;\n if (currentValue.defaultFunc) {\n if (this.props.custom) {\n defaultValue = currentValue.defaultFunc ? this.executeCustom(currentValue.defaultFunc, this.props.schema.default, this.props.data, this.props.instanceObj, newValue.length, this.props.data) : this.props.schema.default;\n } else {\n defaultValue = currentValue.defaultFunc ? this.execute(currentValue.defaultFunc, this.props.schema.default, this.props.data, newValue.length, this.props.data) : this.props.schema.default;\n }\n } else {\n defaultValue = currentValue.default === undefined ? null : currentValue.default;\n }\n\n accumulator[currentValue.attr] = defaultValue;\n return accumulator;\n }, {});\n\n newValue.push(newItem);\n visibleValue.push(newValue.length - 1);\n\n this.setState({ value: newValue, visibleValue }, () =>\n this.onChangeWrapper(newValue));\n }\n\n isAnyFilterSet() {\n return Object.keys(this.filterRefs).find(attr => this.filterRefs[attr].current?.children[0].children[0].value);\n }\n\n applyFilter = (clear = false, value = this.state.value) => {\n let visibleValue = value.map((_, i) => i);\n Object.keys(this.filterRefs).forEach(attr => {\n let valueInputRef = this.filterRefs[attr].current?.children[0].children[0].value;\n if (!clear && valueInputRef) {\n valueInputRef = valueInputRef.toLowerCase();\n visibleValue = visibleValue.filter(idx => value[idx] && value[idx][attr] && value[idx][attr].toLowerCase().includes(valueInputRef));\n } else if (this.filterRefs[attr].current) {\n this.filterRefs[attr].current.children[0].children[0].value = '';\n }\n });\n\n if (JSON.stringify(visibleValue) !== JSON.stringify(this.state.visibleValue)) {\n this.setState({ visibleValue });\n }\n }\n\n onMoveUp(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx - 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n onMoveDown(idx) {\n const value = JSON.parse(JSON.stringify(this.state.value));\n const item = value[idx];\n value.splice(idx, 1);\n value.splice(idx + 1, 0, item);\n this.setState({ value, iteration: this.state.iteration + 10000 }, () =>\n this.onChangeWrapper(value));\n }\n\n renderItem(error, disabled, defaultValue) {\n const { classes, schema } = this.props;\n const { value, visibleValue } = this.state;\n\n if (!value) {\n return null;\n }\n\n const doAnyFilterSet = this.isAnyFilterSet();\n\n return \n
\n {schema.label ? \n \n {this.getText(schema.label)}\n \n : null}\n {!schema.noDelete ? \n \n \n \n \n \n : null}\n
\n \n \n {this.enhancedTableHead(!doAnyFilterSet && !this.state.orderBy ? 120 : 64)}\n \n {visibleValue.map((idx, i) =>\n \n {schema.items && schema.items.map(headCell =>\n \n {this.itemTable(headCell.attr, value[idx], idx)}\n \n )}\n {!schema.noDelete && \n {!doAnyFilterSet && !this.state.orderBy ? (i ? \n this.onMoveUp(idx)}>\n \n \n :
) : null}\n {!doAnyFilterSet && !this.state.orderBy ? (i < visibleValue.length - 1 ? \n this.onMoveDown(idx)}>\n \n \n :
) : null}\n \n \n \n \n \n }\n )}\n \n
\n {!visibleValue.length && value.length ?\n
\n \n {I18n.t('ra_All items are filtered out')}\n this.applyFilter(true)}\n >\n \n \n \n
: null}\n
\n {schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n
;\n }\n}\n\nConfigTable.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigTable);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n tabs: {\n height: '100%',\n width: '100%',\n },\n panel: {\n height: 'calc(100% - 48px)',\n width: '100%',\n display: 'block'\n }\n});\n\nclass ConfigTabs extends ConfigGeneric {\n constructor(props) {\n super(props);\n\n let tab = (window._localStorage || window.localStorage).getItem((this.props.dialogName || 'App') + '.' + this.props.adapterName) || Object.keys(this.props.schema.items)[0];\n if (!Object.keys(this.props.schema.items).includes(tab)) {\n tab = Object.keys(this.props.schema.items)[0];\n }\n this.state = {\n tab,\n };\n }\n\n render() {\n const items = this.props.schema.items;\n\n return
\n {\n (window._localStorage || window.localStorage).setItem((this.props.dialogName || 'App') + '.' + this.props.adapterName, tab);\n this.setState({tab});\n }}>\n {Object.keys(items).map(name => {\n let disabled;\n if (this.props.custom) {\n const hidden = this.executeCustom(items[name].hidden, this.props.data, this.props.customObj, this.props.instanceObj);\n if (hidden) {\n return null;\n }\n disabled = this.executeCustom(items[name].disabled, this.props.data, this.props.customObj, this.props.instanceObj);\n } else {\n const hidden = this.execute(items[name].hidden, false);\n if (hidden) {\n return null;\n }\n disabled = this.execute(items[name].disabled, false);\n }\n return \n })}\n \n {}\n
;\n }\n}\n\nConfigTabs.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n originalData: PropTypes.object,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n customs: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n commandRunning: PropTypes.bool,\n onCommandRunning: PropTypes.func,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n multiEdit: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n customObj: PropTypes.object,\n instanceObj: PropTypes.object,\n custom: PropTypes.bool,\n\n registerOnForceUpdate: PropTypes.func.isRequired,\n forceUpdate: PropTypes.func.isRequired,\n changeLanguage: PropTypes.func,\n systemConfig: PropTypes.object,\n alive: PropTypes.bool,\n common: PropTypes.object,\n};\n\nexport default withStyles(styles)(ConfigTabs);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport { Autocomplete, TextField } from '@mui/material';\n\nimport I18n from '../../i18n';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigText extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n static getDerivedStateFromProps(props, state) {\n const value = ConfigGeneric.getValue(props.data, props.attr);\n if (value === null || value === undefined || value.toString().trim() !== (state.value || '').toString().trim()) {\n return {value};\n } else {\n return null;\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n let isIndeterminate = Array.isArray(this.state.value) || this.state.value === ConfigGeneric.DIFFERENT_VALUE;\n\n if (isIndeterminate) {\n const arr = [...this.state.value].map(item => ({label: item.toString(), value: item}));\n arr.unshift({label: I18n.t(ConfigGeneric.DIFFERENT_LABEL), value: ConfigGeneric.DIFFERENT_VALUE});\n\n return option.label === value.label}\n onChange={(_, value) =>\n this.onChange(this.props.attr, value ? value.value : '')}\n options={arr}\n getOptionLabel={option => option.label}\n renderInput={params => }\n />;\n } else {\n return {\n const value = e.target.value;\n this.setState({value}, () =>\n this.onChange(this.props.attr, this.props.schema.trim === false ? value : (value || '').trim()));\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n }\n }\n}\n\nConfigText.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigText);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport TextField from '@mui/material/TextField';\nimport IconButton from '@mui/material/IconButton';\n\nimport copy from '../copy-to-clipboard';\nimport CopyIcon from '../../icons/IconCopy';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n }\n});\n\nclass ConfigTextSendTo extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n\n this.askInstance();\n }\n\n askInstance() {\n if (this.props.alive) {\n let data = this.props.schema.data;\n if (data === undefined && this.props.schema.jsonData) {\n data = this.getPattern(this.props.schema.jsonData);\n try {\n data = JSON.parse(data);\n } catch (e) {\n console.error('Cannot parse json data: ' + data);\n }\n }\n\n if (data === undefined) {\n data = null;\n }\n\n this.props.socket.sendTo(`${this.props.adapterName}.${this.props.instance}`, this.props.schema.command || 'send', data)\n .then(text => this.setState({text: text || '', context: this.getContext()}));\n }\n }\n\n getContext() {\n const context = {};\n if (Array.isArray(this.props.schema.alsoDependsOn)) {\n this.props.schema.alsoDependsOn.forEach(attr =>\n context[attr] = ConfigGeneric.getValue(this.props.data, attr));\n }\n return JSON.stringify(context);\n }\n\n renderItem(error, disabled, defaultValue) {\n if (this.state.text === undefined) {\n return null;\n }\n\n if (this.props.alive) {\n const context = this.getContext();\n if (context !== this.state.context) {\n setTimeout(() => {\n this.askInstance();\n }, 300);\n }\n }\n\n if (this.props.schema.container === 'text') {\n return {\n copy(this.state.text);\n window.alert('Copied');\n }}>\n \n \n : undefined,\n }}\n value={this.state.text}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />;\n } else {\n return
{this.state.text}
;\n }\n }\n}\n\nConfigTextSendTo.propTypes = {\n socket: PropTypes.object.isRequired,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n};\n\nexport default withStyles(styles)(ConfigTextSendTo);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport { TimePicker } from '@mui/x-date-pickers';\n\nconst styles = theme => ({\n indeterminate: {\n opacity: 0.5\n }\n});\n\nclass ConfigTimePicker extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n this.setState({ value });\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n InputLabelProps={{\n shrink: true,\n }}\n placeholder={this.getText(this.props.schema.placeholder)}\n label={this.getText(this.props.schema.label)}\n helperText={this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)}\n />\n }\n}\n\nConfigTimePicker.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigTimePicker);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport ConfigGeneric from './ConfigGeneric';\nimport { TextField } from '@mui/material';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nfunction convertID2Topic(id, prefix, namespace) {\n let topic;\n if (namespace && id.substring(0, namespace.length) === namespace) {\n topic = id.substring(namespace.length + 1);\n } else {\n topic = id;\n }\n topic = topic.replace(/\\./g, '/').replace(/_/g, ' ');\n return topic;\n}\n\nclass ConfigTopic extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n if (!value && this.props.customObj && this.props.customObj._id) {\n let topic = convertID2Topic(this.props.customObj._id, null, this.props.adapterName + '.' + this.props.instance);\n this.setState({value: topic});\n } else {\n this.setState({value: value || ''});\n }\n }\n\n renderItem(error, disabled, defaultValue) {\n return {\n const value = e.target.value;\n this.setState({ value }, () =>\n this.onChange(this.props.attr, value));\n }}\n />;\n }\n}\n\nConfigTopic.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n customObj: PropTypes.object,\n};\n\nexport default withStyles(styles)(ConfigTopic);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport InputLabel from '@mui/material/InputLabel';\nimport MenuItem from '@mui/material/MenuItem';\nimport FormHelperText from '@mui/material/FormHelperText';\nimport FormControl from '@mui/material/FormControl';\nimport Select from '@mui/material/Select';\n\nimport Icon from '../Icon';\nimport I18n from '../../i18n';\nimport Utils from '../Utils';\n\nimport ConfigGeneric from './ConfigGeneric';\n\nconst styles = theme => ({\n fullWidth: {\n width: '100%'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass ConfigUser extends ConfigGeneric {\n componentDidMount() {\n super.componentDidMount();\n this.props.socket.getUsers()\n .then(users => {\n const _users = {};\n const lang = I18n.getLanguage();\n\n if (this.props.schema.short) {\n users.forEach(user => _users[user._id] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n } else {\n users.forEach(user => _users[user._id.replace(/^system\\.user\\./, '')] = {\n color: user.common?.color,\n icon: user.common?.icon,\n name: Utils.getObjectNameFromObj(user, lang)\n });\n }\n\n this.setState({users: _users});\n });\n }\n\n renderItem(error, disabled, defaultValue) {\n const value = ConfigGeneric.getValue(this.props.data, this.props.attr);\n\n return \n {this.getText(this.props.schema.label)}\n {this.state.users && this.state.users[val]?.icon ? : null}{(this.state.users && this.state.users[val]?.name) || val || ''}}\n style={{ color: (this.state.users && this.state.users[value]?.color) || undefined, backgroundColor: Utils.getInvertedColor(this.state.users && this.state.users[value]?.color, this.props.themeType) }}\n onChange={e => this.onChange(this.props.attr, e.target.value)}\n >\n {this.state.users && Object.keys(this.state.users).map(id => \n {this.state.users[id].icon ? : null}\n {this.state.users[id].name}\n )}\n \n {this.props.schema.help ? {this.renderHelp(this.props.schema.help, this.props.schema.helpLink, this.props.schema.noTranslation)} : null}\n ;\n }\n}\n\nConfigUser.propTypes = {\n socket: PropTypes.object.isRequired,\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(ConfigUser);","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@mui/styles';\n\nimport LinearProgress from '@mui/material/LinearProgress';\n\nimport I18n from '../../i18n';\n\nimport ConfigTabs from './ConfigTabs';\nimport ConfigPanel from './ConfigPanel';\n\nconst styles = theme => ({\n root: {\n width: '100%',\n height: '100%'\n }\n});\n\nclass JsonConfigComponent extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n originalData: JSON.stringify(this.props.data),\n changed: false,\n errors: {\n\n },\n updateData: this.props.updateData,\n systemConfig: null,\n alive: false,\n commandRunning: false,\n schema: JSON.parse(JSON.stringify(this.props.schema))\n };\n\n this.forceUpdateHandlers = {};\n\n this.buildDependencies(this.state.schema);\n\n this.readData();\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.updateData !== state.updateData) {\n return {\n updateData: props.updateData,\n originalData: JSON.stringify(props.data),\n schema: JSON.parse(JSON.stringify(props.schema)),\n };\n } else {\n return null;\n }\n }\n\n static loadI18n(socket, i18n, adapterName) {\n if (i18n === true || (i18n && typeof i18n === 'string')) {\n const lang = I18n.getLanguage();\n const path = typeof i18n === 'string' ? i18n : 'i18n';\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}.json`)\n .then(exists => {\n if (exists) {\n return `${path}/${lang}.json`;\n } else {\n return socket.fileExists(adapterName + '.admin', `${path}/${lang}/translations.json`)\n .then(exists =>\n exists ? `${path}/${lang}/translations.json` : '')\n }\n })\n .then(fileName => {\n if (fileName) {\n return socket.readFile(adapterName + '.admin', fileName)\n .then(json => {\n if (json.file !== undefined) {\n json = json.file;\n }\n try {\n json = JSON.parse(json);\n // apply file to I18n\n I18n.extendTranslations(json, lang);\n } catch (e) {\n console.error(`Cannot parse language file \"${adapterName}.admin/${fileName}: ${e}`);\n }\n })\n } else {\n console.warn(`Cannot find i18n for ${adapterName} / ${fileName}`);\n return Promise.resolve();\n }\n });\n } else if (i18n && typeof i18n === 'object') {\n I18n.extendTranslations(i18n);\n return Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n\n onCommandRunning = commandRunning => this.setState( {commandRunning});\n\n readSettings() {\n if ((this.props.custom || this.props.common) && this.props.data) {\n return Promise.resolve();\n } else {\n return this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`)\n .then(obj => this.setState({common: obj.common, data: this.props.data || obj.native}));\n }\n }\n\n readData() {\n this.readSettings()\n .then(() => this.props.socket.getCompactSystemConfig())\n .then(systemConfig =>\n this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`)\n .then(state => {\n if (this.props.custom) {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)});\n } else {\n this.setState({systemConfig: systemConfig.common, alive: !!(state && state.val)}, () =>\n this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`, this.onAlive));\n }\n }));\n }\n\n onAlive = (id, state) => {\n if ((state?.val || false) !== this.state.alive) {\n this.setState({alive: state?.val || false});\n }\n }\n\n onChange = (data, value, cb) => {\n if (this.props.onValueChange) {\n this.props.onValueChange(data, value);\n cb && cb();\n } else {\n const state = {data};\n\n const _data = {};\n // remove all attributes starting with \"_\"\n Object.keys(data).forEach(attr => !attr.startsWith('_') && (_data[attr] = data[attr]));\n\n state.changed = JSON.stringify(_data) !== this.state.originalData;\n\n this.setState({state}, () => {\n this.props.onChange(_data, state.changed);\n cb && cb();\n });\n }\n }\n\n onError = (attr, error) => {\n const errors = JSON.parse(JSON.stringify(this.state.errors));\n if (error) {\n errors[attr] = error;\n } else {\n delete errors[attr];\n }\n\n if (JSON.stringify(errors) !== JSON.parse(JSON.stringify(this.state.errors))) {\n this.setState({errors}, () =>\n this.props.onError(!!Object.keys(this.state.errors).length));\n }\n }\n\n flatten(schema, _list) {\n _list = _list || {};\n if (schema.items) {\n Object.keys(schema.items).forEach(attr => {\n _list[attr] = schema.items[attr];\n this.flatten(schema.items[attr], _list);\n });\n }\n\n return _list;\n }\n\n buildDependencies(schema) {\n const attrs = this.flatten(schema);\n Object.keys(attrs).forEach(attr => {\n if (attrs[attr].confirm?.alsoDependsOn) {\n attrs[attr].confirm?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].confirmDependsOn = attrs[dep].confirmDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n if (depObj.confirm) {\n depObj.confirm.cancel = 'Undo';\n }\n\n attrs[dep].confirmDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].onChange?.alsoDependsOn) {\n attrs[attr].onChange?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].onChangeDependsOn = attrs[dep].onChangeDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].onChangeDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].hidden?.alsoDependsOn) {\n attrs[attr].hidden?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].hiddenDependsOn = attrs[dep].hiddenDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].hiddenDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].label?.alsoDependsOn) {\n attrs[attr].label?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].labelDependsOn = attrs[dep].labelDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].labelDependsOn.push(depObj);\n }\n });\n }\n\n if (attrs[attr].help?.alsoDependsOn) {\n attrs[attr].help?.alsoDependsOn.forEach(dep => {\n if (!attrs[dep]) {\n console.error(`[JsonConfigComponent] Attribute ${dep} does not exist!`);\n if (dep.startsWith('data.')) {\n console.warn(`[JsonConfigComponent] please use \"${dep.replace(/^data\\./, '')}\" instead of \"${dep}\"`);\n }\n } else {\n attrs[dep].helpDependsOn = attrs[dep].helpDependsOn || [];\n\n const depObj = {...attrs[attr], attr};\n\n attrs[dep].helpDependsOn.push(depObj);\n }\n });\n }\n });\n }\n\n renderItem(item) {\n if (item.type === 'tabs') {\n return this.onError(attr, error)}\n />;\n } else if (item.type === 'panel' || !item.type) {\n return this.onError(attr, error)}\n />;\n }\n }\n\n changeLanguage = () => {\n this.forceUpdate();\n }\n\n forceAttrUpdate = (attr, data) => {\n if (Array.isArray(attr)) {\n attr.forEach(a =>\n this.forceUpdateHandlers[a] && this.forceUpdateHandlers[a](data));\n } else {\n if (this.forceUpdateHandlers[attr]) {\n this.forceUpdateHandlers[attr](data);\n }\n }\n }\n\n registerOnForceUpdate = (attr, cb) => {\n if (cb) {\n this.forceUpdateHandlers[attr] = cb;\n } else if (this.forceUpdateHandlers[attr]) {\n delete this.forceUpdateHandlers[attr];\n }\n }\n\n render() {\n if (!this.state.systemConfig) {\n return ;\n }\n\n return
\n {this.renderItem(this.state.schema)}\n
;\n }\n}\n\nJsonConfigComponent.propTypes = {\n socket: PropTypes.object.isRequired,\n\n adapterName: PropTypes.string,\n instance: PropTypes.number,\n common: PropTypes.object,\n customs: PropTypes.object, // custom components\n\n custom: PropTypes.bool, // is the customs settings must be shown\n customObj: PropTypes.object,\n multiEdit: PropTypes.bool, // set if user edits more than one object simultaneously\n instanceObj: PropTypes.object,\n dateFormat: PropTypes.string,\n isFloatComma: PropTypes.bool,\n imagePrefix: PropTypes.string,\n\n themeType: PropTypes.string,\n themeName: PropTypes.string,\n style: PropTypes.object,\n className: PropTypes.string,\n data: PropTypes.object.isRequired,\n updateData: PropTypes.number,\n schema: PropTypes.object,\n onError: PropTypes.func,\n onChange: PropTypes.func,\n onValueChange: PropTypes.func,\n};\n\nexport default withStyles(styles)(JsonConfigComponent);","/**\n * Copyright 2021-2022 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\n// import './PT.css'\nconst ptStyles = `\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n.pt-logo-div {\n position: absolute;\n top: 50%;\n left: 50%;\n -ms-transform: translateX(-50%) translateY(-50%);\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n z-index: 2;\n}\n.pt-logo-border {\n border-style: solid;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n position: absolute;\n}\n.pt-loader-block {\n height: 65px;\n width: 74px;\n border-radius: 15px;\n position: absolute;\n box-sizing: content-box;\n}\n.pt-loader-blue {\n border: 9px solid #0F99DE;\n transform: rotate(5grad);\n left: 93px;\n top: 0;\n animation: spin-blue 5s ease-in-out infinite;\n}\n.pt-loader-green {\n border: 9px solid #88A536;\n transform: rotate(-6grad);\n left: 70px;\n top: 58px;\n animation: spin-green 5s ease-in-out infinite;\n}\n.pt-loader-red {\n border: 9px solid #BD1B24;\n transform: rotate(-15grad);\n left: 24px;\n top: 100px;\n animation: spin-red 5s ease-in-out infinite;\n}\n\n@keyframes spin-blue {\n 0% {\n transform: rotate(5deg);\n }\n 25% {\n transform: rotate(185deg);\n }\n 50% {\n transform: rotate(185deg);\n }\n 75% {\n transform: rotate(185deg);\n }\n 100% {\n transform: rotate(185deg);\n }\n}\n@keyframes spin-green {\n 0% {\n transform: rotate(-6deg);\n }\n 25% {\n transform: rotate(-6deg);\n }\n 50% {\n transform: rotate(174deg);\n }\n 75% {\n transform: rotate(174deg);\n }\n 100% {\n transform: rotate(-6deg);\n }\n}\n@keyframes spin-red {\n 0% {\n transform: rotate(-15deg);\n }\n 25% {\n transform: rotate(-15deg);\n }\n 50% {\n transform: rotate(-15deg);\n }\n 75% {\n transform: rotate(165deg);\n }\n 100% {\n transform: rotate(165deg);\n }\n}\n`;\n\n/**\n * @typedef {object} LoaderPTProps\n * @property {number} [size] The size in pixels of this loader.\n * @property {string} [themeType] The chosen theme type.\n * @property {string} [theme] The chosen theme.\n *\n * @extends {React.Component}\n */\nclass LoaderPT extends React.Component {\n /**\n * @param {LoaderPTProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n\n if (!window.document.getElementById('pt-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'pt-iobroker-component');\n style.innerHTML = ptStyles;\n window.document.head.appendChild(style);\n }\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return
\n
\n
\n
\n
\n
\n
\n
\n
;\n }\n}\n\nLoaderPT.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderPT} */\nconst _export = LoaderPT;\nexport default _export;","/**\n * Copyright 2021-2022 ioBroker GmbH\n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport CircularProgress from '@mui/material/CircularProgress';\n// import './Vendor.css'\nconst vendorStyles = `\n.logo-background-light, .logo-background-colored {\n background: white;\n}\n.logo-background-dark, .logo-background-blue {\n background: black;\n}\n`;\n\n/**\n * @typedef {object} LoaderVendorProps\n * @property {number} [size] The size in pixels of this loader.\n * @property {string} [themeType] The chosen theme type.\n * @property {string} [theme] The chosen theme.\n *\n * @extends {React.Component}\n */\nclass LoaderVendor extends React.Component {\n /**\n * @param {LoaderVendorProps} props\n */\n constructor(props) {\n super(props);\n this.size = this.props.size || 200;\n\n if (!window.document.getElementById('vendor-iobroker-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'vendor-iobroker-component');\n style.innerHTML = vendorStyles;\n window.document.head.appendChild(style);\n }\n }\n\n render() {\n const theme = this.props.themeType || this.props.theme || 'light';\n return
\n
\n \n
\n
;\n }\n}\n\nLoaderVendor.propTypes = {\n size: PropTypes.number,\n themeType: PropTypes.string\n};\n\n/** @type {typeof LoaderVendor} */\nconst _export = LoaderVendor;\nexport default _export;\n","// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport withStyles from '@mui/styles/withStyles';\nimport Fab from '@mui/material/Fab';\nimport PropTypes from 'prop-types';\n\nimport I18n from '../i18n';\n\nimport IconHelp from '@mui/icons-material/Help'\nimport IconUpload from '@mui/icons-material/VerticalAlignTop'\nimport IconDownload from '@mui/icons-material/VerticalAlignBottom'\n\nconst styles = theme => ({\n buttons: {\n marginRight: 5,\n marginTop: 5,\n float: 'right'\n },\n logo: {\n padding: 8,\n width: 64\n }\n});\n\n/**\n * @typedef {object} LogoProps\n * @property {any} common Adapter common configuration from io-package.json\n * @property {any} native Adapter native data from io-package.json\n * @property {number} instance Adapter instance number.\n * @property {(contents: any) => void} [onLoad]\n * @property {(error: string) => void} [onError]\n * @property {{ buttons: string, logo: string }} classes The styling class names.\n *\n * @extends {React.Component}\n */\nclass Logo extends React.Component {\n\n static generateFile(filename, obj) {\n const el = window.document.createElement('a');\n el.setAttribute('href', 'data:application/json;charset=utf-8,' + encodeURIComponent(JSON.stringify(obj, null, 2)));\n el.setAttribute('download', filename);\n\n el.style.display = 'none';\n window.document.body.appendChild(el);\n\n el.click();\n\n window.document.body.removeChild(el);\n }\n\n handleFileSelect(evt) {\n const f = evt.target.files[0];\n if (f) {\n const r = new window.FileReader();\n r.onload = e => {\n const contents = e.target.result;\n try {\n const json = JSON.parse(contents);\n if (json.native && json.common) {\n if (json.common.name !== this.props.common.name) {\n this.props.onError && this.props.onError(I18n.t('ra_otherConfig', json.common.name));\n } else {\n this.props.onLoad && this.props.onLoad(json.native);\n }\n } else {\n this.props.onError && this.props.onError(I18n.t('ra_invalidConfig'));\n }\n } catch (e) {\n this.props.onError && this.props.onError(e.toString());\n }\n };\n r.readAsText(f);\n } else {\n alert('Failed to open JSON File');\n }\n }\n\n download() {\n const result = {\n _id: `system.adapter.${this.props.common.name}.${this.props.instance}`,\n common: JSON.parse(JSON.stringify(this.props.common)),\n native: this.props.native\n };\n // remove unimportant information\n if (result.common.news) {\n delete result.common.news;\n }\n if (result.common.titleLang) {\n delete result.common.titleLang;\n }\n if (result.common.desc) {\n delete result.common.desc;\n }\n\n //window.open('data:application/iobroker; content-disposition=attachment; filename=' + result._id + '.json,' + JSON.stringify(result, null, 2));\n Logo.generateFile(result._id + '.json', result);\n }\n\n upload() {\n const input = window.document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleFileSelect(e, () => {}), false);\n (input.click)();\n }\n\n render() {\n return
\n {this.props.common.icon ?\n \"logo\"/ : null}\n {this.props.common.readme ?\n {\n const win = window.open(this.props.common.readme, '_blank');\n win.focus();\n }}\n > : null}\n this.upload()}>\n this.download()}>\n
;\n }\n}\n\nLogo.propTypes = {\n common: PropTypes.object.isRequired,\n className: PropTypes.string,\n style: PropTypes.object,\n native: PropTypes.object.isRequired,\n instance: PropTypes.number.isRequired,\n onError: PropTypes.func.isRequired,\n onLoad: PropTypes.func.isRequired,\n};\n\n/** @type {typeof Logo} */\nconst _export = withStyles(styles)(Logo);\nexport default _export;","/**\n * Copyright 2018-2022 bluefox \n *\n * MIT License\n *\n **/\nimport React from 'react';\nimport copy from './copy-to-clipboard';\n\nclass MDUtils {\n static text2link(text) {\n const m = text.match(/\\d+\\.\\)\\s/);\n if (m) {\n text = text.replace(m[0], m[0].replace(/\\s/, ' '));\n }\n\n return text.replace(/[^a-zA-Zа-яА-Я0-9]/g, '').trim().replace(/\\s/g, '').toLowerCase();\n }\n\n static openLink(url, target) {\n if (target === 'this') {\n window.location = url;\n } else {\n window.open(url, target || '_blank');\n }\n }\n\n static getTitle(text) {\n let {body, header} = MDUtils.extractHeader(text);\n if (!header.title) {\n // remove {docsify-bla}\n body = body.replace(/{[^}]*}/g, '');\n body = body.trim();\n const lines = body.replace(/\\r/g, '').split('\\n');\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].startsWith('# ')) {\n return lines[i].substring(2).trim();\n }\n }\n return '';\n } else {\n return header.title;\n }\n }\n\n static extractHeader(text) {\n const attrs = {};\n if (text.substring(0, 3) === '---') {\n const pos = text.substring(3).indexOf('\\n---');\n if (pos !== -1) {\n const _header = text.substring(3, pos + 3);\n const lines = _header.replace(/\\r/g, '').split('\\n');\n lines.forEach(line => {\n if (!line.trim()) {\n return;\n }\n const pos = line.indexOf(':');\n if (pos !== -1) {\n const attr = line.substring(0, pos).trim();\n attrs[attr] = line.substring(pos + 1).trim();\n attrs[attr] = attrs[attr].replace(/^['\"]|['\"]$/g, '');\n if (attrs[attr] === 'true') {\n attrs[attr] = true;\n } else if (attrs[attr] === 'false') {\n attrs[attr] = false;\n } else if (parseFloat(attrs[attr]).toString() === attrs[attr]) {\n attrs[attr] = parseFloat(attrs[attr]);\n }\n } else {\n attrs[line.trim()] = true;\n }\n });\n text = text.substring(pos + 7);\n }\n }\n return {header: attrs, body: text};\n }\n\n static removeDocsify(text) {\n const m = text.match(/{docsify-[^}]*}/g);\n if (m) {\n m.forEach(doc => text = text.replace(doc, ''));\n }\n return text;\n }\n\n static onCopy(e, text) {\n copy(text);\n e && e.stopPropagation();\n e && e.preventDefault();\n }\n}\n\nexport default MDUtils;","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport {FormControl, InputLabel, MenuItem, Select} from '@mui/material';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\nimport I18n from '../i18n';\n\nconst styles = theme => ({\n different: {\n opacity: 0.5\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8\n }\n});\n\nclass SelectWithIcon extends Component {\n constructor(props) {\n super(props);\n\n if (this.props.different) {\n this.wordDifferent = this.props.t(this.props.different);\n }\n\n let list;\n if (Array.isArray(this.props.list || this.props.options)) {\n list = this.props.list.map(obj => ({\n name: Utils.getObjectNameFromObj(obj, this.props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: obj._id,\n icon: obj.common?.icon,\n color: obj.common?.color,\n }));\n } else {\n list = Object.values(this.props.list || this.props.options).map(obj => ({\n name: Utils.getObjectNameFromObj(obj, this.props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: obj._id,\n icon: obj.common?.icon,\n color: obj.common?.color,\n }));\n }\n\n if (this.props.different && this.props.value === this.props.different) {\n list.unshift({value: this.props.different, name: this.wordDifferent});\n }\n\n if (this.props.allowNone) {\n list.unshift({value: '', name: I18n.t('ra_none')});\n }\n\n this.state = {\n list,\n };\n }\n\n render() {\n if (this.props.allowNone && !this.state.list.find(obj => obj.value === '')) {\n this.timeout = this.timeout || setTimeout(() => {\n this.timeout = null;\n const list = JSON.parse(JSON.stringify(this.state.list));\n list.unshift({value: '', name: I18n.t('ra_none')});\n this.setState({list});\n }, 100);\n } else if (!this.props.allowNone && this.state.list.find(obj => obj.value === '')) {\n this.timeout = this.timeout || setTimeout(() => {\n this.timeout = null;\n const list = JSON.parse(JSON.stringify(this.state.list));\n const i = this.state.list.findIndex(obj => obj.value === '');\n list.splice(i, 1);\n this.setState({list});\n }, 100);\n }\n\n const item = this.state.list.find(it => it.value === this.props.value || (this.props.removePrefix && it.value.replace(this.props.removePrefix, '') === this.props.value));\n\n const style = this.props.value === this.props.different ? {} :\n {\n color: item?.color || undefined,\n backgroundColor: Utils.getInvertedColor(item?.color, this.props.themeType)\n };\n\n if (this.props.dense && this.props.style) {\n Object.assign(style, this.props.style);\n }\n\n const select = {item?.icon ? : null}{item?.name}}\n classes={{root: Utils.clsx(\n this.props.value === this.props.different ? this.props.classes.different : '',\n this.props.dense ? this.props.className : ''\n )}}\n style={style}\n onChange={el => {\n if (this.props.different && el.target.value !== this.props.different) {\n let pos = null;\n for (let i = 0; i < this.state.list.length; i++) {\n if (this.state.list[i].value === this.props.different) {\n pos = i;\n break;\n }\n }\n if (pos !== null) {\n const list = Utils.clone(this.state.list);\n list.splice(pos, 1);\n return this.setState({list}, () => this.props.onChange(el.target.value));\n }\n }\n\n this.props.onChange(this.props.removePrefix ? el.target.value.replace(this.props.removePrefix, '') : el.target.value);\n }}\n >\n {this.state.list.map(el => \n {el.icon ? : null}\n {el.name}\n )}\n ;\n\n if (this.props.dense) {\n return select;\n } else {\n return \n {this.props.label}\n {select}\n ;\n\n }\n }\n}\n\nSelectWithIcon.propTypes = {\n t: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n themeType: PropTypes.string,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n disabled: PropTypes.bool,\n list: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n options: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n different: PropTypes.oneOfType([PropTypes.string, PropTypes.bool]),\n label: PropTypes.string,\n fullWidth: PropTypes.bool,\n className: PropTypes.string,\n style: PropTypes.object,\n removePrefix: PropTypes.string,\n allowNone: PropTypes.bool,\n inputProps: PropTypes.object,\n};\n\nexport default withStyles(styles)(SelectWithIcon);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Icon from './Icon';\nimport Utils from './Utils';\n\nconst styles = theme => ({\n div: {\n borderRadius: 3,\n padding: '0 3px',\n lineHeight: '20px',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center'\n },\n icon: {\n width: 16,\n height: 16,\n marginRight: 8,\n verticalAlign: 'middle',\n },\n text: {\n display: 'inline-block',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n }\n});\n\nconst TextWithIcon = props => {\n let item = props.value;\n let prefix = props.removePrefix || '';\n\n if (typeof item === 'string') {\n const list = props.list || props.options;\n if (props.list) {\n if (Array.isArray(list)) {\n const _item = list.find(obj => obj._id === prefix + item);\n if (_item) {\n item = {\n name: Utils.getObjectNameFromObj(_item, props.lang).replace('system.group.', ''),\n value: _item._id,\n icon: _item.common?.icon,\n color: _item.common?.color,\n };\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else if (list[prefix + item]) {\n item = {\n name: Utils.getObjectNameFromObj(list[prefix + item], props.lang).replace('system.group.', ''),\n value: list[prefix + item]._id,\n icon: list[prefix + item].common?.icon,\n color: list[prefix + item].common?.color,\n };\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else {\n item = {\n name: item,\n value: prefix + item,\n };\n }\n } else if (!item || typeof item !== 'object') {\n item = {\n name: '',\n value: '',\n };\n } else {\n item = {\n name: Utils.getObjectNameFromObj(item, props.lang)\n .replace('system.group.', '')\n .replace('system.user.', '')\n .replace('enum.rooms.', '')\n .replace('enum.functions.', ''),\n value: item._id,\n icon: item.common?.icon,\n color: item.common?.color,\n };\n }\n\n const style = item?.color ? {\n border:`1px solid ${Utils.invertColor(item?.color)}`,\n color: Utils.getInvertedColor(item?.color, props.themeType, true) || undefined,\n backgroundColor: item?.color\n } : {};\n\n return
\n {item?.icon ? : null}
{item?.name}
\n
;\n}\n\nTextWithIcon.propTypes = {\n lang: PropTypes.string.isRequired,\n themeType: PropTypes.string,\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n list: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n options: PropTypes.oneOfType([PropTypes.array, PropTypes.object]), // one of \"list\"(Array) or \"options\"(object) is required\n className: PropTypes.string,\n style: PropTypes.object,\n title: PropTypes.string,\n removePrefix: PropTypes.string,\n moreClasses: PropTypes.object,\n};\n\nexport default withStyles(styles)(TextWithIcon);","import React from 'react';\n\nimport { IconButton, Tooltip } from '@mui/material';\n\nimport Brightness4Icon from '@mui/icons-material/Brightness4';\nimport Brightness5Icon from '@mui/icons-material/Brightness5';\nimport Brightness6Icon from '@mui/icons-material/Brightness6';\nimport Brightness7Icon from '@mui/icons-material/Brightness7';\n\nexport default function ToggleThemeMenu({ themeName, toggleTheme, t, className, style, size }) {\n return
\n \n toggleTheme()} size={size || 'medium'}>\n {themeName === 'dark' && }\n {themeName === 'blue' && }\n {themeName === 'colored' && }\n {themeName === 'light' && }\n \n \n
;\n}","import React from 'react';\n\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport { HexColorPicker as ColorPicker } from 'react-colorful';\n\nimport Fab from '@mui/material/Fab';\nimport Table from '@mui/material/Table';\nimport TableBody from '@mui/material/TableBody';\nimport TableCell from '@mui/material/TableCell';\nimport TableHead from '@mui/material/TableHead';\nimport TableRow from '@mui/material/TableRow';\nimport TableSortLabel from '@mui/material/TableSortLabel';\nimport IconButton from '@mui/material/IconButton';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport TextField from '@mui/material/TextField';\nimport Checkbox from '@mui/material/Checkbox';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconEdit from '@mui/icons-material/Edit';\nimport IconDelete from '@mui/icons-material/Delete';\nimport IconExpand from '@mui/icons-material/NavigateNext';\nimport IconCollapse from '@mui/icons-material/ExpandMore';\nimport IconCheck from '@mui/icons-material/Check';\nimport IconClose from '@mui/icons-material/Close';\nimport IconAdd from '@mui/icons-material/Add';\nimport IconList from '@mui/icons-material/ViewHeadline';\nimport IconColor from '@mui/icons-material/Colorize';\n\nimport DialogSelectID from '../Dialogs/SelectID';\nimport Utils from './Utils';\n\nfunction getAttr(obj, attr, lookup) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (!obj) {\n return null;\n }\n\n if (attr.length === 1) {\n if (lookup && lookup[obj[attr[0]]]) {\n return lookup[obj[attr[0]]];\n } else {\n return obj[attr[0]];\n }\n } else {\n const name = attr.shift();\n return getAttr(obj[name], attr);\n }\n}\n\nfunction setAttr(obj, attr, value) {\n if (typeof attr === 'string') {\n attr = attr.split('.');\n }\n\n if (attr.length === 1) {\n return obj[attr[0]] = value;\n } else {\n const name = attr.shift();\n if (obj[name] === null || obj[name] === undefined) {\n obj[name] = {};\n }\n return setAttr(obj[name], attr, value);\n }\n}\n\nconst styles = theme => ({\n tableContainer: {\n width: '100%',\n height: '100%',\n overflow: 'auto'\n },\n table: {\n width: '100%',\n minWidth: 800,\n maxWidth: 1920,\n },\n cell: {\n paddingTop: 0,\n paddingBottom: 0,\n paddingLeft: 4,\n paddingRight: 4,\n },\n rowMainWithChildren: {\n\n },\n rowMainWithoutChildren: {\n\n },\n rowNoEdit: {\n opacity: 0.3\n },\n cellExpand: {\n width: 30,\n },\n cellButton: {\n width: 30,\n },\n cellHeader: {\n fontWeight: 'bold',\n background: theme.palette.mode === 'dark' ? '#888' : '#888',\n color: theme.palette.mode === 'dark' ? '#EEE' : '#111',\n height: 48,\n wordBreak: 'break-word',\n whiteSpace: 'pre',\n },\n width_name_nicknames: {\n maxWidth: 150,\n },\n width_ioType: {\n maxWidth: 100,\n },\n width_type: {\n maxWidth: 100,\n },\n width_displayTraits: {\n maxWidth: 100,\n },\n width_roomHint: {\n maxWidth: 100,\n },\n rowSecondary: {\n fontStyle: 'italic',\n },\n cellSecondary: {\n fontSize: 10,\n },\n visuallyHidden: {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: 1,\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n top: 20,\n width: 1,\n },\n fieldEditWithButton: {\n width: `calc(100% - 33px)`,\n display: 'inline-block',\n },\n fieldEdit: {\n width: `100%`,\n display: 'inline-block',\n lineHeight: '50px',\n verticalAlign: 'middle',\n },\n fieldButton: {\n width: 30,\n display: 'inline-block',\n },\n colorDialog: {\n overflow: 'hidden',\n padding: 15,\n },\n subText: {\n fontSize: 10,\n fontStyle: 'italic',\n },\n glow: {\n animation: 'glow 0.2s 2 alternate'\n }\n});\n\nfunction descendingComparator(a, b, orderBy, lookup) {\n const _a = getAttr(a, orderBy, lookup) || '';\n const _b = getAttr(b, orderBy, lookup) || '';\n\n if (_b < _a) {\n return -1;\n } else\n if (_b > _a) {\n return 1;\n } else {\n return 0;\n }\n}\n\nfunction getComparator(order, orderBy, lookup) {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy, lookup)\n : (a, b) => -descendingComparator(a, b, orderBy, lookup);\n}\n\nfunction stableSort(array, comparator) {\n const stabilizedThis = array.map((el, index) => [el, index]);\n\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order) {\n return order;\n } else {\n return a[1] - b[1];\n }\n });\n\n return stabilizedThis.map(el => el[0]);\n}\n\nclass TreeTable extends React.Component {\n constructor(props) {\n super(props);\n\n let opened = (window._localStorage || window.localStorage).getItem(this.props.name || 'iob-table') || '[]';\n try {\n opened = JSON.parse(opened) || [];\n } catch (e) {\n opened = [];\n }\n if (!Array.isArray(opened)) {\n opened = [];\n }\n\n this.state = {\n opened,\n editMode: false,\n deleteMode: false,\n editData: null,\n order: 'asc',\n update: null,\n orderBy: this.props.columns[0].field,\n useTable: false,\n showSelectColor: false,\n glowOnChange: props.glowOnChange,\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n if (props.glowOnChange) {\n const update = [];\n let count = 0;\n if (props.data && state.data) {\n props.data.forEach(line => {\n count++;\n const oldLine = state.data.find(it => it.id === line.id);\n if (oldLine) {\n if (JSON.stringify(oldLine) !== JSON.stringify(line)) {\n update.push(line.id);\n }\n } else {\n update.push(line.id);\n }\n });\n }\n\n if (update.length && update.length !== count) {\n return {data: props.data, update};\n } else {\n return {data: props.data};\n }\n } else {\n return {data: props.data};\n }\n }\n\n renderCellEdit(item, col) {\n let val = getAttr(item, col.field);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.lookup) {\n return this.renderCellEditSelect(item, col, val);\n } if (col.editComponent) {\n return this.renderCellEditCustom(item, col, val);\n } else {\n if (col.type === 'boolean' || (!col.type && typeof val === 'boolean')) {\n return this.renderCellEditBoolean(item, col, val);\n } else if (col.type === 'color') {\n return this.renderCellEditColor(item, col, val);\n } else if (col.type === 'oid') {\n return this.renderCellEditObjectID(item, col, val);\n } else {\n return this.renderCellEditString(item, col, val);\n }\n }\n }\n\n renderCellEditSelect(item, col, val) {\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n value={(this.state.editData && this.state.editData[col.field]) || val}\n >\n {Object.keys(col.lookup).map(v => {col.lookup[v]})}\n ;\n }\n\n renderCellEditString(item, col, val) {\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />;\n }\n\n renderCellEditCustom(item, col, val) {\n const EditComponent = col.editComponent;\n\n // use new value if exists\n if (this.state.editData && this.state.editData[col.field] !== undefined) {\n val = this.state.editData[col.field];\n item = JSON.parse(JSON.stringify(item));\n item[col.field] = val;\n }\n\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (newVal === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newVal;\n }\n this.setState({editData});\n }}\n />;\n }\n\n renderCellEditBoolean(item, col, val) {\n return {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.checked === !!val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.checked;\n }\n this.setState({editData});\n }}\n inputProps={{ 'aria-label': 'checkbox' }}\n />;\n }\n\n renderSelectColorDialog() {\n return {\n this.selectCallback = null;\n this.setState({showSelectColor: false});\n }}\n open={this.state.showSelectColor}>\n {\n this.setState({selectIdValue: color}, () =>\n this.selectCallback && this.selectCallback(color));\n }}\n />\n ;\n }\n\n renderCellEditColor(item, col, val) {\n const _val = this.state.editData && this.state.editData[col.field] !== undefined ? this.state.editData[col.field] : val;\n return
\n {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />\n\n {\n this.selectCallback = newColor => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (newColor === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = newColor;\n }\n this.setState({editData});\n };\n\n this.setState({showSelectColor: true, selectIdValue: val});\n }}\n size=\"large\">\n
;\n }\n\n renderSelectIdDialog() {\n if (this.state.showSelectId) {\n return this.setState({showSelectId: false})}\n onOk={(selected, name) => {\n this.setState({showSelectId: false, selectIdValue: null});\n this.selectCallback && this.selectCallback(selected);\n this.selectCallback = null;\n }}\n />;\n } else {\n return null;\n }\n }\n\n renderCellEditObjectID(item, col, val) {\n return
\n {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (e.target.value === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = e.target.value;\n }\n this.setState({editData});\n }}\n />\n\n {\n this.selectCallback = selected => {\n const editData = this.state.editData ? {...this.state.editData} : {};\n if (selected === val) {\n delete editData[col.field];\n } else {\n editData[col.field] = selected;\n }\n this.setState({editData});\n };\n\n this.setState({showSelectId: true, selectIdValue: val});\n }}\n size=\"large\"\n >\n
;\n }\n\n renderCellNonEdit(item, col) {\n let val = getAttr(item, col.field, col.lookup);\n if (Array.isArray(val)) {\n val = val[0];\n }\n\n if (col.type === 'boolean') {\n return \n } else {\n return val;\n }\n }\n\n renderCell(item, col, level, i) {\n if (this.state.editMode === i && col.editable !== 'never' && col.editable !== false) {\n return \n {this.renderCellEdit(item, col)}\n ;\n } else {\n return \n {this.renderCellNonEdit(item, col)}\n ;\n }\n }\n\n renderCellWithSubField(item, col) {\n const main = getAttr(item, col.field, col.lookup);\n const sub = getAttr(item, col.subField, col.subLookup);\n return
\n
{main}
\n
{sub}
\n
;\n }\n\n renderLine(item, level) {\n const levelShift = this.props.levelShift === undefined ? 24 : this.props.levelShift;\n\n level = level || 0;\n const i = this.props.data.indexOf(item);\n if (!item) {\n return null;\n }\n if (!level && item.parentId) {\n return null;\n } else if (level && !item.parentId) {\n return null; // should never happen\n } else {\n // try to find children\n const opened = this.state.opened.includes(item.id);\n const children = this.props.data.filter(it => it.parentId === item.id);\n\n return [\n \n \n {children.length ? {\n const opened = [...this.state.opened];\n const pos = opened.indexOf(item.id);\n if (pos === -1) {\n opened.push(item.id);\n opened.sort();\n } else {\n opened.splice(pos, 1);\n }\n\n (window._localStorage || window.localStorage).setItem(this.props.name || 'iob-table', JSON.stringify(opened));\n\n this.setState({opened});\n }}\n size=\"small\">\n {opened ? : }\n : null}\n \n \n {this.props.columns[0].subField ?\n this.renderCellWithSubField(item, this.props.columns[0])\n :\n getAttr(item, this.props.columns[0].field, this.props.columns[0].lookup)\n }\n \n\n {this.props.columns.map((col, ii) =>\n !ii && !col.hidden ? null : this.renderCell(item, col, level, i))}\n\n {this.props.onUpdate ? \n {this.state.editMode === i || this.state.deleteMode === i ?\n {\n if (this.state.editMode !== false) {\n const newData = JSON.parse(JSON.stringify(item));\n Object.keys(this.state.editData).forEach(attr => setAttr(newData, attr, this.state.editData[attr]));\n this.setState({editMode: false}, () => this.props.onUpdate(newData, item))\n } else {\n this.setState({deleteMode: false}, () => this.props.onDelete(item))\n }\n }}\n size=\"large\">\n \n \n :\n this.setState({editMode: i, editData: null})}\n size=\"large\">\n \n }\n : null}\n {this.props.onUpdate || this.props.onDelete ? \n {this.state.editMode === i || this.state.deleteMode === i ?\n this.setState({editMode: false, deleteMode: false})}\n size=\"large\">\n \n \n :\n (this.props.onDelete ? this.setState({deleteMode: i})}\n size=\"large\">\n \n : null)\n }\n : null}\n ,\n !level && opened ? children.map(item => this.renderLine(item, level + 1)) : null,\n ];\n }\n }\n\n handleRequestSort(property) {\n const isAsc = this.state.orderBy === property && this.state.order === 'asc';\n this.setState({order: isAsc ? 'desc' : 'asc', orderBy: property});\n }\n\n renderHead() {\n return \n \n \n \n {this.props.noSort ? null : this.handleRequestSort(this.props.columns[0].field)}\n >\n {this.props.columns[0].title || this.props.columns[0].field}\n {this.state.orderBy === this.props.columns[0].field ?\n \n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n : null}\n }\n \n {this.props.columns.map((col, i) =>\n !i && !col.hidden ? null : \n {this.props.noSort ? null : this.handleRequestSort(col.field)}\n >\n {col.title || col.field}\n {this.state.orderBy === col.field ?\n \n {this.state.order === 'desc' ? 'sorted descending' : 'sorted ascending'}\n : null}\n }\n )}\n {this.props.onUpdate ? \n {!this.props.noAdd ? this.props.onUpdate(true)}>\n \n : null }\n : null}\n {this.props.onDelete || this.props.onUpdate ? : null}\n \n ;\n }\n\n render() {\n const lookup = this.props.columns.find(col => col.field === this.state.orderBy).lookup;\n const table = stableSort(this.props.data, getComparator(this.state.order, this.state.orderBy, lookup));\n\n if (this.state.update && this.state.update.length) {\n this.updateTimeout && clearTimeout(this.updateTimeout);\n this.updateTimeout = setTimeout(() => {\n this.updateTimeout = null;\n this.setState({update: null});\n }, 500);\n }\n\n return
\n \n {this.renderHead()}\n \n {table.map(item => this.renderLine(item))}\n \n
\n {this.renderSelectIdDialog()}\n {this.renderSelectColorDialog()}\n
;\n }\n}\n/*\nconst columns = [\n {\n title: 'Name of field', // required, else it will be \"field\"\n field: 'fieldIdInData', // required\n editable: false, // or true [default - true]\n cellStyle: { // CSS style - // optional\n maxWidth: '12rem',\n overflow: 'hidden',\n wordBreak: 'break-word'\n },\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'value1': 'text1',\n 'value2': 'text2',\n }\n },\n {\n title: 'Type', // required, else it will be \"field\"\n field: 'myType', // required\n editable: true, // or true [default - true]\n lookup: { // optional => edit will be automatically \"SELECT\"\n 'number': 'Number',\n 'string': 'String',\n 'boolean': 'Boolean',\n },\n type: 'number/string/color/oid/icon/boolean', // oid=ObjectID,icon=base64-icon\n editComponent: props =>\n
Prefix{
\n props.onChange(e.target.value)}\n />\n Suffix\n
,\n },\n];\n*/\n/* const data = [\n {\n id: 'UniqueID1' // required\n fieldIdInData: 'Name1',\n myType: 'number',\n },\n {\n id: 'UniqueID2' // required\n fieldIdInData: 'Name12',\n myType: 'string',\n },\n];\n */\n\n/*\n// STYLES\nconst styles = theme => ({\n tableDiv: {\n width: '100%',\n overflow: 'hidden',\n height: 'calc(100% - 48px)',\n },\n});\n// renderTable\nrenderTable() {\n return
\n console.log('Update: ' + JSON.stringify(newData))}\n onDelete={oldData => console.log('Delete: ' + JSON.stringify(oldData))}\n />\n
;\n}\n */\n\nTreeTable.propTypes = {\n data: PropTypes.array.isRequired,\n className: PropTypes.string,\n loading: PropTypes.bool,\n name: PropTypes.string, // name of table to save settings in localStorage\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n cellStyle: PropTypes.object,\n editComponent: PropTypes.func,\n field: PropTypes.string,\n headerStyle: PropTypes.object,\n hidden: PropTypes.bool,\n lookup: PropTypes.object,\n editable: PropTypes.bool,\n title: PropTypes.string,\n type: PropTypes.oneOf([\n 'string',\n 'boolean',\n 'numeric',\n 'icon', // todo: not yet implemented\n 'oid',\n 'color',\n ]),\n })\n ).isRequired,\n noSort: PropTypes.bool,\n onUpdate: PropTypes.func,\n onDelete: PropTypes.func,\n noAdd: PropTypes.bool, // hide add button\n themeType: PropTypes.string,\n glowOnChange: PropTypes.bool,\n socket: PropTypes.object, // only if oid type is used\n levelShift: PropTypes.number, // Shift in pixels for every level\n};\n\nexport default withStyles(styles)(TreeTable);","import { Component, createRef } from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport Dropzone from 'react-dropzone';\nimport { Cropper } from 'react-cropper';\n\nimport { withStyles } from '@mui/styles';\nimport { Menu, MenuItem, Tooltip } from '@mui/material';\nimport IconButton from '@mui/material/IconButton';\n\nimport IconClose from '@mui/icons-material/Close';\nimport CropIcon from '@mui/icons-material/Crop';\nimport { FaFileUpload as UploadIcon } from 'react-icons/fa';\n\n// import 'cropperjs/dist/cropper.css';\nconst cropperStyles = `\n/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:11.623Z\n */\n\n.cropper-container {\n direction: ltr;\n font-size: 0;\n line-height: 0;\n position: relative;\n -ms-touch-action: none;\n touch-action: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\n.cropper-container img {\n display: block;\n height: 100%;\n image-orientation: 0deg;\n max-height: none !important;\n max-width: none !important;\n min-height: 0 !important;\n min-width: 0 !important;\n width: 100%;\n}\n\n.cropper-wrap-box,\n.cropper-canvas,\n.cropper-drag-box,\n.cropper-crop-box,\n.cropper-modal {\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.cropper-wrap-box,\n.cropper-canvas {\n overflow: hidden;\n}\n\n.cropper-drag-box {\n background-color: #fff;\n opacity: 0;\n}\n\n.cropper-modal {\n background-color: #000;\n opacity: 0.5;\n}\n\n.cropper-view-box {\n display: block;\n height: 100%;\n outline: 1px solid #39f;\n outline-color: rgba(51, 153, 255, 0.75);\n overflow: hidden;\n width: 100%;\n}\n\n.cropper-dashed {\n border: 0 dashed #eee;\n display: block;\n opacity: 0.5;\n position: absolute;\n}\n\n.cropper-dashed.dashed-h {\n border-bottom-width: 1px;\n border-top-width: 1px;\n height: calc(100% / 3);\n left: 0;\n top: calc(100% / 3);\n width: 100%;\n}\n\n.cropper-dashed.dashed-v {\n border-left-width: 1px;\n border-right-width: 1px;\n height: 100%;\n left: calc(100% / 3);\n top: 0;\n width: calc(100% / 3);\n}\n\n.cropper-center {\n display: block;\n height: 0;\n left: 50%;\n opacity: 0.75;\n position: absolute;\n top: 50%;\n width: 0;\n}\n\n.cropper-center::before,\n.cropper-center::after {\n background-color: #eee;\n content: ' ';\n display: block;\n position: absolute;\n}\n\n.cropper-center::before {\n height: 1px;\n left: -3px;\n top: 0;\n width: 7px;\n}\n\n.cropper-center::after {\n height: 7px;\n left: 0;\n top: -3px;\n width: 1px;\n}\n\n.cropper-face,\n.cropper-line,\n.cropper-point {\n display: block;\n height: 100%;\n opacity: 0.1;\n position: absolute;\n width: 100%;\n}\n\n.cropper-face {\n background-color: #fff;\n left: 0;\n top: 0;\n}\n\n.cropper-line {\n background-color: #39f;\n}\n\n.cropper-line.line-e {\n cursor: ew-resize;\n right: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-n {\n cursor: ns-resize;\n height: 5px;\n left: 0;\n top: -3px;\n}\n\n.cropper-line.line-w {\n cursor: ew-resize;\n left: -3px;\n top: 0;\n width: 5px;\n}\n\n.cropper-line.line-s {\n bottom: -3px;\n cursor: ns-resize;\n height: 5px;\n left: 0;\n}\n\n.cropper-point {\n background-color: #39f;\n height: 5px;\n opacity: 0.75;\n width: 5px;\n}\n\n.cropper-point.point-e {\n cursor: ew-resize;\n margin-top: -3px;\n right: -3px;\n top: 50%;\n}\n\n.cropper-point.point-n {\n cursor: ns-resize;\n left: 50%;\n margin-left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-w {\n cursor: ew-resize;\n left: -3px;\n margin-top: -3px;\n top: 50%;\n}\n\n.cropper-point.point-s {\n bottom: -3px;\n cursor: s-resize;\n left: 50%;\n margin-left: -3px;\n}\n\n.cropper-point.point-ne {\n cursor: nesw-resize;\n right: -3px;\n top: -3px;\n}\n\n.cropper-point.point-nw {\n cursor: nwse-resize;\n left: -3px;\n top: -3px;\n}\n\n.cropper-point.point-sw {\n bottom: -3px;\n cursor: nesw-resize;\n left: -3px;\n}\n\n.cropper-point.point-se {\n bottom: -3px;\n cursor: nwse-resize;\n height: 20px;\n opacity: 1;\n right: -3px;\n width: 20px;\n}\n\n@media (min-width: 768px) {\n .cropper-point.point-se {\n height: 15px;\n width: 15px;\n }\n}\n\n@media (min-width: 992px) {\n .cropper-point.point-se {\n height: 10px;\n width: 10px;\n }\n}\n\n@media (min-width: 1200px) {\n .cropper-point.point-se {\n height: 5px;\n opacity: 0.75;\n width: 5px;\n }\n}\n\n.cropper-point.point-se::before {\n background-color: #39f;\n bottom: -50%;\n content: ' ';\n display: block;\n height: 200%;\n opacity: 0;\n position: absolute;\n right: -50%;\n width: 200%;\n}\n\n.cropper-invisible {\n opacity: 0;\n}\n\n.cropper-bg {\n background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC');\n}\n\n.cropper-hide {\n display: block;\n height: 0;\n position: absolute;\n width: 0;\n}\n\n.cropper-hidden {\n display: none !important;\n}\n\n.cropper-move {\n cursor: move;\n}\n\n.cropper-crop {\n cursor: crosshair;\n}\n\n.cropper-disabled .cropper-drag-box,\n.cropper-disabled .cropper-face,\n.cropper-disabled .cropper-line,\n.cropper-disabled .cropper-point {\n cursor: not-allowed;\n}\n`;\n\nconst styles = theme => ({\n dropZone: {\n width: '100%',\n height: 100,\n position: 'relative',\n },\n dropZoneEmpty: {\n\n },\n image: {\n objectFit: 'contain',\n margin: 'auto',\n display: 'flex',\n width: '100%',\n height: '100%',\n },\n\n uploadDiv: {\n position: 'relative',\n width: '100%',\n height: 300,\n opacity: 0.9,\n marginTop: 30,\n cursor: 'pointer',\n outline: 'none'\n },\n uploadDivDragging: {\n opacity: 1,\n background: 'rgba(128,255,128,0.1)'\n },\n\n uploadCenterDiv: {\n margin: 5,\n border: '3px dashed grey',\n borderRadius: 5,\n width: 'calc(100% - 10px)',\n height: 'calc(100% - 10px)',\n position: 'relative',\n display: 'flex'\n },\n uploadCenterIcon: {\n paddingTop: 10,\n width: 48,\n height: 48,\n },\n uploadCenterText: {\n fontSize: 16,\n },\n uploadCenterTextAndIcon: {\n textAlign: 'center',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n\n },\n disabledOpacity: {\n opacity: 0.3,\n cursor: 'default'\n },\n buttonRemoveWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0\n },\n buttonCropWrapper: {\n position: 'absolute',\n zIndex: 222,\n right: 0,\n top: 50\n },\n error: {\n border: '2px solid red'\n }\n});\n\nclass UploadImage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n uploadFile: false,\n anchorEl: null,\n cropHandler: false,\n };\n this.cropperRef = createRef();\n\n if (!window.document.getElementById('cropper-style-json-component')) {\n const style = window.document.createElement('style');\n style.setAttribute('id', 'cropper-style-json-component');\n style.innerHTML = cropperStyles;\n window.document.head.appendChild(style);\n }\n }\n\n onDrop(acceptedFiles) {\n const { maxSize, t, onChange } = this.props;\n\n const file = acceptedFiles[0];\n const reader = new FileReader();\n\n reader.onabort = () => console.log('file reading was aborted');\n reader.onerror = () => console.log('file reading has failed');\n reader.onload = () => {\n let ext = 'image/' + file.name.split('.').pop().toLowerCase();\n if (ext === 'image/jpg') {\n ext = 'image/jpeg';\n } else if (ext.includes('svg')) {\n ext = 'image/svg+xml';\n }\n if (file.size > maxSize) {\n return window.alert(t('ra_File is too big. Max %sk allowed. Try use SVG.', Math.round(maxSize / 1024)));\n }\n const base64 = `data:${ext};base64,${btoa(\n new Uint8Array(reader.result)\n .reduce((data, byte) => data + String.fromCharCode(byte), ''))}`;\n\n onChange(base64);\n };\n reader.readAsArrayBuffer(file);\n }\n\n render() {\n const { disabled, maxSize, classes, icon, t, removeIconFunc, accept, error, crop, onChange } = this.props;\n const { uploadFile, anchorEl, cropHandler } = this.state;\n return this.setState({ uploadFile: 'dragging' })}\n onDragLeave={() => this.setState({ uploadFile: true })}\n onDrop={(acceptedFiles, errors) => {\n this.setState({ uploadFile: false });\n if (!acceptedFiles.length) {\n window.alert((errors && errors[0] && errors[0].errors && errors[0].errors[0] && errors[0].errors[0].message) || t('ra_Cannot upload'));\n } else {\n return this.onDrop(acceptedFiles);\n }\n }}\n >\n {({ getRootProps, getInputProps }) => \n \n
\n {!icon ?
\n \n
{\n uploadFile === 'dragging' ? t('ra_Drop file here') :\n t('ra_Place your files here or click here to open the browse dialog')}
\n
\n :\n removeIconFunc && !cropHandler &&
\n \n {\n removeIconFunc && removeIconFunc();\n e.stopPropagation();\n }}>\n \n \n
\n }\n {icon && crop &&
\n \n {\n if (!cropHandler) {\n this.setState({ cropHandler: true });\n } else {\n this.setState({ anchorEl: e.currentTarget });\n }\n e.stopPropagation();\n }}>\n \n \n this.setState({ anchorEl: null })}\n >\n this.setState({ anchorEl: null, cropHandler: false }, () => {\n const imageElement = this.cropperRef?.current?.cropper;\n onChange(imageElement.getCroppedCanvas().toDataURL());\n })}>{t('ra_Save')}\n this.setState({ anchorEl: null, cropHandler: false })}>{t('ra_Close')}\n \n
}\n {icon && !cropHandler ? \"icon\" : null}\n\n {icon && crop && cropHandler ? : null}\n
\n
}\n ;\n }\n}\n\nUploadImage.defaultProps = {\n disabled: false,\n maxSize: 10 * 1024,\n icon: null,\n removeIconFunc: null,\n accept: { 'image/*': [] },\n error: false,\n onChange: base64 => console.log(base64),\n t: el => el,\n crop: false,\n};\n\nUploadImage.propTypes = {\n classes: PropTypes.object,\n maxSize: PropTypes.number,\n disabled: PropTypes.bool,\n crop: PropTypes.bool,\n error: PropTypes.bool,\n onChange: PropTypes.func,\n accept: PropTypes.object,\n t: PropTypes.func,\n};\n\nexport default withStyles(styles)(UploadImage);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconClear from '@mui/icons-material/Delete';\n\nimport ComplexCron from '../Components/ComplexCron';\n\nimport I18n from '../i18n';\n\n// Generate cron expression\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n radio: {\n display: 'inline-block'\n },\n dialogPaper: {\n height: 'calc(100% - 96px)'\n }\n});\n\nclass DialogComplexCron extends React.Component {\n constructor(props) {\n super(props);\n let cron;\n if (this.props.cron && typeof this.props.cron === 'string' && this.props.cron.replace(/^[\"']/, '')[0] !== '{') {\n cron = this.props.cron.replace(/['\"]/g, '').trim();\n } else {\n cron = this.props.cron || '{}';\n if (typeof cron === 'string') {\n cron = cron.replace(/^[\"']/, '').replace(/[\"']\\n?$/, '');\n }\n }\n\n this.state = {\n cron,\n };\n }\n\n handleCancel() {\n this.props.onClose();\n }\n\n handleOk() {\n this.props.onOk(this.state.cron);\n this.props.onClose();\n }\n\n handleClear() {\n this.props.onOk(false);\n this.props.onClose();\n }\n\n render() {\n return {}}\n maxWidth=\"md\"\n fullWidth={true}\n classes={{paper: this.props.classes.dialogPaper}}\n open={true}\n aria-labelledby=\"cron-dialog-title\"\n >\n {this.props.title || I18n.t('ra_Define schedule...')}\n \n this.setState({cron})}\n language={I18n.getLanguage()}\n />\n \n \n {!!this.props.clearButton && }\n \n \n \n ;\n }\n}\n\nDialogComplexCron.propTypes = {\n classes: PropTypes.object,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n cron: PropTypes.string,\n cancel: PropTypes.string,\n ok: PropTypes.string,\n simple: PropTypes.bool,\n language: PropTypes.string,\n clearButton: PropTypes.bool,\n};\n\nexport default withStyles(styles)(DialogComplexCron);\n","/**\n * Copyright 2022 bluefox \n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\n\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconCancel from '@mui/icons-material/Cancel';\nimport IconOk from '@mui/icons-material/Check';\n\nimport I18n from '../i18n';\nimport Utils from '../Components/Utils';\nimport FileBrowser from '../Components/FileBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} FileSelectDialogProps\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [dialogName] PropTypes.string, // where to store settings in localStorage\n * @property {boolean} [selected] Pre-selected file\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | undefined) => void} onOk Handler that is called when the user presses OK.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {boolean} [socket] Socket class (required)\n * @property {boolean} [allowUpload] If download of files enabled\n * @property {boolean} [allowDownload] If download of files enabled\n * @property {boolean} [allowCreateFolder] If creation of folders enabled\n * @property {boolean} [allowDelete] If creation of folders enabled\n * @property {boolean} [allowView] if tile view enabled (default true)\n * @property {boolean} [showToolbar] Show toolbar (default true)\n * @property {array} [limitPath] Limit file browser to one specific objectID of type meta and following path (like vis.0/main)\n * @property {array} [filterFiles] like `['png', 'svg', 'bmp', 'jpg', 'jpeg']`\n * @property {string} [filterByType] images, code, txt, audio, video\n * @property {bool} [selectOnlyFolders] allow only folders selection\n *\n * @extends {React.Component}\n */\nclass DialogFileSelect extends React.Component {\n /**\n * @param {FileSelectDialogProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'FileSelect.' + this.dialogName;\n\n this.filters = (window._localStorage || window.localStorage).getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n this.state = {\n selected: this.props.selected || '',\n isFolder: false,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.state.selected || '');\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n title = [\n { I18n.t('ra_Selected') } ,\n {this.state.selected}\n ];\n } else {\n title = this.props.title || I18n.t('ra_Please select file...');\n }\n\n return {}}\n maxWidth={false}\n classes={{ paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile) }}\n fullWidth={true}\n open={true}\n aria-labelledby=\"file-dialog-title\"\n >\n { title }\n \n {\n this.setState({ selected, isFolder }, () =>\n isDoubleClick && ((this.props.selectOnlyFolders && isFolder) || (!this.props.selectOnlyFolders && !isFolder)) && this.handleOk());\n }}\n t={I18n.t}\n lang={I18n.getLanguage()}\n socket={this.props.socket}\n />\n \n \n \n \n \n ;\n }\n}\n\nDialogFileSelect.propTypes = {\n imagePrefix: PropTypes.string,\n dialogName: PropTypes.string, // where to store settings in localStorage\n selected: PropTypes.string,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n ok: PropTypes.string,\n cancel: PropTypes.string,\n socket: PropTypes.object.isRequired,\n allowUpload: PropTypes.bool,\n allowDownload: PropTypes.bool,\n allowCreateFolder: PropTypes.bool,\n allowDelete: PropTypes.bool,\n allowView: PropTypes.bool,\n showToolbar: PropTypes.bool,\n objectID: PropTypes.string,\n filterFiles: PropTypes.arrayOf(PropTypes.string),\n filterByType: PropTypes.string,\n limitPath: PropTypes.string,\n selectOnlyFolders: PropTypes.bool,\n};\n\n/** @type {typeof DialogFileSelect} */\nconst _export = withStyles(styles)(DialogFileSelect);\nexport default _export;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@mui/styles/withStyles';\nimport Button from '@mui/material/Button';\nimport DialogTitle from '@mui/material/DialogTitle';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogActions from '@mui/material/DialogActions';\nimport Dialog from '@mui/material/Dialog';\n\nimport IconOk from '@mui/icons-material/Check';\nimport IconCancel from '@mui/icons-material/Cancel';\n\nimport SimpleCron from '../Components/SimpleCron';\n\nimport I18n from '../i18n';\n\n// Generate cron expression\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n radio: {\n display: 'inline-block'\n },\n dialogPaper: {\n height: 'calc(100% - 96px)'\n },\n});\n\nclass DialogSimpleCron extends React.Component {\n constructor(props) {\n super(props);\n\n let cron;\n if (this.props.cron && typeof this.props.cron === 'string' && this.props.cron.replace(/^[\"']/, '')[0] !== '{') {\n cron = this.props.cron.replace(/['\"]/g, '').trim();\n } else {\n cron = this.props.cron || '{}';\n if (typeof cron === 'string') {\n cron = cron.replace(/^[\"']/, '').replace(/[\"']\\n?$/, '');\n }\n }\n\n this.state = {\n cron,\n };\n }\n\n handleCancel() {\n this.props.onClose();\n }\n\n handleOk() {\n this.props.onOk(this.state.cron);\n this.props.onClose();\n }\n\n render() {\n return {}}\n maxWidth=\"md\"\n fullWidth={true}\n classes={{paper: this.props.classes.dialogPaper}}\n open={true}\n aria-labelledby=\"cron-dialog-title\"\n >\n {this.props.title || I18n.t('ra_Define CRON...')}\n \n this.setState({cron})}\n language={I18n.getLanguage()}\n />\n \n \n \n \n \n ;\n }\n}\n\nDialogSimpleCron.propTypes = {\n classes: PropTypes.object,\n onClose: PropTypes.func.isRequired,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n cron: PropTypes.string,\n cancel: PropTypes.string,\n ok: PropTypes.string,\n simple: PropTypes.bool,\n language: PropTypes.string\n\n};\n\nexport default withStyles(styles)(DialogSimpleCron);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Button from '@mui/material/Button';\nimport TextField from '@mui/material/TextField';\nimport Dialog from '@mui/material/Dialog';\nimport DialogActions from '@mui/material/DialogActions';\nimport DialogContent from '@mui/material/DialogContent';\nimport DialogContentText from '@mui/material/DialogContentText';\nimport DialogTitle from '@mui/material/DialogTitle';\n\nimport I18n from '../i18n';\n\nimport IconClose from '@mui/icons-material/Close';\nimport IconCheck from '@mui/icons-material/Check';\n\nimport withWidth from '../Components/withWidth';\n\n/**\n * @typedef {object} TextInputProps\n * @property {(text: string | null) => void} onClose The dialog close callback.\n * @property {string} titleText The title text.\n * @property {string} [promptText] Prompt text (default: empty).\n * @property {string} [labelText] Label text (default: empty).\n * @property {string} cancelText The text of the cancel button.\n * @property {string} applyText The text of the apply button.\n * @property {(text: string) => string} [verify] The verification callback. Return a non-empty string if there was an error.\n * @property {(text: string) => string} [rule] The text replacement callback.\n * @property {'text' | 'number' | 'password' | 'email'} [type] The type of the textbox (default: text).\n * @property {string} [input] The input when opening the dialog.\n *\n * @extends {React.Component}\n */\nclass TextInput extends React.Component {\n /**\n * @param {Readonly} props\n */\n constructor(props) {\n super(props);\n\n this.state = {\n text: this.props.input || this.props.value || '', // input is deprectaed\n error: ''\n }\n }\n render() {\n return this.props.onClose(null)} aria-labelledby=\"form-dialog-title\">\n {this.props.titleText}\n \n \n {this.props.promptText}\n \n e.charCode === 13 && this.state.text && this.props.onClose(this.state.text)}\n onChange={e => {\n let error = '';\n if (this.props.verify) {\n error = !this.props.verify(e.target.value);\n }\n\n if (this.props.rule) {\n this.setState({text: this.props.rule(e.target.value), error});\n } else {\n this.setState({text: e.target.value, error});\n }\n }}\n fullWidth\n />\n \n \n \n \n \n ;\n }\n}\n\nTextInput.propTypes = {\n onClose: PropTypes.func.isRequired,\n titleText: PropTypes.string.isRequired,\n promptText: PropTypes.string,\n labelText: PropTypes.string,\n cancelText: PropTypes.string,\n applyText: PropTypes.string,\n verify: PropTypes.func,\n replace: PropTypes.func,\n type: PropTypes.string, // text, number, password, email\n value: PropTypes.string,\n};\n\n/** @type {typeof TextInput} */\nconst _export = withWidth()(TextInput);\nexport default _export;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst IconFx = props => {\n return props.onClick && props.onClick(e)} style={props.style || {}} viewBox=\"0 0 95 95\" width={props.width || 20} height={props.height || props.width || 20} xmlns=\"http://www.w3.org/2000/svg\" className={ props.className }>\n \n ;\n}\n\nIconFx.propTypes = {\n onClick: PropTypes.func,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string\n};\n\nexport default IconFx;","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * @typedef {object} IconLogoutProps\n * @property {number} [width] The width in pixels of the icon.\n * @property {number} [height] The height in pixels of the icon.\n * @property {(e: React.MouseEvent) => void} [onClick] Click handler.\n * @property {string} [className] The class name for the SVG element.\n *\n * @extends {React.Component}\n */\nconst IconLogout = props => {\n return props.onClick && props.onClick(e)} viewBox=\"0 0 512 512\" width={props.width || 20} height={props.height || props.width || 20} xmlns=\"http://www.w3.org/2000/svg\" className={ props.className }>\n \n \n ;\n}\nIconLogout.propTypes = {\n onClick: PropTypes.func,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string\n};\n\nexport default IconLogout;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * @typedef {object} IconNoIconProps\n * @property {number} [width] The width in pixels of the icon.\n * @property {number} [height] The height in pixels of the icon.\n * @property {(e: React.MouseEvent) => void} [onClick] Click handler.\n * @property {string} [className] The class name for the SVG element.\n *\n * @extends {React.Component}\n */\nconst IconNoIcon = props => {\n return props.onClick && props.onClick(e)} viewBox=\"0 0 512 512\" width={props.width || 20} height={props.height || props.width || 20} xmlns=\"http://www.w3.org/2000/svg\" className={ props.className }>\n \n ;\n}\nIconNoIcon.propTypes = {\n onClick: PropTypes.func,\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.string\n};\n\nexport default IconNoIcon;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\"\n}), 'ArrowBack');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\"\n}), 'ArrowDownward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m4 12 1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\"\n}), 'ArrowUpward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\"\n}), 'Article');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\"\n}), 'Bookmark');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15-5-2.18L7 18V5h10v13z\"\n}), 'BookmarkBorder');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\"\n}), 'Brightness4');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\"\n}), 'Brightness5');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 15.31 23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\"\n}), 'Brightness6');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\"\n}), 'Brightness7');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Clear');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m20.71 5.63-2.34-2.34a.9959.9959 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12c.4-.4.4-1.03.01-1.42zM6.92 19 5 17.08l8.06-8.06 1.92 1.92L6.92 19z\"\n}), 'Colorize');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z\"\n}), 'CreateNewFolder');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z\"\n}), 'Crop');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.59 8.59 12 13.17 7.41 8.59 6 10l6 6 6-6z\"\n}), 'ExpandMore');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39c.51-.66.04-1.61-.79-1.61H5.04c-.83 0-1.3.95-.79 1.61z\"\n}), 'FilterAlt');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19.79 5.61C20.3 4.95 19.83 4 19 4H6.83l7.97 7.97 4.99-6.36zM2.81 2.81 1.39 4.22 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-2.17l5.78 5.78 1.41-1.41L2.81 2.81z\"\n}), 'FilterAltOff');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\"\n}), 'FolderOpen');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\"\n}), 'GpsFixed');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\"\n}), 'Help');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z\"\n}), 'InsertDriveFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"\n}), 'Language');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\"\n}), 'List');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\"\n}), 'MusicNote');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"\n}), 'NavigateNext');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 5v14l11-7z\"\n}), 'PlayArrow');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 12v7H5v-7H3v7c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-7h-2zm-6 .67 2.59-2.58L17 11.5l-5 5-5-5 1.41-1.41L11 12.67V3h2z\"\n}), 'SaveAlt');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11zM8 15.01l1.41 1.41L11 14.84V19h2v-4.16l1.59 1.59L16 15.01 12.01 11z\"\n}), 'UploadFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z\"\n}), 'VerticalAlignBottom');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z\"\n}), 'VerticalAlignTop');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z\"\n}), 'Videocam');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\"\n}), 'ViewHeadline');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v6.5H9.33V5h5.34zm1 6.5H21V5h-5.33v6.5zm-1 7.5v-6.5H9.33V19h5.34zm1-6.5V19H21v-6.5h-5.33zm-7.34 0H3V19h5.33v-6.5zm0-1V5H3v6.5h5.33z\"\n}), 'ViewModule');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');\n\nexports.default = _default;","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","/* Use it instead of .includes method for IE support */\nexport function arrayIncludes(array, itemOrItems) {\n if (Array.isArray(itemOrItems)) {\n return itemOrItems.every(item => array.indexOf(item) !== -1);\n }\n\n return array.indexOf(itemOrItems) !== -1;\n}\nexport const onSpaceOrEnter = (innerFn, onFocus) => event => {\n if (event.key === 'Enter' || event.key === ' ') {\n innerFn(); // prevent any side effects\n\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onFocus) {\n onFocus(event);\n }\n};\nexport const executeInTheNextEventLoopTick = fn => {\n setTimeout(fn, 0);\n};\nexport const doNothing = () => {};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"disabled\", \"onSelect\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled, alpha } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { onSpaceOrEnter } from '../internals/utils/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersMonth', ['root', 'selected']);\nconst PickersMonthRoot = styled(Typography)(({\n theme\n}) => _extends({\n flex: '1 0 33.33%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:disabled': {\n pointerEvents: 'none',\n color: theme.palette.text.secondary\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - do not document.\n */\n\nexport const PickersMonth = props => {\n const {\n disabled,\n onSelect,\n selected,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const handleSelection = () => {\n onSelect(value);\n };\n\n return /*#__PURE__*/_jsx(PickersMonthRoot, _extends({\n component: \"button\",\n type: \"button\",\n className: clsx(classes.root, selected && classes.selected),\n tabIndex: disabled ? -1 : 0,\n onClick: handleSelection,\n onKeyDown: onSpaceOrEnter(handleSelection),\n color: selected ? 'primary' : undefined,\n variant: selected ? 'h5' : 'subtitle1',\n disabled: disabled\n }, other));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const getPickersLocalization = pickersTranslations => {\n return {\n components: {\n MuiLocalizationProvider: {\n defaultProps: {\n localeText: _extends({}, pickersTranslations)\n }\n }\n }\n };\n};","import { getPickersLocalization } from './utils/getPickersLocalization';\n// This object is not Partial because it is the default values\nconst enUSPickers = {\n // Calendar navigation\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n // View navigation\n openPreviousView: 'open previous view',\n openNextView: 'open next view',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Start',\n end: 'End',\n // Action bar\n cancelButtonLabel: 'Cancel',\n clearButtonLabel: 'Clear',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Today',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} hours`,\n minutesClockNumberText: minutes => `${minutes} minutes`,\n secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Choose date',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Choose time',\n // Table labels\n timeTableLabel: 'pick time',\n dateTableLabel: 'pick date'\n};\nexport const DEFAULT_LOCALE = enUSPickers;\nexport const enUS = getPickersLocalization(enUSPickers);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport { DEFAULT_LOCALE } from '../locales';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MuiPickersAdapterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n MuiPickersAdapterContext.displayName = 'MuiPickersAdapterContext';\n}\n\nlet warnedOnce = false;\n/**\n * @ignore - do not document.\n */\n\nexport function LocalizationProvider(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLocalizationProvider'\n });\n const {\n children,\n dateAdapter: Utils,\n dateFormats,\n dateLibInstance,\n locale,\n adapterLocale,\n localeText\n } = props;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce && locale !== undefined) {\n warnedOnce = true;\n console.warn(\"LocalizationProvider's prop `locale` is deprecated and replaced by `adapterLocale`\");\n }\n }\n\n const utils = React.useMemo(() => new Utils({\n locale: adapterLocale != null ? adapterLocale : locale,\n formats: dateFormats,\n instance: dateLibInstance\n }), [Utils, locale, adapterLocale, dateFormats, dateLibInstance]);\n const defaultDates = React.useMemo(() => {\n return {\n minDate: utils.date('1900-01-01T00:00:00.000'),\n maxDate: utils.date('2099-12-31T00:00:00.000')\n };\n }, [utils]);\n const contextValue = React.useMemo(() => {\n return {\n utils,\n defaultDates,\n localeText: _extends({}, DEFAULT_LOCALE, localeText != null ? localeText : {})\n };\n }, [defaultDates, utils, localeText]);\n return /*#__PURE__*/_jsx(MuiPickersAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Locale for the date library you are using\n */\n adapterLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n children: PropTypes.node,\n\n /**\n * DateIO adapter class function\n */\n dateAdapter: PropTypes.func.isRequired,\n\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n fullDate: PropTypes.string,\n fullDateTime: PropTypes.string,\n fullDateTime12h: PropTypes.string,\n fullDateTime24h: PropTypes.string,\n fullDateWithWeekday: PropTypes.string,\n fullTime: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthAndDate: PropTypes.string,\n monthAndYear: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n\n /**\n * Locale for the date library you are using\n * @deprecated Use `adapterLocale` instead\n */\n locale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n\n /**\n * Locale for components texts\n */\n localeText: PropTypes.object\n} : void 0;","import * as React from 'react';\nimport { MuiPickersAdapterContext } from '../../LocalizationProvider/LocalizationProvider';\nexport const useLocalizationContext = () => {\n const localization = React.useContext(MuiPickersAdapterContext);\n\n if (localization === null) {\n throw new Error('MUI: Can not find utils in context. It looks like you forgot to wrap your component in LocalizationProvider, or pass dateAdapter prop directly.');\n }\n\n return localization;\n};\nexport const useUtils = () => useLocalizationContext().utils;\nexport const useDefaultDates = () => useLocalizationContext().defaultDates;\nexport const useLocaleText = () => useLocalizationContext().localeText;\nexport const useNow = () => {\n const utils = useUtils();\n const now = React.useRef(utils.date());\n return now.current;\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getMonthPickerUtilityClass(slot) {\n return generateUtilityClass('MuiMonthPicker', slot);\n}\nexport const monthPickerClasses = generateUtilityClasses('MuiMonthPicker', ['root']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"date\", \"disabled\", \"disableFuture\", \"disablePast\", \"maxDate\", \"minDate\", \"onChange\", \"shouldDisableMonth\", \"readOnly\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { PickersMonth } from './PickersMonth';\nimport { useUtils, useNow, useDefaultDates } from '../internals/hooks/useUtils';\nimport { getMonthPickerUtilityClass } from './monthPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getMonthPickerUtilityClass, classes);\n};\n\nconst MonthPickerRoot = styled('div', {\n name: 'MuiMonthPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: 310,\n display: 'flex',\n flexWrap: 'wrap',\n alignContent: 'stretch',\n margin: '0 4px'\n});\nexport const MonthPicker = /*#__PURE__*/React.forwardRef(function MonthPicker(inProps, ref) {\n const utils = useUtils();\n const now = useNow();\n const defaultDates = useDefaultDates();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiMonthPicker'\n });\n\n const {\n className,\n date: propDate,\n disabled,\n disableFuture,\n disablePast,\n maxDate = defaultDates.maxDate,\n minDate = defaultDates.minDate,\n onChange,\n shouldDisableMonth,\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const currentDate = propDate != null ? propDate : now;\n const currentMonth = utils.getMonth(currentDate);\n\n const isMonthDisabled = month => {\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n\n if (utils.isBefore(month, firstEnabledMonth)) {\n return true;\n }\n\n if (utils.isAfter(month, lastEnabledMonth)) {\n return true;\n }\n\n if (!shouldDisableMonth) {\n return false;\n }\n\n return shouldDisableMonth(month);\n };\n\n const onMonthSelect = month => {\n if (readOnly) {\n return;\n }\n\n const newDate = utils.setMonth(currentDate, month);\n onChange(newDate, 'finish');\n };\n\n return /*#__PURE__*/_jsx(MonthPickerRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: utils.getMonthArray(currentDate).map(month => {\n const monthNumber = utils.getMonth(month);\n const monthText = utils.format(month, 'monthShort');\n return /*#__PURE__*/_jsx(PickersMonth, {\n value: monthNumber,\n selected: monthNumber === currentMonth,\n onSelect: onMonthSelect,\n disabled: disabled || isMonthDisabled(month),\n children: monthText\n }, monthText);\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MonthPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * className applied to the root element.\n */\n className: PropTypes.string,\n\n /**\n * Date value for the MonthPicker\n */\n date: PropTypes.any,\n\n /**\n * If `true` picker is disabled\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired on date change.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * If `true` picker is readonly\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;","import * as React from 'react';\nimport { useLocalizationContext } from '../useUtils';\nexport function useValidation(props, validate, isSameError) {\n const {\n value,\n onError\n } = props;\n const adapter = useLocalizationContext();\n const previousValidationErrorRef = React.useRef(null);\n const validationError = validate({\n adapter,\n value,\n props\n });\n React.useEffect(() => {\n if (onError && !isSameError(validationError, previousValidationErrorRef.current)) {\n onError(validationError, value);\n }\n\n previousValidationErrorRef.current = validationError;\n }, [isSameError, onError, previousValidationErrorRef, validationError, value]);\n return validationError;\n}","import * as React from 'react';\nimport { useValidation } from './useValidation';\nimport { useLocalizationContext } from '../useUtils';\nexport const validateDate = ({\n props,\n value,\n adapter\n}) => {\n const now = adapter.utils.date();\n const date = adapter.utils.date(value);\n const {\n shouldDisableDate,\n minDate = adapter.defaultDates.minDate,\n maxDate = adapter.defaultDates.maxDate,\n disableFuture,\n disablePast\n } = props;\n\n if (date === null) {\n return null;\n }\n\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n\n case Boolean(shouldDisableDate && shouldDisableDate(date)):\n return 'shouldDisableDate';\n\n case Boolean(disableFuture && adapter.utils.isAfterDay(date, now)):\n return 'disableFuture';\n\n case Boolean(disablePast && adapter.utils.isBeforeDay(date, now)):\n return 'disablePast';\n\n case Boolean(minDate && adapter.utils.isBeforeDay(date, minDate)):\n return 'minDate';\n\n case Boolean(maxDate && adapter.utils.isAfterDay(date, maxDate)):\n return 'maxDate';\n\n default:\n return null;\n }\n};\nexport const useIsDayDisabled = ({\n shouldDisableDate,\n minDate,\n maxDate,\n disableFuture,\n disablePast\n}) => {\n const adapter = useLocalizationContext();\n return React.useCallback(day => validateDate({\n adapter,\n value: day,\n props: {\n shouldDisableDate,\n minDate,\n maxDate,\n disableFuture,\n disablePast\n }\n }) !== null, [adapter, shouldDisableDate, minDate, maxDate, disableFuture, disablePast]);\n};\n\nconst isSameDateError = (a, b) => a === b;\n\nexport const useDateValidation = props => useValidation(props, validateDate, isSameDateError);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useIsDayDisabled } from '../internals/hooks/validation/useDateValidation';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nexport const createCalendarStateReducer = (reduceAnimations, disableSwitchToMonthOnDayFocus, utils) => (state, action) => {\n switch (action.type) {\n case 'changeMonth':\n return _extends({}, state, {\n slideDirection: action.direction,\n currentMonth: action.newMonth,\n isMonthSwitchingAnimating: !reduceAnimations\n });\n\n case 'finishMonthSwitchingAnimation':\n return _extends({}, state, {\n isMonthSwitchingAnimating: false\n });\n\n case 'changeFocusedDay':\n {\n if (state.focusedDay != null && action.focusedDay != null && utils.isSameDay(action.focusedDay, state.focusedDay)) {\n return state;\n }\n\n const needMonthSwitch = action.focusedDay != null && !disableSwitchToMonthOnDayFocus && !utils.isSameMonth(state.currentMonth, action.focusedDay);\n return _extends({}, state, {\n focusedDay: action.focusedDay,\n isMonthSwitchingAnimating: needMonthSwitch && !reduceAnimations,\n currentMonth: needMonthSwitch ? utils.startOfMonth(action.focusedDay) : state.currentMonth,\n slideDirection: action.focusedDay != null && utils.isAfterDay(action.focusedDay, state.currentMonth) ? 'left' : 'right'\n });\n }\n\n default:\n throw new Error('missing support');\n }\n};\nexport const useCalendarState = ({\n date,\n defaultCalendarMonth,\n disableFuture,\n disablePast,\n disableSwitchToMonthOnDayFocus = false,\n maxDate,\n minDate,\n onMonthChange,\n reduceAnimations,\n shouldDisableDate\n}) => {\n var _ref;\n\n const now = useNow();\n const utils = useUtils();\n const reducerFn = React.useRef(createCalendarStateReducer(Boolean(reduceAnimations), disableSwitchToMonthOnDayFocus, utils)).current;\n const [calendarState, dispatch] = React.useReducer(reducerFn, {\n isMonthSwitchingAnimating: false,\n focusedDay: date || now,\n currentMonth: utils.startOfMonth((_ref = date != null ? date : defaultCalendarMonth) != null ? _ref : now),\n slideDirection: 'left'\n });\n const handleChangeMonth = React.useCallback(payload => {\n dispatch(_extends({\n type: 'changeMonth'\n }, payload));\n\n if (onMonthChange) {\n onMonthChange(payload.newMonth);\n }\n }, [onMonthChange]);\n const changeMonth = React.useCallback(newDate => {\n const newDateRequested = newDate != null ? newDate : now;\n\n if (utils.isSameMonth(newDateRequested, calendarState.currentMonth)) {\n return;\n }\n\n handleChangeMonth({\n newMonth: utils.startOfMonth(newDateRequested),\n direction: utils.isAfterDay(newDateRequested, calendarState.currentMonth) ? 'left' : 'right'\n });\n }, [calendarState.currentMonth, handleChangeMonth, now, utils]);\n const isDateDisabled = useIsDayDisabled({\n shouldDisableDate,\n minDate,\n maxDate,\n disableFuture,\n disablePast\n });\n const onMonthSwitchingAnimationEnd = React.useCallback(() => {\n dispatch({\n type: 'finishMonthSwitchingAnimation'\n });\n }, []);\n const changeFocusedDay = React.useCallback(newFocusedDate => {\n if (!isDateDisabled(newFocusedDate)) {\n dispatch({\n type: 'changeFocusedDay',\n focusedDay: newFocusedDate\n });\n }\n }, [isDateDisabled]);\n return {\n calendarState,\n changeMonth,\n changeFocusedDay,\n isDateDisabled,\n onMonthSwitchingAnimationEnd,\n handleChangeMonth\n };\n};","import * as React from 'react';\nimport clsx from 'clsx';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersFadeTransitionGroup', ['root']);\nconst animationDuration = 500;\nconst PickersFadeTransitionGroupRoot = styled(TransitionGroup)({\n display: 'block',\n position: 'relative'\n});\n/**\n * @ignore - do not document.\n */\n\nexport const PickersFadeTransitionGroup = ({\n children,\n className,\n reduceAnimations,\n transKey\n}) => {\n if (reduceAnimations) {\n return children;\n }\n\n return /*#__PURE__*/_jsx(PickersFadeTransitionGroupRoot, {\n className: clsx(classes.root, className),\n children: /*#__PURE__*/_jsx(Fade, {\n appear: false,\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: {\n appear: animationDuration,\n enter: animationDuration / 2,\n exit: 0\n },\n children: children\n }, transKey)\n });\n};","import * as React from 'react';\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","export const DAY_SIZE = 36;\nexport const DAY_MARGIN = 2;\nexport const DIALOG_WIDTH = 320;\nexport const VIEW_HEIGHT = 358;","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getPickersDayUtilityClass(slot) {\n return generateUtilityClass('MuiPickersDay', slot);\n}\nexport const pickersDayClasses = generateUtilityClasses('MuiPickersDay', ['root', 'dayWithMargin', 'dayOutsideMonth', 'hiddenDaySpacingFiller', 'today', 'selected', 'disabled']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"day\", \"disabled\", \"disableHighlightToday\", \"disableMargin\", \"hidden\", \"isAnimating\", \"onClick\", \"onDayFocus\", \"onDaySelect\", \"onFocus\", \"onKeyDown\", \"outsideCurrentMonth\", \"selected\", \"showDaysOutsideCurrentMonth\", \"children\", \"today\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport ButtonBase from '@mui/material/ButtonBase';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { useTheme, alpha, styled, useThemeProps } from '@mui/material/styles';\nimport { useForkRef } from '@mui/material/utils';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { getPickersDayUtilityClass, pickersDayClasses } from './pickersDayClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n selected,\n disableMargin,\n disableHighlightToday,\n today,\n outsideCurrentMonth,\n showDaysOutsideCurrentMonth,\n classes\n } = ownerState;\n const slots = {\n root: ['root', selected && 'selected', !disableMargin && 'dayWithMargin', !disableHighlightToday && today && 'today', outsideCurrentMonth && showDaysOutsideCurrentMonth && 'dayOutsideMonth'],\n hiddenDaySpacingFiller: ['hiddenDaySpacingFiller']\n };\n return composeClasses(slots, getPickersDayUtilityClass, classes);\n};\n\nconst styleArg = ({\n theme,\n ownerState\n}) => _extends({}, theme.typography.caption, {\n width: DAY_SIZE,\n height: DAY_SIZE,\n borderRadius: '50%',\n padding: 0,\n // background required here to prevent collides with the other days when animating with transition group\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n '&:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n '&:focus': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),\n [`&.${pickersDayClasses.selected}`]: {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n fontWeight: theme.typography.fontWeightMedium,\n transition: theme.transitions.create('background-color', {\n duration: theme.transitions.duration.short\n }),\n '&:hover': {\n willChange: 'background-color',\n backgroundColor: theme.palette.primary.dark\n }\n },\n [`&.${pickersDayClasses.disabled}`]: {\n color: theme.palette.text.disabled\n }\n}, !ownerState.disableMargin && {\n margin: `0 ${DAY_MARGIN}px`\n}, ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && {\n color: theme.palette.text.secondary\n}, !ownerState.disableHighlightToday && ownerState.today && {\n [`&:not(.${pickersDayClasses.selected})`]: {\n border: `1px solid ${theme.palette.text.secondary}`\n }\n});\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableMargin && styles.dayWithMargin, !ownerState.disableHighlightToday && ownerState.today && styles.today, !ownerState.outsideCurrentMonth && ownerState.showDaysOutsideCurrentMonth && styles.dayOutsideMonth, ownerState.outsideCurrentMonth && !ownerState.showDaysOutsideCurrentMonth && styles.hiddenDaySpacingFiller];\n};\n\nconst PickersDayRoot = styled(ButtonBase, {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(styleArg);\nconst PickersDayFiller = styled('div', {\n name: 'MuiPickersDay',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({}, styleArg({\n theme,\n ownerState\n}), {\n visibility: 'hidden'\n}));\n\nconst noop = () => {};\n\nconst PickersDayRaw = /*#__PURE__*/React.forwardRef(function PickersDay(inProps, forwardedRef) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickersDay'\n });\n\n const {\n autoFocus = false,\n className,\n day,\n disabled = false,\n disableHighlightToday = false,\n disableMargin = false,\n isAnimating,\n onClick,\n onDayFocus = noop,\n onDaySelect,\n onFocus,\n onKeyDown,\n outsideCurrentMonth,\n selected = false,\n showDaysOutsideCurrentMonth = false,\n children,\n today: isToday = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n autoFocus,\n disabled,\n disableHighlightToday,\n disableMargin,\n selected,\n showDaysOutsideCurrentMonth,\n today: isToday\n });\n\n const classes = useUtilityClasses(ownerState);\n const utils = useUtils();\n const ref = React.useRef(null);\n const handleRef = useForkRef(ref, forwardedRef); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus && !disabled && !isAnimating && !outsideCurrentMonth) {\n // ref.current being null would be a bug in MUI\n ref.current.focus();\n }\n }, [autoFocus, disabled, isAnimating, outsideCurrentMonth]);\n\n const handleFocus = event => {\n if (onDayFocus) {\n onDayFocus(day);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleClick = event => {\n if (!disabled) {\n onDaySelect(day, 'finish');\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n const theme = useTheme();\n\n function handleKeyDown(event) {\n if (onKeyDown !== undefined) {\n onKeyDown(event);\n }\n\n switch (event.key) {\n case 'ArrowUp':\n onDayFocus(utils.addDays(day, -7));\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n onDayFocus(utils.addDays(day, 7));\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n onDayFocus(utils.addDays(day, theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n case 'Home':\n onDayFocus(utils.startOfWeek(day));\n event.preventDefault();\n break;\n\n case 'End':\n onDayFocus(utils.endOfWeek(day));\n event.preventDefault();\n break;\n\n case 'PageUp':\n onDayFocus(utils.getNextMonth(day));\n event.preventDefault();\n break;\n\n case 'PageDown':\n onDayFocus(utils.getPreviousMonth(day));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (outsideCurrentMonth && !showDaysOutsideCurrentMonth) {\n return /*#__PURE__*/_jsx(PickersDayFiller, {\n className: clsx(classes.root, classes.hiddenDaySpacingFiller, className),\n ownerState: ownerState\n });\n }\n\n return /*#__PURE__*/_jsx(PickersDayRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: handleRef,\n centerRipple: true,\n disabled: disabled,\n \"aria-label\": !children ? utils.format(day, 'fullDate') : undefined,\n tabIndex: selected ? 0 : -1,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n onClick: handleClick\n }, other, {\n children: !children ? utils.format(day, 'dayOfMonth') : children\n }));\n});\nexport const areDayPropsEqual = (prevProps, nextProps) => {\n return prevProps.autoFocus === nextProps.autoFocus && prevProps.isAnimating === nextProps.isAnimating && prevProps.today === nextProps.today && prevProps.disabled === nextProps.disabled && prevProps.selected === nextProps.selected && prevProps.disableMargin === nextProps.disableMargin && prevProps.showDaysOutsideCurrentMonth === nextProps.showDaysOutsideCurrentMonth && prevProps.disableHighlightToday === nextProps.disableHighlightToday && prevProps.className === nextProps.className && prevProps.outsideCurrentMonth === nextProps.outsideCurrentMonth && prevProps.onDayFocus === nextProps.onDayFocus && prevProps.onDaySelect === nextProps.onDaySelect;\n};\nprocess.env.NODE_ENV !== \"production\" ? PickersDayRaw.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The date to show.\n */\n day: PropTypes.any.isRequired,\n\n /**\n * If `true`, renders as disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * If `true`, days are rendering without margin. Useful for displaying linked range of days.\n * @default false\n */\n disableMargin: PropTypes.bool,\n isAnimating: PropTypes.bool,\n onDayFocus: PropTypes.func,\n onDaySelect: PropTypes.func.isRequired,\n\n /**\n * If `true`, day is outside of month and will be hidden.\n */\n outsideCurrentMonth: PropTypes.bool.isRequired,\n\n /**\n * If `true`, renders as selected.\n * @default false\n */\n selected: PropTypes.bool,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * If `true`, renders as today date.\n * @default false\n */\n today: PropTypes.bool\n} : void 0;\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [PickersDay API](https://mui.com/x/api/date-pickers/pickers-day/)\n */\n\nexport const PickersDay = /*#__PURE__*/React.memo(PickersDayRaw, areDayPropsEqual);","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"reduceAnimations\", \"slideDirection\", \"transKey\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { CSSTransition, TransitionGroup } from 'react-transition-group';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersSlideTransition', ['root', 'slideEnter-left', 'slideEnter-right', 'slideEnterActive', 'slideEnterActive', 'slideExit', 'slideExitActiveLeft-left', 'slideExitActiveLeft-right']);\nexport const slideAnimationDuration = 350;\nconst PickersSlideTransitionRoot = styled(TransitionGroup)(({\n theme\n}) => {\n const slideTransition = theme.transitions.create('transform', {\n duration: slideAnimationDuration,\n easing: 'cubic-bezier(0.35, 0.8, 0.4, 1)'\n });\n return {\n display: 'block',\n position: 'relative',\n overflowX: 'hidden',\n '& > *': {\n position: 'absolute',\n top: 0,\n right: 0,\n left: 0\n },\n [`& .${classes['slideEnter-left']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n zIndex: 1\n },\n [`& .${classes['slideEnter-right']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n zIndex: 1\n },\n [`& .${classes.slideEnterActive}`]: {\n transform: 'translate(0%)',\n transition: slideTransition\n },\n [`& .${classes.slideExit}`]: {\n transform: 'translate(0%)'\n },\n [`& .${classes['slideExitActiveLeft-left']}`]: {\n willChange: 'transform',\n transform: 'translate(-100%)',\n transition: slideTransition,\n zIndex: 0\n },\n [`& .${classes['slideExitActiveLeft-right']}`]: {\n willChange: 'transform',\n transform: 'translate(100%)',\n transition: slideTransition,\n zIndex: 0\n }\n };\n});\n/**\n * @ignore - do not document.\n */\n\nexport const PickersSlideTransition = _ref => {\n let {\n children,\n className,\n reduceAnimations,\n slideDirection,\n transKey\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n if (reduceAnimations) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: clsx(classes.root, className),\n children: children\n });\n }\n\n const transitionClasses = {\n exit: classes.slideExit,\n enterActive: classes.slideEnterActive,\n enter: classes[`slideEnter-${slideDirection}`],\n exitActive: classes[`slideExitActiveLeft-${slideDirection}`]\n };\n return /*#__PURE__*/_jsx(PickersSlideTransitionRoot, {\n className: clsx(classes.root, className),\n childFactory: element => /*#__PURE__*/React.cloneElement(element, {\n classNames: transitionClasses\n }),\n children: /*#__PURE__*/_jsx(CSSTransition, _extends({\n mountOnEnter: true,\n unmountOnExit: true,\n timeout: slideAnimationDuration,\n classNames: transitionClasses\n }, other, {\n children: children\n }), transKey)\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { PickersDay } from '../PickersDay/PickersDay';\nimport { useUtils, useNow } from '../internals/hooks/useUtils';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { PickersSlideTransition } from './PickersSlideTransition';\nimport { useIsDayDisabled } from '../internals/hooks/validation/useDateValidation';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst weeksContainerHeight = (DAY_SIZE + DAY_MARGIN * 2) * 6;\nconst PickersCalendarDayHeader = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center'\n});\nconst PickersCalendarWeekDayLabel = styled(Typography)(({\n theme\n}) => ({\n width: 36,\n height: 40,\n margin: '0 2px',\n textAlign: 'center',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n color: theme.palette.text.secondary\n}));\nconst PickersCalendarLoadingContainer = styled('div')({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarSlideTransition = styled(PickersSlideTransition)({\n minHeight: weeksContainerHeight\n});\nconst PickersCalendarWeekContainer = styled('div')({\n overflow: 'hidden'\n});\nconst PickersCalendarWeek = styled('div')({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\n/**\n * @ignore - do not document.\n */\n\nexport function DayPicker(props) {\n const now = useNow();\n const utils = useUtils();\n const {\n autoFocus,\n onFocusedDayChange,\n className,\n currentMonth,\n selectedDays,\n disabled,\n disableHighlightToday,\n focusedDay,\n isMonthSwitchingAnimating,\n loading,\n onSelectedDaysChange,\n onMonthSwitchingAnimationEnd,\n readOnly,\n reduceAnimations,\n renderDay,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n showDaysOutsideCurrentMonth,\n slideDirection,\n TransitionProps,\n disablePast,\n disableFuture,\n minDate,\n maxDate,\n shouldDisableDate\n } = props;\n const isDateDisabled = useIsDayDisabled({\n shouldDisableDate,\n minDate,\n maxDate,\n disablePast,\n disableFuture\n });\n const handleDaySelect = React.useCallback((day, isFinish = 'finish') => {\n if (readOnly) {\n return;\n }\n\n onSelectedDaysChange(day, isFinish);\n }, [onSelectedDaysChange, readOnly]);\n const currentMonthNumber = utils.getMonth(currentMonth);\n const validSelectedDays = selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)); // need a new ref whenever the `key` of the transition changes: http://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.\n\n const transitionKey = currentMonthNumber; // eslint-disable-next-line react-hooks/exhaustive-deps\n\n const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(PickersCalendarDayHeader, {\n children: utils.getWeekdays().map((day, i) => /*#__PURE__*/_jsx(PickersCalendarWeekDayLabel, {\n \"aria-hidden\": true,\n variant: \"caption\",\n children: day.charAt(0).toUpperCase()\n }, day + i.toString()))\n }), loading ? /*#__PURE__*/_jsx(PickersCalendarLoadingContainer, {\n children: renderLoading()\n }) : /*#__PURE__*/_jsx(PickersCalendarSlideTransition, _extends({\n transKey: transitionKey,\n onExited: onMonthSwitchingAnimationEnd,\n reduceAnimations: reduceAnimations,\n slideDirection: slideDirection,\n className: className\n }, TransitionProps, {\n nodeRef: slideNodeRef,\n children: /*#__PURE__*/_jsx(PickersCalendarWeekContainer, {\n ref: slideNodeRef,\n role: \"grid\",\n children: utils.getWeekArray(currentMonth).map(week => /*#__PURE__*/_jsx(PickersCalendarWeek, {\n role: \"row\",\n children: week.map(day => {\n const pickersDayProps = {\n key: day == null ? void 0 : day.toString(),\n day,\n isAnimating: isMonthSwitchingAnimating,\n disabled: disabled || isDateDisabled(day),\n autoFocus: autoFocus && focusedDay !== null && utils.isSameDay(day, focusedDay),\n today: utils.isSameDay(day, now),\n outsideCurrentMonth: utils.getMonth(day) !== currentMonthNumber,\n selected: validSelectedDays.some(selectedDay => utils.isSameDay(selectedDay, day)),\n disableHighlightToday,\n showDaysOutsideCurrentMonth,\n onDayFocus: onFocusedDayChange,\n onDaySelect: handleDaySelect\n };\n return renderDay ? renderDay(day, validSelectedDays, pickersDayProps) : /*#__PURE__*/_jsx(\"div\", {\n role: \"cell\",\n children: /*#__PURE__*/_jsx(PickersDay, _extends({}, pickersDayProps))\n }, pickersDayProps.key);\n })\n }, `week-${week[0]}`))\n })\n }))]\n });\n}","import * as React from 'react';\nimport { useControlled } from '@mui/material/utils';\nimport { arrayIncludes } from '../utils/utils';\nexport function useViews({\n onChange,\n onViewChange,\n openTo,\n view,\n views\n}) {\n var _views, _views2;\n\n const [openView, setOpenView] = useControlled({\n name: 'Picker',\n state: 'view',\n controlled: view,\n default: openTo && arrayIncludes(views, openTo) ? openTo : views[0]\n });\n const previousView = (_views = views[views.indexOf(openView) - 1]) != null ? _views : null;\n const nextView = (_views2 = views[views.indexOf(openView) + 1]) != null ? _views2 : null;\n const changeView = React.useCallback(newView => {\n setOpenView(newView);\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [setOpenView, onViewChange]);\n const openNext = React.useCallback(() => {\n if (nextView) {\n changeView(nextView);\n }\n }, [nextView, changeView]);\n const handleChangeAndOpenNext = React.useCallback((date, currentViewSelectionState) => {\n const isSelectionFinishedOnCurrentView = currentViewSelectionState === 'finish';\n const globalSelectionState = isSelectionFinishedOnCurrentView && Boolean(nextView) ? 'partial' : currentViewSelectionState;\n onChange(date, globalSelectionState);\n\n if (isSelectionFinishedOnCurrentView) {\n openNext();\n }\n }, [nextView, onChange, openNext]);\n return {\n handleChangeAndOpenNext,\n nextView,\n previousView,\n openNext,\n openView,\n setOpenView: changeView\n };\n}","import { createSvgIcon } from '@mui/material/utils';\nimport * as React from 'react';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ArrowDropDown = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');\n/**\n * @ignore - internal component.\n */\n\nexport const ArrowLeft = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z\"\n}), 'ArrowLeft');\n/**\n * @ignore - internal component.\n */\n\nexport const ArrowRight = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z\"\n}), 'ArrowRight');\n/**\n * @ignore - internal component.\n */\n\nexport const Calendar = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\"\n}), 'Calendar');\n/**\n * @ignore - internal component.\n */\n\nexport const Clock = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Clock');\n/**\n * @ignore - internal component.\n */\n\nexport const DateRange = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\"\n}), 'DateRange');\n/**\n * @ignore - internal component.\n */\n\nexport const Pen = createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\"\n}), 'Pen');\n/**\n * @ignore - internal component.\n */\n\nexport const Time = createSvgIcon( /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(\"path\", {\n d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }), /*#__PURE__*/_jsx(\"path\", {\n d: \"M12.5 7H11v6l5.25 3.15.75-1.23-4.5-2.67z\"\n })]\n}), 'Time');","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"components\", \"componentsProps\", \"isLeftDisabled\", \"isLeftHidden\", \"isRightDisabled\", \"isRightHidden\", \"leftArrowButtonText\", \"onLeftClick\", \"onRightClick\", \"rightArrowButtonText\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { generateUtilityClasses } from '@mui/material';\nimport { useTheme, styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { ArrowLeft, ArrowRight } from './icons';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button']);\nconst PickersArrowSwitcherRoot = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex'\n});\nconst PickersArrowSwitcherSpacer = styled('div', {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})(({\n theme\n}) => ({\n width: theme.spacing(3)\n}));\nconst PickersArrowSwitcherButton = styled(IconButton, {\n name: 'MuiPickersArrowSwitcher',\n slot: 'Button',\n overridesResolver: (props, styles) => styles.button\n})(({\n ownerState\n}) => _extends({}, ownerState.hidden && {\n visibility: 'hidden'\n}));\nexport const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function PickersArrowSwitcher(props, ref) {\n const {\n children,\n className,\n components,\n componentsProps,\n isLeftDisabled,\n isLeftHidden,\n isRightDisabled,\n isRightHidden,\n leftArrowButtonText,\n onLeftClick,\n onRightClick,\n rightArrowButtonText\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const leftArrowButtonProps = (componentsProps == null ? void 0 : componentsProps.leftArrowButton) || {};\n const LeftArrowIcon = (components == null ? void 0 : components.LeftArrowIcon) || ArrowLeft;\n const rightArrowButtonProps = (componentsProps == null ? void 0 : componentsProps.rightArrowButton) || {};\n const RightArrowIcon = (components == null ? void 0 : components.RightArrowIcon) || ArrowRight;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other, {\n children: [/*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components == null ? void 0 : components.LeftArrowButton,\n size: \"small\",\n \"aria-label\": leftArrowButtonText,\n title: leftArrowButtonText,\n disabled: isLeftDisabled,\n edge: \"end\",\n onClick: onLeftClick\n }, leftArrowButtonProps, {\n className: clsx(classes.button, leftArrowButtonProps.className),\n ownerState: _extends({}, ownerState, leftArrowButtonProps, {\n hidden: isLeftHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(RightArrowIcon, {}) : /*#__PURE__*/_jsx(LeftArrowIcon, {})\n })), children ? /*#__PURE__*/_jsx(Typography, {\n variant: \"subtitle1\",\n component: \"span\",\n children: children\n }) : /*#__PURE__*/_jsx(PickersArrowSwitcherSpacer, {\n className: classes.spacer,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersArrowSwitcherButton, _extends({\n as: components == null ? void 0 : components.RightArrowButton,\n size: \"small\",\n \"aria-label\": rightArrowButtonText,\n title: rightArrowButtonText,\n edge: \"start\",\n disabled: isRightDisabled,\n onClick: onRightClick\n }, rightArrowButtonProps, {\n className: clsx(classes.button, rightArrowButtonProps.className),\n ownerState: _extends({}, ownerState, rightArrowButtonProps, {\n hidden: isRightHidden\n }),\n children: isRtl ? /*#__PURE__*/_jsx(LeftArrowIcon, {}) : /*#__PURE__*/_jsx(RightArrowIcon, {})\n }))]\n }));\n});","export const getMeridiem = (date, utils) => {\n if (!date) {\n return null;\n }\n\n return utils.getHours(date) >= 12 ? 'pm' : 'am';\n};\nexport const convertValueToMeridiem = (value, meridiem, ampm) => {\n if (ampm) {\n const currentMeridiem = value >= 12 ? 'pm' : 'am';\n\n if (currentMeridiem !== meridiem) {\n return meridiem === 'am' ? value - 12 : value + 12;\n }\n }\n\n return value;\n};\nexport const convertToMeridiem = (time, meridiem, ampm, utils) => {\n const newHoursAmount = convertValueToMeridiem(utils.getHours(time), meridiem, ampm);\n return utils.setHours(time, newHoursAmount);\n};\nexport const getSecondsInDay = (date, utils) => {\n return utils.getHours(date) * 3600 + utils.getMinutes(date) * 60 + utils.getSeconds(date);\n};\nexport const createIsAfterIgnoreDatePart = (disableIgnoringDatePartForTimeValidation = false, utils) => (dateLeft, dateRight) => {\n if (disableIgnoringDatePartForTimeValidation) {\n return utils.isAfter(dateLeft, dateRight);\n }\n\n return getSecondsInDay(dateLeft, utils) > getSecondsInDay(dateRight, utils);\n};","import * as React from 'react';\nimport { useUtils } from './useUtils';\nimport { getMeridiem, convertToMeridiem } from '../utils/time-utils';\nexport function useNextMonthDisabled(month, {\n disableFuture,\n maxDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const lastEnabledMonth = utils.startOfMonth(disableFuture && utils.isBefore(now, maxDate) ? now : maxDate);\n return !utils.isAfter(lastEnabledMonth, month);\n }, [disableFuture, maxDate, month, utils]);\n}\nexport function usePreviousMonthDisabled(month, {\n disablePast,\n minDate\n}) {\n const utils = useUtils();\n return React.useMemo(() => {\n const now = utils.date();\n const firstEnabledMonth = utils.startOfMonth(disablePast && utils.isAfter(now, minDate) ? now : minDate);\n return !utils.isBefore(firstEnabledMonth, month);\n }, [disablePast, minDate, month, utils]);\n}\nexport function useMeridiemMode(date, ampm, onChange) {\n const utils = useUtils();\n const meridiemMode = getMeridiem(date, utils);\n const handleMeridiemChange = React.useCallback(mode => {\n const timeWithMeridiem = date == null ? null : convertToMeridiem(date, mode, Boolean(ampm), utils);\n onChange(timeWithMeridiem, 'partial');\n }, [ampm, date, onChange, utils]);\n return {\n meridiemMode,\n handleMeridiemChange\n };\n}","export const buildDeprecatedPropsWarning = message => {\n let alreadyWarned = false;\n\n if (process.env.NODE_ENV === 'production') {\n return () => {};\n }\n\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n return deprecatedProps => {\n const deprecatedKeys = Object.entries(deprecatedProps).filter(([, value]) => value !== undefined).map(([key]) => `- ${key}`);\n\n if (!alreadyWarned && deprecatedKeys.length > 0) {\n alreadyWarned = true;\n console.warn([cleanMessage, 'deprecated props observed:', ...deprecatedKeys].join('\\n'));\n }\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Fade from '@mui/material/Fade';\nimport { styled } from '@mui/material/styles';\nimport IconButton from '@mui/material/IconButton';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';\nimport { ArrowDropDown } from '../internals/components/icons';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { usePreviousMonthDisabled, useNextMonthDisabled } from '../internals/hooks/date-helpers-hooks';\nimport { buildDeprecatedPropsWarning } from '../internals/utils/warning';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersCalendarHeaderRoot = styled('div')({\n display: 'flex',\n alignItems: 'center',\n marginTop: 16,\n marginBottom: 8,\n paddingLeft: 24,\n paddingRight: 12,\n // prevent jumping in safari\n maxHeight: 30,\n minHeight: 30\n});\nconst PickersCalendarHeaderLabel = styled('div')(({\n theme\n}) => _extends({\n display: 'flex',\n maxHeight: 30,\n overflow: 'hidden',\n alignItems: 'center',\n cursor: 'pointer',\n marginRight: 'auto'\n}, theme.typography.body1, {\n fontWeight: theme.typography.fontWeightMedium\n}));\nconst PickersCalendarHeaderLabelItem = styled('div')({\n marginRight: 6\n});\nconst PickersCalendarHeaderSwitchViewButton = styled(IconButton)({\n marginRight: 'auto'\n});\nconst PickersCalendarHeaderSwitchView = styled(ArrowDropDown)(({\n theme,\n ownerState\n}) => _extends({\n willChange: 'transform',\n transition: theme.transitions.create('transform'),\n transform: 'rotate(0deg)'\n}, ownerState.openView === 'year' && {\n transform: 'rotate(180deg)'\n}));\nconst deprecatedPropsWarning = buildDeprecatedPropsWarning('Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.');\n/**\n * @ignore - do not document.\n */\n\nexport function PickersCalendarHeader(props) {\n const {\n components = {},\n componentsProps = {},\n currentMonth: month,\n disabled,\n disableFuture,\n disablePast,\n getViewSwitchingButtonText: getViewSwitchingButtonTextProp,\n leftArrowButtonText: leftArrowButtonTextProp,\n maxDate,\n minDate,\n onMonthChange,\n onViewChange,\n openView: currentView,\n reduceAnimations,\n rightArrowButtonText: rightArrowButtonTextProp,\n views\n } = props;\n deprecatedPropsWarning({\n leftArrowButtonText: leftArrowButtonTextProp,\n rightArrowButtonText: rightArrowButtonTextProp,\n getViewSwitchingButtonText: getViewSwitchingButtonTextProp\n });\n const localeText = useLocaleText();\n const leftArrowButtonText = leftArrowButtonTextProp != null ? leftArrowButtonTextProp : localeText.previousMonth;\n const rightArrowButtonText = rightArrowButtonTextProp != null ? rightArrowButtonTextProp : localeText.nextMonth;\n const getViewSwitchingButtonText = getViewSwitchingButtonTextProp != null ? getViewSwitchingButtonTextProp : localeText.calendarViewSwitchingButtonAriaLabel;\n const utils = useUtils();\n const switchViewButtonProps = componentsProps.switchViewButton || {};\n\n const selectNextMonth = () => onMonthChange(utils.getNextMonth(month), 'left');\n\n const selectPreviousMonth = () => onMonthChange(utils.getPreviousMonth(month), 'right');\n\n const isNextMonthDisabled = useNextMonthDisabled(month, {\n disableFuture,\n maxDate\n });\n const isPreviousMonthDisabled = usePreviousMonthDisabled(month, {\n disablePast,\n minDate\n });\n\n const handleToggleView = () => {\n if (views.length === 1 || !onViewChange || disabled) {\n return;\n }\n\n if (views.length === 2) {\n onViewChange(views.find(view => view !== currentView) || views[0]);\n } else {\n // switching only between first 2\n const nextIndexToOpen = views.indexOf(currentView) !== 0 ? 0 : 1;\n onViewChange(views[nextIndexToOpen]);\n }\n }; // No need to display more information\n\n\n if (views.length === 1 && views[0] === 'year') {\n return null;\n }\n\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersCalendarHeaderRoot, {\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(PickersCalendarHeaderLabel, {\n role: \"presentation\",\n onClick: handleToggleView,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersFadeTransitionGroup, {\n reduceAnimations: reduceAnimations,\n transKey: utils.format(month, 'monthAndYear'),\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderLabelItem, {\n \"aria-live\": \"polite\",\n ownerState: ownerState,\n children: utils.format(month, 'monthAndYear')\n })\n }), views.length > 1 && !disabled && /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchViewButton, _extends({\n size: \"small\",\n as: components.SwitchViewButton,\n \"aria-label\": getViewSwitchingButtonText(currentView)\n }, switchViewButtonProps, {\n children: /*#__PURE__*/_jsx(PickersCalendarHeaderSwitchView, {\n as: components.SwitchViewIcon,\n ownerState: ownerState\n })\n }))]\n }), /*#__PURE__*/_jsx(Fade, {\n in: currentView === 'day',\n children: /*#__PURE__*/_jsx(PickersArrowSwitcher, {\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: selectPreviousMonth,\n onRightClick: selectNextMonth,\n isLeftDisabled: isPreviousMonthDisabled,\n isRightDisabled: isNextMonthDisabled\n })\n })]\n });\n}","import * as React from 'react';\n\n/**\n * TODO consider getting rid from wrapper variant\n * @ignore - internal component.\n */\nexport const WrapperVariantContext = /*#__PURE__*/React.createContext(null);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { useForkRef, capitalize } from '@mui/material/utils';\nimport { alpha, styled } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses, generateUtilityClass, generateUtilityClasses } from '@mui/material';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function getPickersYearUtilityClass(slot) {\n return generateUtilityClass('PrivatePickersYear', slot);\n}\nexport const pickersYearClasses = generateUtilityClasses('PrivatePickersYear', ['root', 'modeMobile', 'modeDesktop', 'yearButton', 'disabled', 'selected']);\n\nconst useUtilityClasses = ownerState => {\n const {\n wrapperVariant,\n disabled,\n selected,\n classes\n } = ownerState;\n const slots = {\n root: ['root', wrapperVariant && `mode${capitalize(wrapperVariant)}`],\n yearButton: ['yearButton', disabled && 'disabled', selected && 'selected']\n };\n return composeClasses(slots, getPickersYearUtilityClass, classes);\n};\n\nconst PickersYearRoot = styled('div')(({\n ownerState\n}) => _extends({\n flexBasis: '33.3%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n}, (ownerState == null ? void 0 : ownerState.wrapperVariant) === 'desktop' && {\n flexBasis: '25%'\n}));\nconst PickersYearButton = styled('button')(({\n theme\n}) => _extends({\n color: 'unset',\n backgroundColor: 'transparent',\n border: 0,\n outline: 0\n}, theme.typography.subtitle1, {\n margin: '8px 0',\n height: 36,\n width: 72,\n borderRadius: 18,\n cursor: 'pointer',\n '&:focus, &:hover': {\n backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity)\n },\n [`&.${pickersYearClasses.disabled}`]: {\n color: theme.palette.text.secondary\n },\n [`&.${pickersYearClasses.selected}`]: {\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n '&:focus, &:hover': {\n backgroundColor: theme.palette.primary.dark\n }\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport const PickersYear = /*#__PURE__*/React.forwardRef(function PickersYear(props, forwardedRef) {\n const {\n autoFocus,\n className,\n children,\n disabled,\n onClick,\n onKeyDown,\n selected,\n value\n } = props;\n const ref = React.useRef(null);\n const refHandle = useForkRef(ref, forwardedRef);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n\n const ownerState = _extends({}, props, {\n wrapperVariant\n });\n\n const classes = useUtilityClasses(ownerState); // TODO: Can we just forward this to the button?\n\n React.useEffect(() => {\n if (autoFocus) {\n // `ref.current` being `null` would be a bug in MUIu\n ref.current.focus();\n }\n }, [autoFocus]);\n return /*#__PURE__*/_jsx(PickersYearRoot, {\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(PickersYearButton, {\n ref: refHandle,\n disabled: disabled,\n type: \"button\",\n tabIndex: selected ? 0 : -1,\n onClick: event => onClick(event, value),\n onKeyDown: event => onKeyDown(event, value),\n className: classes.yearButton,\n ownerState: ownerState,\n children: children\n })\n });\n});","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getYearPickerUtilityClass(slot) {\n return generateUtilityClass('MuiYearPicker', slot);\n}\nexport const yearPickerClasses = generateUtilityClasses('MuiYearPicker', ['root']);","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTheme, styled, useThemeProps as useThemProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport clsx from 'clsx';\nimport { PickersYear } from './PickersYear';\nimport { useUtils, useNow, useDefaultDates } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { getYearPickerUtilityClass } from './yearPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getYearPickerUtilityClass, classes);\n};\n\nconst YearPickerRoot = styled('div', {\n name: 'MuiYearPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n overflowY: 'auto',\n height: '100%',\n margin: '0 4px'\n});\nexport const YearPicker = /*#__PURE__*/React.forwardRef(function YearPicker(inProps, ref) {\n const now = useNow();\n const theme = useTheme();\n const utils = useUtils();\n const defaultProps = useDefaultDates();\n const props = useThemProps({\n props: inProps,\n name: 'MuiYearPicker'\n });\n const {\n autoFocus,\n className,\n date,\n disabled,\n disableFuture,\n disablePast,\n maxDate = defaultProps.maxDate,\n minDate = defaultProps.minDate,\n onChange,\n readOnly,\n shouldDisableYear\n } = props;\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const selectedDate = date || now;\n const currentYear = utils.getYear(selectedDate);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const selectedYearRef = React.useRef(null);\n const [focusedYear, setFocusedYear] = React.useState(currentYear);\n const isYearDisabled = React.useCallback(dateToValidate => {\n if (disablePast && utils.isBeforeYear(dateToValidate, now)) {\n return true;\n }\n\n if (disableFuture && utils.isAfterYear(dateToValidate, now)) {\n return true;\n }\n\n if (minDate && utils.isBeforeYear(dateToValidate, minDate)) {\n return true;\n }\n\n if (maxDate && utils.isAfterYear(dateToValidate, maxDate)) {\n return true;\n }\n\n if (shouldDisableYear && shouldDisableYear(dateToValidate)) {\n return true;\n }\n\n return false;\n }, [disableFuture, disablePast, maxDate, minDate, now, shouldDisableYear, utils]);\n\n const handleYearSelection = (event, year, isFinish = 'finish') => {\n if (readOnly) {\n return;\n }\n\n const newDate = utils.setYear(selectedDate, year);\n onChange(newDate, isFinish);\n };\n\n const focusYear = React.useCallback(year => {\n if (!isYearDisabled(utils.setYear(selectedDate, year))) {\n setFocusedYear(year);\n }\n }, [selectedDate, isYearDisabled, utils]);\n const yearsInRow = wrapperVariant === 'desktop' ? 4 : 3;\n\n const handleKeyDown = (event, year) => {\n switch (event.key) {\n case 'ArrowUp':\n focusYear(year - yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n focusYear(year + yearsInRow);\n event.preventDefault();\n break;\n\n case 'ArrowLeft':\n focusYear(year + (theme.direction === 'ltr' ? -1 : 1));\n event.preventDefault();\n break;\n\n case 'ArrowRight':\n focusYear(year + (theme.direction === 'ltr' ? 1 : -1));\n event.preventDefault();\n break;\n\n default:\n break;\n }\n };\n\n return /*#__PURE__*/_jsx(YearPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: utils.getYearRange(minDate, maxDate).map(year => {\n const yearNumber = utils.getYear(year);\n const selected = yearNumber === currentYear;\n return /*#__PURE__*/_jsx(PickersYear, {\n selected: selected,\n value: yearNumber,\n onClick: handleYearSelection,\n onKeyDown: handleKeyDown,\n autoFocus: autoFocus && yearNumber === focusedYear,\n ref: selected ? selectedYearRef : undefined,\n disabled: disabled || isYearDisabled(year),\n children: utils.format(year, 'year')\n }, utils.format(year, 'year'));\n })\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? YearPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n date: PropTypes.any,\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n onChange: PropTypes.func.isRequired,\n onFocusedDayChange: PropTypes.func,\n readOnly: PropTypes.bool,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func\n} : void 0;","export const findClosestEnabledDate = ({\n date,\n disableFuture,\n disablePast,\n maxDate,\n minDate,\n isDateDisabled,\n utils\n}) => {\n const today = utils.startOfDay(utils.date());\n\n if (disablePast && utils.isBefore(minDate, today)) {\n minDate = today;\n }\n\n if (disableFuture && utils.isAfter(maxDate, today)) {\n maxDate = today;\n }\n\n let forward = date;\n let backward = date;\n\n if (utils.isBefore(date, minDate)) {\n forward = utils.date(minDate);\n backward = null;\n }\n\n if (utils.isAfter(date, maxDate)) {\n if (backward) {\n backward = utils.date(maxDate);\n }\n\n forward = null;\n }\n\n while (forward || backward) {\n if (forward && utils.isAfter(forward, maxDate)) {\n forward = null;\n }\n\n if (backward && utils.isBefore(backward, minDate)) {\n backward = null;\n }\n\n if (forward) {\n if (!isDateDisabled(forward)) {\n return forward;\n }\n\n forward = utils.addDays(forward, 1);\n }\n\n if (backward) {\n if (!isDateDisabled(backward)) {\n return backward;\n }\n\n backward = utils.addDays(backward, -1);\n }\n }\n\n return null;\n};\nexport const parsePickerInputValue = (utils, value) => {\n const parsedValue = utils.date(value);\n return utils.isValid(parsedValue) ? parsedValue : null;\n};","import { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH, VIEW_HEIGHT } from '../../constants/dimensions';\nexport const PickerViewRoot = styled('div')({\n overflowX: 'hidden',\n width: DIALOG_WIDTH,\n maxHeight: VIEW_HEIGHT,\n display: 'flex',\n flexDirection: 'column',\n margin: '0 auto'\n});","export const defaultReduceAnimations = typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent);","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport const getCalendarPickerUtilityClass = slot => generateUtilityClass('MuiCalendarPicker', slot);\nexport const calendarPickerClasses = generateUtilityClasses('MuiCalendarPicker', ['root', 'viewTransitionContainer']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoFocus\", \"onViewChange\", \"date\", \"disableFuture\", \"disablePast\", \"defaultCalendarMonth\", \"loading\", \"onChange\", \"onYearChange\", \"onMonthChange\", \"reduceAnimations\", \"renderLoading\", \"shouldDisableDate\", \"shouldDisableMonth\", \"shouldDisableYear\", \"view\", \"views\", \"openTo\", \"className\", \"disabled\", \"readOnly\", \"minDate\", \"maxDate\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { MonthPicker } from '../MonthPicker/MonthPicker';\nimport { useCalendarState } from './useCalendarState';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { PickersFadeTransitionGroup } from './PickersFadeTransitionGroup';\nimport { DayPicker } from './DayPicker';\nimport { useViews } from '../internals/hooks/useViews';\nimport { PickersCalendarHeader } from './PickersCalendarHeader';\nimport { YearPicker } from '../YearPicker/YearPicker';\nimport { findClosestEnabledDate } from '../internals/utils/date-utils';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { defaultReduceAnimations } from '../internals/utils/defaultReduceAnimations';\nimport { getCalendarPickerUtilityClass } from './calendarPickerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n viewTransitionContainer: ['viewTransitionContainer']\n };\n return composeClasses(slots, getCalendarPickerUtilityClass, classes);\n};\n\nconst CalendarPickerRoot = styled(PickerViewRoot, {\n name: 'MuiCalendarPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst CalendarPickerViewTransitionContainer = styled(PickersFadeTransitionGroup, {\n name: 'MuiCalendarPicker',\n slot: 'ViewTransitionContainer',\n overridesResolver: (props, styles) => styles.viewTransitionContainer\n})({\n overflowY: 'auto'\n});\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [CalendarPicker API](https://mui.com/x/api/date-pickers/calendar-picker/)\n */\nconst CalendarPicker = /*#__PURE__*/React.forwardRef(function CalendarPicker(inProps, ref) {\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCalendarPicker'\n });\n\n const {\n autoFocus,\n onViewChange,\n date,\n disableFuture,\n disablePast,\n defaultCalendarMonth,\n loading = false,\n onChange,\n onYearChange,\n onMonthChange,\n reduceAnimations = defaultReduceAnimations,\n renderLoading = () => /*#__PURE__*/_jsx(\"span\", {\n children: \"...\"\n }),\n shouldDisableDate,\n shouldDisableMonth,\n shouldDisableYear,\n view,\n views = ['year', 'day'],\n openTo = 'day',\n className,\n disabled,\n readOnly,\n minDate = defaultDates.minDate,\n maxDate = defaultDates.maxDate\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n openView,\n setOpenView,\n openNext\n } = useViews({\n view,\n views,\n openTo,\n onChange,\n onViewChange\n });\n const {\n calendarState,\n changeFocusedDay,\n changeMonth,\n handleChangeMonth,\n isDateDisabled,\n onMonthSwitchingAnimationEnd\n } = useCalendarState({\n date,\n defaultCalendarMonth,\n reduceAnimations,\n onMonthChange,\n minDate,\n maxDate,\n shouldDisableDate,\n disablePast,\n disableFuture\n });\n const handleDateMonthChange = React.useCallback((newDate, selectionState) => {\n const startOfMonth = utils.startOfMonth(newDate);\n const endOfMonth = utils.endOfMonth(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfMonth) ? startOfMonth : minDate,\n maxDate: utils.isAfter(maxDate, endOfMonth) ? endOfMonth : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled\n }) : newDate;\n\n if (closestEnabledDate) {\n onChange(closestEnabledDate, selectionState);\n onMonthChange == null ? void 0 : onMonthChange(startOfMonth);\n } else {\n openNext();\n changeMonth(startOfMonth);\n }\n\n changeFocusedDay(closestEnabledDate);\n }, [changeFocusedDay, disableFuture, disablePast, isDateDisabled, maxDate, minDate, onChange, onMonthChange, changeMonth, openNext, utils]); // TODO: Use same behavior as `handleDateMonthChange` to avoid selecting a date in another year.\n // Needs startOfYear / endOfYear methods in adapter.\n\n const handleDateYearChange = React.useCallback((newDate, selectionState) => {\n const startOfYear = utils.startOfYear(newDate);\n const endOfYear = utils.endOfYear(newDate);\n const closestEnabledDate = isDateDisabled(newDate) ? findClosestEnabledDate({\n utils,\n date: newDate,\n minDate: utils.isBefore(minDate, startOfYear) ? startOfYear : minDate,\n maxDate: utils.isAfter(maxDate, endOfYear) ? endOfYear : maxDate,\n disablePast,\n disableFuture,\n isDateDisabled\n }) : newDate;\n\n if (closestEnabledDate) {\n onChange(closestEnabledDate, selectionState);\n onYearChange == null ? void 0 : onYearChange(closestEnabledDate);\n } else {\n openNext();\n changeMonth(startOfYear);\n }\n\n changeFocusedDay(closestEnabledDate);\n }, [changeFocusedDay, disableFuture, disablePast, isDateDisabled, maxDate, minDate, onChange, onYearChange, openNext, utils, changeMonth]);\n const onSelectedDayChange = React.useCallback((day, isFinish) => {\n if (date && day) {\n // If there is a date already selected, then we want to keep its time\n return onChange(utils.mergeDateAndTime(day, date), isFinish);\n }\n\n return onChange(day, isFinish);\n }, [utils, date, onChange]);\n React.useEffect(() => {\n if (date && isDateDisabled(date)) {\n const closestEnabledDate = findClosestEnabledDate({\n utils,\n date,\n minDate,\n maxDate,\n disablePast,\n disableFuture,\n isDateDisabled\n });\n onChange(closestEnabledDate, 'partial');\n } // This call is too expensive to run it on each prop change.\n // So just ensure that we are not rendering disabled as selected on mount.\n\n }, []); // eslint-disable-line\n\n React.useEffect(() => {\n if (date) {\n changeMonth(date);\n }\n }, [date]); // eslint-disable-line\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n const baseDateValidationProps = {\n disablePast,\n disableFuture,\n maxDate,\n minDate\n }; // When disabled, limit the view to the selected date\n\n const minDateWithDisabled = disabled && date || minDate;\n const maxDateWithDisabled = disabled && date || maxDate;\n return /*#__PURE__*/_jsxs(CalendarPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersCalendarHeader, _extends({}, other, {\n views: views,\n openView: openView,\n currentMonth: calendarState.currentMonth,\n onViewChange: setOpenView,\n onMonthChange: (newMonth, direction) => handleChangeMonth({\n newMonth,\n direction\n }),\n minDate: minDateWithDisabled,\n maxDate: maxDateWithDisabled,\n disabled: disabled,\n disablePast: disablePast,\n disableFuture: disableFuture,\n reduceAnimations: reduceAnimations\n })), /*#__PURE__*/_jsx(CalendarPickerViewTransitionContainer, {\n reduceAnimations: reduceAnimations,\n className: classes.viewTransitionContainer,\n transKey: openView,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsxs(\"div\", {\n children: [openView === 'year' && /*#__PURE__*/_jsx(YearPicker, _extends({}, other, baseDateValidationProps, {\n autoFocus: autoFocus,\n date: date,\n onChange: handleDateYearChange,\n shouldDisableYear: shouldDisableYear,\n disabled: disabled,\n readOnly: readOnly\n })), openView === 'month' && /*#__PURE__*/_jsx(MonthPicker, _extends({}, baseDateValidationProps, {\n className: className,\n date: date,\n onChange: handleDateMonthChange,\n disabled: disabled,\n readOnly: readOnly,\n shouldDisableMonth: shouldDisableMonth\n })), openView === 'day' && /*#__PURE__*/_jsx(DayPicker, _extends({}, other, calendarState, baseDateValidationProps, {\n autoFocus: autoFocus,\n onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,\n onFocusedDayChange: changeFocusedDay,\n reduceAnimations: reduceAnimations,\n selectedDays: [date],\n onSelectedDaysChange: onSelectedDayChange,\n loading: loading,\n renderLoading: renderLoading,\n disabled: disabled,\n readOnly: readOnly,\n shouldDisableDate: shouldDisableDate\n }))]\n })\n })]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? CalendarPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n autoFocus: PropTypes.bool,\n classes: PropTypes.object,\n className: PropTypes.string,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n date: PropTypes.any,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired on date change\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Initially open view.\n * @default 'day'\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * Controlled open view.\n */\n view: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Views for calendar picker.\n * @default ['year', 'day']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;\nexport { CalendarPicker };","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport const getCalendarPickerSkeletonUtilityClass = slot => generateUtilityClass('MuiCalendarPickerSkeleton', slot);\nexport const calendarPickerSkeletonClasses = generateUtilityClasses('MuiCalendarPickerSkeleton', ['root', 'week', 'daySkeleton']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport Skeleton from '@mui/material/Skeleton';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { DAY_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';\nimport { getCalendarPickerSkeletonUtilityClass } from './calendarPickerSkeletonClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n week: ['week'],\n daySkeleton: ['daySkeleton']\n };\n return composeClasses(slots, getCalendarPickerSkeletonUtilityClass, classes);\n};\n\nconst CalendarPickerSkeletonRoot = styled('div', {\n name: 'MuiCalendarPickerSkeleton',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n alignSelf: 'start'\n});\nconst CalendarPickerSkeletonWeek = styled('div', {\n name: 'MuiCalendarPickerSkeleton',\n slot: 'Week',\n overridesResolver: (props, styles) => styles.week\n})({\n margin: `${DAY_MARGIN}px 0`,\n display: 'flex',\n justifyContent: 'center'\n});\nconst CalendarPickerSkeletonDay = styled(Skeleton, {\n name: 'MuiCalendarPickerSkeleton',\n slot: 'Day',\n overridesResolver: (props, styles) => styles.daySkeleton\n})(({\n ownerState\n}) => _extends({\n margin: `0 ${DAY_MARGIN}px`\n}, ownerState.day === 0 && {\n visibility: 'hidden'\n}));\nCalendarPickerSkeletonDay.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n ownerState: PropTypes.shape({\n day: PropTypes.number.isRequired\n }).isRequired\n};\nconst monthMap = [[0, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 1, 1, 1], [1, 1, 1, 1, 0, 0, 0]];\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [CalendarPickerSkeleton API](https://mui.com/x/api/date-pickers/calendar-picker-skeleton/)\n */\n\nfunction CalendarPickerSkeleton(props) {\n const _useThemeProps = useThemeProps({\n props,\n name: 'MuiCalendarPickerSkeleton'\n }),\n {\n className\n } = _useThemeProps,\n other = _objectWithoutPropertiesLoose(_useThemeProps, _excluded);\n\n const classes = useUtilityClasses(props);\n return /*#__PURE__*/_jsx(CalendarPickerSkeletonRoot, _extends({\n className: clsx(classes.root, className)\n }, other, {\n children: monthMap.map((week, index) => /*#__PURE__*/_jsx(CalendarPickerSkeletonWeek, {\n className: classes.week,\n children: week.map((day, index2) => /*#__PURE__*/_jsx(CalendarPickerSkeletonDay, {\n variant: \"circular\",\n width: DAY_SIZE,\n height: DAY_SIZE,\n className: classes.daySkeleton,\n ownerState: {\n day\n }\n }, index2))\n }, index))\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? CalendarPickerSkeleton.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport { CalendarPickerSkeleton };","import * as React from 'react';\nlet globalId = 0;\n\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseId = React['useId' + ''];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\n\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n } // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n\n\n return useGlobalId(idOverride);\n}","export const CLOCK_WIDTH = 220;\nexport const CLOCK_HOUR_WIDTH = 36;\nconst clockCenter = {\n x: CLOCK_WIDTH / 2,\n y: CLOCK_WIDTH / 2\n};\nconst baseClockPoint = {\n x: clockCenter.x,\n y: 0\n};\nconst cx = baseClockPoint.x - clockCenter.x;\nconst cy = baseClockPoint.y - clockCenter.y;\n\nconst rad2deg = rad => rad * (180 / Math.PI);\n\nconst getAngleValue = (step, offsetX, offsetY) => {\n const x = offsetX - clockCenter.x;\n const y = offsetY - clockCenter.y;\n const atan = Math.atan2(cx, cy) - Math.atan2(x, y);\n let deg = rad2deg(atan);\n deg = Math.round(deg / step) * step;\n deg %= 360;\n const value = Math.floor(deg / step) || 0;\n const delta = x ** 2 + y ** 2;\n const distance = Math.sqrt(delta);\n return {\n value,\n distance\n };\n};\n\nexport const getMinutes = (offsetX, offsetY, step = 1) => {\n const angleStep = step * 6;\n let {\n value\n } = getAngleValue(angleStep, offsetX, offsetY);\n value = value * step % 60;\n return value;\n};\nexport const getHours = (offsetX, offsetY, ampm) => {\n const {\n value,\n distance\n } = getAngleValue(30, offsetX, offsetY);\n let hour = value || 12;\n\n if (!ampm) {\n if (distance < CLOCK_WIDTH / 2 - CLOCK_HOUR_WIDTH) {\n hour += 12;\n hour %= 24;\n }\n } else {\n hour %= 12;\n }\n\n return hour;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"hasSelected\", \"isInner\", \"type\", \"value\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst ClockPointerRoot = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 2,\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n left: 'calc(50% - 1px)',\n bottom: '50%',\n transformOrigin: 'center bottom 0px'\n}, ownerState.toAnimateTransform && {\n transition: theme.transitions.create(['transform', 'height'])\n}));\nconst ClockPointerThumb = styled('div')(({\n theme,\n ownerState\n}) => _extends({\n width: 4,\n height: 4,\n backgroundColor: theme.palette.primary.contrastText,\n borderRadius: '50%',\n position: 'absolute',\n top: -21,\n left: `calc(50% - ${CLOCK_HOUR_WIDTH / 2}px)`,\n border: `${(CLOCK_HOUR_WIDTH - 4) / 2}px solid ${theme.palette.primary.main}`,\n boxSizing: 'content-box'\n}, ownerState.hasSelected && {\n backgroundColor: theme.palette.primary.main\n}));\n/**\n * @ignore - internal component.\n * TODO: Remove class\n */\n\nexport class ClockPointer extends React.Component {\n constructor(...args) {\n super(...args);\n this.state = {\n toAnimateTransform: false,\n previousType: undefined\n };\n }\n\n render() {\n const _this$props = this.props,\n {\n className,\n isInner,\n type,\n value\n } = _this$props,\n other = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n const ownerState = _extends({}, this.props, this.state);\n\n const getAngleStyle = () => {\n const max = type === 'hours' ? 12 : 60;\n let angle = 360 / max * value;\n\n if (type === 'hours' && value > 12) {\n angle -= 360; // round up angle to max 360 degrees\n }\n\n return {\n height: Math.round((isInner ? 0.26 : 0.4) * CLOCK_WIDTH),\n transform: `rotateZ(${angle}deg)`\n };\n };\n\n return /*#__PURE__*/_jsx(ClockPointerRoot, _extends({\n style: getAngleStyle(),\n className: className,\n ownerState: ownerState\n }, other, {\n children: /*#__PURE__*/_jsx(ClockPointerThumb, {\n ownerState: ownerState\n })\n }));\n }\n\n}\n\nClockPointer.getDerivedStateFromProps = (nextProps, state) => {\n if (nextProps.type !== state.previousType) {\n return {\n toAnimateTransform: true,\n previousType: nextProps.type\n };\n }\n\n return {\n toAnimateTransform: false,\n previousType: nextProps.type\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { ClockPointer } from './ClockPointer';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { getHours, getMinutes } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ClockRoot = styled('div')(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n margin: theme.spacing(2)\n}));\nconst ClockClock = styled('div')({\n backgroundColor: 'rgba(0,0,0,.07)',\n borderRadius: '50%',\n height: 220,\n width: 220,\n flexShrink: 0,\n position: 'relative',\n pointerEvents: 'none'\n});\nconst ClockSquareMask = styled('div')(({\n ownerState\n}) => _extends({\n width: '100%',\n height: '100%',\n position: 'absolute',\n pointerEvents: 'auto',\n outline: 0,\n // Disable scroll capabilities.\n touchAction: 'none',\n userSelect: 'none'\n}, ownerState.disabled ? {} : {\n '@media (pointer: fine)': {\n cursor: 'pointer',\n borderRadius: '50%'\n },\n '&:active': {\n cursor: 'move'\n }\n}));\nconst ClockPin = styled('div')(({\n theme\n}) => ({\n width: 6,\n height: 6,\n borderRadius: '50%',\n backgroundColor: theme.palette.primary.main,\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)'\n}));\nconst ClockAmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n left: 8\n}, ownerState.meridiemMode === 'am' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\nconst ClockPmButton = styled(IconButton)(({\n theme,\n ownerState\n}) => _extends({\n zIndex: 1,\n position: 'absolute',\n bottom: ownerState.ampmInClock ? 64 : 8,\n right: 8\n}, ownerState.meridiemMode === 'pm' && {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n '&:hover': {\n backgroundColor: theme.palette.primary.light\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport function Clock(props) {\n const {\n ampm,\n ampmInClock,\n autoFocus,\n children,\n date,\n getClockLabelText,\n handleMeridiemChange,\n isTimeDisabled,\n meridiemMode,\n minutesStep = 1,\n onChange,\n selectedId,\n type,\n value,\n disabled,\n readOnly\n } = props;\n const ownerState = props;\n const utils = useUtils();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const isMoving = React.useRef(false);\n const isSelectedTimeDisabled = isTimeDisabled(value, type);\n const isPointerInner = !ampm && type === 'hours' && (value < 1 || value > 12);\n\n const handleValueChange = (newValue, isFinish) => {\n if (disabled || readOnly) {\n return;\n }\n\n if (isTimeDisabled(newValue, type)) {\n return;\n }\n\n onChange(newValue, isFinish);\n };\n\n const setTime = (event, isFinish) => {\n let {\n offsetX,\n offsetY\n } = event;\n\n if (offsetX === undefined) {\n const rect = event.target.getBoundingClientRect();\n offsetX = event.changedTouches[0].clientX - rect.left;\n offsetY = event.changedTouches[0].clientY - rect.top;\n }\n\n const newSelectedValue = type === 'seconds' || type === 'minutes' ? getMinutes(offsetX, offsetY, minutesStep) : getHours(offsetX, offsetY, Boolean(ampm));\n handleValueChange(newSelectedValue, isFinish);\n };\n\n const handleTouchMove = event => {\n isMoving.current = true;\n setTime(event, 'shallow');\n };\n\n const handleTouchEnd = event => {\n if (isMoving.current) {\n setTime(event, 'finish');\n isMoving.current = false;\n }\n };\n\n const handleMouseMove = event => {\n // event.buttons & PRIMARY_MOUSE_BUTTON\n if (event.buttons > 0) {\n setTime(event.nativeEvent, 'shallow');\n }\n };\n\n const handleMouseUp = event => {\n if (isMoving.current) {\n isMoving.current = false;\n }\n\n setTime(event.nativeEvent, 'finish');\n };\n\n const hasSelected = React.useMemo(() => {\n if (type === 'hours') {\n return true;\n }\n\n return value % 5 === 0;\n }, [type, value]);\n const keyboardControlStep = type === 'minutes' ? minutesStep : 1;\n const listboxRef = React.useRef(null); // Since this is rendered when a Popper is opened we can't use passive effects.\n // Focusing in passive effects in Popper causes scroll jump.\n\n useEnhancedEffect(() => {\n if (autoFocus) {\n // The ref not being resolved would be a bug in MUI.\n listboxRef.current.focus();\n }\n }, [autoFocus]);\n\n const handleKeyDown = event => {\n // TODO: Why this early exit?\n if (isMoving.current) {\n return;\n }\n\n switch (event.key) {\n case 'Home':\n // annulate both hours and minutes\n handleValueChange(0, 'partial');\n event.preventDefault();\n break;\n\n case 'End':\n handleValueChange(type === 'minutes' ? 59 : 23, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowUp':\n handleValueChange(value + keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n case 'ArrowDown':\n handleValueChange(value - keyboardControlStep, 'partial');\n event.preventDefault();\n break;\n\n default: // do nothing\n\n }\n };\n\n return /*#__PURE__*/_jsxs(ClockRoot, {\n children: [/*#__PURE__*/_jsxs(ClockClock, {\n children: [/*#__PURE__*/_jsx(ClockSquareMask, {\n onTouchMove: handleTouchMove,\n onTouchEnd: handleTouchEnd,\n onMouseUp: handleMouseUp,\n onMouseMove: handleMouseMove,\n ownerState: {\n disabled\n }\n }), !isSelectedTimeDisabled && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockPin, {}), date && /*#__PURE__*/_jsx(ClockPointer, {\n type: type,\n value: value,\n isInner: isPointerInner,\n hasSelected: hasSelected\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n \"aria-activedescendant\": selectedId,\n \"aria-label\": getClockLabelText(type, date, utils),\n ref: listboxRef,\n role: \"listbox\",\n onKeyDown: handleKeyDown,\n tabIndex: 0,\n children: children\n })]\n }), ampm && (wrapperVariant === 'desktop' || ampmInClock) && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(ClockAmButton, {\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled || meridiemMode === null,\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"AM\"\n })\n }), /*#__PURE__*/_jsx(ClockPmButton, {\n disabled: disabled || meridiemMode === null,\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(Typography, {\n variant: \"caption\",\n children: \"PM\"\n })\n })]\n })]\n });\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disabled\", \"index\", \"inner\", \"label\", \"selected\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { CLOCK_WIDTH, CLOCK_HOUR_WIDTH } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const classes = generateUtilityClasses('PrivateClockNumber', ['selected', 'disabled']);\nconst ClockNumberRoot = styled('span')(({\n theme,\n ownerState\n}) => _extends({\n height: CLOCK_HOUR_WIDTH,\n width: CLOCK_HOUR_WIDTH,\n position: 'absolute',\n left: `calc((100% - ${CLOCK_HOUR_WIDTH}px) / 2)`,\n display: 'inline-flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n color: theme.palette.text.primary,\n fontFamily: theme.typography.fontFamily,\n '&:focused': {\n backgroundColor: theme.palette.background.paper\n },\n [`&.${classes.selected}`]: {\n color: theme.palette.primary.contrastText\n },\n [`&.${classes.disabled}`]: {\n pointerEvents: 'none',\n color: theme.palette.text.disabled\n }\n}, ownerState.inner && _extends({}, theme.typography.body2, {\n color: theme.palette.text.secondary\n})));\n/**\n * @ignore - internal component.\n */\n\nexport function ClockNumber(props) {\n const {\n className,\n disabled,\n index,\n inner,\n label,\n selected\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const angle = index % 12 / 12 * Math.PI * 2 - Math.PI / 2;\n const length = (CLOCK_WIDTH - CLOCK_HOUR_WIDTH - 2) / 2 * (inner ? 0.65 : 1);\n const x = Math.round(Math.cos(angle) * length);\n const y = Math.round(Math.sin(angle) * length);\n return /*#__PURE__*/_jsx(ClockNumberRoot, _extends({\n className: clsx(className, selected && classes.selected, disabled && classes.disabled),\n \"aria-disabled\": disabled ? true : undefined,\n \"aria-selected\": selected ? true : undefined,\n role: \"option\",\n style: {\n transform: `translate(${x}px, ${y + (CLOCK_WIDTH - CLOCK_HOUR_WIDTH) / 2}px`\n },\n ownerState: ownerState\n }, other, {\n children: label\n }));\n}","import * as React from 'react';\nimport { ClockNumber } from './ClockNumber';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n * @ignore - internal component.\n */\nexport const getHourNumbers = ({\n ampm,\n date,\n getClockNumberText,\n isDisabled,\n selectedId,\n utils\n}) => {\n const currentHours = date ? utils.getHours(date) : null;\n const hourNumbers = [];\n const startHour = ampm ? 1 : 0;\n const endHour = ampm ? 12 : 23;\n\n const isSelected = hour => {\n if (currentHours === null) {\n return false;\n }\n\n if (ampm) {\n if (hour === 12) {\n return currentHours === 12 || currentHours === 0;\n }\n\n return currentHours === hour || currentHours - 12 === hour;\n }\n\n return currentHours === hour;\n };\n\n for (let hour = startHour; hour <= endHour; hour += 1) {\n let label = hour.toString();\n\n if (hour === 0) {\n label = '00';\n }\n\n const inner = !ampm && (hour === 0 || hour > 12);\n label = utils.formatNumber(label);\n const selected = isSelected(hour);\n hourNumbers.push( /*#__PURE__*/_jsx(ClockNumber, {\n id: selected ? selectedId : undefined,\n index: hour,\n inner: inner,\n selected: selected,\n disabled: isDisabled(hour),\n label: label,\n \"aria-label\": getClockNumberText(label)\n }, hour));\n }\n\n return hourNumbers;\n};\nexport const getMinutesNumbers = ({\n utils,\n value,\n isDisabled,\n getClockNumberText,\n selectedId\n}) => {\n const f = utils.formatNumber;\n return [[5, f('05')], [10, f('10')], [15, f('15')], [20, f('20')], [25, f('25')], [30, f('30')], [35, f('35')], [40, f('40')], [45, f('45')], [50, f('50')], [55, f('55')], [0, f('00')]].map(([numberValue, label], index) => {\n const selected = numberValue === value;\n return /*#__PURE__*/_jsx(ClockNumber, {\n label: label,\n id: selected ? selectedId : undefined,\n index: index + 1,\n inner: false,\n disabled: isDisabled(numberValue),\n selected: selected,\n \"aria-label\": getClockNumberText(label)\n }, numberValue);\n });\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getClockPickerUtilityClass(slot) {\n return generateUtilityClass('MuiClockPicker', slot);\n}\nexport const clockPickerClasses = generateUtilityClasses('MuiClockPicker', ['root', 'arrowSwitcher']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { unstable_useId as useId } from '@mui/utils';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { Clock } from './Clock';\nimport { useUtils, useNow, useLocaleText } from '../internals/hooks/useUtils';\nimport { buildDeprecatedPropsWarning } from '../internals/utils/warning';\nimport { getHourNumbers, getMinutesNumbers } from './ClockNumbers';\nimport { PickersArrowSwitcher } from '../internals/components/PickersArrowSwitcher';\nimport { convertValueToMeridiem, createIsAfterIgnoreDatePart } from '../internals/utils/time-utils';\nimport { useViews } from '../internals/hooks/useViews';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { getClockPickerUtilityClass } from './clockPickerClasses';\nimport { PickerViewRoot } from '../internals/components/PickerViewRoot';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n arrowSwitcher: ['arrowSwitcher']\n };\n return composeClasses(slots, getClockPickerUtilityClass, classes);\n};\n\nconst ClockPickerRoot = styled(PickerViewRoot, {\n name: 'MuiClockPicker',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst ClockPickerArrowSwitcher = styled(PickersArrowSwitcher, {\n name: 'MuiClockPicker',\n slot: 'ArrowSwitcher',\n overridesResolver: (props, styles) => styles.arrowSwitcher\n})({\n position: 'absolute',\n right: 12,\n top: 15\n});\nconst deprecatedPropsWarning = buildDeprecatedPropsWarning('Props for translation are deprecated. See https://mui.com/x/react-date-pickers/localization for more information.');\n/**\n *\n * API:\n *\n * - [ClockPicker API](https://mui.com/x/api/date-pickers/clock-picker/)\n */\n\nexport const ClockPicker = /*#__PURE__*/React.forwardRef(function ClockPicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiClockPicker'\n });\n const {\n ampm = false,\n ampmInClock = false,\n autoFocus,\n components,\n componentsProps,\n date,\n disableIgnoringDatePartForTimeValidation,\n getClockLabelText: getClockLabelTextProp,\n getHoursClockNumberText: getHoursClockNumberTextProp,\n getMinutesClockNumberText: getMinutesClockNumberTextProp,\n getSecondsClockNumberText: getSecondsClockNumberTextProp,\n leftArrowButtonText: leftArrowButtonTextProp,\n maxTime,\n minTime,\n minutesStep = 1,\n rightArrowButtonText: rightArrowButtonTextProp,\n shouldDisableTime,\n showViewSwitcher,\n onChange,\n view,\n views = ['hours', 'minutes'],\n openTo,\n onViewChange,\n className,\n disabled,\n readOnly\n } = props;\n deprecatedPropsWarning({\n leftArrowButtonText: leftArrowButtonTextProp,\n rightArrowButtonText: rightArrowButtonTextProp,\n getClockLabelText: getClockLabelTextProp,\n getHoursClockNumberText: getHoursClockNumberTextProp,\n getMinutesClockNumberText: getMinutesClockNumberTextProp,\n getSecondsClockNumberText: getSecondsClockNumberTextProp\n });\n const localeText = useLocaleText();\n const leftArrowButtonText = leftArrowButtonTextProp != null ? leftArrowButtonTextProp : localeText.openPreviousView;\n const rightArrowButtonText = rightArrowButtonTextProp != null ? rightArrowButtonTextProp : localeText.openNextView;\n const getClockLabelText = getClockLabelTextProp != null ? getClockLabelTextProp : localeText.clockLabelText;\n const getHoursClockNumberText = getHoursClockNumberTextProp != null ? getHoursClockNumberTextProp : localeText.hoursClockNumberText;\n const getMinutesClockNumberText = getMinutesClockNumberTextProp != null ? getMinutesClockNumberTextProp : localeText.minutesClockNumberText;\n const getSecondsClockNumberText = getSecondsClockNumberTextProp != null ? getSecondsClockNumberTextProp : localeText.secondsClockNumberText;\n const {\n openView,\n setOpenView,\n nextView,\n previousView,\n handleChangeAndOpenNext\n } = useViews({\n view,\n views,\n openTo,\n onViewChange,\n onChange\n });\n const now = useNow();\n const utils = useUtils();\n const dateOrMidnight = React.useMemo(() => date || utils.setSeconds(utils.setMinutes(utils.setHours(now, 0), 0), 0), [date, now, utils]);\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(dateOrMidnight, ampm, handleChangeAndOpenNext);\n const isTimeDisabled = React.useCallback((rawValue, viewType) => {\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, utils);\n\n const containsValidTime = ({\n start,\n end\n }) => {\n if (minTime && isAfter(minTime, end)) {\n return false;\n }\n\n if (maxTime && isAfter(start, maxTime)) {\n return false;\n }\n\n return true;\n };\n\n const isValidValue = (value, step = 1) => {\n if (value % step !== 0) {\n return false;\n }\n\n if (shouldDisableTime) {\n return !shouldDisableTime(value, viewType);\n }\n\n return true;\n };\n\n switch (viewType) {\n case 'hours':\n {\n const value = convertValueToMeridiem(rawValue, meridiemMode, ampm);\n const dateWithNewHours = utils.setHours(dateOrMidnight, value);\n const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);\n const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(value);\n }\n\n case 'minutes':\n {\n const dateWithNewMinutes = utils.setMinutes(dateOrMidnight, rawValue);\n const start = utils.setSeconds(dateWithNewMinutes, 0);\n const end = utils.setSeconds(dateWithNewMinutes, 59);\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue, minutesStep);\n }\n\n case 'seconds':\n {\n const dateWithNewSeconds = utils.setSeconds(dateOrMidnight, rawValue);\n const start = dateWithNewSeconds;\n const end = dateWithNewSeconds;\n return !containsValidTime({\n start,\n end\n }) || !isValidValue(rawValue);\n }\n\n default:\n throw new Error('not supported');\n }\n }, [ampm, dateOrMidnight, disableIgnoringDatePartForTimeValidation, maxTime, meridiemMode, minTime, minutesStep, shouldDisableTime, utils]);\n const selectedId = useId();\n const viewProps = React.useMemo(() => {\n switch (openView) {\n case 'hours':\n {\n const handleHoursChange = (value, isFinish) => {\n const valueWithMeridiem = convertValueToMeridiem(value, meridiemMode, ampm);\n handleChangeAndOpenNext(utils.setHours(dateOrMidnight, valueWithMeridiem), isFinish);\n };\n\n return {\n onChange: handleHoursChange,\n value: utils.getHours(dateOrMidnight),\n children: getHourNumbers({\n date,\n utils,\n ampm,\n onChange: handleHoursChange,\n getClockNumberText: getHoursClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'hours'),\n selectedId\n })\n };\n }\n\n case 'minutes':\n {\n const minutesValue = utils.getMinutes(dateOrMidnight);\n\n const handleMinutesChange = (value, isFinish) => {\n handleChangeAndOpenNext(utils.setMinutes(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: minutesValue,\n onChange: handleMinutesChange,\n children: getMinutesNumbers({\n utils,\n value: minutesValue,\n onChange: handleMinutesChange,\n getClockNumberText: getMinutesClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'minutes'),\n selectedId\n })\n };\n }\n\n case 'seconds':\n {\n const secondsValue = utils.getSeconds(dateOrMidnight);\n\n const handleSecondsChange = (value, isFinish) => {\n handleChangeAndOpenNext(utils.setSeconds(dateOrMidnight, value), isFinish);\n };\n\n return {\n value: secondsValue,\n onChange: handleSecondsChange,\n children: getMinutesNumbers({\n utils,\n value: secondsValue,\n onChange: handleSecondsChange,\n getClockNumberText: getSecondsClockNumberText,\n isDisabled: value => disabled || isTimeDisabled(value, 'seconds'),\n selectedId\n })\n };\n }\n\n default:\n throw new Error('You must provide the type for ClockView');\n }\n }, [openView, utils, date, ampm, getHoursClockNumberText, getMinutesClockNumberText, getSecondsClockNumberText, meridiemMode, handleChangeAndOpenNext, dateOrMidnight, isTimeDisabled, selectedId, disabled]);\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(ClockPickerRoot, {\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState,\n children: [showViewSwitcher && /*#__PURE__*/_jsx(ClockPickerArrowSwitcher, {\n className: classes.arrowSwitcher,\n leftArrowButtonText: leftArrowButtonText,\n rightArrowButtonText: rightArrowButtonText,\n components: components,\n componentsProps: componentsProps,\n onLeftClick: () => setOpenView(previousView),\n onRightClick: () => setOpenView(nextView),\n isLeftDisabled: !previousView,\n isRightDisabled: !nextView,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(Clock, _extends({\n autoFocus: autoFocus,\n date: date,\n ampmInClock: ampmInClock,\n type: openView,\n ampm: ampm,\n getClockLabelText: getClockLabelText,\n minutesStep: minutesStep,\n isTimeDisabled: isTimeDisabled,\n meridiemMode: meridiemMode,\n handleMeridiemChange: handleMeridiemChange,\n selectedId: selectedId,\n disabled: disabled,\n readOnly: readOnly\n }, viewProps))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? ClockPicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * 12h/24h view for hour selection clock.\n * @default false\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * Set to `true` if focus should be moved to clock picker.\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n className: PropTypes.string,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Selected date @DateIOType.\n */\n date: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get clock number aria-text for hours.\n * @param {string} hours The hours to format.\n * @returns {string} the formatted hours text.\n * @default (hours: string) => `${hours} hours`\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getHoursClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for minutes.\n * @param {string} minutes The minutes to format.\n * @returns {string} the formatted minutes text.\n * @default (minutes: string) => `${minutes} minutes`\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getMinutesClockNumberText: PropTypes.func,\n\n /**\n * Get clock number aria-text for seconds.\n * @param {string} seconds The seconds to format.\n * @returns {string} the formatted seconds text.\n * @default (seconds: string) => `${seconds} seconds`\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getSecondsClockNumberText: PropTypes.func,\n\n /**\n * Left arrow icon aria-label text.\n * @default 'open previous view'\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * On change callback @DateIOType.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Initially open view.\n * @default 'hours'\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Right arrow icon aria-label text.\n * @default 'open next view'\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n showViewSwitcher: PropTypes.bool,\n\n /**\n * Controlled open view.\n */\n view: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Views for calendar picker.\n * @default ['hours', 'minutes']\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { parsePickerInputValue } from '../internals/utils/date-utils';\nexport const isYearOnlyView = views => views.length === 1 && views[0] === 'year';\nexport const isYearAndMonthViews = views => views.length === 2 && views.indexOf('month') !== -1 && views.indexOf('year') !== -1;\n\nconst getFormatAndMaskByViews = (views, utils) => {\n if (isYearOnlyView(views)) {\n return {\n inputFormat: utils.formats.year\n };\n }\n\n if (isYearAndMonthViews(views)) {\n return {\n disableMaskedInput: true,\n inputFormat: utils.formats.monthAndYear\n };\n }\n\n return {\n inputFormat: utils.formats.keyboardDate\n };\n};\n\nexport function useDatePickerDefaultizedProps(props, name) {\n var _themeProps$views;\n\n const utils = useUtils();\n const defaultDates = useDefaultDates(); // This is technically unsound if the type parameters appear in optional props.\n // Optional props can be filled by `useThemeProps` with types that don't match the type parameters.\n\n const themeProps = useThemeProps({\n props,\n name\n });\n const views = (_themeProps$views = themeProps.views) != null ? _themeProps$views : ['year', 'day'];\n return _extends({\n openTo: 'day',\n minDate: defaultDates.minDate,\n maxDate: defaultDates.maxDate\n }, getFormatAndMaskByViews(views, utils), themeProps, {\n views\n });\n}\nexport const datePickerValueManager = {\n emptyValue: null,\n getTodayValue: utils => utils.date(),\n parseInput: parsePickerInputValue,\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b)\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Grid from '@mui/material/Grid';\nimport Typography from '@mui/material/Typography';\nimport IconButton from '@mui/material/IconButton';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { Pen, Calendar, Clock } from './icons';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const pickersToolbarClasses = generateUtilityClasses('MuiPickersToolbar', ['root', 'content', 'penIconButton', 'penIconButtonLandscape']);\nconst PickersToolbarRoot = styled('div', {\n name: 'MuiPickersToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n padding: theme.spacing(2, 3)\n}, ownerState.isLandscape && {\n height: 'auto',\n maxWidth: 160,\n padding: 16,\n justifyContent: 'flex-start',\n flexWrap: 'wrap'\n}));\nconst PickersToolbarContent = styled(Grid, {\n name: 'MuiPickersToolbar',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})({\n flex: 1\n});\nconst PickersToolbarPenIconButton = styled(IconButton, {\n name: 'MuiPickersToolbar',\n slot: 'PenIconButton',\n overridesResolver: (props, styles) => styles.penIconButton\n})({});\n\nconst getViewTypeIcon = viewType => viewType === 'clock' ? /*#__PURE__*/_jsx(Clock, {\n color: \"inherit\"\n}) : /*#__PURE__*/_jsx(Calendar, {\n color: \"inherit\"\n});\n\nfunction defaultGetKeyboardInputSwitchingButtonText(isKeyboardInputOpen, viewType) {\n return isKeyboardInputOpen ? `text input view is open, go to ${viewType} view` : `${viewType} view is open, go to text input view`;\n}\n\nexport const PickersToolbar = /*#__PURE__*/React.forwardRef(function PickersToolbar(props, ref) {\n const {\n children,\n className,\n getMobileKeyboardInputViewButtonText = defaultGetKeyboardInputSwitchingButtonText,\n isLandscape,\n isMobileKeyboardViewOpen,\n landscapeDirection = 'column',\n toggleMobileKeyboardView,\n toolbarTitle,\n viewType = 'calendar'\n } = props;\n const ownerState = props;\n return /*#__PURE__*/_jsxs(PickersToolbarRoot, {\n ref: ref,\n className: clsx(pickersToolbarClasses.root, className),\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n variant: \"overline\",\n children: toolbarTitle\n }), /*#__PURE__*/_jsxs(PickersToolbarContent, {\n container: true,\n justifyContent: \"space-between\",\n className: pickersToolbarClasses.content,\n ownerState: ownerState,\n direction: isLandscape ? landscapeDirection : 'row',\n alignItems: isLandscape ? 'flex-start' : 'flex-end',\n children: [children, /*#__PURE__*/_jsx(PickersToolbarPenIconButton, {\n onClick: toggleMobileKeyboardView,\n className: clsx(pickersToolbarClasses.penIconButton, isLandscape && pickersToolbarClasses.penIconButtonLandscape),\n ownerState: ownerState,\n color: \"inherit\",\n \"aria-label\": getMobileKeyboardInputViewButtonText(isMobileKeyboardViewOpen, viewType),\n children: isMobileKeyboardViewOpen ? getViewTypeIcon(viewType) : /*#__PURE__*/_jsx(Pen, {\n color: \"inherit\"\n })\n })]\n })]\n });\n});","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"parsedValue\", \"isLandscape\", \"isMobileKeyboardViewOpen\", \"onChange\", \"toggleMobileKeyboardView\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { PickersToolbar, pickersToolbarClasses } from '../internals/components/PickersToolbar';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { isYearAndMonthViews, isYearOnlyView } from './shared';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const datePickerToolbarClasses = generateUtilityClasses('MuiDatePickerToolbar', ['root', 'title']);\nconst DatePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDatePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n [`& .${pickersToolbarClasses.penIconButton}`]: {\n position: 'relative',\n top: 4\n }\n});\nconst DatePickerToolbarTitle = styled(Typography, {\n name: 'MuiDatePickerToolbar',\n slot: 'Title',\n overridesResolver: (props, styles) => styles.title\n})(({\n ownerState\n}) => _extends({}, ownerState.isLandscape && {\n margin: 'auto 16px auto auto'\n}));\n\n/**\n * @ignore - internal component.\n */\nexport const DatePickerToolbar = /*#__PURE__*/React.forwardRef(function DatePickerToolbar(props, ref) {\n const {\n parsedValue,\n isLandscape,\n isMobileKeyboardViewOpen,\n toggleMobileKeyboardView,\n toolbarFormat,\n toolbarPlaceholder = '––',\n toolbarTitle = 'Select date',\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const dateText = React.useMemo(() => {\n if (!parsedValue) {\n return toolbarPlaceholder;\n }\n\n if (toolbarFormat) {\n return utils.formatByString(parsedValue, toolbarFormat);\n }\n\n if (isYearOnlyView(views)) {\n return utils.format(parsedValue, 'year');\n }\n\n if (isYearAndMonthViews(views)) {\n return utils.format(parsedValue, 'month');\n } // Little localization hack (Google is doing the same for android native pickers):\n // For english localization it is convenient to include weekday into the date \"Mon, Jun 1\".\n // For other locales using strings like \"June 1\", without weekday.\n\n\n return /en/.test(utils.getCurrentLocaleCode()) ? utils.format(parsedValue, 'normalDateWithWeekday') : utils.format(parsedValue, 'normalDate');\n }, [parsedValue, toolbarFormat, toolbarPlaceholder, utils, views]);\n const ownerState = props;\n return /*#__PURE__*/_jsx(DatePickerToolbarRoot, _extends({\n ref: ref,\n toolbarTitle: toolbarTitle,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n isLandscape: isLandscape,\n ownerState: ownerState,\n className: datePickerToolbarClasses.root\n }, other, {\n children: /*#__PURE__*/_jsx(DatePickerToolbarTitle, {\n variant: \"h4\",\n align: isLandscape ? 'left' : 'center',\n ownerState: ownerState,\n className: datePickerToolbarClasses.title,\n children: dateText\n })\n }));\n});","import * as React from 'react';\nimport Button from '@mui/material/Button';\nimport DialogActions from '@mui/material/DialogActions';\nimport { useLocaleText } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const PickersActionBar = props => {\n const {\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n actions\n } = props;\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const localeText = useLocaleText();\n const actionsArray = typeof actions === 'function' ? actions(wrapperVariant) : actions;\n\n if (actionsArray == null || actionsArray.length === 0) {\n return null;\n }\n\n const buttons = actionsArray == null ? void 0 : actionsArray.map(actionType => {\n switch (actionType) {\n case 'clear':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onClear,\n children: localeText.clearButtonLabel\n }, actionType);\n\n case 'cancel':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onCancel,\n children: localeText.cancelButtonLabel\n }, actionType);\n\n case 'accept':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onAccept,\n children: localeText.okButtonLabel\n }, actionType);\n\n case 'today':\n return /*#__PURE__*/_jsx(Button, {\n onClick: onSetToday,\n children: localeText.todayButtonLabel\n }, actionType);\n\n default:\n return null;\n }\n });\n return /*#__PURE__*/_jsx(DialogActions, {\n children: buttons\n });\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"onClick\", \"onTouchStart\"];\nimport * as React from 'react';\nimport Grow from '@mui/material/Grow';\nimport Paper from '@mui/material/Paper';\nimport Popper from '@mui/material/Popper';\nimport TrapFocus from '@mui/material/Unstable_TrapFocus';\nimport { useForkRef, useEventCallback, ownerDocument } from '@mui/material/utils';\nimport { styled } from '@mui/material/styles';\nimport { PickersActionBar } from '../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersPopperRoot = styled(Popper)(({\n theme\n}) => ({\n zIndex: theme.zIndex.modal\n}));\nconst PickersPopperPaper = styled(Paper)(({\n ownerState\n}) => _extends({\n transformOrigin: 'top center',\n outline: 0\n}, ownerState.placement === 'top' && {\n transformOrigin: 'bottom center'\n}));\n\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n\n/**\n * Based on @mui/material/ClickAwayListener without the customization.\n * We can probably strip away even more since children won't be portaled.\n * @param {boolean} active Only listen to clicks when the popper is opened.\n * @param {(event: MouseEvent | TouchEvent) => void} onClickAway The callback to call when clicking outside the popper.\n * @returns {Array} The ref and event handler to listen to the outside clicks.\n */\nfunction useClickAwayListener(active, onClickAway) {\n const movedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n React.useEffect(() => {\n if (!active) {\n return undefined;\n } // Ensure that this hook is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n\n\n function armClickAwayListener() {\n activatedRef.current = true;\n }\n\n document.addEventListener('mousedown', armClickAwayListener, true);\n document.addEventListener('touchstart', armClickAwayListener, true);\n return () => {\n document.removeEventListener('mousedown', armClickAwayListener, true);\n document.removeEventListener('touchstart', armClickAwayListener, true);\n activatedRef.current = false;\n };\n }, [active]); // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n\n const handleClickAway = useEventCallback(event => {\n if (!activatedRef.current) {\n return;\n } // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n\n\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current); // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n\n if (!nodeRef.current || // is a TouchEvent?\n 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n } // Do not act if user performed touchmove\n\n\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n\n let insideDOM; // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(event.target) || nodeRef.current.contains(event.target);\n }\n\n if (!insideDOM && !insideReactTree) {\n onClickAway(event);\n }\n }); // Keep track of mouse/touch events that bubbled up through the portal.\n\n const handleSynthetic = () => {\n syntheticEventRef.current = true;\n };\n\n React.useEffect(() => {\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n\n doc.addEventListener('touchstart', handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener('touchstart', handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n React.useEffect(() => {\n // TODO This behavior is not tested automatically\n // It's unclear whether this is due to different update semantics in test (batched in act() vs discrete on click).\n // Or if this is a timing related issues due to different Transition components\n // Once we get rid of all the manual scheduling (e.g. setTimeout(update, 0)) we can revisit this code+test.\n if (active) {\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener('click', handleClickAway);\n return () => {\n doc.removeEventListener('click', handleClickAway); // cleanup `handleClickAway`\n\n syntheticEventRef.current = false;\n };\n }\n\n return undefined;\n }, [active, handleClickAway]);\n return [nodeRef, handleSynthetic, handleSynthetic];\n}\n\nexport const PickersPopper = props => {\n var _components$ActionBar;\n\n const {\n anchorEl,\n children,\n containerRef = null,\n onBlur,\n onClose,\n onClear,\n onAccept,\n onCancel,\n onSetToday,\n open,\n PopperProps,\n role,\n TransitionComponent = Grow,\n TrapFocusProps,\n PaperProps = {},\n components,\n componentsProps\n } = props;\n React.useEffect(() => {\n function handleKeyDown(nativeEvent) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (open && (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc')) {\n onClose();\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [onClose, open]);\n const lastFocusedElementRef = React.useRef(null);\n React.useEffect(() => {\n if (role === 'tooltip') {\n return;\n }\n\n if (open) {\n lastFocusedElementRef.current = document.activeElement;\n } else if (lastFocusedElementRef.current && lastFocusedElementRef.current instanceof HTMLElement) {\n lastFocusedElementRef.current.focus();\n }\n }, [open, role]);\n const [clickAwayRef, onPaperClick, onPaperTouchStart] = useClickAwayListener(open, onBlur != null ? onBlur : onClose);\n const paperRef = React.useRef(null);\n const handleRef = useForkRef(paperRef, containerRef);\n const handlePaperRef = useForkRef(handleRef, clickAwayRef);\n const ownerState = props;\n\n const {\n onClick: onPaperClickProp,\n onTouchStart: onPaperTouchStartProp\n } = PaperProps,\n otherPaperProps = _objectWithoutPropertiesLoose(PaperProps, _excluded);\n\n const handleKeyDown = event => {\n if (event.key === 'Escape') {\n // stop the propagation to avoid closing parent modal\n event.stopPropagation();\n onClose();\n }\n };\n\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsx(PickersPopperRoot, _extends({\n transition: true,\n role: role,\n open: open,\n anchorEl: anchorEl,\n ownerState: ownerState,\n onKeyDown: handleKeyDown\n }, PopperProps, {\n children: ({\n TransitionProps,\n placement\n }) => /*#__PURE__*/_jsx(TrapFocus, _extends({\n open: open,\n disableAutoFocus: true,\n disableEnforceFocus: role === 'tooltip',\n isEnabled: () => true\n }, TrapFocusProps, {\n children: /*#__PURE__*/_jsx(TransitionComponent, _extends({}, TransitionProps, {\n children: /*#__PURE__*/_jsxs(PickersPopperPaper, _extends({\n tabIndex: -1,\n elevation: 8,\n ref: handlePaperRef,\n onClick: event => {\n onPaperClick(event);\n\n if (onPaperClickProp) {\n onPaperClickProp(event);\n }\n },\n onTouchStart: event => {\n onPaperTouchStart(event);\n\n if (onPaperTouchStartProp) {\n onPaperTouchStartProp(event);\n }\n },\n ownerState: _extends({}, ownerState, {\n placement\n })\n }, otherPaperProps, {\n children: [children, /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: []\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }))\n }))\n }))\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useForkRef } from '@mui/material/utils';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport { PickersPopper } from '../PickersPopper';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function DesktopWrapper(props) {\n const {\n children,\n DateInputProps,\n KeyboardDateInputComponent,\n onClear,\n onDismiss,\n onCancel,\n onAccept,\n onSetToday,\n open,\n PopperProps,\n PaperProps,\n TransitionComponent,\n components,\n componentsProps\n } = props;\n const ownInputRef = React.useRef(null);\n const inputRef = useForkRef(DateInputProps.inputRef, ownInputRef);\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"desktop\",\n children: [/*#__PURE__*/_jsx(KeyboardDateInputComponent, _extends({}, DateInputProps, {\n inputRef: inputRef\n })), /*#__PURE__*/_jsx(PickersPopper, {\n role: \"dialog\",\n open: open,\n anchorEl: ownInputRef.current,\n TransitionComponent: TransitionComponent,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n onClose: onDismiss,\n onCancel: onCancel,\n onClear: onClear,\n onAccept: onAccept,\n onSetToday: onSetToday,\n components: components,\n componentsProps: componentsProps,\n children: children\n })]\n });\n}","import { useReducer, useRef, useLayoutEffect, useEffect } from 'react';\n\nconst useRifm = props => {\n const [, refresh] = useReducer(c => c + 1, 0);\n const valueRef = useRef(null);\n const {\n replace,\n append\n } = props;\n const userValue = replace ? replace(props.format(props.value)) : props.format(props.value); // state of delete button see comments below about inputType support\n\n const isDeleleteButtonDownRef = useRef(false);\n\n const onChange = evt => {\n if (process.env.NODE_ENV !== 'production') {\n if (evt.target.type === 'number') {\n console.error('Rifm does not support input type=number, use type=tel instead.');\n return;\n }\n\n if (evt.target.type === 'date') {\n console.error('Rifm does not support input type=date.');\n return;\n }\n }\n\n const eventValue = evt.target.value;\n valueRef.current = [eventValue, // eventValue\n evt.target, // input\n eventValue.length > userValue.length, // isSizeIncreaseOperation\n isDeleleteButtonDownRef.current, // isDeleleteButtonDown\n userValue === props.format(eventValue) // isNoOperation\n ];\n\n if (process.env.NODE_ENV !== 'production') {\n const formattedEventValue = props.format(eventValue);\n\n if (eventValue !== formattedEventValue && eventValue.toLowerCase() === formattedEventValue.toLowerCase()) {\n console.warn('Case enforcement does not work with format. Please use replace={value => value.toLowerCase()} instead');\n }\n } // The main trick is to update underlying input with non formatted value (= eventValue)\n // that allows us to calculate right cursor position after formatting (see getCursorPosition)\n // then we format new value and call props.onChange with masked/formatted value\n // and finally we are able to set cursor position into right place\n\n\n refresh();\n }; // React prints warn on server in non production mode about useLayoutEffect usage\n // in both cases it's noop\n\n\n if (process.env.NODE_ENV === 'production' || typeof window !== 'undefined') {\n useLayoutEffect(() => {\n if (valueRef.current == null) return;\n let [eventValue, input, isSizeIncreaseOperation, isDeleleteButtonDown, // No operation means that value itself hasn't been changed, BTW cursor, selection etc can be changed\n isNoOperation] = valueRef.current;\n valueRef.current = null; // this usually occurs on deleting special symbols like ' here 123'123.00\n // in case of isDeleleteButtonDown cursor should move differently vs backspace\n\n const deleteWasNoOp = isDeleleteButtonDown && isNoOperation;\n const valueAfterSelectionStart = eventValue.slice(input.selectionStart);\n const acceptedCharIndexAfterDelete = valueAfterSelectionStart.search(props.accept || /\\d/g);\n const charsToSkipAfterDelete = acceptedCharIndexAfterDelete !== -1 ? acceptedCharIndexAfterDelete : 0; // Create string from only accepted symbols\n\n const clean = str => (str.match(props.accept || /\\d/g) || []).join('');\n\n const valueBeforeSelectionStart = clean(eventValue.substr(0, input.selectionStart)); // trying to find cursor position in formatted value having knowledge about valueBeforeSelectionStart\n // This works because we assume that format doesn't change the order of accepted symbols.\n // Imagine we have formatter which adds ' symbol between numbers, and by default we refuse all non numeric symbols\n // for example we had input = 1'2|'4 (| means cursor position) then user entered '3' symbol\n // inputValue = 1'23'|4 so valueBeforeSelectionStart = 123 and formatted value = 1'2'3'4\n // calling getCursorPosition(\"1'2'3'4\") will give us position after 3, 1'2'3|'4\n // so for formatting just this function to determine cursor position after formatting is enough\n // with masking we need to do some additional checks see `mask` below\n\n const getCursorPosition = val => {\n let start = 0;\n let cleanPos = 0;\n\n for (let i = 0; i !== valueBeforeSelectionStart.length; ++i) {\n let newPos = val.indexOf(valueBeforeSelectionStart[i], start) + 1;\n let newCleanPos = clean(val).indexOf(valueBeforeSelectionStart[i], cleanPos) + 1; // this skips position change if accepted symbols order was broken\n // For example fixes edge case with fixed point numbers:\n // You have '0|.00', then press 1, it becomes 01|.00 and after format 1.00, this breaks our assumption\n // that order of accepted symbols is not changed after format,\n // so here we don't update start position if other accepted symbols was inbetween current and new position\n\n if (newCleanPos - cleanPos > 1) {\n newPos = start;\n newCleanPos = cleanPos;\n }\n\n cleanPos = Math.max(newCleanPos, cleanPos);\n start = Math.max(start, newPos);\n }\n\n return start;\n }; // Masking part, for masks if size of mask is above some value\n // we need to replace symbols instead of do nothing as like in format\n\n\n if (props.mask === true && isSizeIncreaseOperation && !isNoOperation) {\n let start = getCursorPosition(eventValue);\n const c = clean(eventValue.substr(start))[0];\n start = eventValue.indexOf(c, start);\n eventValue = `${eventValue.substr(0, start)}${eventValue.substr(start + 1)}`;\n }\n\n let formattedValue = props.format(eventValue);\n\n if (append != null && // cursor at the end\n input.selectionStart === eventValue.length && !isNoOperation) {\n if (isSizeIncreaseOperation) {\n formattedValue = append(formattedValue);\n } else {\n // If after delete last char is special character and we use append\n // delete it too\n // was: \"12-3|\" backspace pressed, then should be \"12|\"\n if (clean(formattedValue.slice(-1)) === '') {\n formattedValue = formattedValue.slice(0, -1);\n }\n }\n }\n\n const replacedValue = replace ? replace(formattedValue) : formattedValue;\n\n if (userValue === replacedValue) {\n // if nothing changed for formatted value, just refresh so userValue will be used at render\n refresh();\n } else {\n props.onChange(replacedValue);\n }\n\n return () => {\n let start = getCursorPosition(formattedValue); // Visually improves working with masked values,\n // like cursor jumping over refused symbols\n // as an example date mask: was \"5|1-24-3\" then user pressed \"6\"\n // it becomes \"56-|12-43\" with this code, and \"56|-12-43\" without\n\n if (props.mask != null && (isSizeIncreaseOperation || isDeleleteButtonDown && !deleteWasNoOp)) {\n while (formattedValue[start] && clean(formattedValue[start]) === '') {\n start += 1;\n }\n }\n\n input.selectionStart = input.selectionEnd = start + (deleteWasNoOp ? 1 + charsToSkipAfterDelete : 0);\n };\n });\n }\n\n useEffect(() => {\n // until https://developer.mozilla.org/en-US/docs/Web/API/InputEvent/inputType will be supported\n // by all major browsers (now supported by: +chrome, +safari, ?edge, !firefox)\n // there is no way I found to distinguish in onChange\n // backspace or delete was called in some situations\n // firefox track https://bugzilla.mozilla.org/show_bug.cgi?id=1447239\n const handleKeyDown = evt => {\n if (evt.code === 'Delete') {\n isDeleleteButtonDownRef.current = true;\n }\n };\n\n const handleKeyUp = evt => {\n if (evt.code === 'Delete') {\n isDeleleteButtonDownRef.current = false;\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n document.addEventListener('keyup', handleKeyUp);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('keyup', handleKeyUp);\n };\n }, []);\n return {\n value: valueRef.current != null ? valueRef.current[0] : userValue,\n onChange\n };\n};\nconst Rifm = props => {\n const renderProps = useRifm(props);\n return props.children(renderProps);\n};\n\nexport { Rifm, useRifm };\n","export const getDisplayDate = (utils, rawValue, inputFormat) => {\n const date = utils.date(rawValue);\n const isEmpty = rawValue === null;\n\n if (isEmpty) {\n return '';\n }\n\n return utils.isValid(date) ? utils.formatByString( // TODO: should `isValid` narrow `TDate | null` to `NonNullable`?\n // Either we allow `TDate | null` to be valid and guard against calling `formatByString` with `null`.\n // Or we ensure `formatByString` is callable with `null`.\n date, inputFormat) : '';\n};\nconst MASK_USER_INPUT_SYMBOL = '_';\nconst staticDateWith2DigitTokens = '2019-11-21T22:30:00.000';\nconst staticDateWith1DigitTokens = '2019-01-01T09:00:00.000';\nexport function getMaskFromCurrentFormat(mask, format, acceptRegex, utils) {\n if (mask) {\n return mask;\n }\n\n const formattedDateWith1Digit = utils.formatByString(utils.date(staticDateWith1DigitTokens), format);\n const inferredFormatPatternWith1Digits = formattedDateWith1Digit.replace(acceptRegex, MASK_USER_INPUT_SYMBOL);\n const inferredFormatPatternWith2Digits = utils.formatByString(utils.date(staticDateWith2DigitTokens), format).replace(acceptRegex, '_');\n\n if (inferredFormatPatternWith1Digits === inferredFormatPatternWith2Digits) {\n return inferredFormatPatternWith1Digits;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.warn([`Mask does not support numbers with variable length such as 'M'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n }\n\n return '';\n}\nexport function checkMaskIsValidForCurrentFormat(mask, format, acceptRegex, utils) {\n if (!mask) {\n return false;\n }\n\n const formattedDateWith1Digit = utils.formatByString(utils.date(staticDateWith1DigitTokens), format);\n const inferredFormatPatternWith1Digits = formattedDateWith1Digit.replace(acceptRegex, MASK_USER_INPUT_SYMBOL);\n const inferredFormatPatternWith2Digits = utils.formatByString(utils.date(staticDateWith2DigitTokens), format).replace(acceptRegex, '_');\n const isMaskValid = inferredFormatPatternWith2Digits === inferredFormatPatternWith1Digits && mask === inferredFormatPatternWith2Digits;\n\n if (!isMaskValid && utils.lib !== 'luxon' && process.env.NODE_ENV !== 'production') {\n if (format.includes('MMM')) {\n console.warn([`Mask does not support literals such as 'MMM'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n } else if (inferredFormatPatternWith2Digits && inferredFormatPatternWith2Digits !== inferredFormatPatternWith1Digits) {\n console.warn([`Mask does not support numbers with variable length such as 'M'.`, `Either use numbers with fix length or disable mask feature with 'disableMaskedInput' prop`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n } else if (mask) {\n console.warn([`The mask \"${mask}\" you passed is not valid for the format used ${format}.`, `Falling down to uncontrolled no-mask input.`].join('\\n'));\n }\n }\n\n return isMaskValid;\n}\nexport const maskedDateFormatter = (mask, acceptRegexp) => value => {\n let outputCharIndex = 0;\n return value.split('').map((char, inputCharIndex) => {\n acceptRegexp.lastIndex = 0;\n\n if (outputCharIndex > mask.length - 1) {\n return '';\n }\n\n const maskChar = mask[outputCharIndex];\n const nextMaskChar = mask[outputCharIndex + 1];\n const acceptedChar = acceptRegexp.test(char) ? char : '';\n const formattedChar = maskChar === MASK_USER_INPUT_SYMBOL ? acceptedChar : maskChar + acceptedChar;\n outputCharIndex += formattedChar.length;\n const isLastCharacter = inputCharIndex === value.length - 1;\n\n if (isLastCharacter && nextMaskChar && nextMaskChar !== MASK_USER_INPUT_SYMBOL) {\n // when cursor at the end of mask part (e.g. month) prerender next symbol \"21\" -> \"21/\"\n return formattedChar ? formattedChar + nextMaskChar : '';\n }\n\n return formattedChar;\n }).join('');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useRifm } from 'rifm';\nimport { useUtils } from './useUtils';\nimport { maskedDateFormatter, getDisplayDate, checkMaskIsValidForCurrentFormat, getMaskFromCurrentFormat } from '../utils/text-field-helper';\nexport const useMaskedInput = ({\n acceptRegex = /[\\d]/gi,\n disabled,\n disableMaskedInput,\n ignoreInvalidInputs,\n inputFormat,\n inputProps,\n label,\n mask,\n onChange,\n rawValue,\n readOnly,\n rifmFormatter,\n TextFieldProps,\n validationError\n}) => {\n const utils = useUtils();\n const formatHelperText = utils.getFormatHelperText(inputFormat);\n const {\n shouldUseMaskedInput,\n maskToUse\n } = React.useMemo(() => {\n // formatting of dates is a quite slow thing, so do not make useless .format calls\n if (disableMaskedInput) {\n return {\n shouldUseMaskedInput: false,\n maskToUse: ''\n };\n }\n\n const computedMaskToUse = getMaskFromCurrentFormat(mask, inputFormat, acceptRegex, utils);\n return {\n shouldUseMaskedInput: checkMaskIsValidForCurrentFormat(computedMaskToUse, inputFormat, acceptRegex, utils),\n maskToUse: computedMaskToUse\n };\n }, [acceptRegex, disableMaskedInput, inputFormat, mask, utils]);\n const formatter = React.useMemo(() => shouldUseMaskedInput && maskToUse ? maskedDateFormatter(maskToUse, acceptRegex) : st => st, [acceptRegex, maskToUse, shouldUseMaskedInput]); // TODO: Implement with controlled vs uncontrolled `rawValue`\n\n const parsedValue = rawValue === null ? null : utils.date(rawValue); // Track the value of the input\n\n const [innerInputValue, setInnerInputValue] = React.useState(parsedValue); // control the input text\n\n const [innerDisplayedInputValue, setInnerDisplayedInputValue] = React.useState(getDisplayDate(utils, rawValue, inputFormat)); // Inspired from autocomplete: https://github.com/mui/material-ui/blob/2c89d036dc2e16f100528f161600dffc83241768/packages/mui-base/src/AutocompleteUnstyled/useAutocomplete.js#L185:L201\n\n const prevRawValue = React.useRef();\n React.useEffect(() => {\n const rawValueChange = rawValue !== prevRawValue.current;\n prevRawValue.current = rawValue;\n\n if (!rawValueChange) {\n return;\n }\n\n const newParsedValue = rawValue === null ? null : utils.date(rawValue);\n const isAcceptedValue = rawValue === null || utils.isValid(newParsedValue);\n\n if (!isAcceptedValue || utils.isEqual(innerInputValue, newParsedValue)) {\n return;\n } // When dev set a new valid value, we trust them\n\n\n const newDisplayDate = getDisplayDate(utils, rawValue, inputFormat);\n setInnerInputValue(newParsedValue);\n setInnerDisplayedInputValue(newDisplayDate);\n }, [utils, rawValue, inputFormat, innerInputValue]);\n\n const handleChange = text => {\n const finalString = text === '' || text === mask ? '' : text;\n setInnerDisplayedInputValue(finalString);\n const date = finalString === null ? null : utils.parse(finalString, inputFormat);\n\n if (ignoreInvalidInputs && !utils.isValid(date)) {\n return;\n }\n\n setInnerInputValue(date);\n onChange(date, finalString || undefined);\n };\n\n const rifmProps = useRifm({\n value: innerDisplayedInputValue,\n onChange: handleChange,\n format: rifmFormatter || formatter\n });\n const inputStateArgs = shouldUseMaskedInput ? rifmProps : {\n value: innerDisplayedInputValue,\n onChange: event => {\n handleChange(event.currentTarget.value);\n }\n };\n return _extends({\n label,\n disabled,\n error: validationError,\n inputProps: _extends({}, inputStateArgs, {\n disabled,\n placeholder: formatHelperText,\n readOnly,\n type: shouldUseMaskedInput ? 'tel' : 'text'\n }, inputProps)\n }, TextFieldProps);\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"components\", \"disableOpenPicker\", \"getOpenDialogAriaText\", \"InputAdornmentProps\", \"InputProps\", \"inputRef\", \"openPicker\", \"OpenPickerButtonProps\", \"renderInput\"];\nimport * as React from 'react';\nimport IconButton from '@mui/material/IconButton';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport { useLocaleText, useUtils } from '../hooks/useUtils';\nimport { Calendar } from './icons';\nimport { useMaskedInput } from '../hooks/useMaskedInput';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const KeyboardDateInput = /*#__PURE__*/React.forwardRef(function KeyboardDateInput(props, ref) {\n const {\n components = {},\n disableOpenPicker,\n getOpenDialogAriaText: getOpenDialogAriaTextProp,\n InputAdornmentProps,\n InputProps,\n inputRef,\n openPicker,\n OpenPickerButtonProps,\n renderInput\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const localeText = useLocaleText();\n const getOpenDialogAriaText = getOpenDialogAriaTextProp != null ? getOpenDialogAriaTextProp : localeText.openDatePickerDialogue;\n const utils = useUtils();\n const textFieldProps = useMaskedInput(other);\n const adornmentPosition = (InputAdornmentProps == null ? void 0 : InputAdornmentProps.position) || 'end';\n const OpenPickerIcon = components.OpenPickerIcon || Calendar;\n return renderInput(_extends({\n ref,\n inputRef\n }, textFieldProps, {\n InputProps: _extends({}, InputProps, {\n [`${adornmentPosition}Adornment`]: disableOpenPicker ? undefined : /*#__PURE__*/_jsx(InputAdornment, _extends({\n position: adornmentPosition\n }, InputAdornmentProps, {\n children: /*#__PURE__*/_jsx(IconButton, _extends({\n edge: adornmentPosition,\n disabled: other.disabled || other.readOnly,\n \"aria-label\": getOpenDialogAriaText(other.rawValue, utils)\n }, OpenPickerButtonProps, {\n onClick: openPicker,\n children: /*#__PURE__*/_jsx(OpenPickerIcon, {})\n }))\n }))\n })\n }));\n});","import * as React from 'react';\nimport { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { arrayIncludes } from '../utils/utils';\n\nfunction getOrientation() {\n if (typeof window === 'undefined') {\n return 'portrait';\n }\n\n if (window.screen && window.screen.orientation && window.screen.orientation.angle) {\n return Math.abs(window.screen.orientation.angle) === 90 ? 'landscape' : 'portrait';\n } // Support IOS safari\n\n\n if (window.orientation) {\n return Math.abs(Number(window.orientation)) === 90 ? 'landscape' : 'portrait';\n }\n\n return 'portrait';\n}\n\nexport const useIsLandscape = (views, customOrientation) => {\n const [orientation, setOrientation] = React.useState(getOrientation);\n useEnhancedEffect(() => {\n const eventHandler = () => {\n setOrientation(getOrientation());\n };\n\n window.addEventListener('orientationchange', eventHandler);\n return () => {\n window.removeEventListener('orientationchange', eventHandler);\n };\n }, []);\n\n if (arrayIncludes(views, ['hours', 'minutes', 'seconds'])) {\n // could not display 13:34:44 in landscape mode\n return false;\n }\n\n const orientationToUse = customOrientation || orientation;\n return orientationToUse === 'landscape';\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"className\", \"parsedValue\", \"DateInputProps\", \"isMobileKeyboardViewOpen\", \"onDateChange\", \"onViewChange\", \"openTo\", \"orientation\", \"showToolbar\", \"toggleMobileKeyboardView\", \"ToolbarComponent\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { useViews } from '../../hooks/useViews';\nimport { ClockPicker } from '../../../ClockPicker/ClockPicker';\nimport { CalendarPicker } from '../../../CalendarPicker/CalendarPicker';\nimport { KeyboardDateInput } from '../KeyboardDateInput';\nimport { useIsLandscape } from '../../hooks/useIsLandscape';\nimport { WrapperVariantContext } from '../wrappers/WrapperVariantContext';\nimport { PickerViewRoot } from '../PickerViewRoot';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const MobileKeyboardInputView = styled('div')({\n padding: '16px 24px'\n});\nconst PickerRoot = styled('div')(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column'\n}, ownerState.isLandscape && {\n flexDirection: 'row'\n}));\nconst MobileKeyboardTextFieldProps = {\n fullWidth: true\n};\n\nconst isDatePickerView = view => view === 'year' || view === 'month' || view === 'day';\n\nconst isTimePickerView = view => view === 'hours' || view === 'minutes' || view === 'seconds';\n\nexport function CalendarOrClockPicker(props) {\n const {\n autoFocus,\n parsedValue,\n DateInputProps,\n isMobileKeyboardViewOpen,\n onDateChange,\n onViewChange,\n openTo,\n orientation,\n showToolbar,\n toggleMobileKeyboardView,\n ToolbarComponent = () => null,\n toolbarFormat,\n toolbarPlaceholder,\n toolbarTitle,\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isLandscape = useIsLandscape(views, orientation);\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const toShowToolbar = showToolbar != null ? showToolbar : wrapperVariant !== 'desktop';\n const handleDateChange = React.useCallback((newDate, selectionState) => {\n onDateChange(newDate, wrapperVariant, selectionState);\n }, [onDateChange, wrapperVariant]);\n const handleViewChange = React.useCallback(newView => {\n if (isMobileKeyboardViewOpen) {\n toggleMobileKeyboardView();\n }\n\n if (onViewChange) {\n onViewChange(newView);\n }\n }, [isMobileKeyboardViewOpen, onViewChange, toggleMobileKeyboardView]);\n const {\n openView,\n setOpenView,\n handleChangeAndOpenNext\n } = useViews({\n view: undefined,\n views,\n openTo,\n onChange: handleDateChange,\n onViewChange: handleViewChange\n });\n return /*#__PURE__*/_jsxs(PickerRoot, {\n ownerState: {\n isLandscape\n },\n children: [toShowToolbar && /*#__PURE__*/_jsx(ToolbarComponent, _extends({}, other, {\n views: views,\n isLandscape: isLandscape,\n parsedValue: parsedValue,\n onChange: handleDateChange,\n setOpenView: setOpenView,\n openView: openView,\n toolbarTitle: toolbarTitle,\n toolbarFormat: toolbarFormat,\n toolbarPlaceholder: toolbarPlaceholder,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView\n })), /*#__PURE__*/_jsx(PickerViewRoot, {\n children: isMobileKeyboardViewOpen ? /*#__PURE__*/_jsx(MobileKeyboardInputView, {\n children: /*#__PURE__*/_jsx(KeyboardDateInput, _extends({}, DateInputProps, {\n ignoreInvalidInputs: true,\n disableOpenPicker: true,\n TextFieldProps: MobileKeyboardTextFieldProps\n }))\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [isDatePickerView(openView) && /*#__PURE__*/_jsx(CalendarPicker, _extends({\n autoFocus: autoFocus,\n date: parsedValue,\n onViewChange: setOpenView,\n onChange: handleChangeAndOpenNext,\n view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type\n ,\n views: views.filter(isDatePickerView)\n }, other)), isTimePickerView(openView) && /*#__PURE__*/_jsx(ClockPicker, _extends({}, other, {\n autoFocus: autoFocus,\n date: parsedValue,\n view: openView // Unclear why the predicate `isDatePickerView` does not imply the casted type\n ,\n views: views.filter(isTimePickerView),\n onChange: handleChangeAndOpenNext,\n onViewChange: setOpenView,\n showViewSwitcher: wrapperVariant === 'desktop'\n }))]\n })\n })]\n });\n}","import * as React from 'react';\nexport const useOpenState = ({\n open,\n onOpen,\n onClose\n}) => {\n const isControllingOpenProp = React.useRef(typeof open === 'boolean').current;\n const [openState, setIsOpenState] = React.useState(false); // It is required to update inner state in useEffect in order to avoid situation when\n // Our component is not mounted yet, but `open` state is set to `true` (e.g. initially opened)\n\n React.useEffect(() => {\n if (isControllingOpenProp) {\n if (typeof open !== 'boolean') {\n throw new Error('You must not mix controlling and uncontrolled mode for `open` prop');\n }\n\n setIsOpenState(open);\n }\n }, [isControllingOpenProp, open]);\n const setIsOpen = React.useCallback(newIsOpen => {\n if (!isControllingOpenProp) {\n setIsOpenState(newIsOpen);\n }\n\n if (newIsOpen && onOpen) {\n onOpen();\n }\n\n if (!newIsOpen && onClose) {\n onClose();\n }\n }, [isControllingOpenProp, onOpen, onClose]);\n return {\n isOpen: openState,\n setIsOpen\n };\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { useOpenState } from './useOpenState';\nimport { useUtils } from './useUtils';\nexport const usePickerState = (props, valueManager) => {\n const {\n onAccept,\n onChange,\n value,\n closeOnSelect\n } = props;\n const utils = useUtils();\n const {\n isOpen,\n setIsOpen\n } = useOpenState(props);\n const parsedDateValue = React.useMemo(() => valueManager.parseInput(utils, value), [valueManager, utils, value]);\n const [lastValidDateValue, setLastValidDateValue] = React.useState(parsedDateValue);\n const [dateState, setDateState] = React.useState(() => ({\n committed: parsedDateValue,\n draft: parsedDateValue,\n resetFallback: parsedDateValue\n }));\n const setDate = React.useCallback(params => {\n setDateState(prev => {\n switch (params.action) {\n case 'setAll':\n case 'acceptAndClose':\n {\n return {\n draft: params.value,\n committed: params.value,\n resetFallback: params.value\n };\n }\n\n case 'setCommitted':\n {\n return _extends({}, prev, {\n draft: params.value,\n committed: params.value\n });\n }\n\n case 'setDraft':\n {\n return _extends({}, prev, {\n draft: params.value\n });\n }\n\n default:\n {\n return prev;\n }\n }\n });\n\n if (!params.skipOnChangeCall && !valueManager.areValuesEqual(utils, dateState.committed, params.value)) {\n onChange(params.value);\n }\n\n if (params.action === 'acceptAndClose') {\n setIsOpen(false);\n\n if (onAccept && !valueManager.areValuesEqual(utils, dateState.resetFallback, params.value)) {\n onAccept(params.value);\n }\n }\n }, [onAccept, onChange, setIsOpen, dateState, utils, valueManager]);\n React.useEffect(() => {\n if (utils.isValid(parsedDateValue)) {\n setLastValidDateValue(parsedDateValue);\n }\n }, [utils, parsedDateValue]);\n React.useEffect(() => {\n if (isOpen) {\n // Update all dates in state to equal the current prop value\n setDate({\n action: 'setAll',\n value: parsedDateValue,\n skipOnChangeCall: true\n });\n }\n }, [isOpen]); // eslint-disable-line react-hooks/exhaustive-deps\n // Set the draft and committed date to equal the new prop value.\n\n if (!valueManager.areValuesEqual(utils, dateState.committed, parsedDateValue)) {\n setDate({\n action: 'setCommitted',\n value: parsedDateValue,\n skipOnChangeCall: true\n });\n }\n\n const wrapperProps = React.useMemo(() => ({\n open: isOpen,\n onClear: () => {\n // Reset all date in state to the empty value and close picker.\n setDate({\n value: valueManager.emptyValue,\n action: 'acceptAndClose'\n });\n },\n onAccept: () => {\n // Set all date in state to equal the current draft value and close picker.\n setDate({\n value: dateState.draft,\n action: 'acceptAndClose'\n });\n },\n onDismiss: () => {\n // Set all dates in state to equal the last committed date.\n // e.g. Reset the state to the last committed value.\n setDate({\n value: dateState.committed,\n action: 'acceptAndClose'\n });\n },\n onCancel: () => {\n // Set all dates in state to equal the last accepted date and close picker.\n // e.g. Reset the state to the last accepted value\n setDate({\n value: dateState.resetFallback,\n action: 'acceptAndClose'\n });\n },\n onSetToday: () => {\n // Set all dates in state to equal today and close picker.\n setDate({\n value: valueManager.getTodayValue(utils),\n action: 'acceptAndClose'\n });\n }\n }), [setDate, isOpen, utils, dateState, valueManager]); // Mobile keyboard view is a special case.\n // When it's open picker should work like closed, because we are just showing text field\n\n const [isMobileKeyboardViewOpen, setMobileKeyboardViewOpen] = React.useState(false);\n const pickerProps = React.useMemo(() => ({\n parsedValue: dateState.draft,\n isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: () => setMobileKeyboardViewOpen(!isMobileKeyboardViewOpen),\n onDateChange: (newDate, wrapperVariant, selectionState = 'partial') => {\n switch (selectionState) {\n case 'shallow':\n {\n // Update the `draft` state but do not fire `onChange`\n return setDate({\n action: 'setDraft',\n value: newDate,\n skipOnChangeCall: true\n });\n }\n\n case 'partial':\n {\n // Update the `draft` state and fire `onChange`\n return setDate({\n action: 'setDraft',\n value: newDate\n });\n }\n\n case 'finish':\n {\n if (closeOnSelect != null ? closeOnSelect : wrapperVariant === 'desktop') {\n // Set all dates in state to equal the new date and close picker.\n return setDate({\n value: newDate,\n action: 'acceptAndClose'\n });\n } // Updates the `committed` state and fire `onChange`\n\n\n return setDate({\n value: newDate,\n action: 'setCommitted'\n });\n }\n\n default:\n {\n throw new Error('MUI: Invalid selectionState passed to `onDateChange`');\n }\n }\n }\n }), [setDate, isMobileKeyboardViewOpen, dateState.draft, closeOnSelect]);\n const handleInputChange = React.useCallback((newParsedValue, keyboardInputValue) => {\n const cleanParsedValue = valueManager.valueReducer ? valueManager.valueReducer(utils, lastValidDateValue, newParsedValue) : newParsedValue;\n onChange(cleanParsedValue, keyboardInputValue);\n }, [onChange, valueManager, lastValidDateValue, utils]);\n const inputProps = React.useMemo(() => ({\n onChange: handleInputChange,\n open: isOpen,\n rawValue: value,\n openPicker: () => setIsOpen(true)\n }), [handleInputChange, isOpen, value, setIsOpen]);\n const pickerState = {\n pickerProps,\n inputProps,\n wrapperProps\n };\n React.useDebugValue(pickerState, () => ({\n MuiPickerState: {\n dateState,\n other: pickerState\n }\n }));\n return pickerState;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PopperProps\", \"PaperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { DesktopWrapper } from '../internals/components/wrappers/DesktopWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { KeyboardDateInput } from '../internals/components/KeyboardDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)\n */\nexport const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiDesktopDatePicker');\n const validationError = useDateValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager);\n\n const {\n PopperProps,\n PaperProps,\n ToolbarComponent = DatePickerToolbar,\n TransitionComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const AllDateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: AllDateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n TransitionComponent: TransitionComponent,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: AllDateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport DialogContent from '@mui/material/DialogContent';\nimport Dialog, { dialogClasses } from '@mui/material/Dialog';\nimport { styled } from '@mui/material/styles';\nimport { DIALOG_WIDTH } from '../constants/dimensions';\nimport { PickersActionBar } from '../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst PickersModalDialogRoot = styled(Dialog)({\n [`& .${dialogClasses.container}`]: {\n outline: 0\n },\n [`& .${dialogClasses.paper}`]: {\n outline: 0,\n minWidth: DIALOG_WIDTH\n }\n});\nconst PickersModalDialogContent = styled(DialogContent)({\n '&:first-of-type': {\n padding: 0\n }\n});\nexport const PickersModalDialog = props => {\n var _components$ActionBar;\n\n const {\n children,\n DialogProps = {},\n onAccept,\n onClear,\n onDismiss,\n onCancel,\n onSetToday,\n open,\n components,\n componentsProps\n } = props;\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsxs(PickersModalDialogRoot, _extends({\n open: open,\n onClose: onDismiss\n }, DialogProps, {\n children: [/*#__PURE__*/_jsx(PickersModalDialogContent, {\n children: children\n }), /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: ['cancel', 'accept']\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"DateInputProps\", \"DialogProps\", \"onAccept\", \"onClear\", \"onDismiss\", \"onCancel\", \"onSetToday\", \"open\", \"PureDateInputComponent\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport { WrapperVariantContext } from './WrapperVariantContext';\nimport { PickersModalDialog } from '../PickersModalDialog';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function MobileWrapper(props) {\n const {\n children,\n DateInputProps,\n DialogProps,\n onAccept,\n onClear,\n onDismiss,\n onCancel,\n onSetToday,\n open,\n PureDateInputComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsxs(WrapperVariantContext.Provider, {\n value: \"mobile\",\n children: [/*#__PURE__*/_jsx(PureDateInputComponent, _extends({\n components: components\n }, other, DateInputProps)), /*#__PURE__*/_jsx(PickersModalDialog, {\n DialogProps: DialogProps,\n onAccept: onAccept,\n onClear: onClear,\n onDismiss: onDismiss,\n onCancel: onCancel,\n onSetToday: onSetToday,\n open: open,\n components: components,\n componentsProps: componentsProps,\n children: children\n })]\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { onSpaceOrEnter } from '../utils/utils';\nimport { useLocaleText, useUtils } from '../hooks/useUtils';\nimport { getDisplayDate } from '../utils/text-field-helper';\n// TODO: why is this called \"Pure*\" when it's not memoized? Does \"Pure\" mean \"readonly\"?\nexport const PureDateInput = /*#__PURE__*/React.forwardRef(function PureDateInput(props, ref) {\n const {\n disabled,\n getOpenDialogAriaText: getOpenDialogAriaTextProp,\n inputFormat,\n InputProps,\n inputRef,\n label,\n openPicker: onOpen,\n rawValue,\n renderInput,\n TextFieldProps = {},\n validationError\n } = props;\n const localeText = useLocaleText(); // The prop can not be deprecated\n // Default is \"Choose date, ...\", but time pickers override it with \"Choose time, ...\"\n\n const getOpenDialogAriaText = getOpenDialogAriaTextProp != null ? getOpenDialogAriaTextProp : localeText.openDatePickerDialogue;\n const utils = useUtils();\n const PureDateInputProps = React.useMemo(() => _extends({}, InputProps, {\n readOnly: true\n }), [InputProps]);\n const inputValue = getDisplayDate(utils, rawValue, inputFormat);\n return renderInput(_extends({\n label,\n disabled,\n ref,\n inputRef,\n error: validationError,\n InputProps: PureDateInputProps,\n inputProps: _extends({\n disabled,\n readOnly: true,\n 'aria-readonly': true,\n 'aria-label': getOpenDialogAriaText(rawValue, utils),\n value: inputValue\n }, !props.readOnly && {\n onClick: onOpen\n }, {\n onKeyDown: onSpaceOrEnter(onOpen)\n })\n }, TextFieldProps));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { MobileWrapper } from '../internals/components/wrappers/MobileWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { PureDateInput } from '../internals/components/PureDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [MobileDatePicker API](https://mui.com/x/api/date-pickers/mobile-date-picker/)\n */\nexport const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiMobileDatePicker');\n const validationError = useDateValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = DatePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\", \"DialogProps\", \"PopperProps\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport PropTypes from 'prop-types';\nimport { DesktopDatePicker } from '../DesktopDatePicker';\nimport { MobileDatePicker } from '../MobileDatePicker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n * - [Pickers](https://mui.com/x/react-date-pickers/)\n *\n * API:\n *\n * - [DatePicker API](https://mui.com/x/api/date-pickers/date-picker/)\n */\nexport const DatePicker = /*#__PURE__*/React.forwardRef(function DatePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDatePicker'\n });\n\n const {\n desktopModeMediaQuery = '@media (pointer: fine)',\n DialogProps,\n PopperProps,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDesktop = useMediaQuery(desktopModeMediaQuery);\n\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDatePicker, _extends({\n ref: ref,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent\n }, other));\n }\n\n return /*#__PURE__*/_jsx(MobileDatePicker, _extends({\n ref: ref,\n DialogProps: DialogProps\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useThemeProps } from '@mui/material/styles';\nimport { useDefaultDates, useUtils } from '../internals/hooks/useUtils';\nimport { parsePickerInputValue } from '../internals/utils/date-utils';\nexport function useDateTimePickerDefaultizedProps(props, name) {\n var _themeProps$ampm, _ref, _themeProps$minDateTi, _ref2, _themeProps$maxDateTi, _themeProps$minDateTi2, _themeProps$maxDateTi2;\n\n // This is technically unsound if the type parameters appear in optional props.\n // Optional props can be filled by `useThemeProps` with types that don't match the type parameters.\n const themeProps = useThemeProps({\n props,\n name\n });\n const utils = useUtils();\n const defaultDates = useDefaultDates();\n const ampm = (_themeProps$ampm = themeProps.ampm) != null ? _themeProps$ampm : utils.is12HourCycleInCurrentLocale();\n\n if (themeProps.orientation != null && themeProps.orientation !== 'portrait') {\n throw new Error('We are not supporting custom orientation for DateTimePicker yet :(');\n }\n\n return _extends({\n ampm,\n orientation: 'portrait',\n openTo: 'day',\n views: ['year', 'day', 'hours', 'minutes'],\n ampmInClock: true,\n acceptRegex: ampm ? /[\\dap]/gi : /\\d/gi,\n disableMaskedInput: false,\n inputFormat: ampm ? utils.formats.keyboardDateTime12h : utils.formats.keyboardDateTime24h,\n disableIgnoringDatePartForTimeValidation: Boolean(themeProps.minDateTime || themeProps.maxDateTime)\n }, themeProps, {\n minDate: (_ref = (_themeProps$minDateTi = themeProps.minDateTime) != null ? _themeProps$minDateTi : themeProps.minDate) != null ? _ref : defaultDates.minDate,\n maxDate: (_ref2 = (_themeProps$maxDateTi = themeProps.maxDateTime) != null ? _themeProps$maxDateTi : themeProps.maxDate) != null ? _ref2 : defaultDates.maxDate,\n minTime: (_themeProps$minDateTi2 = themeProps.minDateTime) != null ? _themeProps$minDateTi2 : themeProps.minTime,\n maxTime: (_themeProps$maxDateTi2 = themeProps.maxDateTime) != null ? _themeProps$maxDateTi2 : themeProps.maxTime\n });\n}\nexport const dateTimePickerValueManager = {\n emptyValue: null,\n getTodayValue: utils => utils.date(),\n parseInput: parsePickerInputValue,\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b)\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"selected\", \"value\"];\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport Typography from '@mui/material/Typography';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst classes = generateUtilityClasses('PrivatePickersToolbarText', ['selected']);\nconst PickersToolbarTextRoot = styled(Typography)(({\n theme\n}) => ({\n transition: theme.transitions.create('color'),\n color: theme.palette.text.secondary,\n [`&.${classes.selected}`]: {\n color: theme.palette.text.primary\n }\n}));\nexport const PickersToolbarText = /*#__PURE__*/React.forwardRef(function PickersToolbarText(props, ref) {\n const {\n className,\n selected,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsx(PickersToolbarTextRoot, _extends({\n ref: ref,\n className: clsx(className, selected && classes.selected),\n component: \"span\"\n }, other, {\n children: value\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"align\", \"className\", \"selected\", \"typographyClassName\", \"value\", \"variant\"];\nimport * as React from 'react';\nimport Button from '@mui/material/Button';\nimport { styled } from '@mui/material/styles';\nimport { PickersToolbarText } from './PickersToolbarText';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst PickersToolbarButtonRoot = styled(Button)({\n padding: 0,\n minWidth: 16,\n textTransform: 'none'\n});\nexport const PickersToolbarButton = /*#__PURE__*/React.forwardRef(function PickersToolbarButton(props, ref) {\n const {\n align,\n className,\n selected,\n typographyClassName,\n value,\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n return /*#__PURE__*/_jsx(PickersToolbarButtonRoot, _extends({\n variant: \"text\",\n ref: ref,\n className: className\n }, other, {\n children: /*#__PURE__*/_jsx(PickersToolbarText, {\n align: align,\n className: typographyClassName,\n variant: variant,\n value: value,\n selected: selected\n })\n }));\n});","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport Tab from '@mui/material/Tab';\nimport Tabs, { tabsClasses } from '@mui/material/Tabs';\nimport { styled } from '@mui/material/styles';\nimport { Time, DateRange } from '../internals/components/icons';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { useLocaleText } from '../internals/hooks/useUtils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst viewToTab = openView => {\n if (['day', 'month', 'year'].includes(openView)) {\n return 'date';\n }\n\n return 'time';\n};\n\nconst tabToView = tab => {\n if (tab === 'date') {\n return 'day';\n }\n\n return 'hours';\n};\n\nconst DateTimePickerTabsRoot = styled(Tabs)(({\n ownerState,\n theme\n}) => _extends({\n boxShadow: `0 -1px 0 0 inset ${theme.palette.divider}`\n}, ownerState.wrapperVariant === 'desktop' && {\n order: 1,\n boxShadow: `0 1px 0 0 inset ${theme.palette.divider}`,\n [`& .${tabsClasses.indicator}`]: {\n bottom: 'auto',\n top: 0\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport const DateTimePickerTabs = props => {\n const {\n dateRangeIcon = /*#__PURE__*/_jsx(DateRange, {}),\n onChange,\n timeIcon = /*#__PURE__*/_jsx(Time, {}),\n view\n } = props;\n const localeText = useLocaleText();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n\n const ownerState = _extends({}, props, {\n wrapperVariant\n });\n\n const handleChange = (event, value) => {\n onChange(tabToView(value));\n };\n\n return /*#__PURE__*/_jsxs(DateTimePickerTabsRoot, {\n ownerState: ownerState,\n variant: \"fullWidth\",\n value: viewToTab(view),\n onChange: handleChange,\n children: [/*#__PURE__*/_jsx(Tab, {\n value: \"date\",\n \"aria-label\": localeText.dateTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: dateRangeIcon\n })\n }), /*#__PURE__*/_jsx(Tab, {\n value: \"time\",\n \"aria-label\": localeText.timeTableLabel,\n icon: /*#__PURE__*/_jsx(React.Fragment, {\n children: timeIcon\n })\n })]\n });\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ampm\", \"parsedValue\", \"dateRangeIcon\", \"hideTabs\", \"isMobileKeyboardViewOpen\", \"onChange\", \"openView\", \"setOpenView\", \"timeIcon\", \"toggleMobileKeyboardView\", \"toolbarFormat\", \"toolbarPlaceholder\", \"toolbarTitle\", \"views\"];\nimport * as React from 'react';\nimport { styled } from '@mui/material/styles';\nimport { generateUtilityClasses } from '@mui/material';\nimport { PickersToolbarText } from '../internals/components/PickersToolbarText';\nimport { PickersToolbar, pickersToolbarClasses } from '../internals/components/PickersToolbar';\nimport { PickersToolbarButton } from '../internals/components/PickersToolbarButton';\nimport { DateTimePickerTabs } from './DateTimePickerTabs';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { WrapperVariantContext } from '../internals/components/wrappers/WrapperVariantContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const dateTimePickerToolbarClasses = generateUtilityClasses('MuiDateTimePickerToolbar', ['root', 'dateContainer', 'timeContainer', 'separator']);\nconst DateTimePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n paddingLeft: 16,\n paddingRight: 16,\n justifyContent: 'space-around',\n [`& .${pickersToolbarClasses.penIconButton}`]: {\n position: 'absolute',\n top: 8,\n right: 8\n }\n});\nconst DateTimePickerToolbarDateContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'DateContainer',\n overridesResolver: (props, styles) => styles.dateContainer\n})({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-start'\n});\nconst DateTimePickerToolbarTimeContainer = styled('div', {\n name: 'MuiDateTimePickerToolbar',\n slot: 'TimeContainer',\n overridesResolver: (props, styles) => styles.timeContainer\n})({\n display: 'flex'\n});\nconst DateTimePickerToolbarSeparator = styled(PickersToolbarText, {\n name: 'MuiDateTimePickerToolbar',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})({\n margin: '0 4px 0 2px',\n cursor: 'default'\n});\n/**\n * @ignore - internal component.\n */\n\nexport const DateTimePickerToolbar = props => {\n const {\n ampm,\n parsedValue,\n dateRangeIcon,\n hideTabs,\n isMobileKeyboardViewOpen,\n openView,\n setOpenView,\n timeIcon,\n toggleMobileKeyboardView,\n toolbarFormat,\n toolbarPlaceholder = '––',\n toolbarTitle = 'Select date & time',\n views\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const wrapperVariant = React.useContext(WrapperVariantContext);\n const showTabs = wrapperVariant === 'desktop' ? true : !hideTabs && typeof window !== 'undefined' && window.innerHeight > 667;\n\n const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');\n\n const dateText = React.useMemo(() => {\n if (!parsedValue) {\n return toolbarPlaceholder;\n }\n\n if (toolbarFormat) {\n return utils.formatByString(parsedValue, toolbarFormat);\n }\n\n return utils.format(parsedValue, 'shortDate');\n }, [parsedValue, toolbarFormat, toolbarPlaceholder, utils]);\n const ownerState = props;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [wrapperVariant !== 'desktop' && /*#__PURE__*/_jsxs(DateTimePickerToolbarRoot, _extends({\n toolbarTitle: toolbarTitle,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n className: dateTimePickerToolbarClasses.root\n }, other, {\n isLandscape: false,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsxs(DateTimePickerToolbarDateContainer, {\n className: dateTimePickerToolbarClasses.dateContainer,\n ownerState: ownerState,\n children: [views.includes('year') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"subtitle1\",\n onClick: () => setOpenView('year'),\n selected: openView === 'year',\n value: parsedValue ? utils.format(parsedValue, 'year') : '–'\n }), views.includes('day') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h4\",\n onClick: () => setOpenView('day'),\n selected: openView === 'day',\n value: dateText\n })]\n }), /*#__PURE__*/_jsxs(DateTimePickerToolbarTimeContainer, {\n className: dateTimePickerToolbarClasses.timeContainer,\n ownerState: ownerState,\n children: [views.includes('hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('hours'),\n selected: openView === 'hours',\n value: parsedValue ? formatHours(parsedValue) : '--'\n }), views.includes('minutes') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: \"h3\",\n value: \":\",\n className: dateTimePickerToolbarClasses.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('minutes'),\n selected: openView === 'minutes',\n value: parsedValue ? utils.format(parsedValue, 'minutes') : '--'\n })]\n }), views.includes('seconds') && /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(DateTimePickerToolbarSeparator, {\n variant: \"h3\",\n value: \":\",\n className: dateTimePickerToolbarClasses.separator,\n ownerState: ownerState\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('seconds'),\n selected: openView === 'seconds',\n value: parsedValue ? utils.format(parsedValue, 'seconds') : '--'\n })]\n })]\n })]\n })), showTabs && /*#__PURE__*/_jsx(DateTimePickerTabs, {\n dateRangeIcon: dateRangeIcon,\n timeIcon: timeIcon,\n view: openView,\n onChange: setOpenView\n })]\n });\n};","import { createIsAfterIgnoreDatePart } from '../../utils/time-utils';\nimport { useValidation } from './useValidation';\nexport const validateTime = ({\n adapter,\n value,\n props\n}) => {\n const {\n minTime,\n maxTime,\n minutesStep,\n shouldDisableTime,\n disableIgnoringDatePartForTimeValidation\n } = props;\n const date = adapter.utils.date(value);\n const isAfter = createIsAfterIgnoreDatePart(disableIgnoringDatePartForTimeValidation, adapter.utils);\n\n if (value === null) {\n return null;\n }\n\n switch (true) {\n case !adapter.utils.isValid(value):\n return 'invalidDate';\n\n case Boolean(minTime && isAfter(minTime, date)):\n return 'minTime';\n\n case Boolean(maxTime && isAfter(date, maxTime)):\n return 'maxTime';\n\n case Boolean(shouldDisableTime && shouldDisableTime(adapter.utils.getHours(date), 'hours')):\n return 'shouldDisableTime-hours';\n\n case Boolean(shouldDisableTime && shouldDisableTime(adapter.utils.getMinutes(date), 'minutes')):\n return 'shouldDisableTime-minutes';\n\n case Boolean(shouldDisableTime && shouldDisableTime(adapter.utils.getSeconds(date), 'seconds')):\n return 'shouldDisableTime-seconds';\n\n case Boolean(minutesStep && adapter.utils.getMinutes(date) % minutesStep !== 0):\n return 'minutesStep';\n\n default:\n return null;\n }\n};\n\nconst isSameTimeError = (a, b) => a === b;\n\nexport const useTimeValidation = props => useValidation(props, validateTime, isSameTimeError);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"minDate\", \"maxDate\", \"disableFuture\", \"shouldDisableDate\", \"disablePast\"];\nimport { useValidation } from './useValidation';\nimport { validateDate } from './useDateValidation';\nimport { validateTime } from './useTimeValidation';\nexport const validateDateTime = ({\n props,\n value,\n adapter\n}) => {\n const {\n minDate,\n maxDate,\n disableFuture,\n shouldDisableDate,\n disablePast\n } = props,\n timeValidationProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n const dateValidationResult = validateDate({\n adapter,\n value,\n props: {\n minDate,\n maxDate,\n disableFuture,\n shouldDisableDate,\n disablePast\n }\n });\n\n if (dateValidationResult !== null) {\n return dateValidationResult;\n }\n\n return validateTime({\n adapter,\n value,\n props: timeValidationProps\n });\n};\n\nconst isSameDateTimeError = (a, b) => a === b;\n\nexport function useDateTimeValidation(props) {\n return useValidation(props, validateDateTime, isSameDateTimeError);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PaperProps\", \"PopperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDateTimePickerDefaultizedProps, dateTimePickerValueManager } from '../DateTimePicker/shared';\nimport { DateTimePickerToolbar } from '../DateTimePicker/DateTimePickerToolbar';\nimport { DesktopWrapper } from '../internals/components/wrappers/DesktopWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateTimeValidation } from '../internals/hooks/validation/useDateTimeValidation';\nimport { KeyboardDateInput } from '../internals/components/KeyboardDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n *\n * API:\n *\n * - [DesktopDateTimePicker API](https://mui.com/x/api/date-pickers/desktop-date-time-picker/)\n */\nexport const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTimePicker(inProps, ref) {\n const props = useDateTimePickerDefaultizedProps(inProps, 'MuiDesktopDateTimePicker');\n const validationError = useDateTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, dateTimePickerValueManager);\n\n const {\n PaperProps,\n PopperProps,\n ToolbarComponent = DateTimePickerToolbar,\n TransitionComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const AllDateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: AllDateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n TransitionComponent: TransitionComponent,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: AllDateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDateTimePickerDefaultizedProps, dateTimePickerValueManager } from '../DateTimePicker/shared';\nimport { DateTimePickerToolbar } from '../DateTimePicker/DateTimePickerToolbar';\nimport { MobileWrapper } from '../internals/components/wrappers/MobileWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateTimeValidation } from '../internals/hooks/validation/useDateTimeValidation';\nimport { PureDateInput } from '../internals/components/PureDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n *\n * API:\n *\n * - [MobileDateTimePicker API](https://mui.com/x/api/date-pickers/mobile-date-time-picker/)\n */\nexport const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTimePicker(inProps, ref) {\n const props = useDateTimePickerDefaultizedProps(inProps, 'MuiMobileDateTimePicker');\n const validationError = useDateTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, dateTimePickerValueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = DateTimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\", \"DialogProps\", \"PopperProps\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport { DesktopDateTimePicker } from '../DesktopDateTimePicker';\nimport { MobileDateTimePicker } from '../MobileDateTimePicker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n * - [Pickers](https://mui.com/x/react-date-pickers/)\n *\n * API:\n *\n * - [DateTimePicker API](https://mui.com/x/api/date-pickers/date-time-picker/)\n */\nconst DateTimePicker = /*#__PURE__*/React.forwardRef(function DateTimePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDateTimePicker'\n });\n\n const {\n desktopModeMediaQuery = '@media (pointer: fine)',\n DialogProps,\n PopperProps,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDesktop = useMediaQuery(desktopModeMediaQuery);\n\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopDateTimePicker, _extends({\n ref: ref,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent\n }, other));\n }\n\n return /*#__PURE__*/_jsx(MobileDateTimePicker, _extends({\n ref: ref,\n DialogProps: DialogProps\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;\nexport { DateTimePicker };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { useThemeProps } from '@mui/material/styles';\nimport { Clock } from '../internals/components/icons';\nimport { useLocaleText, useUtils } from '../internals/hooks/useUtils';\nimport { parsePickerInputValue } from '../internals/utils/date-utils';\nexport function useTimePickerDefaultizedProps(props, name) {\n var _themeProps$ampm;\n\n // This is technically unsound if the type parameters appear in optional props.\n // Optional props can be filled by `useThemeProps` with types that don't match the type parameters.\n const themeProps = useThemeProps({\n props,\n name\n });\n const utils = useUtils();\n const ampm = (_themeProps$ampm = themeProps.ampm) != null ? _themeProps$ampm : utils.is12HourCycleInCurrentLocale();\n const localeText = useLocaleText();\n const getOpenDialogAriaText = localeText.openTimePickerDialogue;\n return _extends({\n ampm,\n openTo: 'hours',\n views: ['hours', 'minutes'],\n acceptRegex: ampm ? /[\\dapAP]/gi : /\\d/gi,\n disableMaskedInput: false,\n getOpenDialogAriaText,\n inputFormat: ampm ? utils.formats.fullTime12h : utils.formats.fullTime24h\n }, themeProps, {\n components: _extends({\n OpenPickerIcon: Clock\n }, themeProps.components)\n });\n}\nexport const timePickerValueManager = {\n emptyValue: null,\n parseInput: parsePickerInputValue,\n getTodayValue: utils => utils.date(),\n areValuesEqual: (utils, a, b) => utils.isEqual(a, b),\n valueReducer: (utils, lastValidValue, newValue) => {\n if (!lastValidValue || !utils.isValid(newValue)) {\n return newValue;\n }\n\n return utils.mergeDateAndTime(lastValidValue, newValue);\n }\n};","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getTimePickerToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiTimePickerToolbar', slot);\n}\nexport const timePickerToolbarClasses = generateUtilityClasses('MuiTimePickerToolbar', ['root', 'separator', 'hourMinuteLabel', 'hourMinuteLabelLandscape', 'hourMinuteLabelReverse', 'ampmSelection', 'ampmLandscape', 'ampmLabel']);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"ampm\", \"ampmInClock\", \"parsedValue\", \"isLandscape\", \"isMobileKeyboardViewOpen\", \"onChange\", \"openView\", \"setOpenView\", \"toggleMobileKeyboardView\", \"toolbarTitle\", \"views\", \"disabled\", \"readOnly\"];\nimport * as React from 'react';\nimport { useTheme, styled } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { PickersToolbarText } from '../internals/components/PickersToolbarText';\nimport { PickersToolbarButton } from '../internals/components/PickersToolbarButton';\nimport { PickersToolbar, pickersToolbarClasses } from '../internals/components/PickersToolbar';\nimport { arrayIncludes } from '../internals/utils/utils';\nimport { useUtils } from '../internals/hooks/useUtils';\nimport { useMeridiemMode } from '../internals/hooks/date-helpers-hooks';\nimport { getTimePickerToolbarUtilityClass, timePickerToolbarClasses } from './timePickerToolbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n theme,\n isLandscape,\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n separator: ['separator'],\n hourMinuteLabel: ['hourMinuteLabel', isLandscape && 'hourMinuteLabelLandscape', theme.direction === 'rtl' && 'hourMinuteLabelReverse'],\n ampmSelection: ['ampmSelection', isLandscape && 'ampmLandscape'],\n ampmLabel: ['ampmLabel']\n };\n return composeClasses(slots, getTimePickerToolbarUtilityClass, classes);\n};\n\nconst TimePickerToolbarRoot = styled(PickersToolbar, {\n name: 'MuiTimePickerToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n [`& .${pickersToolbarClasses.penIconButtonLandscape}`]: {\n marginTop: 'auto'\n }\n});\nconst TimePickerToolbarSeparator = styled(PickersToolbarText, {\n name: 'MuiTimePickerToolbar',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})({\n outline: 0,\n margin: '0 4px 0 2px',\n cursor: 'default'\n});\nconst TimePickerToolbarHourMinuteLabel = styled('div', {\n name: 'MuiTimePickerToolbar',\n slot: 'HourMinuteLabel',\n overridesResolver: (props, styles) => styles.hourMinuteLabel\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n justifyContent: 'flex-end',\n alignItems: 'flex-end'\n}, ownerState.isLandscape && {\n marginTop: 'auto'\n}, theme.direction === 'rtl' && {\n flexDirection: 'row-reverse'\n}));\nconst TimePickerToolbarAmPmSelection = styled('div', {\n name: 'MuiTimePickerToolbar',\n slot: 'AmPmSelection',\n overridesResolver: (props, styles) => styles.ampmSelection\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n flexDirection: 'column',\n marginRight: 'auto',\n marginLeft: 12\n}, ownerState.isLandscape && {\n margin: '4px 0 auto',\n flexDirection: 'row',\n justifyContent: 'space-around',\n flexBasis: '100%'\n}, {\n [`& .${timePickerToolbarClasses.ampmLabel}`]: {\n fontSize: 17\n }\n}));\n/**\n * @ignore - internal component.\n */\n\nexport const TimePickerToolbar = props => {\n const {\n ampm,\n ampmInClock,\n parsedValue,\n isLandscape,\n isMobileKeyboardViewOpen,\n onChange,\n openView,\n setOpenView,\n toggleMobileKeyboardView,\n toolbarTitle = 'Select time',\n views,\n disabled,\n readOnly\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const utils = useUtils();\n const theme = useTheme();\n const showAmPmControl = Boolean(ampm && !ampmInClock);\n const {\n meridiemMode,\n handleMeridiemChange\n } = useMeridiemMode(parsedValue, ampm, onChange);\n\n const formatHours = time => ampm ? utils.format(time, 'hours12h') : utils.format(time, 'hours24h');\n\n const ownerState = props;\n const classes = useUtilityClasses(_extends({}, ownerState, {\n theme\n }));\n\n const separator = /*#__PURE__*/_jsx(TimePickerToolbarSeparator, {\n tabIndex: -1,\n value: \":\",\n variant: \"h3\",\n selected: false,\n className: classes.separator\n });\n\n return /*#__PURE__*/_jsxs(TimePickerToolbarRoot, _extends({\n viewType: \"clock\",\n landscapeDirection: \"row\",\n toolbarTitle: toolbarTitle,\n isLandscape: isLandscape,\n isMobileKeyboardViewOpen: isMobileKeyboardViewOpen,\n toggleMobileKeyboardView: toggleMobileKeyboardView,\n ownerState: ownerState,\n className: classes.root\n }, other, {\n children: [/*#__PURE__*/_jsxs(TimePickerToolbarHourMinuteLabel, {\n className: classes.hourMinuteLabel,\n ownerState: ownerState,\n children: [arrayIncludes(views, 'hours') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h3\",\n onClick: () => setOpenView('hours'),\n selected: openView === 'hours',\n value: parsedValue ? formatHours(parsedValue) : '--'\n }), arrayIncludes(views, ['hours', 'minutes']) && separator, arrayIncludes(views, 'minutes') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n tabIndex: -1,\n variant: \"h3\",\n onClick: () => setOpenView('minutes'),\n selected: openView === 'minutes',\n value: parsedValue ? utils.format(parsedValue, 'minutes') : '--'\n }), arrayIncludes(views, ['minutes', 'seconds']) && separator, arrayIncludes(views, 'seconds') && /*#__PURE__*/_jsx(PickersToolbarButton, {\n variant: \"h3\",\n onClick: () => setOpenView('seconds'),\n selected: openView === 'seconds',\n value: parsedValue ? utils.format(parsedValue, 'seconds') : '--'\n })]\n }), showAmPmControl && /*#__PURE__*/_jsxs(TimePickerToolbarAmPmSelection, {\n className: classes.ampmSelection,\n ownerState: ownerState,\n children: [/*#__PURE__*/_jsx(PickersToolbarButton, {\n disableRipple: true,\n variant: \"subtitle2\",\n selected: meridiemMode === 'am',\n typographyClassName: classes.ampmLabel,\n value: utils.getMeridiemText('am'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('am'),\n disabled: disabled\n }), /*#__PURE__*/_jsx(PickersToolbarButton, {\n disableRipple: true,\n variant: \"subtitle2\",\n selected: meridiemMode === 'pm',\n typographyClassName: classes.ampmLabel,\n value: utils.getMeridiemText('pm'),\n onClick: readOnly ? undefined : () => handleMeridiemChange('pm'),\n disabled: disabled\n })]\n })]\n }));\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"onChange\", \"PaperProps\", \"PopperProps\", \"ToolbarComponent\", \"TransitionComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps, timePickerValueManager } from '../TimePicker/shared';\nimport { TimePickerToolbar } from '../TimePicker/TimePickerToolbar';\nimport { DesktopWrapper } from '../internals/components/wrappers/DesktopWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useTimeValidation } from '../internals/hooks/validation/useTimeValidation';\nimport { KeyboardDateInput } from '../internals/components/KeyboardDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [DesktopTimePicker API](https://mui.com/x/api/date-pickers/desktop-time-picker/)\n */\nexport const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker(inProps, ref) {\n const props = useTimePickerDefaultizedProps(inProps, 'MuiDesktopTimePicker');\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, timePickerValueManager);\n\n const {\n PaperProps,\n PopperProps,\n ToolbarComponent = TimePickerToolbar,\n TransitionComponent,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(DesktopWrapper, _extends({}, wrapperProps, {\n DateInputProps: DateInputProps,\n KeyboardDateInputComponent: KeyboardDateInput,\n PopperProps: PopperProps,\n PaperProps: PaperProps,\n TransitionComponent: TransitionComponent,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? DesktopTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps, timePickerValueManager } from '../TimePicker/shared';\nimport { TimePickerToolbar } from '../TimePicker/TimePickerToolbar';\nimport { MobileWrapper } from '../internals/components/wrappers/MobileWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useTimeValidation } from '../internals/hooks/validation/useTimeValidation';\nimport { PureDateInput } from '../internals/components/PureDateInput';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [MobileTimePicker API](https://mui.com/x/api/date-pickers/mobile-time-picker/)\n */\nexport const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(inProps, ref) {\n const props = useTimePickerDefaultizedProps(inProps, 'MuiMobileTimePicker');\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, timePickerValueManager); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = TimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const DateInputProps = _extends({}, inputProps, other, {\n components,\n componentsProps,\n ref,\n validationError\n });\n\n return /*#__PURE__*/_jsx(MobileWrapper, _extends({}, other, wrapperProps, {\n DateInputProps: DateInputProps,\n PureDateInputComponent: PureDateInput,\n components: components,\n componentsProps: componentsProps,\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n autoFocus: true,\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? MobileTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import { generateUtilityClass, generateUtilityClasses } from '@mui/material';\nexport function getStaticWrapperUtilityClass(slot) {\n return generateUtilityClass('MuiPickerStaticWrapper', slot);\n}\nexport const pickerStaticWrapperClasses = generateUtilityClasses('MuiPickerStaticWrapper', ['root', 'content']);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"displayStaticWrapperAs\", \"onAccept\", \"onClear\", \"onCancel\", \"onDismiss\", \"onSetToday\", \"open\", \"children\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/material';\nimport { DIALOG_WIDTH } from '../../constants/dimensions';\nimport { WrapperVariantContext } from '../wrappers/WrapperVariantContext';\nimport { getStaticWrapperUtilityClass } from './pickerStaticWrapperClasses';\nimport { PickersActionBar } from '../../../PickersActionBar';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n content: ['content']\n };\n return composeClasses(slots, getStaticWrapperUtilityClass, classes);\n};\n\nconst PickerStaticWrapperRoot = styled('div', {\n name: 'MuiPickerStaticWrapper',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'flex',\n flexDirection: 'column'\n});\nconst PickerStaticWrapperContent = styled('div', {\n name: 'MuiPickerStaticWrapper',\n slot: 'Content',\n overridesResolver: (props, styles) => styles.content\n})(({\n theme\n}) => ({\n overflow: 'hidden',\n minWidth: DIALOG_WIDTH,\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: theme.palette.background.paper\n}));\n\nfunction PickerStaticWrapper(inProps) {\n var _components$ActionBar;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiPickerStaticWrapper'\n });\n\n const {\n displayStaticWrapperAs,\n onAccept,\n onClear,\n onCancel,\n onSetToday,\n children,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const classes = useUtilityClasses(props);\n const ActionBar = (_components$ActionBar = components == null ? void 0 : components.ActionBar) != null ? _components$ActionBar : PickersActionBar;\n return /*#__PURE__*/_jsx(WrapperVariantContext.Provider, {\n value: displayStaticWrapperAs,\n children: /*#__PURE__*/_jsxs(PickerStaticWrapperRoot, _extends({\n className: classes.root\n }, other, {\n children: [/*#__PURE__*/_jsx(PickerStaticWrapperContent, {\n className: classes.content,\n children: children\n }), /*#__PURE__*/_jsx(ActionBar, _extends({\n onAccept: onAccept,\n onClear: onClear,\n onCancel: onCancel,\n onSetToday: onSetToday,\n actions: displayStaticWrapperAs === 'desktop' ? [] : ['cancel', 'accept']\n }, componentsProps == null ? void 0 : componentsProps.actionBar))]\n }))\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? PickerStaticWrapper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']).isRequired,\n onAccept: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n onClear: PropTypes.func.isRequired,\n onDismiss: PropTypes.func.isRequired,\n onSetToday: PropTypes.func.isRequired,\n open: PropTypes.bool.isRequired\n} : void 0;\nexport { PickerStaticWrapper };","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"ToolbarComponent\", \"value\", \"onChange\", \"displayStaticWrapperAs\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDatePickerDefaultizedProps, datePickerValueManager } from '../DatePicker/shared';\nimport { DatePickerToolbar } from '../DatePicker/DatePickerToolbar';\nimport { PickerStaticWrapper } from '../internals/components/PickerStaticWrapper/PickerStaticWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateValidation } from '../internals/hooks/validation/useDateValidation';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Picker](https://mui.com/x/react-date-pickers/date-picker/)\n *\n * API:\n *\n * - [StaticDatePicker API](https://mui.com/x/api/date-pickers/static-date-picker/)\n */\nexport const StaticDatePicker = /*#__PURE__*/React.forwardRef(function StaticDatePicker(inProps, ref) {\n const props = useDatePickerDefaultizedProps(inProps, 'MuiStaticDatePicker'); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n ToolbarComponent = DatePickerToolbar,\n displayStaticWrapperAs = 'mobile',\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, datePickerValueManager);\n const validationError = useDateValidation(props) !== null;\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError,\n components\n });\n\n return /*#__PURE__*/_jsx(PickerStaticWrapper, _extends({\n displayStaticWrapperAs: displayStaticWrapperAs,\n components: components,\n componentsProps: componentsProps\n }, wrapperProps, {\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StaticDatePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n autoFocus: PropTypes.bool,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n * @default 'mobile'\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']),\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'month', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DatePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"displayStaticWrapperAs\", \"onChange\", \"ToolbarComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useDateTimePickerDefaultizedProps, dateTimePickerValueManager } from '../DateTimePicker/shared';\nimport { DateTimePickerToolbar } from '../DateTimePicker/DateTimePickerToolbar';\nimport { PickerStaticWrapper } from '../internals/components/PickerStaticWrapper/PickerStaticWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useDateTimeValidation } from '../internals/hooks/validation/useDateTimeValidation';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Date Time Picker](https://mui.com/x/react-date-pickers/date-time-picker/)\n *\n * API:\n *\n * - [StaticDateTimePicker API](https://mui.com/x/api/date-pickers/static-date-time-picker/)\n */\nexport const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTimePicker(inProps, ref) {\n const props = useDateTimePickerDefaultizedProps(inProps, 'MuiStaticDateTimePicker'); // Note that we are passing down all the value without spread.\n // It saves us >1kb gzip and make any prop available automatically on any level down.\n\n const {\n displayStaticWrapperAs = 'mobile',\n ToolbarComponent = DateTimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, dateTimePickerValueManager);\n const validationError = useDateTimeValidation(props) !== null;\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError,\n components,\n componentsProps\n });\n\n return /*#__PURE__*/_jsx(PickerStaticWrapper, _extends({\n displayStaticWrapperAs: displayStaticWrapperAs,\n components: components,\n componentsProps: componentsProps\n }, wrapperProps, {\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StaticDateTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n autoFocus: PropTypes.bool,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * Date tab icon.\n */\n dateRangeIcon: PropTypes.node,\n\n /**\n * Default calendar month displayed when `value={null}`.\n */\n defaultCalendarMonth: PropTypes.any,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true` future days are disabled.\n * @default false\n */\n disableFuture: PropTypes.bool,\n\n /**\n * If `true`, today's date is rendering without highlighting with circle.\n * @default false\n */\n disableHighlightToday: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * If `true` past days are disabled.\n * @default false\n */\n disablePast: PropTypes.bool,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n * @default 'mobile'\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']),\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n\n /**\n * Get aria-label text for switching between views button.\n * @param {CalendarPickerView} currentView The view from which we want to get the button text.\n * @returns {string} The label of the view.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n */\n getViewSwitchingButtonText: PropTypes.func,\n\n /**\n * To show tabs.\n */\n hideTabs: PropTypes.bool,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Left arrow icon aria-label text.\n * @deprecated\n */\n leftArrowButtonText: PropTypes.string,\n\n /**\n * If `true` renders `LoadingComponent` in calendar instead of calendar view.\n * Can be used to preload information and show it in calendar.\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Maximal selectable date. @DateIOType\n */\n maxDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set max time in each day use `maxTime`.\n */\n maxDateTime: PropTypes.any,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Minimal selectable date. @DateIOType\n */\n minDate: PropTypes.any,\n\n /**\n * Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.\n */\n minDateTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback firing on month change @DateIOType.\n * @template TDate\n * @param {TDate} month The new month.\n * @returns {void|Promise} -\n */\n onMonthChange: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {CalendarOrClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Callback firing on year change @DateIOType.\n * @template TDate\n * @param {TDate} year The new year.\n */\n onYearChange: PropTypes.func,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Disable heavy animations.\n * @default typeof navigator !== 'undefined' && /(android)/i.test(navigator.userAgent)\n */\n reduceAnimations: PropTypes.bool,\n\n /**\n * Custom renderer for day. Check the [PickersDay](https://mui.com/x/api/date-pickers/pickers-day/) component.\n * @template TDate\n * @param {TDate} day The day to render.\n * @param {Array} selectedDays The days currently selected.\n * @param {PickersDayProps} pickersDayProps The props of the day to render.\n * @returns {JSX.Element} The element representing the day.\n */\n renderDay: PropTypes.func,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Component displaying when passed `loading` true.\n * @returns {React.ReactNode} The node to render when loading.\n * @default () => ...\n */\n renderLoading: PropTypes.func,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Right arrow icon aria-label text.\n * @deprecated\n */\n rightArrowButtonText: PropTypes.string,\n\n /**\n * Disable specific date. @DateIOType\n * @template TDate\n * @param {TDate} day The date to test.\n * @returns {boolean} Returns `true` if the date should be disabled.\n */\n shouldDisableDate: PropTypes.func,\n\n /**\n * Disable specific months dynamically.\n * Works like `shouldDisableDate` but for month selection view @DateIOType.\n * @template TDate\n * @param {TDate} month The month to check.\n * @returns {boolean} If `true` the month will be disabled.\n */\n shouldDisableMonth: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * Disable specific years dynamically.\n * Works like `shouldDisableDate` but for year selection view @DateIOType.\n * @template TDate\n * @param {TDate} year The year to test.\n * @returns {boolean} Returns `true` if the year should be disabled.\n */\n shouldDisableYear: PropTypes.func,\n\n /**\n * If `true`, days that have `outsideCurrentMonth={true}` are displayed.\n * @default false\n */\n showDaysOutsideCurrentMonth: PropTypes.bool,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Time tab icon.\n */\n timeIcon: PropTypes.node,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default DateTimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Date format, that is displaying in toolbar.\n */\n toolbarFormat: PropTypes.string,\n\n /**\n * Mobile picker date value placeholder, displaying if `value` === `null`.\n * @default '–'\n */\n toolbarPlaceholder: PropTypes.node,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select date & time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'hours', 'minutes', 'month', 'seconds', 'year']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"displayStaticWrapperAs\", \"onChange\", \"ToolbarComponent\", \"value\", \"components\", \"componentsProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useTimePickerDefaultizedProps, timePickerValueManager } from '../TimePicker/shared';\nimport { TimePickerToolbar } from '../TimePicker/TimePickerToolbar';\nimport { PickerStaticWrapper } from '../internals/components/PickerStaticWrapper/PickerStaticWrapper';\nimport { CalendarOrClockPicker } from '../internals/components/CalendarOrClockPicker';\nimport { useTimeValidation } from '../internals/hooks/validation/useTimeValidation';\nimport { usePickerState } from '../internals/hooks/usePickerState';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [StaticTimePicker API](https://mui.com/x/api/date-pickers/static-time-picker/)\n */\nexport const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker(inProps, ref) {\n const props = useTimePickerDefaultizedProps(inProps, 'MuiStaticTimePicker');\n\n const {\n displayStaticWrapperAs = 'mobile',\n ToolbarComponent = TimePickerToolbar,\n components,\n componentsProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const validationError = useTimeValidation(props) !== null;\n const {\n pickerProps,\n inputProps,\n wrapperProps\n } = usePickerState(props, timePickerValueManager);\n\n const DateInputProps = _extends({}, inputProps, other, {\n ref,\n validationError,\n components,\n componentsProps\n });\n\n return /*#__PURE__*/_jsx(PickerStaticWrapper, _extends({\n displayStaticWrapperAs: displayStaticWrapperAs,\n components: components,\n componentsProps: componentsProps\n }, wrapperProps, {\n children: /*#__PURE__*/_jsx(CalendarOrClockPicker, _extends({}, pickerProps, {\n toolbarTitle: props.label || props.toolbarTitle,\n ToolbarComponent: ToolbarComponent,\n DateInputProps: DateInputProps,\n components: components,\n componentsProps: componentsProps\n }, other))\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? StaticTimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n */\n components: PropTypes.any,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Force static wrapper inner components to be rendered in mobile or desktop mode.\n * @default 'mobile'\n */\n displayStaticWrapperAs: PropTypes.oneOf(['desktop', 'mobile']),\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"desktopModeMediaQuery\", \"DialogProps\", \"PopperProps\", \"TransitionComponent\"];\nimport * as React from 'react';\nimport { useThemeProps } from '@mui/material/styles';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport PropTypes from 'prop-types';\nimport { DesktopTimePicker } from '../DesktopTimePicker';\nimport { MobileTimePicker } from '../MobileTimePicker';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\n/**\n *\n * Demos:\n *\n * - [Pickers](https://mui.com/x/react-date-pickers/)\n * - [Time Picker](https://mui.com/x/react-date-pickers/time-picker/)\n *\n * API:\n *\n * - [TimePicker API](https://mui.com/x/api/date-pickers/time-picker/)\n */\nexport const TimePicker = /*#__PURE__*/React.forwardRef(function TimePicker(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTimePicker'\n });\n\n const {\n desktopModeMediaQuery = '@media (pointer: fine)',\n DialogProps,\n PopperProps,\n TransitionComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const isDesktop = useMediaQuery(desktopModeMediaQuery);\n\n if (isDesktop) {\n return /*#__PURE__*/_jsx(DesktopTimePicker, _extends({\n ref: ref,\n PopperProps: PopperProps,\n TransitionComponent: TransitionComponent\n }, other));\n }\n\n return /*#__PURE__*/_jsx(MobileTimePicker, _extends({\n ref: ref,\n DialogProps: DialogProps\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TimePicker.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Regular expression to detect \"accepted\" symbols.\n * @default /\\dap/gi\n */\n acceptRegex: PropTypes.instanceOf(RegExp),\n\n /**\n * 12h/24h view for hour selection clock.\n * @default `utils.is12HourCycleInCurrentLocale()`\n */\n ampm: PropTypes.bool,\n\n /**\n * Display ampm controls under the clock (instead of in the toolbar).\n * @default false\n */\n ampmInClock: PropTypes.bool,\n children: PropTypes.node,\n\n /**\n * className applied to the root component.\n */\n className: PropTypes.string,\n\n /**\n * If `true` the popup or dialog will immediately close after submitting full date.\n * @default `true` for Desktop, `false` for Mobile (based on the chosen wrapper and `desktopModeMediaQuery` prop).\n */\n closeOnSelect: PropTypes.bool,\n\n /**\n * Overrideable components.\n * @default {}\n */\n components: PropTypes.object,\n\n /**\n * The props used for each component slot.\n * @default {}\n */\n componentsProps: PropTypes.object,\n\n /**\n * CSS media query when `Mobile` mode will be changed to `Desktop`.\n * @default '@media (pointer: fine)'\n * @example '@media (min-width: 720px)' or theme.breakpoints.up(\"sm\")\n */\n desktopModeMediaQuery: PropTypes.string,\n\n /**\n * Props applied to the [`Dialog`](https://mui.com/material-ui/api/dialog/) element.\n */\n DialogProps: PropTypes.object,\n\n /**\n * If `true`, the picker and text field are disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * Do not ignore date part when validating min/max time.\n * @default false\n */\n disableIgnoringDatePartForTimeValidation: PropTypes.bool,\n\n /**\n * Disable mask on the keyboard, this should be used rarely. Consider passing proper mask for your format.\n * @default false\n */\n disableMaskedInput: PropTypes.bool,\n\n /**\n * Do not render open picker button (renders only text field with validation).\n * @default false\n */\n disableOpenPicker: PropTypes.bool,\n\n /**\n * Accessible text that helps user to understand which time and view is selected.\n * @template TDate\n * @param {ClockPickerView} view The current view rendered.\n * @param {TDate | null} time The current time.\n * @param {MuiPickersAdapter} adapter The current date adapter.\n * @returns {string} The clock label.\n * @deprecated Use the `localeText` prop of `LocalizationProvider` instead, see https://mui.com/x/react-date-pickers/localization\n * @default (\n * view: ClockView,\n * time: TDate | null,\n * adapter: MuiPickersAdapter,\n * ) =>\n * `Select ${view}. ${\n * time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`\n * }`\n */\n getClockLabelText: PropTypes.func,\n\n /**\n * Get aria-label text for control that opens picker dialog. Aria-label text must include selected date. @DateIOType\n * @template TInputDate, TDate\n * @param {TInputDate} date The date from which we want to add an aria-text.\n * @param {MuiPickersAdapter} utils The utils to manipulate the date.\n * @returns {string} The aria-text to render inside the dialog.\n * @default (date, utils) => `Choose date, selected date is ${utils.format(utils.date(date), 'fullDate')}`\n */\n getOpenDialogAriaText: PropTypes.func,\n ignoreInvalidInputs: PropTypes.bool,\n\n /**\n * Props to pass to keyboard input adornment.\n */\n InputAdornmentProps: PropTypes.object,\n\n /**\n * Format string.\n */\n inputFormat: PropTypes.string,\n InputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n current: PropTypes.object\n })]),\n label: PropTypes.node,\n\n /**\n * Custom mask. Can be used to override generate from format. (e.g. `__/__/____ __:__` or `__/__/____ __:__ _M`).\n */\n mask: PropTypes.string,\n\n /**\n * Max time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n maxTime: PropTypes.any,\n\n /**\n * Min time acceptable time.\n * For input validation date part of passed object will be ignored if `disableIgnoringDatePartForTimeValidation` not specified.\n */\n minTime: PropTypes.any,\n\n /**\n * Step over minutes.\n * @default 1\n */\n minutesStep: PropTypes.number,\n\n /**\n * Callback fired when date is accepted @DateIOType.\n * @template TValue\n * @param {TValue} value The value that was just accepted.\n */\n onAccept: PropTypes.func,\n\n /**\n * Callback fired when the value (the selected date) changes @DateIOType.\n * @template TValue\n * @param {TValue} value The new parsed value.\n * @param {string} keyboardInputValue The current value of the keyboard input.\n */\n onChange: PropTypes.func.isRequired,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n */\n onClose: PropTypes.func,\n\n /**\n * Callback that fired when input value or new `value` prop validation returns **new** validation error (or value is valid after error).\n * In case of validation error detected `reason` prop return non-null value and `TextField` must be displayed in `error` state.\n * This can be used to render appropriate form error.\n *\n * [Read the guide](https://next.material-ui-pickers.dev/guides/forms) about form integration and error displaying.\n * @DateIOType\n *\n * @template TError, TInputValue\n * @param {TError} reason The reason why the current value is not valid.\n * @param {TInputValue} value The invalid value.\n */\n onError: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n */\n onOpen: PropTypes.func,\n\n /**\n * Callback fired on view change.\n * @param {ClockPickerView} view The new view.\n */\n onViewChange: PropTypes.func,\n\n /**\n * Control the popup or dialog open state.\n */\n open: PropTypes.bool,\n\n /**\n * Props to pass to keyboard adornment button.\n */\n OpenPickerButtonProps: PropTypes.object,\n\n /**\n * First view to show.\n */\n openTo: PropTypes.oneOf(['hours', 'minutes', 'seconds']),\n\n /**\n * Force rendering in particular orientation.\n */\n orientation: PropTypes.oneOf(['landscape', 'portrait']),\n\n /**\n * Paper props passed down to [Paper](https://mui.com/material-ui/api/paper/) component.\n */\n PaperProps: PropTypes.object,\n\n /**\n * Popper props passed down to [Popper](https://mui.com/material-ui/api/popper/) component.\n */\n PopperProps: PropTypes.object,\n\n /**\n * Make picker read only.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * The `renderInput` prop allows you to customize the rendered input.\n * The `props` argument of this render prop contains props of [TextField](https://mui.com/material-ui/api/text-field/#props) that you need to forward.\n * Pay specific attention to the `ref` and `inputProps` keys.\n * @example ```jsx\n * renderInput={props => }\n * ````\n * @param {MuiTextFieldPropsType} props The props of the input.\n * @returns {React.ReactNode} The node to render as the input.\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Custom formatter to be passed into Rifm component.\n * @param {string} str The un-formatted string.\n * @returns {string} The formatted string.\n */\n rifmFormatter: PropTypes.func,\n\n /**\n * Dynamically check if time is disabled or not.\n * If returns `false` appropriate time point will ot be acceptable.\n * @param {number} timeValue The value to check.\n * @param {ClockPickerView} clockType The clock type of the timeValue.\n * @returns {boolean} Returns `true` if the time should be disabled\n */\n shouldDisableTime: PropTypes.func,\n\n /**\n * If `true`, show the toolbar even in desktop mode.\n */\n showToolbar: PropTypes.bool,\n\n /**\n * Component that will replace default toolbar renderer.\n * @default TimePickerToolbar\n */\n ToolbarComponent: PropTypes.elementType,\n\n /**\n * Mobile picker title, displaying in the toolbar.\n * @default 'Select time'\n */\n toolbarTitle: PropTypes.node,\n\n /**\n * Custom component for popper [Transition](https://mui.com/material-ui/transitions/#transitioncomponent-prop).\n */\n TransitionComponent: PropTypes.elementType,\n\n /**\n * The value of the picker.\n */\n value: PropTypes.any,\n\n /**\n * Array of views to show.\n */\n views: PropTypes.arrayOf(PropTypes.oneOf(['hours', 'minutes', 'seconds']).isRequired)\n} : void 0;","import { getPickersLocalization } from './utils/getPickersLocalization';\nconst nlNLPickers = {\n // Calendar navigation\n previousMonth: 'Vorige maand',\n nextMonth: 'Volgende maand',\n // View navigation\n openPreviousView: 'open vorige view',\n openNextView: 'open volgende view',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'jaarweergave is geopend, schakel over naar kalenderweergave' : 'kalenderweergave is geopend, switch naar jaarweergave',\n // DateRange placeholders\n start: 'Start',\n end: 'Einde',\n // Action bar\n cancelButtonLabel: 'Annuleren',\n clearButtonLabel: 'Resetten',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Vandaag',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Selecteer ${view}. ${time === null ? 'Geen tijd geselecteerd' : `Geselecteerde tijd is ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} uren`,\n minutesClockNumberText: minutes => `${minutes} minuten`,\n secondsClockNumberText: seconds => `${seconds} seconden`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Kies datum, geselecteerde datum is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Kies datum',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Kies tijd, geselecteerde tijd is ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Kies tijd',\n // Table labels\n timeTableLabel: 'kies tijd',\n dateTableLabel: 'kies datum'\n};\nexport const nlNL = getPickersLocalization(nlNLPickers);","import { getPickersLocalization } from './utils/getPickersLocalization';\nconst ptBRPickers = {\n // Calendar navigation\n previousMonth: 'Mês anterior',\n nextMonth: 'Próximo mês',\n // View navigation\n openPreviousView: 'Abrir próxima seleção',\n openNextView: 'Abrir seleção anterior',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'Seleção de ano está aberta, alternando para seleção de calendário' : 'Seleção de calendários está aberta, alternando para seleção de ano',\n // DateRange placeholders\n start: 'Início',\n end: 'Fim',\n // Action bar\n cancelButtonLabel: 'Cancelar',\n clearButtonLabel: 'Limpar',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Hoje',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Selecione ${view}. ${time === null ? 'Hora não selecionada' : `Selecionado a hora ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} horas`,\n minutesClockNumberText: minutes => `${minutes} minutos`,\n secondsClockNumberText: seconds => `${seconds} segundos`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Escolha uma data, data selecionada ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Escolha uma data',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Escolha uma hora, hora selecionada ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Escolha uma hora',\n // Table labels\n timeTableLabel: 'escolha uma hora',\n dateTableLabel: 'escolha uma data'\n};\nexport const ptBR = getPickersLocalization(ptBRPickers);","import { getPickersLocalization } from './utils/getPickersLocalization'; // import { CalendarPickerView } from '../internals/models';\n// This object is not Partial because it is the default values\n\nconst trTRPickers = {\n // Calendar navigation\n previousMonth: 'Önceki ay',\n nextMonth: 'Sonraki ay',\n // View navigation\n openPreviousView: 'sonraki görünüm',\n openNextView: 'önceki görünüm',\n // calendarViewSwitchingButtonAriaLabel: (view: CalendarPickerView) => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Başlangıç',\n end: 'Bitiş',\n // Action bar\n cancelButtonLabel: 'iptal',\n clearButtonLabel: 'Temizle',\n okButtonLabel: 'Tamam',\n todayButtonLabel: 'Bugün' // Clock labels\n // clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n // hoursClockNumberText: hours => `${hours} hours`,\n // minutesClockNumberText: minutes => `${minutes} minutes`,\n // secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n // openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue)!, 'fullDate')}` : 'Choose date',\n // openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue)!, 'fullTime')}` : 'Choose time',\n // Table labels\n // timeTableLabel: 'pick time',\n // dateTableLabel: 'pick date',\n\n};\nexport const trTR = getPickersLocalization(trTRPickers);","import { getPickersLocalization } from './utils/getPickersLocalization'; // import { CalendarPickerView } from '../internals/models';\n\nconst deDEPickers = {\n // Calendar navigation\n previousMonth: 'Letzter Monat',\n nextMonth: 'Nächster Monat',\n // View navigation\n openPreviousView: 'Letzte Ansicht öffnen',\n openNextView: 'Nächste Ansicht öffnen',\n // calendarViewSwitchingButtonAriaLabel: (view: CalendarPickerView) => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Beginn',\n end: 'Ende',\n // Action bar\n cancelButtonLabel: 'Abbrechen',\n clearButtonLabel: 'Löschen',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Heute' // Clock labels\n // clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n // hoursClockNumberText: hours => `${hours} hours`,\n // minutesClockNumberText: minutes => `${minutes} minutes`,\n // secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n // openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue)!, 'fullDate')}` : 'Choose date',\n // openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue)!, 'fullTime')}` : 'Choose time',\n // Table labels\n // timeTableLabel: 'pick time',\n // dateTableLabel: 'pick date',\n\n};\nexport const deDE = getPickersLocalization(deDEPickers);","import { getPickersLocalization } from './utils/getPickersLocalization'; // import { CalendarPickerView } from '../internals/models';\n\nconst frFRPickers = {\n // Calendar navigation\n previousMonth: 'Mois précédent',\n nextMonth: 'Mois suivant',\n // View navigation\n openPreviousView: 'Ouvrir la vue précédente',\n openNextView: 'Ouvrir la vue suivante',\n // calendarViewSwitchingButtonAriaLabel: (view: CalendarPickerView) => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n // DateRange placeholders\n start: 'Début',\n end: 'Fin',\n // Action bar\n cancelButtonLabel: 'Annuler',\n clearButtonLabel: 'Vider',\n okButtonLabel: 'OK',\n todayButtonLabel: \"Aujourd'hui\" // Clock labels\n // clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n // hoursClockNumberText: hours => `${hours} hours`,\n // minutesClockNumberText: minutes => `${minutes} minutes`,\n // secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n // openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue)!, 'fullDate')}` : 'Choose date',\n // openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue)!, 'fullTime')}` : 'Choose time',\n // Table labels\n // timeTableLabel: 'pick time',\n // dateTableLabel: 'pick date',\n\n};\nexport const frFR = getPickersLocalization(frFRPickers);","import { getPickersLocalization } from './utils/getPickersLocalization';\nconst svSEPickers = {\n // Calendar navigation\n previousMonth: 'Föregående månad',\n nextMonth: 'Nästa månad',\n // View navigation\n openPreviousView: 'öppna föregående vy',\n openNextView: 'öppna nästa vy',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'årsvyn är öppen, byt till kalendervy' : 'kalendervyn är öppen, byt till årsvy',\n // DateRange placeholders\n start: 'Start',\n end: 'Slut',\n // Action bar\n cancelButtonLabel: 'Avbryt',\n clearButtonLabel: 'Rensa',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Idag',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'Ingen tid vald' : `Vald tid är ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} timmar`,\n minutesClockNumberText: minutes => `${minutes} minuter`,\n secondsClockNumberText: seconds => `${seconds} sekunder`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Välj datum, valt datum är ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Välj datum',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Välj tid, vald tid är ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Välj tid',\n // Table labels\n timeTableLabel: 'välj tid',\n dateTableLabel: 'välj datum'\n};\nexport const svSE = getPickersLocalization(svSEPickers);","/** @license MUI v5.0.0-beta.0\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nexport * from './CalendarPicker';\nexport * from './CalendarPickerSkeleton';\nexport * from './ClockPicker';\nexport * from './DatePicker';\nexport * from './DateTimePicker';\nexport * from './DesktopDatePicker';\nexport * from './DesktopDateTimePicker';\nexport * from './DesktopTimePicker';\nexport * from './LocalizationProvider';\nexport * from './MobileDatePicker';\nexport * from './MobileDateTimePicker';\nexport * from './MobileTimePicker';\nexport * from './MonthPicker';\nexport * from './PickersDay';\nexport * from './StaticDatePicker';\nexport * from './StaticDateTimePicker';\nexport * from './StaticTimePicker';\nexport * from './TimePicker';\nexport * from './YearPicker';\nexport * from './locales';\nexport { PickerStaticWrapper } from './internals/components/PickerStaticWrapper';","/*!\n * Cropper.js v1.5.12\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2021-06-12T08:00:17.411Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cropper = factory());\n}(this, (function () { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n }\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'cropper'; // Actions\n\n var ACTION_ALL = 'all';\n var ACTION_CROP = 'crop';\n var ACTION_MOVE = 'move';\n var ACTION_ZOOM = 'zoom';\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw'; // Classes\n\n var CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\n var CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\n var CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\"); // Data keys\n\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n var DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\"); // Drag modes\n\n var DRAG_MODE_CROP = 'crop';\n var DRAG_MODE_MOVE = 'move';\n var DRAG_MODE_NONE = 'none'; // Events\n\n var EVENT_CROP = 'crop';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_READY = 'ready';\n var EVENT_RESIZE = 'resize';\n var EVENT_WHEEL = 'wheel';\n var EVENT_ZOOM = 'zoom'; // Mime types\n\n var MIME_TYPE_JPEG = 'image/jpeg'; // RegExps\n\n var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\n var REGEXP_TAG_NAME = /^img|canvas$/i; // Misc\n // Inspired by the default width and height of a canvas element.\n\n var MIN_CONTAINER_WIDTH = 200;\n var MIN_CONTAINER_HEIGHT = 100;\n\n var DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n };\n\n var TEMPLATE = '
' + '
' + '
' + '
' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '
';\n\n /**\n * Check if the given value is not a number.\n */\n\n var isNaN = Number.isNaN || WINDOW.isNaN;\n /**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n\n function isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n }\n /**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n /**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n /**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n /**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n\n function isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n }\n /**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n\n function isFunction(value) {\n return typeof value === 'function';\n }\n var slice = Array.prototype.slice;\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n /**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n\n function forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length)\n /* array-like */\n ) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n\n return data;\n }\n /**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\n\n var assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n\n return target;\n };\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n var REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n /**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n\n function setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n\n style[property] = value;\n });\n }\n /**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n\n function hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n /**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n\n function addClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n\n var className = element.className.trim();\n\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n }\n /**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n\n function removeClass(element, value) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n /**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n\n function toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n } // IE10-11 doesn't support the second parameter of `classList.toggle`\n\n\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n var REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n /**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n\n function toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n }\n /**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n\n function getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n\n if (element.dataset) {\n return element.dataset[name];\n }\n\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n }\n /**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n\n function setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n }\n /**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\n\n function removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n }\n var REGEXP_SPACES = /\\s\\s*/;\n\n var onceSupported = function () {\n var supported = false;\n\n if (IS_BROWSER) {\n var once = false;\n\n var listener = function listener() {};\n\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n\n return supported;\n }();\n /**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n\n function removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n\n element.removeEventListener(event, handler, options);\n });\n }\n /**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n\n function addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n listener.apply(element, args);\n };\n\n if (!listeners[event]) {\n listeners[event] = {};\n }\n\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n\n element.addEventListener(event, _handler, options);\n });\n }\n /**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n\n function dispatchEvent(element, type, data) {\n var event; // Event and CustomEvent on IE9-11 are global objects, not constructors\n\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n\n return element.dispatchEvent(event);\n }\n /**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n\n function getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n }\n var location = WINDOW.location;\n var REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n /**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\n\n function isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n }\n /**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\n\n function addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n }\n /**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n\n function getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n } // Rotate should come first before scale to match orientation transform\n\n\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n /**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n\n function getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n }\n /**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n\n function getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n }\n /**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n /**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n\n function getAdjustedSizes(_ref4) // or 'cover'\n {\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n\n return {\n width: width,\n height: height\n };\n }\n /**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\n\n function getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n }\n /**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\n\n function getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight)); // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n }\n var fromCharCode = String.fromCharCode;\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n\n return str;\n }\n var REGEXP_DATA_URL_HEAD = /^data:.*,/;\n /**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\n\n function dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n }\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = []; // Chunk Typed Array for better performance (#435)\n\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation; // Ignores range error when the image does not have correct Exif information\n\n try {\n var littleEndian;\n var app1Start;\n var ifdStart; // Only handle JPEG image (start by 0xFFD8)\n\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n\n offset += 1;\n }\n }\n\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n\n if (littleEndian || endianness === 0x4D4D\n /* bigEndian */\n ) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n\n var _offset;\n\n var i;\n\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n\n if (dataView.getUint16(_offset, littleEndian) === 0x0112\n /* Orientation */\n ) {\n // 8 is the offset of the current tag's value\n _offset += 8; // Get the original orientation value\n\n orientation = dataView.getUint16(_offset, littleEndian); // Override the orientation with its default value\n\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n\n return orientation;\n }\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n // Rotate left 180°\n\n case 3:\n rotate = -180;\n break;\n // Flip vertical\n\n case 4:\n scaleY = -1;\n break;\n // Flip vertical and rotate right 90°\n\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n // Rotate right 90°\n\n case 6:\n rotate = 90;\n break;\n // Flip horizontal and rotate right 90°\n\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n // Rotate left 90°\n\n case 8:\n rotate = -90;\n break;\n }\n\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n var render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true); // Initialize auto crop area\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight); // The width/height of auto crop area must large than \"minWidth/Height\"\n\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height; // The min/maxCropBoxWidth/Height must be less than container's width/height\n\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n } // The minWidth/Height must be less than maxWidth/Height\n\n\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n };\n\n var preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n\n if (!preview) {\n return;\n }\n\n var previews = preview;\n\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img'); // Save the original size for recover\n\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n\n img.src = url;\n img.alt = alt;\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n\n if (!this.cropped || this.disabled) {\n return;\n }\n\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n };\n\n var events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n };\n\n var handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY; // Resize when width changed or height changed\n\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n\n this.render();\n\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n\n if (this.disabled) {\n return;\n }\n\n event.preventDefault(); // Limit wheel speed to prevent zoom too fast (#21)\n\n if (this.wheeling) {\n return;\n }\n\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n\n if (this.disabled // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && ( // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0 // Open context menu\n || event.ctrlKey)) {\n return;\n }\n\n var options = this.options,\n pointers = this.pointers;\n var action;\n\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n } // This line is required for preventing page zooming in iOS browsers\n\n\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n\n if (this.disabled || !action) {\n return;\n }\n\n var pointers = this.pointers;\n event.preventDefault();\n\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n\n var action = this.action,\n pointers = this.pointers;\n\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n\n if (!action) {\n return;\n }\n\n event.preventDefault();\n\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n };\n\n var change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset; // Locking aspect ratio in \"free mode\" by holding shift key\n\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n\n break;\n\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n\n break;\n\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n\n break;\n }\n };\n\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n // Resize crop box\n\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n\n break;\n\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n\n check(ACTION_SOUTH);\n height += range.y;\n\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n\n break;\n\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n\n break;\n\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n\n break;\n // Move canvas\n\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n // Zoom canvas\n\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n // Create crop box\n\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n\n if (range.y < 0) {\n top -= height;\n } // Show the crop box if is hidden\n\n\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n\n break;\n }\n\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n } // Override\n\n\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n };\n\n var methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true); // Render canvas after crop box rendered\n\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n\n return this;\n },\n\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n\n return this;\n },\n\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n\n if (!element[NAMESPACE]) {\n return this;\n }\n\n element[NAMESPACE] = undefined;\n\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n\n this.uncreate();\n return this;\n },\n\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n\n if (changed) {\n this.renderCanvas(true);\n }\n }\n\n return this;\n },\n\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n }; // Zoom from the triggering point of the event\n\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n\n return this;\n },\n\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n\n return this;\n },\n\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n\n return data;\n },\n\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n\n if (transformed) {\n this.renderCanvas(true, true);\n }\n\n var ratio = imageData.width / imageData.naturalWidth;\n\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n\n this.setCropBoxData(cropBoxData);\n }\n\n return this;\n },\n\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n\n return data;\n },\n\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n\n this.renderCanvas(true);\n }\n\n return this;\n },\n\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n\n return data || {};\n },\n\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n\n this.renderCropBox();\n }\n\n return this;\n },\n\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options); // Returns the source canvas if it is not cropped.\n\n if (!this.cropped) {\n return source;\n }\n\n var _this$getData = this.getData(),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n } // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n\n\n var sourceWidth = source.width;\n var sourceHeight = source.height; // Source canvas parameters\n\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight; // Destination canvas parameters\n\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n\n var params = [srcX, srcY, srcWidth, srcHeight]; // Avoid \"IndexSizeError\"\n\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n } // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n\n\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n\n if (this.ready) {\n this.initCropBox();\n\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n\n return this;\n },\n\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n\n return this;\n }\n };\n\n var AnotherCropper = WINDOW.Cropper;\n\n var Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Cropper);\n\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an or element.');\n }\n\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n\n _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n\n if (element[NAMESPACE]) {\n return;\n }\n\n element[NAMESPACE] = this;\n\n if (tagName === 'img') {\n this.isImg = true; // e.g.: \"img/picture.jpg\"\n\n url = element.getAttribute('src') || '';\n this.originalUrl = url; // Stop when it's a blank image\n\n if (!url) {\n return;\n } // e.g.: \"https://example.com/img/picture.jpg\"\n\n\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n\n if (!url) {\n return;\n }\n\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n } // Only IE10+ supports Typed Arrays\n\n\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n } // Detect the mime type of the image directly if it is a Data URL\n\n\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n\n return;\n } // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n\n\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr; // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n }; // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n\n\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n } // The third parameter is required for avoiding side-effect (#682)\n\n\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData; // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n\n var _parseOrientation = parseOrientation(orientation);\n\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n } // Bust cache when there is not a \"crossOrigin\" property (#519)\n\n\n crossOriginUrl = addTimestamp(url);\n }\n\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true; // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n\n _this2.build();\n }; // Most modern browsers (excepts iOS WebKit)\n\n\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n\n sizingImage.src = image.src; // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n\n var element = this.element,\n options = this.options,\n image = this.image; // Create cropper elements\n\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image); // Hide the original image\n\n addClass(element, CLASS_HIDDEN); // Inserts the cropper after to the current image\n\n container.insertBefore(cropper, element.nextSibling); // Show the image if is hidden\n\n if (!this.isImg) {\n removeClass(image, CLASS_HIDE);\n }\n\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n\n if (options.autoCrop) {\n this.crop();\n }\n\n this.setData(options.data);\n\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n\n this.ready = false;\n this.unbind();\n this.resetPreview();\n this.cropper.parentNode.removeChild(this.cropper);\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n\n return Cropper;\n }();\n\n assign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\n return Cropper;\n\n})));\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var identity = require('./identity');\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nmodule.exports = castFunction;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseForOwn = require('./_baseForOwn'),\n castFunction = require('./_castFunction');\n\n/**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forOwn(object, iteratee) {\n return object && baseForOwn(object, castFunction(iteratee));\n}\n\nmodule.exports = forOwn;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","export var calculateChange = function calculateChange(e, hsl, direction, initialA, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var a = void 0;\n if (top < 0) {\n a = 0;\n } else if (top > containerHeight) {\n a = 1;\n } else {\n a = Math.round(top * 100 / containerHeight) / 100;\n }\n\n if (hsl.a !== a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: a,\n source: 'rgb'\n };\n }\n } else {\n var _a = void 0;\n if (left < 0) {\n _a = 0;\n } else if (left > containerWidth) {\n _a = 1;\n } else {\n _a = Math.round(left * 100 / containerWidth) / 100;\n }\n\n if (initialA !== _a) {\n return {\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: _a,\n source: 'rgb'\n };\n }\n }\n return null;\n};","var checkboardCache = {};\n\nexport var render = function render(c1, c2, size, serverCanvas) {\n if (typeof document === 'undefined' && !serverCanvas) {\n return null;\n }\n var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas');\n canvas.width = size * 2;\n canvas.height = size * 2;\n var ctx = canvas.getContext('2d');\n if (!ctx) {\n return null;\n } // If no context can be found, return early.\n ctx.fillStyle = c1;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n ctx.fillStyle = c2;\n ctx.fillRect(0, 0, size, size);\n ctx.translate(size, size);\n ctx.fillRect(0, 0, size, size);\n return canvas.toDataURL();\n};\n\nexport var get = function get(c1, c2, size, serverCanvas) {\n var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : '');\n\n if (checkboardCache[key]) {\n return checkboardCache[key];\n }\n\n var checkboard = render(c1, c2, size, serverCanvas);\n checkboardCache[key] = checkboard;\n return checkboard;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React, { isValidElement } from 'react';\nimport reactCSS from 'reactcss';\nimport * as checkboard from '../../helpers/checkboard';\n\nexport var Checkboard = function Checkboard(_ref) {\n var white = _ref.white,\n grey = _ref.grey,\n size = _ref.size,\n renderers = _ref.renderers,\n borderRadius = _ref.borderRadius,\n boxShadow = _ref.boxShadow,\n children = _ref.children;\n\n var styles = reactCSS({\n 'default': {\n grid: {\n borderRadius: borderRadius,\n boxShadow: boxShadow,\n absolute: '0px 0px 0px 0px',\n background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left'\n }\n }\n });\n return isValidElement(children) ? React.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : React.createElement('div', { style: styles.grid });\n};\n\nCheckboard.defaultProps = {\n size: 8,\n white: 'transparent',\n grey: 'rgba(0,0,0,.08)',\n renderers: {}\n};\n\nexport default Checkboard;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as alpha from '../../helpers/alpha';\n\nimport Checkboard from './Checkboard';\n\nexport var Alpha = function (_ref) {\n _inherits(Alpha, _ref);\n\n function Alpha() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Alpha);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleChange);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Alpha, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var rgb = this.props.rgb;\n var styles = reactCSS({\n 'default': {\n alpha: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n checkboard: {\n absolute: '0px 0px 0px 0px',\n overflow: 'hidden',\n borderRadius: this.props.radius\n },\n gradient: {\n absolute: '0px 0px 0px 0px',\n background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n container: {\n position: 'relative',\n height: '100%',\n margin: '0 3px'\n },\n pointer: {\n position: 'absolute',\n left: rgb.a * 100 + '%'\n },\n slider: {\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n marginTop: '1px',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n gradient: {\n background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)'\n },\n pointer: {\n left: 0,\n top: rgb.a * 100 + '%'\n }\n },\n 'overwrite': _extends({}, this.props.style)\n }, {\n vertical: this.props.direction === 'vertical',\n overwrite: true\n });\n\n return React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(\n 'div',\n { style: styles.checkboard },\n React.createElement(Checkboard, { renderers: this.props.renderers })\n ),\n React.createElement('div', { style: styles.gradient }),\n React.createElement(\n 'div',\n {\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Alpha;\n}(PureComponent || Component);\n\nexport default Alpha;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\n\nvar DEFAULT_ARROW_OFFSET = 1;\n\nvar UP_KEY_CODE = 38;\nvar DOWN_KEY_CODE = 40;\nvar VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE];\nvar isValidKeyCode = function isValidKeyCode(keyCode) {\n return VALID_KEY_CODES.indexOf(keyCode) > -1;\n};\nvar getNumberValue = function getNumberValue(value) {\n return Number(String(value).replace(/%/g, ''));\n};\n\nvar idCounter = 1;\n\nexport var EditableInput = function (_ref) {\n _inherits(EditableInput, _ref);\n\n function EditableInput(props) {\n _classCallCheck(this, EditableInput);\n\n var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this));\n\n _this.handleBlur = function () {\n if (_this.state.blurValue) {\n _this.setState({ value: _this.state.blurValue, blurValue: null });\n }\n };\n\n _this.handleChange = function (e) {\n _this.setUpdatedValue(e.target.value, e);\n };\n\n _this.handleKeyDown = function (e) {\n // In case `e.target.value` is a percentage remove the `%` character\n // and update accordingly with a percentage\n // https://github.com/casesandberg/react-color/issues/383\n var value = getNumberValue(e.target.value);\n if (!isNaN(value) && isValidKeyCode(e.keyCode)) {\n var offset = _this.getArrowOffset();\n var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset;\n\n _this.setUpdatedValue(updatedValue, e);\n }\n };\n\n _this.handleDrag = function (e) {\n if (_this.props.dragLabel) {\n var newValue = Math.round(_this.props.value + e.movementX);\n if (newValue >= 0 && newValue <= _this.props.dragMax) {\n _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e);\n }\n }\n };\n\n _this.handleMouseDown = function (e) {\n if (_this.props.dragLabel) {\n e.preventDefault();\n _this.handleDrag(e);\n window.addEventListener('mousemove', _this.handleDrag);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.unbindEventListeners = function () {\n window.removeEventListener('mousemove', _this.handleDrag);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.state = {\n value: String(props.value).toUpperCase(),\n blurValue: String(props.value).toUpperCase()\n };\n\n _this.inputId = 'rc-editable-input-' + idCounter++;\n return _this;\n }\n\n _createClass(EditableInput, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) {\n if (this.input === document.activeElement) {\n this.setState({ blurValue: String(this.props.value).toUpperCase() });\n } else {\n this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() });\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'getValueObjectWithLabel',\n value: function getValueObjectWithLabel(value) {\n return _defineProperty({}, this.props.label, value);\n }\n }, {\n key: 'getArrowOffset',\n value: function getArrowOffset() {\n return this.props.arrowOffset || DEFAULT_ARROW_OFFSET;\n }\n }, {\n key: 'setUpdatedValue',\n value: function setUpdatedValue(value, e) {\n var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value;\n this.props.onChange && this.props.onChange(onChangeValue, e);\n\n this.setState({ value: value });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n position: 'relative'\n }\n },\n 'user-override': {\n wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {},\n input: this.props.style && this.props.style.input ? this.props.style.input : {},\n label: this.props.style && this.props.style.label ? this.props.style.label : {}\n },\n 'dragLabel-true': {\n label: {\n cursor: 'ew-resize'\n }\n }\n }, {\n 'user-override': true\n }, this.props);\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('input', {\n id: this.inputId,\n style: styles.input,\n ref: function ref(input) {\n return _this2.input = input;\n },\n value: this.state.value,\n onKeyDown: this.handleKeyDown,\n onChange: this.handleChange,\n onBlur: this.handleBlur,\n placeholder: this.props.placeholder,\n spellCheck: 'false'\n }),\n this.props.label && !this.props.hideLabel ? React.createElement(\n 'label',\n {\n htmlFor: this.inputId,\n style: styles.label,\n onMouseDown: this.handleMouseDown\n },\n this.props.label\n ) : null\n );\n }\n }]);\n\n return EditableInput;\n}(PureComponent || Component);\n\nexport default EditableInput;","export var calculateChange = function calculateChange(e, direction, hsl, container) {\n var containerWidth = container.clientWidth;\n var containerHeight = container.clientHeight;\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (direction === 'vertical') {\n var h = void 0;\n if (top < 0) {\n h = 359;\n } else if (top > containerHeight) {\n h = 0;\n } else {\n var percent = -(top * 100 / containerHeight) + 100;\n h = 360 * percent / 100;\n }\n\n if (hsl.h !== h) {\n return {\n h: h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n } else {\n var _h = void 0;\n if (left < 0) {\n _h = 0;\n } else if (left > containerWidth) {\n _h = 359;\n } else {\n var _percent = left * 100 / containerWidth;\n _h = 360 * _percent / 100;\n }\n\n if (hsl.h !== _h) {\n return {\n h: _h,\n s: hsl.s,\n l: hsl.l,\n a: hsl.a,\n source: 'hsl'\n };\n }\n }\n return null;\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport * as hue from '../../helpers/hue';\n\nexport var Hue = function (_ref) {\n _inherits(Hue, _ref);\n\n function Hue() {\n var _ref2;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hue);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) {\n var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container);\n change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e);\n }, _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n window.addEventListener('mousemove', _this.handleChange);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Hue, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.unbindEventListeners();\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n window.removeEventListener('mousemove', this.handleChange);\n window.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props$direction = this.props.direction,\n direction = _props$direction === undefined ? 'horizontal' : _props$direction;\n\n\n var styles = reactCSS({\n 'default': {\n hue: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius,\n boxShadow: this.props.shadow\n },\n container: {\n padding: '0 2px',\n position: 'relative',\n height: '100%',\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n left: this.props.hsl.h * 100 / 360 + '%'\n },\n slider: {\n marginTop: '1px',\n width: '4px',\n borderRadius: '1px',\n height: '8px',\n boxShadow: '0 0 2px rgba(0, 0, 0, .6)',\n background: '#fff',\n transform: 'translateX(-2px)'\n }\n },\n 'vertical': {\n pointer: {\n left: '0px',\n top: -(this.props.hsl.h * 100 / 360) + 100 + '%'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(\n 'div',\n {\n className: 'hue-' + direction,\n style: styles.container,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .hue-horizontal {\\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n\\n .hue-vertical {\\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.slider })\n )\n )\n );\n }\n }]);\n\n return Hue;\n}(PureComponent || Component);\n\nexport default Hue;","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nexport var Raised = function Raised(_ref) {\n var zDepth = _ref.zDepth,\n radius = _ref.radius,\n background = _ref.background,\n children = _ref.children,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles;\n\n var styles = reactCSS(merge({\n 'default': {\n wrap: {\n position: 'relative',\n display: 'inline-block'\n },\n content: {\n position: 'relative'\n },\n bg: {\n absolute: '0px 0px 0px 0px',\n boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)',\n borderRadius: radius,\n background: background\n }\n },\n 'zDepth-0': {\n bg: {\n boxShadow: 'none'\n }\n },\n\n 'zDepth-1': {\n bg: {\n boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)'\n }\n },\n 'zDepth-2': {\n bg: {\n boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)'\n }\n },\n 'zDepth-3': {\n bg: {\n boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)'\n }\n },\n 'zDepth-4': {\n bg: {\n boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)'\n }\n },\n 'zDepth-5': {\n bg: {\n boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)'\n }\n },\n 'square': {\n bg: {\n borderRadius: '0'\n }\n },\n 'circle': {\n bg: {\n borderRadius: '50%'\n }\n }\n }, passedStyles), { 'zDepth-1': zDepth === 1 });\n\n return React.createElement(\n 'div',\n { style: styles.wrap },\n React.createElement('div', { style: styles.bg }),\n React.createElement(\n 'div',\n { style: styles.content },\n children\n )\n );\n};\n\nRaised.propTypes = {\n background: PropTypes.string,\n zDepth: PropTypes.oneOf([0, 1, 2, 3, 4, 5]),\n radius: PropTypes.number,\n styles: PropTypes.object\n};\n\nRaised.defaultProps = {\n background: '#fff',\n zDepth: 1,\n radius: 2,\n styles: {}\n};\n\nexport default Raised;","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","export var calculateChange = function calculateChange(e, hsl, container) {\n var _container$getBoundin = container.getBoundingClientRect(),\n containerWidth = _container$getBoundin.width,\n containerHeight = _container$getBoundin.height;\n\n var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX;\n var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY;\n var left = x - (container.getBoundingClientRect().left + window.pageXOffset);\n var top = y - (container.getBoundingClientRect().top + window.pageYOffset);\n\n if (left < 0) {\n left = 0;\n } else if (left > containerWidth) {\n left = containerWidth;\n }\n\n if (top < 0) {\n top = 0;\n } else if (top > containerHeight) {\n top = containerHeight;\n }\n\n var saturation = left / containerWidth;\n var bright = 1 - top / containerHeight;\n\n return {\n h: hsl.h,\n s: saturation,\n v: bright,\n a: hsl.a,\n source: 'hsv'\n };\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport reactCSS from 'reactcss';\nimport throttle from 'lodash-es/throttle';\nimport * as saturation from '../../helpers/saturation';\n\nexport var Saturation = function (_ref) {\n _inherits(Saturation, _ref);\n\n function Saturation(props) {\n _classCallCheck(this, Saturation);\n\n var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props));\n\n _this.handleChange = function (e) {\n typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e);\n };\n\n _this.handleMouseDown = function (e) {\n _this.handleChange(e);\n var renderWindow = _this.getContainerRenderWindow();\n renderWindow.addEventListener('mousemove', _this.handleChange);\n renderWindow.addEventListener('mouseup', _this.handleMouseUp);\n };\n\n _this.handleMouseUp = function () {\n _this.unbindEventListeners();\n };\n\n _this.throttle = throttle(function (fn, data, e) {\n fn(data, e);\n }, 50);\n return _this;\n }\n\n _createClass(Saturation, [{\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.throttle.cancel();\n this.unbindEventListeners();\n }\n }, {\n key: 'getContainerRenderWindow',\n value: function getContainerRenderWindow() {\n var container = this.container;\n\n var renderWindow = window;\n while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) {\n renderWindow = renderWindow.parent;\n }\n return renderWindow;\n }\n }, {\n key: 'unbindEventListeners',\n value: function unbindEventListeners() {\n var renderWindow = this.getContainerRenderWindow();\n renderWindow.removeEventListener('mousemove', this.handleChange);\n renderWindow.removeEventListener('mouseup', this.handleMouseUp);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _ref2 = this.props.style || {},\n color = _ref2.color,\n white = _ref2.white,\n black = _ref2.black,\n pointer = _ref2.pointer,\n circle = _ref2.circle;\n\n var styles = reactCSS({\n 'default': {\n color: {\n absolute: '0px 0px 0px 0px',\n background: 'hsl(' + this.props.hsl.h + ',100%, 50%)',\n borderRadius: this.props.radius\n },\n white: {\n absolute: '0px 0px 0px 0px',\n borderRadius: this.props.radius\n },\n black: {\n absolute: '0px 0px 0px 0px',\n boxShadow: this.props.shadow,\n borderRadius: this.props.radius\n },\n pointer: {\n position: 'absolute',\n top: -(this.props.hsv.v * 100) + 100 + '%',\n left: this.props.hsv.s * 100 + '%',\n cursor: 'default'\n },\n circle: {\n width: '4px',\n height: '4px',\n boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\\n 0 0 1px 2px rgba(0,0,0,.4)',\n borderRadius: '50%',\n cursor: 'hand',\n transform: 'translate(-2px, -2px)'\n }\n },\n 'custom': {\n color: color,\n white: white,\n black: black,\n pointer: pointer,\n circle: circle\n }\n }, { 'custom': !!this.props.style });\n\n return React.createElement(\n 'div',\n {\n style: styles.color,\n ref: function ref(container) {\n return _this2.container = container;\n },\n onMouseDown: this.handleMouseDown,\n onTouchMove: this.handleChange,\n onTouchStart: this.handleChange\n },\n React.createElement(\n 'style',\n null,\n '\\n .saturation-white {\\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\\n }\\n .saturation-black {\\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\\n }\\n '\n ),\n React.createElement(\n 'div',\n { style: styles.white, className: 'saturation-white' },\n React.createElement('div', { style: styles.black, className: 'saturation-black' }),\n React.createElement(\n 'div',\n { style: styles.pointer },\n this.props.pointer ? React.createElement(this.props.pointer, this.props) : React.createElement('div', { style: styles.circle })\n )\n )\n );\n }\n }]);\n\n return Saturation;\n}(PureComponent || Component);\n\nexport default Saturation;","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import identity from './identity.js';\n\n/**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\nfunction castFunction(value) {\n return typeof value == 'function' ? value : identity;\n}\n\nexport default castFunction;\n","import arrayEach from './_arrayEach.js';\nimport baseEach from './_baseEach.js';\nimport castFunction from './_castFunction.js';\nimport isArray from './isArray.js';\n\n/**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\nfunction forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, castFunction(iteratee));\n}\n\nexport default forEach;\n","import each from 'lodash-es/each';\nimport tinycolor from 'tinycolor2';\n\nexport var simpleCheckForValidColor = function simpleCheckForValidColor(data) {\n var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v'];\n var checked = 0;\n var passed = 0;\n each(keysToCheck, function (letter) {\n if (data[letter]) {\n checked += 1;\n if (!isNaN(data[letter])) {\n passed += 1;\n }\n if (letter === 's' || letter === 'l') {\n var percentPatt = /^\\d+%$/;\n if (percentPatt.test(data[letter])) {\n passed += 1;\n }\n }\n }\n });\n return checked === passed ? data : false;\n};\n\nexport var toState = function toState(data, oldHue) {\n var color = data.hex ? tinycolor(data.hex) : tinycolor(data);\n var hsl = color.toHsl();\n var hsv = color.toHsv();\n var rgb = color.toRgb();\n var hex = color.toHex();\n if (hsl.s === 0) {\n hsl.h = oldHue || 0;\n hsv.h = oldHue || 0;\n }\n var transparent = hex === '000000' && rgb.a === 0;\n\n return {\n hsl: hsl,\n hex: transparent ? 'transparent' : '#' + hex,\n rgb: rgb,\n hsv: hsv,\n oldHue: data.h || oldHue || hsl.h,\n source: data.source\n };\n};\n\nexport var isValidHex = function isValidHex(hex) {\n if (hex === 'transparent') {\n return true;\n }\n // disable hex4 and hex8\n var lh = String(hex).charAt(0) === '#' ? 1 : 0;\n return hex.length !== 4 + lh && hex.length < 7 + lh && tinycolor(hex).isValid();\n};\n\nexport var getContrastingColor = function getContrastingColor(data) {\n if (!data) {\n return '#fff';\n }\n var col = toState(data);\n if (col.hex === 'transparent') {\n return 'rgba(0,0,0,0.4)';\n }\n var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000;\n return yiq >= 128 ? '#000' : '#fff';\n};\n\nexport var red = {\n hsl: { a: 1, h: 0, l: 0.5, s: 1 },\n hex: '#ff0000',\n rgb: { r: 255, g: 0, b: 0, a: 1 },\n hsv: { h: 0, s: 1, v: 1, a: 1 }\n};\n\nexport var isvalidColorString = function isvalidColorString(string, type) {\n var stringWithoutDegree = string.replace('°', '');\n return tinycolor(type + ' (' + stringWithoutDegree + ')')._ok;\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React, { Component, PureComponent } from 'react';\nimport debounce from 'lodash-es/debounce';\nimport * as color from '../../helpers/color';\n\nexport var ColorWrap = function ColorWrap(Picker) {\n var ColorPicker = function (_ref) {\n _inherits(ColorPicker, _ref);\n\n function ColorPicker(props) {\n _classCallCheck(this, ColorPicker);\n\n var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this));\n\n _this.handleChange = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.setState(colors);\n _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event);\n _this.props.onChange && _this.props.onChange(colors, event);\n }\n };\n\n _this.handleSwatchHover = function (data, event) {\n var isValidColor = color.simpleCheckForValidColor(data);\n if (isValidColor) {\n var colors = color.toState(data, data.h || _this.state.oldHue);\n _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event);\n }\n };\n\n _this.state = _extends({}, color.toState(props.color, 0));\n\n _this.debounce = debounce(function (fn, data, event) {\n fn(data, event);\n }, 100);\n return _this;\n }\n\n _createClass(ColorPicker, [{\n key: 'render',\n value: function render() {\n var optionalEvents = {};\n if (this.props.onSwatchHover) {\n optionalEvents.onSwatchHover = this.handleSwatchHover;\n }\n\n return React.createElement(Picker, _extends({}, this.props, this.state, {\n onChange: this.handleChange\n }, optionalEvents));\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n return _extends({}, color.toState(nextProps.color, state.oldHue));\n }\n }]);\n\n return ColorPicker;\n }(PureComponent || Component);\n\n ColorPicker.propTypes = _extends({}, Picker.propTypes);\n\n ColorPicker.defaultProps = _extends({}, Picker.defaultProps, {\n color: {\n h: 250,\n s: 0.50,\n l: 0.20,\n a: 1\n }\n });\n\n return ColorPicker;\n};\n\nexport default ColorWrap;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable no-invalid-this */\nimport React from 'react';\n\nexport var handleFocus = function handleFocus(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n return function (_React$Component) {\n _inherits(Focus, _React$Component);\n\n function Focus() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Focus);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () {\n return _this.setState({ focus: true });\n }, _this.handleBlur = function () {\n return _this.setState({ focus: false });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Focus, [{\n key: 'render',\n value: function render() {\n return React.createElement(\n Span,\n { onFocus: this.handleFocus, onBlur: this.handleBlur },\n React.createElement(Component, _extends({}, this.props, this.state))\n );\n }\n }]);\n\n return Focus;\n }(React.Component);\n};","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport { handleFocus } from '../../helpers/interaction';\n\nimport Checkboard from './Checkboard';\n\nvar ENTER = 13;\n\nexport var Swatch = function Swatch(_ref) {\n var color = _ref.color,\n style = _ref.style,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onHover = _ref.onHover,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? color : _ref$title,\n children = _ref.children,\n focus = _ref.focus,\n _ref$focusStyle = _ref.focusStyle,\n focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle;\n\n var transparent = color === 'transparent';\n var styles = reactCSS({\n default: {\n swatch: _extends({\n background: color,\n height: '100%',\n width: '100%',\n cursor: 'pointer',\n position: 'relative',\n outline: 'none'\n }, style, focus ? focusStyle : {})\n }\n });\n\n var handleClick = function handleClick(e) {\n return onClick(color, e);\n };\n var handleKeyDown = function handleKeyDown(e) {\n return e.keyCode === ENTER && onClick(color, e);\n };\n var handleHover = function handleHover(e) {\n return onHover(color, e);\n };\n\n var optionalEvents = {};\n if (onHover) {\n optionalEvents.onMouseOver = handleHover;\n }\n\n return React.createElement(\n 'div',\n _extends({\n style: styles.swatch,\n onClick: handleClick,\n title: title,\n tabIndex: 0,\n onKeyDown: handleKeyDown\n }, optionalEvents),\n children,\n transparent && React.createElement(Checkboard, {\n borderRadius: styles.swatch.borderRadius,\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)'\n })\n );\n};\n\nexport default handleFocus(Swatch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var AlphaPointer = function AlphaPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default AlphaPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { ColorWrap, Alpha } from '../common';\nimport AlphaPointer from './AlphaPointer';\n\nexport var AlphaPicker = function AlphaPicker(_ref) {\n var rgb = _ref.rgb,\n hsl = _ref.hsl,\n width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n direction = _ref.direction,\n style = _ref.style,\n renderers = _ref.renderers,\n pointer = _ref.pointer,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n alpha: {\n radius: '2px',\n style: style\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'alpha-picker ' + className },\n React.createElement(Alpha, _extends({}, styles.alpha, {\n rgb: rgb,\n hsl: hsl,\n pointer: pointer,\n renderers: renderers,\n onChange: onChange,\n direction: direction\n }))\n );\n};\n\nAlphaPicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: AlphaPointer\n};\n\nexport default ColorWrap(AlphaPicker);","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport { Swatch } from '../common';\n\nexport var BlockSwatches = function BlockSwatches(_ref) {\n var colors = _ref.colors,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginRight: '-10px'\n },\n swatch: {\n width: '22px',\n height: '22px',\n float: 'left',\n marginRight: '10px',\n marginBottom: '10px',\n borderRadius: '4px'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n map(colors, function (c) {\n return React.createElement(Swatch, {\n key: c,\n color: c,\n style: styles.swatch,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default BlockSwatches;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Checkboard } from '../common';\nimport BlockSwatches from './BlockSwatches';\n\nexport var Block = function Block(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var transparent = hex === 'transparent';\n var handleChange = function handleChange(hexCode, e) {\n color.isValidHex(hexCode) && onChange({\n hex: hexCode,\n source: 'hex'\n }, e);\n };\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n boxShadow: '0 1px rgba(0,0,0,.1)',\n borderRadius: '6px',\n position: 'relative'\n },\n head: {\n height: '110px',\n background: hex,\n borderRadius: '6px 6px 0 0',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative'\n },\n body: {\n padding: '10px'\n },\n label: {\n fontSize: '18px',\n color: color.getContrastingColor(hex),\n position: 'relative'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 10px 10px 10px',\n borderColor: 'transparent transparent ' + hex + ' transparent',\n position: 'absolute',\n top: '-10px',\n left: '50%',\n marginLeft: '-10px'\n },\n input: {\n width: '100%',\n fontSize: '12px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '22px',\n boxShadow: 'inset 0 0 0 1px #ddd',\n borderRadius: '4px',\n padding: '0 7px',\n boxSizing: 'border-box'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n }\n }\n }, passedStyles), { 'hide-triangle': triangle === 'hide' });\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'block-picker ' + className },\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.head },\n transparent && React.createElement(Checkboard, { borderRadius: '6px 6px 0 0' }),\n React.createElement(\n 'div',\n { style: styles.label },\n hex\n )\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(BlockSwatches, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }),\n React.createElement(EditableInput, {\n style: { input: styles.input },\n value: hex,\n onChange: handleChange\n })\n )\n );\n};\n\nBlock.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['top', 'hide']),\n styles: PropTypes.object\n};\n\nBlock.defaultProps = {\n width: 170,\n colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'],\n triangle: 'top',\n styles: {}\n};\n\nexport default ColorWrap(Block);","export var red = {\"50\":\"#ffebee\",\"100\":\"#ffcdd2\",\"200\":\"#ef9a9a\",\"300\":\"#e57373\",\"400\":\"#ef5350\",\"500\":\"#f44336\",\"600\":\"#e53935\",\"700\":\"#d32f2f\",\"800\":\"#c62828\",\"900\":\"#b71c1c\",\"a100\":\"#ff8a80\",\"a200\":\"#ff5252\",\"a400\":\"#ff1744\",\"a700\":\"#d50000\"};\nexport var pink = {\"50\":\"#fce4ec\",\"100\":\"#f8bbd0\",\"200\":\"#f48fb1\",\"300\":\"#f06292\",\"400\":\"#ec407a\",\"500\":\"#e91e63\",\"600\":\"#d81b60\",\"700\":\"#c2185b\",\"800\":\"#ad1457\",\"900\":\"#880e4f\",\"a100\":\"#ff80ab\",\"a200\":\"#ff4081\",\"a400\":\"#f50057\",\"a700\":\"#c51162\"};\nexport var purple = {\"50\":\"#f3e5f5\",\"100\":\"#e1bee7\",\"200\":\"#ce93d8\",\"300\":\"#ba68c8\",\"400\":\"#ab47bc\",\"500\":\"#9c27b0\",\"600\":\"#8e24aa\",\"700\":\"#7b1fa2\",\"800\":\"#6a1b9a\",\"900\":\"#4a148c\",\"a100\":\"#ea80fc\",\"a200\":\"#e040fb\",\"a400\":\"#d500f9\",\"a700\":\"#aa00ff\"};\nexport var deepPurple = {\"50\":\"#ede7f6\",\"100\":\"#d1c4e9\",\"200\":\"#b39ddb\",\"300\":\"#9575cd\",\"400\":\"#7e57c2\",\"500\":\"#673ab7\",\"600\":\"#5e35b1\",\"700\":\"#512da8\",\"800\":\"#4527a0\",\"900\":\"#311b92\",\"a100\":\"#b388ff\",\"a200\":\"#7c4dff\",\"a400\":\"#651fff\",\"a700\":\"#6200ea\"};\nexport var indigo = {\"50\":\"#e8eaf6\",\"100\":\"#c5cae9\",\"200\":\"#9fa8da\",\"300\":\"#7986cb\",\"400\":\"#5c6bc0\",\"500\":\"#3f51b5\",\"600\":\"#3949ab\",\"700\":\"#303f9f\",\"800\":\"#283593\",\"900\":\"#1a237e\",\"a100\":\"#8c9eff\",\"a200\":\"#536dfe\",\"a400\":\"#3d5afe\",\"a700\":\"#304ffe\"};\nexport var blue = {\"50\":\"#e3f2fd\",\"100\":\"#bbdefb\",\"200\":\"#90caf9\",\"300\":\"#64b5f6\",\"400\":\"#42a5f5\",\"500\":\"#2196f3\",\"600\":\"#1e88e5\",\"700\":\"#1976d2\",\"800\":\"#1565c0\",\"900\":\"#0d47a1\",\"a100\":\"#82b1ff\",\"a200\":\"#448aff\",\"a400\":\"#2979ff\",\"a700\":\"#2962ff\"};\nexport var lightBlue = {\"50\":\"#e1f5fe\",\"100\":\"#b3e5fc\",\"200\":\"#81d4fa\",\"300\":\"#4fc3f7\",\"400\":\"#29b6f6\",\"500\":\"#03a9f4\",\"600\":\"#039be5\",\"700\":\"#0288d1\",\"800\":\"#0277bd\",\"900\":\"#01579b\",\"a100\":\"#80d8ff\",\"a200\":\"#40c4ff\",\"a400\":\"#00b0ff\",\"a700\":\"#0091ea\"};\nexport var cyan = {\"50\":\"#e0f7fa\",\"100\":\"#b2ebf2\",\"200\":\"#80deea\",\"300\":\"#4dd0e1\",\"400\":\"#26c6da\",\"500\":\"#00bcd4\",\"600\":\"#00acc1\",\"700\":\"#0097a7\",\"800\":\"#00838f\",\"900\":\"#006064\",\"a100\":\"#84ffff\",\"a200\":\"#18ffff\",\"a400\":\"#00e5ff\",\"a700\":\"#00b8d4\"};\nexport var teal = {\"50\":\"#e0f2f1\",\"100\":\"#b2dfdb\",\"200\":\"#80cbc4\",\"300\":\"#4db6ac\",\"400\":\"#26a69a\",\"500\":\"#009688\",\"600\":\"#00897b\",\"700\":\"#00796b\",\"800\":\"#00695c\",\"900\":\"#004d40\",\"a100\":\"#a7ffeb\",\"a200\":\"#64ffda\",\"a400\":\"#1de9b6\",\"a700\":\"#00bfa5\"};\nexport var green = {\"50\":\"#e8f5e9\",\"100\":\"#c8e6c9\",\"200\":\"#a5d6a7\",\"300\":\"#81c784\",\"400\":\"#66bb6a\",\"500\":\"#4caf50\",\"600\":\"#43a047\",\"700\":\"#388e3c\",\"800\":\"#2e7d32\",\"900\":\"#1b5e20\",\"a100\":\"#b9f6ca\",\"a200\":\"#69f0ae\",\"a400\":\"#00e676\",\"a700\":\"#00c853\"};\nexport var lightGreen = {\"50\":\"#f1f8e9\",\"100\":\"#dcedc8\",\"200\":\"#c5e1a5\",\"300\":\"#aed581\",\"400\":\"#9ccc65\",\"500\":\"#8bc34a\",\"600\":\"#7cb342\",\"700\":\"#689f38\",\"800\":\"#558b2f\",\"900\":\"#33691e\",\"a100\":\"#ccff90\",\"a200\":\"#b2ff59\",\"a400\":\"#76ff03\",\"a700\":\"#64dd17\"};\nexport var lime = {\"50\":\"#f9fbe7\",\"100\":\"#f0f4c3\",\"200\":\"#e6ee9c\",\"300\":\"#dce775\",\"400\":\"#d4e157\",\"500\":\"#cddc39\",\"600\":\"#c0ca33\",\"700\":\"#afb42b\",\"800\":\"#9e9d24\",\"900\":\"#827717\",\"a100\":\"#f4ff81\",\"a200\":\"#eeff41\",\"a400\":\"#c6ff00\",\"a700\":\"#aeea00\"};\nexport var yellow = {\"50\":\"#fffde7\",\"100\":\"#fff9c4\",\"200\":\"#fff59d\",\"300\":\"#fff176\",\"400\":\"#ffee58\",\"500\":\"#ffeb3b\",\"600\":\"#fdd835\",\"700\":\"#fbc02d\",\"800\":\"#f9a825\",\"900\":\"#f57f17\",\"a100\":\"#ffff8d\",\"a200\":\"#ffff00\",\"a400\":\"#ffea00\",\"a700\":\"#ffd600\"};\nexport var amber = {\"50\":\"#fff8e1\",\"100\":\"#ffecb3\",\"200\":\"#ffe082\",\"300\":\"#ffd54f\",\"400\":\"#ffca28\",\"500\":\"#ffc107\",\"600\":\"#ffb300\",\"700\":\"#ffa000\",\"800\":\"#ff8f00\",\"900\":\"#ff6f00\",\"a100\":\"#ffe57f\",\"a200\":\"#ffd740\",\"a400\":\"#ffc400\",\"a700\":\"#ffab00\"};\nexport var orange = {\"50\":\"#fff3e0\",\"100\":\"#ffe0b2\",\"200\":\"#ffcc80\",\"300\":\"#ffb74d\",\"400\":\"#ffa726\",\"500\":\"#ff9800\",\"600\":\"#fb8c00\",\"700\":\"#f57c00\",\"800\":\"#ef6c00\",\"900\":\"#e65100\",\"a100\":\"#ffd180\",\"a200\":\"#ffab40\",\"a400\":\"#ff9100\",\"a700\":\"#ff6d00\"};\nexport var deepOrange = {\"50\":\"#fbe9e7\",\"100\":\"#ffccbc\",\"200\":\"#ffab91\",\"300\":\"#ff8a65\",\"400\":\"#ff7043\",\"500\":\"#ff5722\",\"600\":\"#f4511e\",\"700\":\"#e64a19\",\"800\":\"#d84315\",\"900\":\"#bf360c\",\"a100\":\"#ff9e80\",\"a200\":\"#ff6e40\",\"a400\":\"#ff3d00\",\"a700\":\"#dd2c00\"};\nexport var brown = {\"50\":\"#efebe9\",\"100\":\"#d7ccc8\",\"200\":\"#bcaaa4\",\"300\":\"#a1887f\",\"400\":\"#8d6e63\",\"500\":\"#795548\",\"600\":\"#6d4c41\",\"700\":\"#5d4037\",\"800\":\"#4e342e\",\"900\":\"#3e2723\"};\nexport var grey = {\"50\":\"#fafafa\",\"100\":\"#f5f5f5\",\"200\":\"#eeeeee\",\"300\":\"#e0e0e0\",\"400\":\"#bdbdbd\",\"500\":\"#9e9e9e\",\"600\":\"#757575\",\"700\":\"#616161\",\"800\":\"#424242\",\"900\":\"#212121\"};\nexport var blueGrey = {\"50\":\"#eceff1\",\"100\":\"#cfd8dc\",\"200\":\"#b0bec5\",\"300\":\"#90a4ae\",\"400\":\"#78909c\",\"500\":\"#607d8b\",\"600\":\"#546e7a\",\"700\":\"#455a64\",\"800\":\"#37474f\",\"900\":\"#263238\"};\nexport var darkText = {\"primary\":\"rgba(0, 0, 0, 0.87)\",\"secondary\":\"rgba(0, 0, 0, 0.54)\",\"disabled\":\"rgba(0, 0, 0, 0.38)\",\"dividers\":\"rgba(0, 0, 0, 0.12)\"};\nexport var lightText = {\"primary\":\"rgba(255, 255, 255, 1)\",\"secondary\":\"rgba(255, 255, 255, 0.7)\",\"disabled\":\"rgba(255, 255, 255, 0.5)\",\"dividers\":\"rgba(255, 255, 255, 0.12)\"};\nexport var darkIcons = {\"active\":\"rgba(0, 0, 0, 0.54)\",\"inactive\":\"rgba(0, 0, 0, 0.38)\"};\nexport var lightIcons = {\"active\":\"rgba(255, 255, 255, 1)\",\"inactive\":\"rgba(255, 255, 255, 0.5)\"};\nexport var white = \"#ffffff\";\nexport var black = \"#000000\";\n\nexport default {\n red: red,\n pink: pink,\n purple: purple,\n deepPurple: deepPurple,\n indigo: indigo,\n blue: blue,\n lightBlue: lightBlue,\n cyan: cyan,\n teal: teal,\n green: green,\n lightGreen: lightGreen,\n lime: lime,\n yellow: yellow,\n amber: amber,\n orange: orange,\n deepOrange: deepOrange,\n brown: brown,\n grey: grey,\n blueGrey: blueGrey,\n darkText: darkText,\n lightText: lightText,\n darkIcons: darkIcons,\n lightIcons: lightIcons,\n white: white,\n black: black\n};\n","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var CircleSwatch = function CircleSwatch(_ref) {\n var color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n hover = _ref.hover,\n active = _ref.active,\n circleSize = _ref.circleSize,\n circleSpacing = _ref.circleSpacing;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: circleSize,\n height: circleSize,\n marginRight: circleSpacing,\n marginBottom: circleSpacing,\n transform: 'scale(1)',\n transition: '100ms transform ease'\n },\n Swatch: {\n borderRadius: '50%',\n background: 'transparent',\n boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color,\n transition: '100ms box-shadow ease'\n }\n },\n 'hover': {\n swatch: {\n transform: 'scale(1.2)'\n }\n },\n 'active': {\n Swatch: {\n boxShadow: 'inset 0 0 0 3px ' + color\n }\n }\n }, { hover: hover, active: active });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n style: styles.Swatch,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color }\n })\n );\n};\n\nCircleSwatch.defaultProps = {\n circleSize: 28,\n circleSpacing: 14\n};\n\nexport default handleHover(CircleSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap } from '../common';\nimport CircleSwatch from './CircleSwatch';\n\nexport var Circle = function Circle(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n circleSize = _ref.circleSize,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n circleSpacing = _ref.circleSpacing,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n display: 'flex',\n flexWrap: 'wrap',\n marginRight: -circleSpacing,\n marginBottom: -circleSpacing\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(hexCode, e) {\n return onChange({ hex: hexCode, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'circle-picker ' + className },\n map(colors, function (c) {\n return React.createElement(CircleSwatch, {\n key: c,\n color: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover,\n active: hex === c.toLowerCase(),\n circleSize: circleSize,\n circleSpacing: circleSpacing\n });\n })\n );\n};\n\nCircle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n circleSize: PropTypes.number,\n circleSpacing: PropTypes.number,\n styles: PropTypes.object\n};\n\nCircle.defaultProps = {\n width: 252,\n circleSize: 28,\n circleSpacing: 14,\n colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']],\n styles: {}\n};\n\nexport default ColorWrap(Circle);","/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nexport default isUndefined;\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable react/no-did-mount-set-state, no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport isUndefined from 'lodash-es/isUndefined';\n\nimport { EditableInput } from '../common';\nimport UnfoldMoreHorizontalIcon from '@icons/material/UnfoldMoreHorizontalIcon';\n\nexport var ChromeFields = function (_React$Component) {\n _inherits(ChromeFields, _React$Component);\n\n function ChromeFields(props) {\n _classCallCheck(this, ChromeFields);\n\n var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this));\n\n _this.toggleViews = function () {\n if (_this.state.view === 'hex') {\n _this.setState({ view: 'rgb' });\n } else if (_this.state.view === 'rgb') {\n _this.setState({ view: 'hsl' });\n } else if (_this.state.view === 'hsl') {\n if (_this.props.hsl.a === 1) {\n _this.setState({ view: 'hex' });\n } else {\n _this.setState({ view: 'rgb' });\n }\n }\n };\n\n _this.handleChange = function (data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && _this.props.onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n _this.props.onChange({\n r: data.r || _this.props.rgb.r,\n g: data.g || _this.props.rgb.g,\n b: data.b || _this.props.rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 1) {\n data.a = 1;\n }\n\n _this.props.onChange({\n h: _this.props.hsl.h,\n s: _this.props.hsl.s,\n l: _this.props.hsl.l,\n a: Math.round(data.a * 100) / 100,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.l) {\n // Remove any occurances of '%'.\n if (typeof data.s === 'string' && data.s.includes('%')) {\n data.s = data.s.replace('%', '');\n }\n if (typeof data.l === 'string' && data.l.includes('%')) {\n data.l = data.l.replace('%', '');\n }\n\n // We store HSL as a unit interval so we need to override the 1 input to 0.01\n if (data.s == 1) {\n data.s = 0.01;\n } else if (data.l == 1) {\n data.l = 0.01;\n }\n\n _this.props.onChange({\n h: data.h || _this.props.hsl.h,\n s: Number(!isUndefined(data.s) ? data.s : _this.props.hsl.s),\n l: Number(!isUndefined(data.l) ? data.l : _this.props.hsl.l),\n source: 'hsl'\n }, e);\n }\n };\n\n _this.showHighlight = function (e) {\n e.currentTarget.style.background = '#eee';\n };\n\n _this.hideHighlight = function (e) {\n e.currentTarget.style.background = 'transparent';\n };\n\n if (props.hsl.a !== 1 && props.view === \"hex\") {\n _this.state = {\n view: \"rgb\"\n };\n } else {\n _this.state = {\n view: props.view\n };\n }\n return _this;\n }\n\n _createClass(ChromeFields, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n paddingTop: '16px',\n display: 'flex'\n },\n fields: {\n flex: '1',\n display: 'flex',\n marginLeft: '-6px'\n },\n field: {\n paddingLeft: '6px',\n width: '100%'\n },\n alpha: {\n paddingLeft: '6px',\n width: '100%'\n },\n toggle: {\n width: '32px',\n textAlign: 'right',\n position: 'relative'\n },\n icon: {\n marginRight: '-4px',\n marginTop: '12px',\n cursor: 'pointer',\n position: 'relative'\n },\n iconHighlight: {\n position: 'absolute',\n width: '24px',\n height: '28px',\n background: '#eee',\n borderRadius: '4px',\n top: '10px',\n left: '12px',\n display: 'none'\n },\n input: {\n fontSize: '11px',\n color: '#333',\n width: '100%',\n borderRadius: '2px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #dadada',\n height: '21px',\n textAlign: 'center'\n },\n label: {\n textTransform: 'uppercase',\n fontSize: '11px',\n lineHeight: '11px',\n color: '#969696',\n textAlign: 'center',\n display: 'block',\n marginTop: '12px'\n },\n svg: {\n fill: '#333',\n width: '24px',\n height: '24px',\n border: '1px transparent solid',\n borderRadius: '5px'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, this.props, this.state);\n\n var fields = void 0;\n if (this.state.view === 'hex') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex', value: this.props.hex,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'rgb') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: this.props.rgb.r,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: this.props.rgb.g,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: this.props.rgb.b,\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.rgb.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n } else if (this.state.view === 'hsl') {\n fields = React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'h',\n value: Math.round(this.props.hsl.h),\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 's',\n value: Math.round(this.props.hsl.s * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.field },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'l',\n value: Math.round(this.props.hsl.l * 100) + '%',\n onChange: this.handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: this.props.hsl.a,\n arrowOffset: 0.01,\n onChange: this.handleChange\n })\n )\n );\n }\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n fields,\n React.createElement(\n 'div',\n { style: styles.toggle },\n React.createElement(\n 'div',\n { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) {\n return _this2.icon = icon;\n } },\n React.createElement(UnfoldMoreHorizontalIcon, {\n style: styles.svg,\n onMouseOver: this.showHighlight,\n onMouseEnter: this.showHighlight,\n onMouseOut: this.hideHighlight\n })\n )\n )\n );\n }\n }], [{\n key: 'getDerivedStateFromProps',\n value: function getDerivedStateFromProps(nextProps, state) {\n if (nextProps.hsl.a !== 1 && state.view === 'hex') {\n return { view: 'rgb' };\n }\n return null;\n }\n }]);\n\n return ChromeFields;\n}(React.Component);\n\nChromeFields.defaultProps = {\n view: \"hex\"\n};\n\nexport default ChromeFields;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointer = function ChromePointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n transform: 'translate(-6px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var ChromePointerCircle = function ChromePointerCircle() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default ChromePointerCircle;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport ChromeFields from './ChromeFields';\nimport ChromePointer from './ChromePointer';\nimport ChromePointerCircle from './ChromePointerCircle';\n\nexport var Chrome = function Chrome(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n disableAlpha = _ref.disableAlpha,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className,\n defaultView = _ref.defaultView;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n borderRadius: '2px',\n boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)',\n boxSizing: 'initial',\n fontFamily: 'Menlo'\n },\n saturation: {\n width: '100%',\n paddingBottom: '55%',\n position: 'relative',\n borderRadius: '2px 2px 0 0',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '2px 2px 0 0'\n },\n body: {\n padding: '16px 16px 12px'\n },\n controls: {\n display: 'flex'\n },\n color: {\n width: '32px'\n },\n swatch: {\n marginTop: '6px',\n width: '16px',\n height: '16px',\n borderRadius: '8px',\n position: 'relative',\n overflow: 'hidden'\n },\n active: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '8px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')',\n zIndex: '2'\n },\n toggles: {\n flex: '1'\n },\n hue: {\n height: '10px',\n position: 'relative',\n marginBottom: '8px'\n },\n Hue: {\n radius: '2px'\n },\n alpha: {\n height: '10px',\n position: 'relative'\n },\n Alpha: {\n radius: '2px'\n }\n },\n 'disableAlpha': {\n color: {\n width: '22px'\n },\n alpha: {\n display: 'none'\n },\n hue: {\n marginBottom: '0px'\n },\n swatch: {\n width: '10px',\n height: '10px',\n marginTop: '0px'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'chrome-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n pointer: ChromePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement('div', { style: styles.active }),\n React.createElement(Checkboard, { renderers: renderers })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.toggles },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: ChromePointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n pointer: ChromePointer,\n renderers: renderers,\n onChange: onChange\n })\n )\n )\n ),\n React.createElement(ChromeFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n view: defaultView,\n onChange: onChange,\n disableAlpha: disableAlpha\n })\n )\n );\n};\n\nChrome.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n disableAlpha: PropTypes.bool,\n styles: PropTypes.object,\n defaultView: PropTypes.oneOf([\"hex\", \"rgb\", \"hsl\"])\n};\n\nChrome.defaultProps = {\n width: 225,\n disableAlpha: false,\n styles: {}\n};\n\nexport default ColorWrap(Chrome);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\n\nexport var CompactColor = function CompactColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n background: color,\n width: '15px',\n height: '15px',\n float: 'left',\n marginRight: '5px',\n marginBottom: '5px',\n position: 'relative',\n cursor: 'pointer'\n },\n dot: {\n absolute: '5px 5px 5px 5px',\n background: colorUtils.getContrastingColor(color),\n borderRadius: '50%',\n opacity: '0'\n }\n },\n 'active': {\n dot: {\n opacity: '1'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n dot: {\n background: '#000'\n }\n },\n 'transparent': {\n dot: {\n background: '#000'\n }\n }\n }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' });\n\n return React.createElement(\n Swatch,\n {\n style: styles.color,\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement('div', { style: styles.dot })\n );\n};\n\nexport default CompactColor;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport { EditableInput } from '../common';\n\nexport var CompactFields = function CompactFields(_ref) {\n var hex = _ref.hex,\n rgb = _ref.rgb,\n onChange = _ref.onChange;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingBottom: '6px',\n paddingRight: '5px',\n position: 'relative'\n },\n active: {\n position: 'absolute',\n top: '6px',\n left: '5px',\n height: '9px',\n width: '9px',\n background: hex\n },\n HEXwrap: {\n flex: '6',\n position: 'relative'\n },\n HEXinput: {\n width: '80%',\n padding: '0px',\n paddingLeft: '20%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n HEXlabel: {\n display: 'none'\n },\n RGBwrap: {\n flex: '3',\n position: 'relative'\n },\n RGBinput: {\n width: '70%',\n padding: '0px',\n paddingLeft: '30%',\n border: 'none',\n outline: 'none',\n background: 'none',\n fontSize: '12px',\n color: '#333',\n height: '16px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '3px',\n left: '0px',\n lineHeight: '16px',\n textTransform: 'uppercase',\n fontSize: '12px',\n color: '#999'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else {\n onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement('div', { style: styles.active }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n );\n};\n\nexport default CompactFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, Raised } from '../common';\nimport CompactColor from './CompactColor';\nimport CompactFields from './CompactFields';\n\nexport var Compact = function Compact(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n Compact: {\n background: '#f6f6f6',\n radius: '4px'\n },\n compact: {\n paddingTop: '5px',\n paddingLeft: '5px',\n boxSizing: 'initial',\n width: '240px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else {\n onChange(data, e);\n }\n };\n\n return React.createElement(\n Raised,\n { style: styles.Compact, styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.compact, className: 'compact-picker ' + className },\n React.createElement(\n 'div',\n null,\n map(colors, function (c) {\n return React.createElement(CompactColor, {\n key: c,\n color: c,\n active: c.toLowerCase() === hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n ),\n React.createElement(CompactFields, { hex: hex, rgb: rgb, onChange: handleChange })\n )\n );\n};\n\nCompact.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nCompact.defaultProps = {\n colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'],\n styles: {}\n};\n\nexport default ColorWrap(Compact);","import React from 'react';\nimport reactCSS, { handleHover } from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var GithubSwatch = function GithubSwatch(_ref) {\n var hover = _ref.hover,\n color = _ref.color,\n onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var hoverSwatch = {\n position: 'relative',\n zIndex: '2',\n outline: '2px solid #fff',\n boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)'\n };\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n width: '25px',\n height: '25px',\n fontSize: '0'\n }\n },\n 'hover': {\n swatch: hoverSwatch\n }\n }, { hover: hover });\n\n return React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(Swatch, {\n color: color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: hoverSwatch\n })\n );\n};\n\nexport default handleHover(GithubSwatch);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap } from '../common';\nimport GithubSwatch from './GithubSwatch';\n\nexport var Github = function Github(_ref) {\n var width = _ref.width,\n colors = _ref.colors,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '1px solid rgba(0,0,0,0.2)',\n boxShadow: '0 3px 12px rgba(0,0,0,0.15)',\n borderRadius: '4px',\n position: 'relative',\n padding: '5px',\n display: 'flex',\n flexWrap: 'wrap'\n },\n triangle: {\n position: 'absolute',\n border: '7px solid transparent',\n borderBottomColor: '#fff'\n },\n triangleShadow: {\n position: 'absolute',\n border: '8px solid transparent',\n borderBottomColor: 'rgba(0,0,0,0.15)'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-14px',\n left: '10px'\n },\n triangleShadow: {\n top: '-16px',\n left: '9px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-14px',\n right: '10px'\n },\n triangleShadow: {\n top: '-16px',\n right: '9px'\n }\n },\n 'bottom-left-triangle': {\n triangle: {\n top: '35px',\n left: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n left: '9px',\n transform: 'rotate(180deg)'\n }\n },\n 'bottom-right-triangle': {\n triangle: {\n top: '35px',\n right: '10px',\n transform: 'rotate(180deg)'\n },\n triangleShadow: {\n top: '37px',\n right: '9px',\n transform: 'rotate(180deg)'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right',\n 'bottom-left-triangle': triangle === 'bottom-left',\n 'bottom-right-triangle': triangle === 'bottom-right'\n });\n\n var handleChange = function handleChange(hex, e) {\n return onChange({ hex: hex, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'github-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n map(colors, function (c) {\n return React.createElement(GithubSwatch, {\n color: c,\n key: c,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nGithub.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.string),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']),\n styles: PropTypes.object\n};\n\nGithub.defaultProps = {\n width: 200,\n colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Github);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer(_ref) {\n var direction = _ref.direction;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '18px',\n height: '18px',\n borderRadius: '50%',\n transform: 'translate(-9px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n },\n 'vertical': {\n picker: {\n transform: 'translate(-3px, -9px)'\n }\n }\n }, { vertical: direction === 'vertical' });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport HuePointer from './HuePointer';\n\nexport var HuePicker = function HuePicker(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n hsl = _ref.hsl,\n direction = _ref.direction,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n position: 'relative',\n width: width,\n height: height\n },\n hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n // Overwrite to provide pure hue color\n var handleChange = function handleChange(data) {\n return onChange({ a: 1, h: data.h, l: 0.5, s: 1 });\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'hue-picker ' + className },\n React.createElement(Hue, _extends({}, styles.hue, {\n hsl: hsl,\n pointer: pointer,\n onChange: handleChange,\n direction: direction\n }))\n );\n};\n\nHuePicker.propTypes = {\n styles: PropTypes.object\n};\nHuePicker.defaultProps = {\n width: '316px',\n height: '16px',\n direction: 'horizontal',\n pointer: HuePointer,\n styles: {}\n};\n\nexport default ColorWrap(HuePicker);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Raised } from '../common';\n\nexport var Material = function Material(_ref) {\n var onChange = _ref.onChange,\n hex = _ref.hex,\n rgb = _ref.rgb,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n material: {\n width: '98px',\n height: '98px',\n padding: '16px',\n fontFamily: 'Roboto'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '2px solid ' + hex,\n outline: 'none',\n height: '30px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n Hex: {\n style: {}\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n width: '100%',\n marginTop: '12px',\n fontSize: '15px',\n color: '#333',\n padding: '0px',\n border: '0px',\n borderBottom: '1px solid #eee',\n outline: 'none',\n height: '30px'\n },\n RGBlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n fontSize: '11px',\n color: '#999999',\n textTransform: 'capitalize'\n },\n split: {\n display: 'flex',\n marginRight: '-10px',\n paddingTop: '11px'\n },\n third: {\n flex: '1',\n paddingRight: '10px'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n Raised,\n { styles: passedStyles },\n React.createElement(\n 'div',\n { style: styles.material, className: 'material-picker ' + className },\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: 'hex',\n value: hex,\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.split, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r', value: rgb.r,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.third },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default ColorWrap(Material);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var PhotoshopPicker = function PhotoshopPicker(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsv = _ref.hsv,\n hex = _ref.hex;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n paddingTop: '5px',\n paddingBottom: '9px',\n width: '80px',\n position: 'relative'\n },\n divider: {\n height: '5px'\n },\n RGBwrap: {\n position: 'relative'\n },\n RGBinput: {\n marginLeft: '40%',\n width: '40%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '5px',\n fontSize: '13px',\n paddingLeft: '3px',\n marginRight: '10px'\n },\n RGBlabel: {\n left: '0px',\n top: '0px',\n width: '34px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px',\n position: 'absolute'\n },\n HEXwrap: {\n position: 'relative'\n },\n HEXinput: {\n marginLeft: '20%',\n width: '80%',\n height: '18px',\n border: '1px solid #888888',\n boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC',\n marginBottom: '6px',\n fontSize: '13px',\n paddingLeft: '3px'\n },\n HEXlabel: {\n position: 'absolute',\n top: '0px',\n left: '0px',\n width: '14px',\n textTransform: 'uppercase',\n fontSize: '13px',\n height: '18px',\n lineHeight: '22px'\n },\n fieldSymbols: {\n position: 'absolute',\n top: '5px',\n right: '-7px',\n fontSize: '13px'\n },\n symbol: {\n height: '20px',\n lineHeight: '22px',\n paddingBottom: '7px'\n }\n }\n });\n\n var handleChange = function handleChange(data, e) {\n if (data['#']) {\n color.isValidHex(data['#']) && onChange({\n hex: data['#'],\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n source: 'rgb'\n }, e);\n } else if (data.h || data.s || data.v) {\n onChange({\n h: data.h || hsv.h,\n s: data.s || hsv.s,\n v: data.v || hsv.v,\n source: 'hsv'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'h',\n value: Math.round(hsv.h),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 's',\n value: Math.round(hsv.s * 100),\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'v',\n value: Math.round(hsv.v * 100),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'r',\n value: rgb.r,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'g',\n value: rgb.g,\n onChange: handleChange\n }),\n React.createElement(EditableInput, {\n style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel },\n label: 'b',\n value: rgb.b,\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.divider }),\n React.createElement(EditableInput, {\n style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel },\n label: '#',\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement(\n 'div',\n { style: styles.fieldSymbols },\n React.createElement(\n 'div',\n { style: styles.symbol },\n '\\xB0'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n ),\n React.createElement(\n 'div',\n { style: styles.symbol },\n '%'\n )\n )\n );\n};\n\nexport default PhotoshopPicker;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) {\n var hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '12px',\n height: '12px',\n borderRadius: '6px',\n boxShadow: 'inset 0 0 0 1px #fff',\n transform: 'translate(-6px, -6px)'\n }\n },\n 'black-outline': {\n picker: {\n boxShadow: 'inset 0 0 0 1px #000'\n }\n }\n }, { 'black-outline': hsl.l > 0.5 });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPointerCircle = function PhotoshopPointerCircle() {\n var styles = reactCSS({\n 'default': {\n triangle: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '4px 0 4px 6px',\n borderColor: 'transparent transparent transparent #fff',\n position: 'absolute',\n top: '1px',\n left: '1px'\n },\n triangleBorder: {\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderWidth: '5px 0 5px 8px',\n borderColor: 'transparent transparent transparent #555'\n },\n\n left: {\n Extend: 'triangleBorder',\n transform: 'translate(-13px, -4px)'\n },\n leftInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n },\n\n right: {\n Extend: 'triangleBorder',\n transform: 'translate(20px, -14px) rotate(180deg)'\n },\n rightInside: {\n Extend: 'triangle',\n transform: 'translate(-8px, -5px)'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.pointer },\n React.createElement(\n 'div',\n { style: styles.left },\n React.createElement('div', { style: styles.leftInside })\n ),\n React.createElement(\n 'div',\n { style: styles.right },\n React.createElement('div', { style: styles.rightInside })\n )\n );\n};\n\nexport default PhotoshopPointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopButton = function PhotoshopButton(_ref) {\n var onClick = _ref.onClick,\n label = _ref.label,\n children = _ref.children,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n button: {\n backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)',\n border: '1px solid #878787',\n borderRadius: '2px',\n height: '20px',\n boxShadow: '0 1px 0 0 #EAEAEA',\n fontSize: '14px',\n color: '#000',\n lineHeight: '20px',\n textAlign: 'center',\n marginBottom: '10px',\n cursor: 'pointer'\n }\n },\n 'active': {\n button: {\n boxShadow: '0 0 0 1px #878787'\n }\n }\n }, { active: active });\n\n return React.createElement(\n 'div',\n { style: styles.button, onClick: onClick },\n label || children\n );\n};\n\nexport default PhotoshopButton;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var PhotoshopPreviews = function PhotoshopPreviews(_ref) {\n var rgb = _ref.rgb,\n currentColor = _ref.currentColor;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n border: '1px solid #B3B3B3',\n borderBottom: '1px solid #F0F0F0',\n marginBottom: '2px',\n marginTop: '1px'\n },\n new: {\n height: '34px',\n background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')',\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000'\n },\n current: {\n height: '34px',\n background: currentColor,\n boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000'\n },\n label: {\n fontSize: '14px',\n color: '#000',\n textAlign: 'center'\n }\n }\n });\n\n return React.createElement(\n 'div',\n null,\n React.createElement(\n 'div',\n { style: styles.label },\n 'new'\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement('div', { style: styles.new }),\n React.createElement('div', { style: styles.current })\n ),\n React.createElement(\n 'div',\n { style: styles.label },\n 'current'\n )\n );\n};\n\nexport default PhotoshopPreviews;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport PhotoshopFields from './PhotoshopFields';\nimport PhotoshopPointerCircle from './PhotoshopPointerCircle';\nimport PhotoshopPointer from './PhotoshopPointer';\nimport PhotoshopButton from './PhotoshopButton';\nimport PhotoshopPreviews from './PhotoshopPreviews';\n\nexport var Photoshop = function (_React$Component) {\n _inherits(Photoshop, _React$Component);\n\n function Photoshop(props) {\n _classCallCheck(this, Photoshop);\n\n var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this));\n\n _this.state = {\n currentColor: props.hex\n };\n return _this;\n }\n\n _createClass(Photoshop, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n _props$styles = _props.styles,\n passedStyles = _props$styles === undefined ? {} : _props$styles,\n _props$className = _props.className,\n className = _props$className === undefined ? '' : _props$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n background: '#DCDCDC',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)',\n boxSizing: 'initial',\n width: '513px'\n },\n head: {\n backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)',\n borderBottom: '1px solid #B1B1B1',\n boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)',\n height: '23px',\n lineHeight: '24px',\n borderRadius: '4px 4px 0 0',\n fontSize: '13px',\n color: '#4D4D4D',\n textAlign: 'center'\n },\n body: {\n padding: '15px 15px 0',\n display: 'flex'\n },\n saturation: {\n width: '256px',\n height: '256px',\n position: 'relative',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0',\n overflow: 'hidden'\n },\n hue: {\n position: 'relative',\n height: '256px',\n width: '19px',\n marginLeft: '10px',\n border: '2px solid #B3B3B3',\n borderBottom: '2px solid #F0F0F0'\n },\n controls: {\n width: '180px',\n marginLeft: '10px'\n },\n top: {\n display: 'flex'\n },\n previews: {\n width: '60px'\n },\n actions: {\n flex: '1',\n marginLeft: '20px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'photoshop-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n this.props.header\n ),\n React.createElement(\n 'div',\n { style: styles.body, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: this.props.hsl,\n hsv: this.props.hsv,\n pointer: PhotoshopPointerCircle,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n direction: 'vertical',\n hsl: this.props.hsl,\n pointer: PhotoshopPointer,\n onChange: this.props.onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls },\n React.createElement(\n 'div',\n { style: styles.top, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.previews },\n React.createElement(PhotoshopPreviews, {\n rgb: this.props.rgb,\n currentColor: this.state.currentColor\n })\n ),\n React.createElement(\n 'div',\n { style: styles.actions },\n React.createElement(PhotoshopButton, { label: 'OK', onClick: this.props.onAccept, active: true }),\n React.createElement(PhotoshopButton, { label: 'Cancel', onClick: this.props.onCancel }),\n React.createElement(PhotoshopFields, {\n onChange: this.props.onChange,\n rgb: this.props.rgb,\n hsv: this.props.hsv,\n hex: this.props.hex\n })\n )\n )\n )\n )\n );\n }\n }]);\n\n return Photoshop;\n}(React.Component);\n\nPhotoshop.propTypes = {\n header: PropTypes.string,\n styles: PropTypes.object\n};\n\nPhotoshop.defaultProps = {\n header: 'Color Picker',\n styles: {}\n};\n\nexport default ColorWrap(Photoshop);","/* eslint-disable no-param-reassign */\n\nimport React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\n\nimport { EditableInput } from '../common';\n\nexport var SketchFields = function SketchFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n disableAlpha = _ref.disableAlpha;\n\n var styles = reactCSS({\n 'default': {\n fields: {\n display: 'flex',\n paddingTop: '4px'\n },\n single: {\n flex: '1',\n paddingLeft: '6px'\n },\n alpha: {\n flex: '1',\n paddingLeft: '6px'\n },\n double: {\n flex: '2'\n },\n input: {\n width: '80%',\n padding: '4px 10% 3px',\n border: 'none',\n boxShadow: 'inset 0 0 0 1px #ccc',\n fontSize: '11px'\n },\n label: {\n display: 'block',\n textAlign: 'center',\n fontSize: '11px',\n color: '#222',\n paddingTop: '3px',\n paddingBottom: '4px',\n textTransform: 'capitalize'\n }\n },\n 'disableAlpha': {\n alpha: {\n display: 'none'\n }\n }\n }, { disableAlpha: disableAlpha });\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.r || data.g || data.b) {\n onChange({\n r: data.r || rgb.r,\n g: data.g || rgb.g,\n b: data.b || rgb.b,\n a: rgb.a,\n source: 'rgb'\n }, e);\n } else if (data.a) {\n if (data.a < 0) {\n data.a = 0;\n } else if (data.a > 100) {\n data.a = 100;\n }\n\n data.a /= 100;\n onChange({\n h: hsl.h,\n s: hsl.s,\n l: hsl.l,\n a: data.a,\n source: 'rgb'\n }, e);\n }\n };\n\n return React.createElement(\n 'div',\n { style: styles.fields, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex.replace('#', ''),\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'r',\n value: rgb.r,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'g',\n value: rgb.g,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'b',\n value: rgb.b,\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '255'\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'a',\n value: Math.round(rgb.a * 100),\n onChange: handleChange,\n dragLabel: 'true',\n dragMax: '100'\n })\n )\n );\n};\n\nexport default SketchFields;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\n\nimport { Swatch } from '../common';\n\nexport var SketchPresetColors = function SketchPresetColors(_ref) {\n var colors = _ref.colors,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover;\n\n var styles = reactCSS({\n 'default': {\n colors: {\n margin: '0 -10px',\n padding: '10px 0 0 10px',\n borderTop: '1px solid #eee',\n display: 'flex',\n flexWrap: 'wrap',\n position: 'relative'\n },\n swatchWrap: {\n width: '16px',\n height: '16px',\n margin: '0 10px 10px 0'\n },\n swatch: {\n borderRadius: '3px',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)'\n }\n },\n 'no-presets': {\n colors: {\n display: 'none'\n }\n }\n }, {\n 'no-presets': !colors || !colors.length\n });\n\n var handleClick = function handleClick(hex, e) {\n onClick({\n hex: hex,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.colors, className: 'flexbox-fix' },\n colors.map(function (colorObjOrString) {\n var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString;\n var key = '' + c.color + (c.title || '');\n return React.createElement(\n 'div',\n { key: key, style: styles.swatchWrap },\n React.createElement(Swatch, _extends({}, c, {\n style: styles.swatch,\n onClick: handleClick,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color\n }\n }))\n );\n })\n );\n};\n\nSketchPresetColors.propTypes = {\n colors: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n color: PropTypes.string,\n title: PropTypes.string\n })])).isRequired\n};\n\nexport default SketchPresetColors;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue, Alpha, Checkboard } from '../common';\nimport SketchFields from './SketchFields';\nimport SketchPresetColors from './SketchPresetColors';\n\nexport var Sketch = function Sketch(_ref) {\n var width = _ref.width,\n rgb = _ref.rgb,\n hex = _ref.hex,\n hsv = _ref.hsv,\n hsl = _ref.hsl,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n disableAlpha = _ref.disableAlpha,\n presetColors = _ref.presetColors,\n renderers = _ref.renderers,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': _extends({\n picker: {\n width: width,\n padding: '10px 10px 0',\n boxSizing: 'initial',\n background: '#fff',\n borderRadius: '4px',\n boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)'\n },\n saturation: {\n width: '100%',\n paddingBottom: '75%',\n position: 'relative',\n overflow: 'hidden'\n },\n Saturation: {\n radius: '3px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n controls: {\n display: 'flex'\n },\n sliders: {\n padding: '4px 0',\n flex: '1'\n },\n color: {\n width: '24px',\n height: '24px',\n position: 'relative',\n marginTop: '4px',\n marginLeft: '4px',\n borderRadius: '3px'\n },\n activeColor: {\n absolute: '0px 0px 0px 0px',\n borderRadius: '2px',\n background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')',\n boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n hue: {\n position: 'relative',\n height: '10px',\n overflow: 'hidden'\n },\n Hue: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n },\n\n alpha: {\n position: 'relative',\n height: '10px',\n marginTop: '4px',\n overflow: 'hidden'\n },\n Alpha: {\n radius: '2px',\n shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)'\n }\n }, passedStyles),\n 'disableAlpha': {\n color: {\n height: '10px'\n },\n hue: {\n height: '10px'\n },\n alpha: {\n display: 'none'\n }\n }\n }, passedStyles), { disableAlpha: disableAlpha });\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'sketch-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n style: styles.Saturation,\n hsl: hsl,\n hsv: hsv,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.sliders },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.alpha },\n React.createElement(Alpha, {\n style: styles.Alpha,\n rgb: rgb,\n hsl: hsl,\n renderers: renderers,\n onChange: onChange\n })\n )\n ),\n React.createElement(\n 'div',\n { style: styles.color },\n React.createElement(Checkboard, null),\n React.createElement('div', { style: styles.activeColor })\n )\n ),\n React.createElement(SketchFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n onChange: onChange,\n disableAlpha: disableAlpha\n }),\n React.createElement(SketchPresetColors, {\n colors: presetColors,\n onClick: onChange,\n onSwatchHover: onSwatchHover\n })\n );\n};\n\nSketch.propTypes = {\n disableAlpha: PropTypes.bool,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object\n};\n\nSketch.defaultProps = {\n disableAlpha: false,\n width: 200,\n styles: {},\n presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF']\n};\n\nexport default ColorWrap(Sketch);","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderSwatch = function SliderSwatch(_ref) {\n var hsl = _ref.hsl,\n offset = _ref.offset,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n active = _ref.active,\n first = _ref.first,\n last = _ref.last;\n\n var styles = reactCSS({\n 'default': {\n swatch: {\n height: '12px',\n background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)',\n cursor: 'pointer'\n }\n },\n 'first': {\n swatch: {\n borderRadius: '2px 0 0 2px'\n }\n },\n 'last': {\n swatch: {\n borderRadius: '0 2px 2px 0'\n }\n },\n 'active': {\n swatch: {\n transform: 'scaleY(1.8)',\n borderRadius: '3.6px/2px'\n }\n }\n }, { active: active, first: first, last: last });\n\n var handleClick = function handleClick(e) {\n return onClick({\n h: hsl.h,\n s: 0.5,\n l: offset,\n source: 'hsl'\n }, e);\n };\n\n return React.createElement('div', { style: styles.swatch, onClick: handleClick });\n};\n\nexport default SliderSwatch;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nimport SliderSwatch from './SliderSwatch';\n\nexport var SliderSwatches = function SliderSwatches(_ref) {\n var onClick = _ref.onClick,\n hsl = _ref.hsl;\n\n var styles = reactCSS({\n 'default': {\n swatches: {\n marginTop: '20px'\n },\n swatch: {\n boxSizing: 'border-box',\n width: '20%',\n paddingRight: '1px',\n float: 'left'\n },\n clear: {\n clear: 'both'\n }\n }\n });\n\n // Acceptible difference in floating point equality\n var epsilon = 0.1;\n\n return React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.80',\n active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n first: true\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.65',\n active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.50',\n active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.35',\n active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatch },\n React.createElement(SliderSwatch, {\n hsl: hsl,\n offset: '.20',\n active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon,\n onClick: onClick,\n last: true\n })\n ),\n React.createElement('div', { style: styles.clear })\n );\n};\n\nexport default SliderSwatches;","import React from 'react';\nimport reactCSS from 'reactcss';\n\nexport var SliderPointer = function SliderPointer() {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '14px',\n height: '14px',\n borderRadius: '6px',\n transform: 'translate(-7px, -1px)',\n backgroundColor: 'rgb(248, 248, 248)',\n boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nexport default SliderPointer;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Hue } from '../common';\nimport SliderSwatches from './SliderSwatches';\nimport SliderPointer from './SliderPointer';\n\nexport var Slider = function Slider(_ref) {\n var hsl = _ref.hsl,\n onChange = _ref.onChange,\n pointer = _ref.pointer,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n hue: {\n height: '12px',\n position: 'relative'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n\n return React.createElement(\n 'div',\n { style: styles.wrap || {}, className: 'slider-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n pointer: pointer,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.swatches },\n React.createElement(SliderSwatches, { hsl: hsl, onClick: onChange })\n )\n );\n};\n\nSlider.propTypes = {\n styles: PropTypes.object\n};\nSlider.defaultProps = {\n pointer: SliderPointer,\n styles: {}\n};\n\nexport default ColorWrap(Slider);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as colorUtils from '../../helpers/color';\n\nimport { Swatch } from '../common';\nimport CheckIcon from '@icons/material/CheckIcon';\n\nexport var SwatchesColor = function SwatchesColor(_ref) {\n var color = _ref.color,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === undefined ? function () {} : _ref$onClick,\n onSwatchHover = _ref.onSwatchHover,\n first = _ref.first,\n last = _ref.last,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n color: {\n width: '40px',\n height: '24px',\n cursor: 'pointer',\n background: color,\n marginBottom: '1px'\n },\n check: {\n color: colorUtils.getContrastingColor(color),\n marginLeft: '8px',\n display: 'none'\n }\n },\n 'first': {\n color: {\n overflow: 'hidden',\n borderRadius: '2px 2px 0 0'\n }\n },\n 'last': {\n color: {\n overflow: 'hidden',\n borderRadius: '0 0 2px 2px'\n }\n },\n 'active': {\n check: {\n display: 'block'\n }\n },\n 'color-#FFFFFF': {\n color: {\n boxShadow: 'inset 0 0 0 1px #ddd'\n },\n check: {\n color: '#333'\n }\n },\n 'transparent': {\n check: {\n color: '#333'\n }\n }\n }, {\n first: first,\n last: last,\n active: active,\n 'color-#FFFFFF': color === '#FFFFFF',\n 'transparent': color === 'transparent'\n });\n\n return React.createElement(\n Swatch,\n {\n color: color,\n style: styles.color,\n onClick: onClick,\n onHover: onSwatchHover,\n focusStyle: { boxShadow: '0 0 4px ' + color }\n },\n React.createElement(\n 'div',\n { style: styles.check },\n React.createElement(CheckIcon, null)\n )\n );\n};\n\nexport default SwatchesColor;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\n\nimport SwatchesColor from './SwatchesColor';\n\nexport var SwatchesGroup = function SwatchesGroup(_ref) {\n var onClick = _ref.onClick,\n onSwatchHover = _ref.onSwatchHover,\n group = _ref.group,\n active = _ref.active;\n\n var styles = reactCSS({\n 'default': {\n group: {\n paddingBottom: '10px',\n width: '40px',\n float: 'left',\n marginRight: '10px'\n }\n }\n });\n\n return React.createElement(\n 'div',\n { style: styles.group },\n map(group, function (color, i) {\n return React.createElement(SwatchesColor, {\n key: color,\n color: color,\n active: color.toLowerCase() === active,\n first: i === 0,\n last: i === group.length - 1,\n onClick: onClick,\n onSwatchHover: onSwatchHover\n });\n })\n );\n};\n\nexport default SwatchesGroup;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as material from 'material-colors';\n\nimport { ColorWrap, Raised } from '../common';\nimport SwatchesGroup from './SwatchesGroup';\n\nexport var Swatches = function Swatches(_ref) {\n var width = _ref.width,\n height = _ref.height,\n onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n colors = _ref.colors,\n hex = _ref.hex,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n height: height\n },\n overflow: {\n height: height,\n overflowY: 'scroll'\n },\n body: {\n padding: '16px 0 6px 16px'\n },\n clear: {\n clear: 'both'\n }\n }\n }, passedStyles));\n\n var handleChange = function handleChange(data, e) {\n return onChange({ hex: data, source: 'hex' }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'swatches-picker ' + className },\n React.createElement(\n Raised,\n null,\n React.createElement(\n 'div',\n { style: styles.overflow },\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (group) {\n return React.createElement(SwatchesGroup, {\n key: group.toString(),\n group: group,\n active: hex,\n onClick: handleChange,\n onSwatchHover: onSwatchHover\n });\n }),\n React.createElement('div', { style: styles.clear })\n )\n )\n )\n );\n};\n\nSwatches.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n colors: PropTypes.arrayOf(PropTypes.arrayOf(PropTypes.string)),\n styles: PropTypes.object\n\n /* eslint-disable max-len */\n};Swatches.defaultProps = {\n width: 320,\n height: 240,\n colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']],\n styles: {}\n};\n\nexport default ColorWrap(Swatches);","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport map from 'lodash-es/map';\nimport merge from 'lodash-es/merge';\nimport * as color from '../../helpers/color';\n\nimport { ColorWrap, EditableInput, Swatch } from '../common';\n\nexport var Twitter = function Twitter(_ref) {\n var onChange = _ref.onChange,\n onSwatchHover = _ref.onSwatchHover,\n hex = _ref.hex,\n colors = _ref.colors,\n width = _ref.width,\n triangle = _ref.triangle,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n card: {\n width: width,\n background: '#fff',\n border: '0 solid rgba(0,0,0,0.25)',\n boxShadow: '0 1px 4px rgba(0,0,0,0.25)',\n borderRadius: '4px',\n position: 'relative'\n },\n body: {\n padding: '15px 9px 9px 15px'\n },\n label: {\n fontSize: '18px',\n color: '#fff'\n },\n triangle: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent #fff transparent',\n position: 'absolute'\n },\n triangleShadow: {\n width: '0px',\n height: '0px',\n borderStyle: 'solid',\n borderWidth: '0 9px 10px 9px',\n borderColor: 'transparent transparent rgba(0,0,0,.1) transparent',\n position: 'absolute'\n },\n hash: {\n background: '#F0F0F0',\n height: '30px',\n width: '30px',\n borderRadius: '4px 0 0 4px',\n float: 'left',\n color: '#98A1A4',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n input: {\n width: '100px',\n fontSize: '14px',\n color: '#666',\n border: '0px',\n outline: 'none',\n height: '28px',\n boxShadow: 'inset 0 0 0 1px #F0F0F0',\n boxSizing: 'content-box',\n borderRadius: '0 4px 4px 0',\n float: 'left',\n paddingLeft: '8px'\n },\n swatch: {\n width: '30px',\n height: '30px',\n float: 'left',\n borderRadius: '4px',\n margin: '0 6px 6px 0'\n },\n clear: {\n clear: 'both'\n }\n },\n 'hide-triangle': {\n triangle: {\n display: 'none'\n },\n triangleShadow: {\n display: 'none'\n }\n },\n 'top-left-triangle': {\n triangle: {\n top: '-10px',\n left: '12px'\n },\n triangleShadow: {\n top: '-11px',\n left: '12px'\n }\n },\n 'top-right-triangle': {\n triangle: {\n top: '-10px',\n right: '12px'\n },\n triangleShadow: {\n top: '-11px',\n right: '12px'\n }\n }\n }, passedStyles), {\n 'hide-triangle': triangle === 'hide',\n 'top-left-triangle': triangle === 'top-left',\n 'top-right-triangle': triangle === 'top-right'\n });\n\n var handleChange = function handleChange(hexcode, e) {\n color.isValidHex(hexcode) && onChange({\n hex: hexcode,\n source: 'hex'\n }, e);\n };\n\n return React.createElement(\n 'div',\n { style: styles.card, className: 'twitter-picker ' + className },\n React.createElement('div', { style: styles.triangleShadow }),\n React.createElement('div', { style: styles.triangle }),\n React.createElement(\n 'div',\n { style: styles.body },\n map(colors, function (c, i) {\n return React.createElement(Swatch, {\n key: i,\n color: c,\n hex: c,\n style: styles.swatch,\n onClick: handleChange,\n onHover: onSwatchHover,\n focusStyle: {\n boxShadow: '0 0 4px ' + c\n }\n });\n }),\n React.createElement(\n 'div',\n { style: styles.hash },\n '#'\n ),\n React.createElement(EditableInput, {\n label: null,\n style: { input: styles.input },\n value: hex.replace('#', ''),\n onChange: handleChange\n }),\n React.createElement('div', { style: styles.clear })\n )\n );\n};\n\nTwitter.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n triangle: PropTypes.oneOf(['hide', 'top-left', 'top-right']),\n colors: PropTypes.arrayOf(PropTypes.string),\n styles: PropTypes.object\n};\n\nTwitter.defaultProps = {\n width: 276,\n colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'],\n triangle: 'top-left',\n styles: {}\n};\n\nexport default ColorWrap(Twitter);","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointerCircle = function GooglePointerCircle(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n border: '2px #fff solid',\n transform: 'translate(-12px, -13px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointerCircle.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointerCircle.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointerCircle;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport PropTypes from 'prop-types';\n\nexport var GooglePointer = function GooglePointer(props) {\n var styles = reactCSS({\n 'default': {\n picker: {\n width: '20px',\n height: '20px',\n borderRadius: '22px',\n transform: 'translate(-10px, -7px)',\n background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)',\n border: '2px white solid'\n }\n }\n });\n\n return React.createElement('div', { style: styles.picker });\n};\n\nGooglePointer.propTypes = {\n hsl: PropTypes.shape({\n h: PropTypes.number,\n s: PropTypes.number,\n l: PropTypes.number,\n a: PropTypes.number\n })\n};\n\nGooglePointer.defaultProps = {\n hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 }\n};\n\nexport default GooglePointer;","import React from 'react';\nimport reactCSS from 'reactcss';\nimport * as color from '../../helpers/color';\nimport { EditableInput } from '../common';\n\nexport var GoogleFields = function GoogleFields(_ref) {\n var onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hex = _ref.hex,\n hsv = _ref.hsv;\n\n\n var handleChange = function handleChange(data, e) {\n if (data.hex) {\n color.isValidHex(data.hex) && onChange({\n hex: data.hex,\n source: 'hex'\n }, e);\n } else if (data.rgb) {\n var values = data.rgb.split(',');\n color.isvalidColorString(data.rgb, 'rgb') && onChange({\n r: values[0],\n g: values[1],\n b: values[2],\n a: 1,\n source: 'rgb'\n }, e);\n } else if (data.hsv) {\n var _values = data.hsv.split(',');\n if (color.isvalidColorString(data.hsv, 'hsv')) {\n _values[2] = _values[2].replace('%', '');\n _values[1] = _values[1].replace('%', '');\n _values[0] = _values[0].replace('°', '');\n if (_values[1] == 1) {\n _values[1] = 0.01;\n } else if (_values[2] == 1) {\n _values[2] = 0.01;\n }\n onChange({\n h: Number(_values[0]),\n s: Number(_values[1]),\n v: Number(_values[2]),\n source: 'hsv'\n }, e);\n }\n } else if (data.hsl) {\n var _values2 = data.hsl.split(',');\n if (color.isvalidColorString(data.hsl, 'hsl')) {\n _values2[2] = _values2[2].replace('%', '');\n _values2[1] = _values2[1].replace('%', '');\n _values2[0] = _values2[0].replace('°', '');\n if (hsvValue[1] == 1) {\n hsvValue[1] = 0.01;\n } else if (hsvValue[2] == 1) {\n hsvValue[2] = 0.01;\n }\n onChange({\n h: Number(_values2[0]),\n s: Number(_values2[1]),\n v: Number(_values2[2]),\n source: 'hsl'\n }, e);\n }\n }\n };\n\n var styles = reactCSS({\n 'default': {\n wrap: {\n display: 'flex',\n height: '100px',\n marginTop: '4px'\n },\n fields: {\n width: '100%'\n },\n column: {\n paddingTop: '10px',\n display: 'flex',\n justifyContent: 'space-between'\n },\n double: {\n padding: '0px 4.4px',\n boxSizing: 'border-box'\n },\n input: {\n width: '100%',\n height: '38px',\n boxSizing: 'border-box',\n padding: '4px 10% 3px',\n textAlign: 'center',\n border: '1px solid #dadce0',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n input2: {\n height: '38px',\n width: '100%',\n border: '1px solid #dadce0',\n boxSizing: 'border-box',\n fontSize: '11px',\n textTransform: 'lowercase',\n borderRadius: '5px',\n outline: 'none',\n paddingLeft: '10px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label: {\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '35px',\n top: '-6px',\n left: '0',\n right: '0',\n marginLeft: 'auto',\n marginRight: 'auto',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n label2: {\n left: '10px',\n textAlign: 'center',\n fontSize: '12px',\n background: '#fff',\n position: 'absolute',\n textTransform: 'uppercase',\n color: '#3c4043',\n width: '32px',\n top: '-6px',\n fontFamily: 'Roboto,Arial,sans-serif'\n },\n single: {\n flexGrow: '1',\n margin: '0px 4.4px'\n }\n }\n });\n\n var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b;\n var hslValue = Math.round(hsl.h) + '\\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%';\n var hsvValue = Math.round(hsv.h) + '\\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%';\n\n return React.createElement(\n 'div',\n { style: styles.wrap, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.fields },\n React.createElement(\n 'div',\n { style: styles.double },\n React.createElement(EditableInput, {\n style: { input: styles.input, label: styles.label },\n label: 'hex',\n value: hex,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.column },\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'rgb',\n value: rgbValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsv',\n value: hsvValue,\n onChange: handleChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.single },\n React.createElement(EditableInput, {\n style: { input: styles.input2, label: styles.label2 },\n label: 'hsl',\n value: hslValue,\n onChange: handleChange\n })\n )\n )\n )\n );\n};\n\nexport default GoogleFields;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport reactCSS from 'reactcss';\nimport merge from 'lodash-es/merge';\n\nimport { ColorWrap, Saturation, Hue } from '../common';\nimport GooglePointerCircle from './GooglePointerCircle';\nimport GooglePointer from './GooglePointer';\nimport GoogleFields from './GoogleFields';\n\nexport var Google = function Google(_ref) {\n var width = _ref.width,\n onChange = _ref.onChange,\n rgb = _ref.rgb,\n hsl = _ref.hsl,\n hsv = _ref.hsv,\n hex = _ref.hex,\n header = _ref.header,\n _ref$styles = _ref.styles,\n passedStyles = _ref$styles === undefined ? {} : _ref$styles,\n _ref$className = _ref.className,\n className = _ref$className === undefined ? '' : _ref$className;\n\n var styles = reactCSS(merge({\n 'default': {\n picker: {\n width: width,\n background: '#fff',\n border: '1px solid #dfe1e5',\n boxSizing: 'initial',\n display: 'flex',\n flexWrap: 'wrap',\n borderRadius: '8px 8px 0px 0px'\n },\n head: {\n height: '57px',\n width: '100%',\n paddingTop: '16px',\n paddingBottom: '16px',\n paddingLeft: '16px',\n fontSize: '20px',\n boxSizing: 'border-box',\n fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif'\n },\n saturation: {\n width: '70%',\n padding: '0px',\n position: 'relative',\n overflow: 'hidden'\n },\n swatch: {\n width: '30%',\n height: '228px',\n padding: '0px',\n background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)',\n position: 'relative',\n overflow: 'hidden'\n },\n body: {\n margin: 'auto',\n width: '95%'\n },\n controls: {\n display: 'flex',\n boxSizing: 'border-box',\n height: '52px',\n paddingTop: '22px'\n },\n color: {\n width: '32px'\n },\n hue: {\n height: '8px',\n position: 'relative',\n margin: '0px 16px 0px 16px',\n width: '100%'\n },\n Hue: {\n radius: '2px'\n }\n }\n }, passedStyles));\n return React.createElement(\n 'div',\n { style: styles.picker, className: 'google-picker ' + className },\n React.createElement(\n 'div',\n { style: styles.head },\n header\n ),\n React.createElement('div', { style: styles.swatch }),\n React.createElement(\n 'div',\n { style: styles.saturation },\n React.createElement(Saturation, {\n hsl: hsl,\n hsv: hsv,\n pointer: GooglePointerCircle,\n onChange: onChange\n })\n ),\n React.createElement(\n 'div',\n { style: styles.body },\n React.createElement(\n 'div',\n { style: styles.controls, className: 'flexbox-fix' },\n React.createElement(\n 'div',\n { style: styles.hue },\n React.createElement(Hue, {\n style: styles.Hue,\n hsl: hsl,\n radius: '4px',\n pointer: GooglePointer,\n onChange: onChange\n })\n )\n ),\n React.createElement(GoogleFields, {\n rgb: rgb,\n hsl: hsl,\n hex: hex,\n hsv: hsv,\n onChange: onChange\n })\n )\n );\n};\n\nGoogle.propTypes = {\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n styles: PropTypes.object,\n header: PropTypes.string\n\n};\n\nGoogle.defaultProps = {\n width: 652,\n styles: {},\n header: 'Color picker'\n};\n\nexport default ColorWrap(Google);","import { useRef } from \"react\";\n\n// Saves incoming handler to the ref in order to avoid \"useCallback hell\"\nexport function useEventCallback(handler?: (value: T) => void): (value: T) => void {\n const callbackRef = useRef(handler);\n const fn = useRef((value: T) => {\n callbackRef.current && callbackRef.current(value);\n });\n callbackRef.current = handler;\n\n return fn.current;\n}\n","// Clamps a value between an upper and lower bound.\n// We use ternary operators because it makes the minified code\n// 2 times shorter then `Math.min(Math.max(a,b),c)`\nexport const clamp = (number: number, min = 0, max = 1): number => {\n return number > max ? max : number < min ? min : number;\n};\n","import React, { useRef, useMemo, useEffect } from \"react\";\n\nimport { useEventCallback } from \"../../hooks/useEventCallback\";\nimport { clamp } from \"../../utils/clamp\";\n\nexport interface Interaction {\n left: number;\n top: number;\n}\n\n// Check if an event was triggered by touch\nconst isTouch = (event: MouseEvent | TouchEvent): event is TouchEvent => \"touches\" in event;\n\n// Finds a proper touch point by its identifier\nconst getTouchPoint = (touches: TouchList, touchId: null | number): Touch => {\n for (let i = 0; i < touches.length; i++) {\n if (touches[i].identifier === touchId) return touches[i];\n }\n return touches[0];\n};\n\n// Finds the proper window object to fix iframe embedding issues\nconst getParentWindow = (node?: HTMLDivElement | null): Window => {\n return (node && node.ownerDocument.defaultView) || self;\n};\n\n// Returns a relative position of the pointer inside the node's bounding box\nconst getRelativePosition = (\n node: HTMLDivElement,\n event: MouseEvent | TouchEvent,\n touchId: null | number\n): Interaction => {\n const rect = node.getBoundingClientRect();\n\n // Get user's pointer position from `touches` array if it's a `TouchEvent`\n const pointer = isTouch(event) ? getTouchPoint(event.touches, touchId) : (event as MouseEvent);\n\n return {\n left: clamp((pointer.pageX - (rect.left + getParentWindow(node).pageXOffset)) / rect.width),\n top: clamp((pointer.pageY - (rect.top + getParentWindow(node).pageYOffset)) / rect.height),\n };\n};\n\n// Browsers introduced an intervention, making touch events passive by default.\n// This workaround removes `preventDefault` call from the touch handlers.\n// https://github.com/facebook/react/issues/19651\nconst preventDefaultMove = (event: MouseEvent | TouchEvent): void => {\n !isTouch(event) && event.preventDefault();\n};\n\n// Prevent mobile browsers from handling mouse events (conflicting with touch ones).\n// If we detected a touch interaction before, we prefer reacting to touch events only.\nconst isInvalid = (event: MouseEvent | TouchEvent, hasTouch: boolean): boolean => {\n return hasTouch && !isTouch(event);\n};\n\ninterface Props {\n onMove: (interaction: Interaction) => void;\n onKey: (offset: Interaction) => void;\n children: React.ReactNode;\n}\n\nconst InteractiveBase = ({ onMove, onKey, ...rest }: Props) => {\n const container = useRef(null);\n const onMoveCallback = useEventCallback(onMove);\n const onKeyCallback = useEventCallback(onKey);\n const touchId = useRef(null);\n const hasTouch = useRef(false);\n\n const [handleMoveStart, handleKeyDown, toggleDocumentEvents] = useMemo(() => {\n const handleMoveStart = ({ nativeEvent }: React.MouseEvent | React.TouchEvent) => {\n const el = container.current;\n if (!el) return;\n\n // Prevent text selection\n preventDefaultMove(nativeEvent);\n\n if (isInvalid(nativeEvent, hasTouch.current) || !el) return;\n\n if (isTouch(nativeEvent)) {\n hasTouch.current = true;\n const changedTouches = nativeEvent.changedTouches || [];\n if (changedTouches.length) touchId.current = changedTouches[0].identifier;\n }\n\n el.focus();\n onMoveCallback(getRelativePosition(el, nativeEvent, touchId.current));\n toggleDocumentEvents(true);\n };\n\n const handleMove = (event: MouseEvent | TouchEvent) => {\n // Prevent text selection\n preventDefaultMove(event);\n\n // If user moves the pointer outside of the window or iframe bounds and release it there,\n // `mouseup`/`touchend` won't be fired. In order to stop the picker from following the cursor\n // after the user has moved the mouse/finger back to the document, we check `event.buttons`\n // and `event.touches`. It allows us to detect that the user is just moving his pointer\n // without pressing it down\n const isDown = isTouch(event) ? event.touches.length > 0 : event.buttons > 0;\n\n if (isDown && container.current) {\n onMoveCallback(getRelativePosition(container.current, event, touchId.current));\n } else {\n toggleDocumentEvents(false);\n }\n };\n\n const handleMoveEnd = () => toggleDocumentEvents(false);\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const keyCode = event.which || event.keyCode;\n\n // Ignore all keys except arrow ones\n if (keyCode < 37 || keyCode > 40) return;\n // Do not scroll page by arrow keys when document is focused on the element\n event.preventDefault();\n // Send relative offset to the parent component.\n // We use codes (37←, 38↑, 39→, 40↓) instead of keys ('ArrowRight', 'ArrowDown', etc)\n // to reduce the size of the library\n onKeyCallback({\n left: keyCode === 39 ? 0.05 : keyCode === 37 ? -0.05 : 0,\n top: keyCode === 40 ? 0.05 : keyCode === 38 ? -0.05 : 0,\n });\n };\n\n function toggleDocumentEvents(state?: boolean) {\n const touch = hasTouch.current;\n const el = container.current;\n const parentWindow = getParentWindow(el);\n\n // Add or remove additional pointer event listeners\n const toggleEvent = state ? parentWindow.addEventListener : parentWindow.removeEventListener;\n toggleEvent(touch ? \"touchmove\" : \"mousemove\", handleMove);\n toggleEvent(touch ? \"touchend\" : \"mouseup\", handleMoveEnd);\n }\n\n return [handleMoveStart, handleKeyDown, toggleDocumentEvents];\n }, [onKeyCallback, onMoveCallback]);\n\n // Remove window event listeners before unmounting\n useEffect(() => toggleDocumentEvents, [toggleDocumentEvents]);\n\n return (\n \n );\n};\n\nexport const Interactive = React.memo(InteractiveBase);\n","export const formatClassName = (names: unknown[]): string => names.filter(Boolean).join(\" \");\n","import React from \"react\";\nimport { formatClassName } from \"../../utils/format\";\n\ninterface Props {\n className?: string;\n top?: number;\n left: number;\n color: string;\n}\n\nexport const Pointer = ({ className, color, left, top = 0.5 }: Props): JSX.Element => {\n const nodeClassName = formatClassName([\"react-colorful__pointer\", className]);\n\n const style = {\n top: `${top * 100}%`,\n left: `${left * 100}%`,\n };\n\n return (\n
\n
\n
\n );\n};\n","export const round = (number: number, digits = 0, base = Math.pow(10, digits)): number => {\n return Math.round(base * number) / base;\n};\n","import { round } from \"./round\";\nimport { RgbaColor, RgbColor, HslaColor, HslColor, HsvaColor, HsvColor } from \"../types\";\n\n/**\n * Valid CSS units.\n * https://developer.mozilla.org/en-US/docs/Web/CSS/angle\n */\nconst angleUnits: Record = {\n grad: 360 / 400,\n turn: 360,\n rad: 360 / (Math.PI * 2),\n};\n\nexport const hexToHsva = (hex: string): HsvaColor => rgbaToHsva(hexToRgba(hex));\n\nexport const hexToRgba = (hex: string): RgbaColor => {\n if (hex[0] === \"#\") hex = hex.substr(1);\n\n if (hex.length < 6) {\n return {\n r: parseInt(hex[0] + hex[0], 16),\n g: parseInt(hex[1] + hex[1], 16),\n b: parseInt(hex[2] + hex[2], 16),\n a: 1,\n };\n }\n\n return {\n r: parseInt(hex.substr(0, 2), 16),\n g: parseInt(hex.substr(2, 2), 16),\n b: parseInt(hex.substr(4, 2), 16),\n a: 1,\n };\n};\n\nexport const parseHue = (value: string, unit = \"deg\"): number => {\n return Number(value) * (angleUnits[unit] || 1);\n};\n\nexport const hslaStringToHsva = (hslString: string): HsvaColor => {\n const matcher = /hsla?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n const match = matcher.exec(hslString);\n\n if (!match) return { h: 0, s: 0, v: 0, a: 1 };\n\n return hslaToHsva({\n h: parseHue(match[1], match[2]),\n s: Number(match[3]),\n l: Number(match[4]),\n a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1),\n });\n};\n\nexport const hslStringToHsva = hslaStringToHsva;\n\nexport const hslaToHsva = ({ h, s, l, a }: HslaColor): HsvaColor => {\n s *= (l < 50 ? l : 100 - l) / 100;\n\n return {\n h: h,\n s: s > 0 ? ((2 * s) / (l + s)) * 100 : 0,\n v: l + s,\n a,\n };\n};\n\nexport const hsvaToHex = (hsva: HsvaColor): string => rgbaToHex(hsvaToRgba(hsva));\n\nexport const hsvaToHsla = ({ h, s, v, a }: HsvaColor): HslaColor => {\n const hh = ((200 - s) * v) / 100;\n\n return {\n h: round(h),\n s: round(hh > 0 && hh < 200 ? ((s * v) / 100 / (hh <= 100 ? hh : 200 - hh)) * 100 : 0),\n l: round(hh / 2),\n a: round(a, 2),\n };\n};\n\nexport const hsvaToHslString = (hsva: HsvaColor): string => {\n const { h, s, l } = hsvaToHsla(hsva);\n return `hsl(${h}, ${s}%, ${l}%)`;\n};\n\nexport const hsvaToHsvString = (hsva: HsvaColor): string => {\n const { h, s, v } = roundHsva(hsva);\n return `hsv(${h}, ${s}%, ${v}%)`;\n};\n\nexport const hsvaToHsvaString = (hsva: HsvaColor): string => {\n const { h, s, v, a } = roundHsva(hsva);\n return `hsva(${h}, ${s}%, ${v}%, ${a})`;\n};\n\nexport const hsvaToHslaString = (hsva: HsvaColor): string => {\n const { h, s, l, a } = hsvaToHsla(hsva);\n return `hsla(${h}, ${s}%, ${l}%, ${a})`;\n};\n\nexport const hsvaToRgba = ({ h, s, v, a }: HsvaColor): RgbaColor => {\n h = (h / 360) * 6;\n s = s / 100;\n v = v / 100;\n\n const hh = Math.floor(h),\n b = v * (1 - s),\n c = v * (1 - (h - hh) * s),\n d = v * (1 - (1 - h + hh) * s),\n module = hh % 6;\n\n return {\n r: round([v, c, b, b, d, v][module] * 255),\n g: round([d, v, v, c, b, b][module] * 255),\n b: round([b, b, d, v, v, c][module] * 255),\n a: round(a, 2),\n };\n};\n\nexport const hsvaToRgbString = (hsva: HsvaColor): string => {\n const { r, g, b } = hsvaToRgba(hsva);\n return `rgb(${r}, ${g}, ${b})`;\n};\n\nexport const hsvaToRgbaString = (hsva: HsvaColor): string => {\n const { r, g, b, a } = hsvaToRgba(hsva);\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n};\n\nexport const hsvaStringToHsva = (hsvString: string): HsvaColor => {\n const matcher = /hsva?\\(?\\s*(-?\\d*\\.?\\d+)(deg|rad|grad|turn)?[,\\s]+(-?\\d*\\.?\\d+)%?[,\\s]+(-?\\d*\\.?\\d+)%?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n const match = matcher.exec(hsvString);\n\n if (!match) return { h: 0, s: 0, v: 0, a: 1 };\n\n return roundHsva({\n h: parseHue(match[1], match[2]),\n s: Number(match[3]),\n v: Number(match[4]),\n a: match[5] === undefined ? 1 : Number(match[5]) / (match[6] ? 100 : 1),\n });\n};\n\nexport const hsvStringToHsva = hsvaStringToHsva;\n\nexport const rgbaStringToHsva = (rgbaString: string): HsvaColor => {\n const matcher = /rgba?\\(?\\s*(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?[,\\s]+(-?\\d*\\.?\\d+)(%)?,?\\s*[/\\s]*(-?\\d*\\.?\\d+)?(%)?\\s*\\)?/i;\n const match = matcher.exec(rgbaString);\n\n if (!match) return { h: 0, s: 0, v: 0, a: 1 };\n\n return rgbaToHsva({\n r: Number(match[1]) / (match[2] ? 100 / 255 : 1),\n g: Number(match[3]) / (match[4] ? 100 / 255 : 1),\n b: Number(match[5]) / (match[6] ? 100 / 255 : 1),\n a: match[7] === undefined ? 1 : Number(match[7]) / (match[8] ? 100 : 1),\n });\n};\n\nexport const rgbStringToHsva = rgbaStringToHsva;\n\nconst format = (number: number) => {\n const hex = number.toString(16);\n return hex.length < 2 ? \"0\" + hex : hex;\n};\n\nexport const rgbaToHex = ({ r, g, b }: RgbaColor): string => {\n return \"#\" + format(r) + format(g) + format(b);\n};\n\nexport const rgbaToHsva = ({ r, g, b, a }: RgbaColor): HsvaColor => {\n const max = Math.max(r, g, b);\n const delta = max - Math.min(r, g, b);\n\n // prettier-ignore\n const hh = delta\n ? max === r\n ? (g - b) / delta\n : max === g\n ? 2 + (b - r) / delta\n : 4 + (r - g) / delta\n : 0;\n\n return {\n h: round(60 * (hh < 0 ? hh + 6 : hh)),\n s: round(max ? (delta / max) * 100 : 0),\n v: round((max / 255) * 100),\n a,\n };\n};\n\nexport const roundHsva = (hsva: HsvaColor): HsvaColor => ({\n h: round(hsva.h),\n s: round(hsva.s),\n v: round(hsva.v),\n a: round(hsva.a, 2),\n});\n\nexport const rgbaToRgb = ({ r, g, b }: RgbaColor): RgbColor => ({ r, g, b });\n\nexport const hslaToHsl = ({ h, s, l }: HslaColor): HslColor => ({ h, s, l });\n\nexport const hsvaToHsv = (hsva: HsvaColor): HsvColor => {\n const { h, s, v } = roundHsva(hsva);\n return { h, s, v };\n};\n","import React from \"react\";\n\nimport { Interactive, Interaction } from \"./Interactive\";\nimport { Pointer } from \"./Pointer\";\n\nimport { hsvaToHslString } from \"../../utils/convert\";\nimport { formatClassName } from \"../../utils/format\";\nimport { clamp } from \"../../utils/clamp\";\nimport { round } from \"../../utils/round\";\n\ninterface Props {\n className?: string;\n hue: number;\n onChange: (newHue: { h: number }) => void;\n}\n\nconst HueBase = ({ className, hue, onChange }: Props) => {\n const handleMove = (interaction: Interaction) => {\n onChange({ h: 360 * interaction.left });\n };\n\n const handleKey = (offset: Interaction) => {\n // Hue measured in degrees of the color circle ranging from 0 to 360\n onChange({\n h: clamp(hue + offset.left * 360, 0, 360),\n });\n };\n\n const nodeClassName = formatClassName([\"react-colorful__hue\", className]);\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport const Hue = React.memo(HueBase);\n","import React from \"react\";\nimport { Interactive, Interaction } from \"./Interactive\";\nimport { Pointer } from \"./Pointer\";\nimport { HsvaColor } from \"../../types\";\nimport { hsvaToHslString } from \"../../utils/convert\";\nimport { clamp } from \"../../utils/clamp\";\nimport { round } from \"../../utils/round\";\n\ninterface Props {\n hsva: HsvaColor;\n onChange: (newColor: { s: number; v: number }) => void;\n}\n\nconst SaturationBase = ({ hsva, onChange }: Props) => {\n const handleMove = (interaction: Interaction) => {\n onChange({\n s: interaction.left * 100,\n v: 100 - interaction.top * 100,\n });\n };\n\n const handleKey = (offset: Interaction) => {\n // Saturation and brightness always fit into [0, 100] range\n onChange({\n s: clamp(hsva.s + offset.left * 100, 0, 100),\n v: clamp(hsva.v - offset.top * 100, 0, 100),\n });\n };\n\n const containerStyle = {\n backgroundColor: hsvaToHslString({ h: hsva.h, s: 100, v: 100, a: 1 }),\n };\n\n return (\n
\n \n \n \n
\n );\n};\n\nexport const Saturation = React.memo(SaturationBase);\n","import { hexToRgba } from \"./convert\";\nimport { ObjectColor } from \"../types\";\n\nexport const equalColorObjects = (first: ObjectColor, second: ObjectColor): boolean => {\n if (first === second) return true;\n\n for (const prop in first) {\n // The following allows for a type-safe calling of this function (first & second have to be HSL, HSV, or RGB)\n // with type-unsafe iterating over object keys. TS does not allow this without an index (`[key: string]: number`)\n // on an object to define how iteration is normally done. To ensure extra keys are not allowed on our types,\n // we must cast our object to unknown (as RGB demands `r` be a key, while `Record` does not care if\n // there is or not), and then as a type TS can iterate over.\n if (\n ((first as unknown) as Record)[prop] !==\n ((second as unknown) as Record)[prop]\n )\n return false;\n }\n\n return true;\n};\n\nexport const equalColorString = (first: string, second: string): boolean => {\n return first.replace(/\\s/g, \"\") === second.replace(/\\s/g, \"\");\n};\n\nexport const equalHex = (first: string, second: string): boolean => {\n if (first.toLowerCase() === second.toLowerCase()) return true;\n\n // To compare colors like `#FFF` and `ffffff` we convert them into RGB objects\n return equalColorObjects(hexToRgba(first), hexToRgba(second));\n};\n","import { useState, useEffect, useCallback, useRef } from \"react\";\nimport { ColorModel, AnyColor, HsvaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { useEventCallback } from \"./useEventCallback\";\n\nexport function useColorManipulation(\n colorModel: ColorModel,\n color: T,\n onChange?: (color: T) => void\n): [HsvaColor, (color: Partial) => void] {\n // Save onChange callback in the ref for avoiding \"useCallback hell\"\n const onChangeCallback = useEventCallback(onChange);\n\n // No matter which color model is used (HEX, RGB(A) or HSL(A)),\n // all internal calculations are based on HSVA model\n const [hsva, updateHsva] = useState(() => colorModel.toHsva(color));\n\n // By using this ref we're able to prevent extra updates\n // and the effects recursion during the color conversion\n const cache = useRef({ color, hsva });\n\n // Update local HSVA-value if `color` property value is changed,\n // but only if that's not the same color that we just sent to the parent\n useEffect(() => {\n if (!colorModel.equal(color, cache.current.color)) {\n const newHsva = colorModel.toHsva(color);\n cache.current = { hsva: newHsva, color };\n updateHsva(newHsva);\n }\n }, [color, colorModel]);\n\n // Trigger `onChange` callback only if an updated color is different from cached one;\n // save the new color to the ref to prevent unnecessary updates\n useEffect(() => {\n let newColor;\n if (\n !equalColorObjects(hsva, cache.current.hsva) &&\n !colorModel.equal((newColor = colorModel.fromHsva(hsva)), cache.current.color)\n ) {\n cache.current = { hsva, color: newColor };\n onChangeCallback(newColor);\n }\n }, [hsva, colorModel, onChangeCallback]);\n\n // Merge the current HSVA color object with updated params.\n // For example, when a child component sends `h` or `s` only\n const handleChange = useCallback((params: Partial) => {\n updateHsva((current) => Object.assign({}, current, params));\n }, []);\n\n return [hsva, handleChange];\n}\n","declare const __webpack_nonce__: string | undefined;\nlet nonce: string | undefined;\n\n/**\n * Returns a nonce hash included by Webpack or the one defined manually by developer.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce\n * https://webpack.js.org/guides/csp/\n */\nexport const getNonce = (): string | undefined => {\n if (nonce) return nonce;\n if (typeof __webpack_nonce__ !== \"undefined\") return __webpack_nonce__;\n return undefined;\n};\n\n/**\n * Signs the style tag with a base64-encoded string (nonce) to conforms to Content Security Policies.\n * This function has to be invoked before any picker is rendered if you aren't using Webpack for CSP.\n */\nexport const setNonce = (hash: string): void => {\n nonce = hash;\n};\n","import { useLayoutEffect, useEffect } from \"react\";\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nexport const useIsomorphicLayoutEffect =\n typeof window !== \"undefined\" ? useLayoutEffect : useEffect;\n","import { RefObject } from \"react\";\n\nimport { useIsomorphicLayoutEffect } from \"./useIsomorphicLayoutEffect\";\nimport { getNonce } from \"../utils/nonce\";\n\n// Bundler is configured to load this as a processed minified CSS-string\nimport styles from \"../css/styles.css\";\n\nconst styleElementMap: Map = new Map();\n\n/**\n * Injects CSS code into the document's \n */\nexport const useStyleSheet = (nodeRef: RefObject): void => {\n useIsomorphicLayoutEffect(() => {\n const parentDocument = nodeRef.current ? nodeRef.current.ownerDocument : document;\n\n if (typeof parentDocument !== \"undefined\" && !styleElementMap.has(parentDocument)) {\n const styleElement = parentDocument.createElement(\"style\");\n styleElement.innerHTML = styles;\n styleElementMap.set(parentDocument, styleElement);\n\n // Conform to CSP rules by setting `nonce` attribute to the inline styles\n const nonce = getNonce();\n if (nonce) styleElement.setAttribute(\"nonce\", nonce);\n\n parentDocument.head.appendChild(styleElement);\n }\n }, []);\n};\n","import React, { useRef } from \"react\";\n\nimport { Hue } from \"./Hue\";\nimport { Saturation } from \"./Saturation\";\n\nimport { ColorModel, ColorPickerBaseProps, AnyColor } from \"../../types\";\nimport { useColorManipulation } from \"../../hooks/useColorManipulation\";\nimport { useStyleSheet } from \"../../hooks/useStyleSheet\";\nimport { formatClassName } from \"../../utils/format\";\n\ninterface Props extends Partial> {\n colorModel: ColorModel;\n}\n\nexport const ColorPicker = ({\n className,\n colorModel,\n color = colorModel.defaultColor,\n onChange,\n ...rest\n}: Props): JSX.Element => {\n const nodeRef = useRef(null);\n useStyleSheet(nodeRef);\n\n const [hsva, updateHsva] = useColorManipulation(colorModel, color, onChange);\n\n const nodeClassName = formatClassName([\"react-colorful\", className]);\n\n return (\n
\n \n \n
\n );\n};\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalHex } from \"../utils/compare\";\nimport { hexToHsva, hsvaToHex } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"000\",\n toHsva: hexToHsva,\n fromHsva: hsvaToHex,\n equal: equalHex,\n};\n\nexport const HexColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { Interactive, Interaction } from \"./Interactive\";\nimport { Pointer } from \"./Pointer\";\n\nimport { hsvaToHslaString } from \"../../utils/convert\";\nimport { formatClassName } from \"../../utils/format\";\nimport { clamp } from \"../../utils/clamp\";\nimport { round } from \"../../utils/round\";\nimport { HsvaColor } from \"../../types\";\n\ninterface Props {\n className?: string;\n hsva: HsvaColor;\n onChange: (newAlpha: { a: number }) => void;\n}\n\nexport const Alpha = ({ className, hsva, onChange }: Props): JSX.Element => {\n const handleMove = (interaction: Interaction) => {\n onChange({ a: interaction.left });\n };\n\n const handleKey = (offset: Interaction) => {\n // Alpha always fit into [0, 1] range\n onChange({ a: clamp(hsva.a + offset.left) });\n };\n\n // We use `Object.assign` instead of the spread operator\n // to prevent adding the polyfill (about 150 bytes gzipped)\n const colorFrom = hsvaToHslaString(Object.assign({}, hsva, { a: 0 }));\n const colorTo = hsvaToHslaString(Object.assign({}, hsva, { a: 1 }));\n\n const gradientStyle = {\n backgroundImage: `linear-gradient(90deg, ${colorFrom}, ${colorTo})`,\n };\n\n const nodeClassName = formatClassName([\"react-colorful__alpha\", className]);\n\n return (\n
\n
\n \n \n \n
\n );\n};\n","import React, { useRef } from \"react\";\n\nimport { Hue } from \"./Hue\";\nimport { Saturation } from \"./Saturation\";\nimport { Alpha } from \"./Alpha\";\n\nimport { ColorModel, ColorPickerBaseProps, AnyColor } from \"../../types\";\nimport { useColorManipulation } from \"../../hooks/useColorManipulation\";\nimport { useStyleSheet } from \"../../hooks/useStyleSheet\";\nimport { formatClassName } from \"../../utils/format\";\n\ninterface Props extends Partial> {\n colorModel: ColorModel;\n}\n\nexport const AlphaColorPicker = ({\n className,\n colorModel,\n color = colorModel.defaultColor,\n onChange,\n ...rest\n}: Props): JSX.Element => {\n const nodeRef = useRef(null);\n useStyleSheet(nodeRef);\n\n const [hsva, updateHsva] = useColorManipulation(colorModel, color, onChange);\n\n const nodeClassName = formatClassName([\"react-colorful\", className]);\n\n return (\n
\n \n \n \n
\n );\n};\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HslaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { hslaToHsva, hsvaToHsla } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, l: 0, a: 1 },\n toHsva: hslaToHsva,\n fromHsva: hsvaToHsla,\n equal: equalColorObjects,\n};\n\nexport const HslaColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hslaStringToHsva, hsvaToHslaString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsla(0, 0%, 0%, 1)\",\n toHsva: hslaStringToHsva,\n fromHsva: hsvaToHslaString,\n equal: equalColorString,\n};\n\nexport const HslaStringColorPicker = (\n props: Partial>\n): JSX.Element => ;\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HslColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { hslaToHsva, hsvaToHsla, hslaToHsl } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, l: 0 },\n toHsva: ({ h, s, l }) => hslaToHsva({ h, s, l, a: 1 }),\n fromHsva: (hsva) => hslaToHsl(hsvaToHsla(hsva)),\n equal: equalColorObjects,\n};\n\nexport const HslColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hslStringToHsva, hsvaToHslString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsl(0, 0%, 0%)\",\n toHsva: hslStringToHsva,\n fromHsva: hsvaToHslString,\n equal: equalColorString,\n};\n\nexport const HslStringColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HsvaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { roundHsva } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, v: 0, a: 1 },\n toHsva: (hsva) => hsva,\n fromHsva: roundHsva,\n equal: equalColorObjects,\n};\n\nexport const HsvaColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hsvaStringToHsva, hsvaToHsvaString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsva(0, 0%, 0%, 1)\",\n toHsva: hsvaStringToHsva,\n fromHsva: hsvaToHsvaString,\n equal: equalColorString,\n};\n\nexport const HsvaStringColorPicker = (\n props: Partial>\n): JSX.Element => ;\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, HsvColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { hsvaToHsv } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { h: 0, s: 0, v: 0 },\n toHsva: ({ h, s, v }) => ({ h, s, v, a: 1 }),\n fromHsva: hsvaToHsv,\n equal: equalColorObjects,\n};\n\nexport const HsvColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { hsvStringToHsva, hsvaToHsvString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"hsv(0, 0%, 0%)\",\n toHsva: hsvStringToHsva,\n fromHsva: hsvaToHsvString,\n equal: equalColorString,\n};\n\nexport const HsvStringColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, RgbaColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { rgbaToHsva, hsvaToRgba } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { r: 0, g: 0, b: 0, a: 1 },\n toHsva: rgbaToHsva,\n fromHsva: hsvaToRgba,\n equal: equalColorObjects,\n};\n\nexport const RgbaColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { AlphaColorPicker } from \"./common/AlphaColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { rgbaStringToHsva, hsvaToRgbaString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"rgba(0, 0, 0, 1)\",\n toHsva: rgbaStringToHsva,\n fromHsva: hsvaToRgbaString,\n equal: equalColorString,\n};\n\nexport const RgbaStringColorPicker = (\n props: Partial>\n): JSX.Element => ;\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps, RgbColor } from \"../types\";\nimport { equalColorObjects } from \"../utils/compare\";\nimport { rgbaToHsva, hsvaToRgba, rgbaToRgb } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: { r: 0, g: 0, b: 0 },\n toHsva: ({ r, g, b }) => rgbaToHsva({ r, g, b, a: 1 }),\n fromHsva: (hsva) => rgbaToRgb(hsvaToRgba(hsva)),\n equal: equalColorObjects,\n};\n\nexport const RgbColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","import React from \"react\";\n\nimport { ColorPicker } from \"./common/ColorPicker\";\nimport { ColorModel, ColorPickerBaseProps } from \"../types\";\nimport { equalColorString } from \"../utils/compare\";\nimport { rgbStringToHsva, hsvaToRgbString } from \"../utils/convert\";\n\nconst colorModel: ColorModel = {\n defaultColor: \"rgb(0, 0, 0)\",\n toHsva: rgbStringToHsva,\n fromHsva: hsvaToRgbString,\n equal: equalColorString,\n};\n\nexport const RgbStringColorPicker = (props: Partial>): JSX.Element => (\n \n);\n","const matcher = /^#?([0-9A-F]{3,8})$/i;\n\nexport const validHex = (value: string, alpha?: boolean): boolean => {\n const match = matcher.exec(value);\n const length = match ? match[1].length : 0;\n\n return (\n length === 3 || // '#rgb' format\n length === 6 || // '#rrggbb' format\n (!!alpha && length === 4) || // '#rgba' format\n (!!alpha && length === 8) // '#rrggbbaa' format\n );\n};\n","import React, { useState, useEffect, useCallback } from \"react\";\n\nimport { useEventCallback } from \"../../hooks/useEventCallback\";\nimport { ColorInputBaseProps } from \"../../types\";\n\ninterface Props extends ColorInputBaseProps {\n /** Blocks typing invalid characters and limits string length */\n escape: (value: string) => string;\n /** Checks that value is valid color string */\n validate: (value: string) => boolean;\n /** Processes value before displaying it in the input */\n format?: (value: string) => string;\n /** Processes value before sending it in `onChange` */\n process?: (value: string) => string;\n}\n\nexport const ColorInput = (props: Props): JSX.Element => {\n const { color = \"\", onChange, onBlur, escape, validate, format, process, ...rest } = props;\n const [value, setValue] = useState(() => escape(color));\n const onChangeCallback = useEventCallback(onChange);\n const onBlurCallback = useEventCallback>(onBlur);\n\n // Trigger `onChange` handler only if the input value is a valid color\n const handleChange = useCallback(\n (e: React.ChangeEvent) => {\n const inputValue = escape(e.target.value);\n setValue(inputValue);\n if (validate(inputValue)) onChangeCallback(process ? process(inputValue) : inputValue);\n },\n [escape, process, validate, onChangeCallback]\n );\n\n // Take the color from props if the last typed color (in local state) is not valid\n const handleBlur = useCallback(\n (e: React.FocusEvent) => {\n if (!validate(e.target.value)) setValue(escape(color));\n onBlurCallback(e);\n },\n [color, escape, validate, onBlurCallback]\n );\n\n // Update the local state when `color` property value is changed\n useEffect(() => {\n setValue(escape(color));\n }, [color, escape]);\n\n return (\n \n );\n};\n","import React, { useCallback } from \"react\";\nimport { ColorInputBaseProps } from \"../types\";\n\nimport { validHex } from \"../utils/validate\";\nimport { ColorInput } from \"./common/ColorInput\";\n\ninterface HexColorInputProps extends ColorInputBaseProps {\n /** Enables `#` prefix displaying */\n prefixed?: boolean;\n /** Allows `#rgba` and `#rrggbbaa` color formats */\n alpha?: boolean;\n}\n\n/** Adds \"#\" symbol to the beginning of the string */\nconst prefix = (value: string) => \"#\" + value;\n\nexport const HexColorInput = (props: HexColorInputProps): JSX.Element => {\n const { prefixed, alpha, ...rest } = props;\n\n /** Escapes all non-hexadecimal characters including \"#\" */\n const escape = useCallback(\n (value: string) => value.replace(/([^0-9A-F]+)/gi, \"\").substr(0, alpha ? 8 : 6),\n [alpha]\n );\n\n /** Validates hexadecimal strings */\n const validate = useCallback((value: string) => validHex(value, alpha), [alpha]);\n\n return (\n \n );\n};\n","import React, { useRef, useEffect } from 'react';\nimport Cropper from 'cropperjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar applyDefaultOptions = function (cropper, options) {\r\n if (options === void 0) { options = {}; }\r\n var _a = options.enable, enable = _a === void 0 ? true : _a, _b = options.scaleX, scaleX = _b === void 0 ? 1 : _b, _c = options.scaleY, scaleY = _c === void 0 ? 1 : _c, _d = options.zoomTo, zoomTo = _d === void 0 ? 0 : _d, rotateTo = options.rotateTo;\r\n enable ? cropper.enable() : cropper.disable();\r\n cropper.scaleX(scaleX);\r\n cropper.scaleY(scaleY);\r\n rotateTo !== undefined && cropper.rotateTo(rotateTo);\r\n zoomTo > 0 && cropper.zoomTo(zoomTo);\r\n};\r\n/**\r\n * sourced from: https://itnext.io/reusing-the-ref-from-forwardref-with-react-hooks-4ce9df693dd\r\n */\r\nvar useCombinedRefs = function () {\r\n var refs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n refs[_i] = arguments[_i];\r\n }\r\n var targetRef = useRef(null);\r\n React.useEffect(function () {\r\n refs.forEach(function (ref) {\r\n if (!ref)\r\n return;\r\n if (typeof ref === 'function') {\r\n ref(targetRef.current);\r\n }\r\n else {\r\n ref.current = targetRef.current;\r\n }\r\n });\r\n }, [refs]);\r\n return targetRef;\r\n};\r\nvar ReactCropper = React.forwardRef(function (_a, ref) {\r\n var props = __rest(_a, []);\r\n var _b = props.dragMode, dragMode = _b === void 0 ? 'crop' : _b, src = props.src, style = props.style, className = props.className, crossOrigin = props.crossOrigin, scaleX = props.scaleX, scaleY = props.scaleY, enable = props.enable, zoomTo = props.zoomTo, rotateTo = props.rotateTo, _c = props.alt, alt = _c === void 0 ? 'picture' : _c, ready = props.ready, onInitialized = props.onInitialized, rest = __rest(props, [\"dragMode\", \"src\", \"style\", \"className\", \"crossOrigin\", \"scaleX\", \"scaleY\", \"enable\", \"zoomTo\", \"rotateTo\", \"alt\", \"ready\", \"onInitialized\"]);\r\n var defaultOptions = { scaleY: scaleY, scaleX: scaleX, enable: enable, zoomTo: zoomTo, rotateTo: rotateTo };\r\n var innerRef = useRef(null);\r\n var combinedRef = useCombinedRefs(ref, innerRef);\r\n /**\r\n * Invoke zoomTo method when cropper is set and zoomTo prop changes\r\n */\r\n useEffect(function () {\r\n var _a;\r\n if (((_a = combinedRef.current) === null || _a === void 0 ? void 0 : _a.cropper) && typeof zoomTo === 'number') {\r\n combinedRef.current.cropper.zoomTo(zoomTo);\r\n }\r\n }, [props.zoomTo]);\r\n /**\r\n * re-render when src changes\r\n */\r\n useEffect(function () {\r\n var _a;\r\n if (((_a = combinedRef.current) === null || _a === void 0 ? void 0 : _a.cropper) && typeof src !== 'undefined') {\r\n combinedRef.current.cropper.reset().clear().replace(src);\r\n }\r\n }, [src]);\r\n useEffect(function () {\r\n if (combinedRef.current !== null) {\r\n var cropper = new Cropper(combinedRef.current, __assign(__assign({ dragMode: dragMode }, rest), { ready: function (e) {\r\n if (e.currentTarget !== null) {\r\n applyDefaultOptions(e.currentTarget.cropper, defaultOptions);\r\n }\r\n ready && ready(e);\r\n } }));\r\n onInitialized && onInitialized(cropper);\r\n }\r\n /**\r\n * destroy cropper on un-mount\r\n */\r\n return function () {\r\n var _a, _b;\r\n (_b = (_a = combinedRef.current) === null || _a === void 0 ? void 0 : _a.cropper) === null || _b === void 0 ? void 0 : _b.destroy();\r\n };\r\n }, [combinedRef]);\r\n return (React.createElement(\"div\", { style: style, className: className },\r\n React.createElement(\"img\", { crossOrigin: crossOrigin, src: src, alt: alt, style: { opacity: 0, maxWidth: '100%' }, ref: combinedRef })));\r\n});\n\nexport default ReactCropper;\nexport { ReactCropper as Cropper };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.autoprefix = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar transforms = {\n borderRadius: function borderRadius(value) {\n return {\n msBorderRadius: value,\n MozBorderRadius: value,\n OBorderRadius: value,\n WebkitBorderRadius: value,\n borderRadius: value\n };\n },\n boxShadow: function boxShadow(value) {\n return {\n msBoxShadow: value,\n MozBoxShadow: value,\n OBoxShadow: value,\n WebkitBoxShadow: value,\n boxShadow: value\n };\n },\n userSelect: function userSelect(value) {\n return {\n WebkitTouchCallout: value,\n KhtmlUserSelect: value,\n MozUserSelect: value,\n msUserSelect: value,\n WebkitUserSelect: value,\n userSelect: value\n };\n },\n\n flex: function flex(value) {\n return {\n WebkitBoxFlex: value,\n MozBoxFlex: value,\n WebkitFlex: value,\n msFlex: value,\n flex: value\n };\n },\n flexBasis: function flexBasis(value) {\n return {\n WebkitFlexBasis: value,\n flexBasis: value\n };\n },\n justifyContent: function justifyContent(value) {\n return {\n WebkitJustifyContent: value,\n justifyContent: value\n };\n },\n\n transition: function transition(value) {\n return {\n msTransition: value,\n MozTransition: value,\n OTransition: value,\n WebkitTransition: value,\n transition: value\n };\n },\n\n transform: function transform(value) {\n return {\n msTransform: value,\n MozTransform: value,\n OTransform: value,\n WebkitTransform: value,\n transform: value\n };\n },\n absolute: function absolute(value) {\n var direction = value && value.split(' ');\n return {\n position: 'absolute',\n top: direction && direction[0],\n right: direction && direction[1],\n bottom: direction && direction[2],\n left: direction && direction[3]\n };\n },\n extend: function extend(name, otherElementStyles) {\n var otherStyle = otherElementStyles[name];\n if (otherStyle) {\n return otherStyle;\n }\n return {\n 'extend': name\n };\n }\n};\n\nvar autoprefix = exports.autoprefix = function autoprefix(elements) {\n var prefixed = {};\n (0, _forOwn3.default)(elements, function (styles, element) {\n var expanded = {};\n (0, _forOwn3.default)(styles, function (value, key) {\n var transform = transforms[key];\n if (transform) {\n expanded = _extends({}, expanded, transform(value));\n } else {\n expanded[key] = value;\n }\n });\n prefixed[element] = expanded;\n });\n return prefixed;\n};\n\nexports.default = autoprefix;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.active = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar active = exports.active = function active(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Active, _React$Component);\n\n function Active() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Active);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () {\n return _this.setState({ active: true });\n }, _this.handleMouseUp = function () {\n return _this.setState({ active: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Active;\n }(_react2.default.Component);\n};\n\nexports.default = active;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hover = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar hover = exports.hover = function hover(Component) {\n var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span';\n\n return function (_React$Component) {\n _inherits(Hover, _React$Component);\n\n function Hover() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Hover);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () {\n return _this.setState({ hover: true });\n }, _this.handleMouseOut = function () {\n return _this.setState({ hover: false });\n }, _this.render = function () {\n return _react2.default.createElement(\n Span,\n { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut },\n _react2.default.createElement(Component, _extends({}, _this.props, _this.state))\n );\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n return Hover;\n }(_react2.default.Component);\n};\n\nexports.default = hover;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flattenNames = undefined;\n\nvar _isString2 = require('lodash/isString');\n\nvar _isString3 = _interopRequireDefault(_isString2);\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _map2 = require('lodash/map');\n\nvar _map3 = _interopRequireDefault(_map2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar flattenNames = exports.flattenNames = function flattenNames() {\n var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n\n var names = [];\n\n (0, _map3.default)(things, function (thing) {\n if (Array.isArray(thing)) {\n flattenNames(thing).map(function (name) {\n return names.push(name);\n });\n } else if ((0, _isPlainObject3.default)(thing)) {\n (0, _forOwn3.default)(thing, function (value, key) {\n value === true && names.push(key);\n names.push(key + '-' + value);\n });\n } else if ((0, _isString3.default)(thing)) {\n names.push(thing);\n }\n });\n\n return names;\n};\n\nexports.default = flattenNames;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined;\n\nvar _flattenNames = require('./flattenNames');\n\nvar _flattenNames2 = _interopRequireDefault(_flattenNames);\n\nvar _mergeClasses = require('./mergeClasses');\n\nvar _mergeClasses2 = _interopRequireDefault(_mergeClasses);\n\nvar _autoprefix = require('./autoprefix');\n\nvar _autoprefix2 = _interopRequireDefault(_autoprefix);\n\nvar _hover2 = require('./components/hover');\n\nvar _hover3 = _interopRequireDefault(_hover2);\n\nvar _active = require('./components/active');\n\nvar _active2 = _interopRequireDefault(_active);\n\nvar _loop2 = require('./loop');\n\nvar _loop3 = _interopRequireDefault(_loop2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.hover = _hover3.default;\nexports.handleHover = _hover3.default;\nexports.handleActive = _active2.default;\nexports.loop = _loop3.default;\nvar ReactCSS = exports.ReactCSS = function ReactCSS(classes) {\n for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n activations[_key - 1] = arguments[_key];\n }\n\n var activeNames = (0, _flattenNames2.default)(activations);\n var merged = (0, _mergeClasses2.default)(classes, activeNames);\n return (0, _autoprefix2.default)(merged);\n};\n\nexports.default = ReactCSS;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar loopable = function loopable(i, length) {\n var props = {};\n var setProp = function setProp(name) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n props[name] = value;\n };\n\n i === 0 && setProp('first-child');\n i === length - 1 && setProp('last-child');\n (i === 0 || i % 2 === 0) && setProp('even');\n Math.abs(i % 2) === 1 && setProp('odd');\n setProp('nth-child', i);\n\n return props;\n};\n\nexports.default = loopable;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.mergeClasses = undefined;\n\nvar _forOwn2 = require('lodash/forOwn');\n\nvar _forOwn3 = _interopRequireDefault(_forOwn2);\n\nvar _cloneDeep2 = require('lodash/cloneDeep');\n\nvar _cloneDeep3 = _interopRequireDefault(_cloneDeep2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar mergeClasses = exports.mergeClasses = function mergeClasses(classes) {\n var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {};\n activeNames.map(function (name) {\n var toMerge = classes[name];\n if (toMerge) {\n (0, _forOwn3.default)(toMerge, function (value, key) {\n if (!styles[key]) {\n styles[key] = {};\n }\n\n styles[key] = _extends({}, styles[key], toMerge[key]);\n });\n }\n\n return name;\n });\n return styles;\n};\n\nexports.default = mergeClasses;","// TinyColor v1.4.2\n// https://github.com/bgrins/TinyColor\n// Brian Grinstead, MIT License\n\n(function(Math) {\n\nvar trimLeft = /^\\s+/,\n trimRight = /\\s+$/,\n tinyCounter = 0,\n mathRound = Math.round,\n mathMin = Math.min,\n mathMax = Math.max,\n mathRandom = Math.random;\n\nfunction tinycolor (color, opts) {\n\n color = (color) ? color : '';\n opts = opts || { };\n\n // If input is already a tinycolor, return itself\n if (color instanceof tinycolor) {\n return color;\n }\n // If we are called as a function, call using new instead\n if (!(this instanceof tinycolor)) {\n return new tinycolor(color, opts);\n }\n\n var rgb = inputToRGB(color);\n this._originalInput = color,\n this._r = rgb.r,\n this._g = rgb.g,\n this._b = rgb.b,\n this._a = rgb.a,\n this._roundA = mathRound(100*this._a) / 100,\n this._format = opts.format || rgb.format;\n this._gradientType = opts.gradientType;\n\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this._r < 1) { this._r = mathRound(this._r); }\n if (this._g < 1) { this._g = mathRound(this._g); }\n if (this._b < 1) { this._b = mathRound(this._b); }\n\n this._ok = rgb.ok;\n this._tc_id = tinyCounter++;\n}\n\ntinycolor.prototype = {\n isDark: function() {\n return this.getBrightness() < 128;\n },\n isLight: function() {\n return !this.isDark();\n },\n isValid: function() {\n return this._ok;\n },\n getOriginalInput: function() {\n return this._originalInput;\n },\n getFormat: function() {\n return this._format;\n },\n getAlpha: function() {\n return this._a;\n },\n getBrightness: function() {\n //http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n },\n getLuminance: function() {\n //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var RsRGB, GsRGB, BsRGB, R, G, B;\n RsRGB = rgb.r/255;\n GsRGB = rgb.g/255;\n BsRGB = rgb.b/255;\n\n if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);}\n if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);}\n if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);}\n return (0.2126 * R) + (0.7152 * G) + (0.0722 * B);\n },\n setAlpha: function(value) {\n this._a = boundAlpha(value);\n this._roundA = mathRound(100*this._a) / 100;\n return this;\n },\n toHsv: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a };\n },\n toHsvString: function() {\n var hsv = rgbToHsv(this._r, this._g, this._b);\n var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100);\n return (this._a == 1) ?\n \"hsv(\" + h + \", \" + s + \"%, \" + v + \"%)\" :\n \"hsva(\" + h + \", \" + s + \"%, \" + v + \"%, \"+ this._roundA + \")\";\n },\n toHsl: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a };\n },\n toHslString: function() {\n var hsl = rgbToHsl(this._r, this._g, this._b);\n var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100);\n return (this._a == 1) ?\n \"hsl(\" + h + \", \" + s + \"%, \" + l + \"%)\" :\n \"hsla(\" + h + \", \" + s + \"%, \" + l + \"%, \"+ this._roundA + \")\";\n },\n toHex: function(allow3Char) {\n return rgbToHex(this._r, this._g, this._b, allow3Char);\n },\n toHexString: function(allow3Char) {\n return '#' + this.toHex(allow3Char);\n },\n toHex8: function(allow4Char) {\n return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char);\n },\n toHex8String: function(allow4Char) {\n return '#' + this.toHex8(allow4Char);\n },\n toRgb: function() {\n return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a };\n },\n toRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \")\" :\n \"rgba(\" + mathRound(this._r) + \", \" + mathRound(this._g) + \", \" + mathRound(this._b) + \", \" + this._roundA + \")\";\n },\n toPercentageRgb: function() {\n return { r: mathRound(bound01(this._r, 255) * 100) + \"%\", g: mathRound(bound01(this._g, 255) * 100) + \"%\", b: mathRound(bound01(this._b, 255) * 100) + \"%\", a: this._a };\n },\n toPercentageRgbString: function() {\n return (this._a == 1) ?\n \"rgb(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%)\" :\n \"rgba(\" + mathRound(bound01(this._r, 255) * 100) + \"%, \" + mathRound(bound01(this._g, 255) * 100) + \"%, \" + mathRound(bound01(this._b, 255) * 100) + \"%, \" + this._roundA + \")\";\n },\n toName: function() {\n if (this._a === 0) {\n return \"transparent\";\n }\n\n if (this._a < 1) {\n return false;\n }\n\n return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false;\n },\n toFilter: function(secondColor) {\n var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a);\n var secondHex8String = hex8String;\n var gradientType = this._gradientType ? \"GradientType = 1, \" : \"\";\n\n if (secondColor) {\n var s = tinycolor(secondColor);\n secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a);\n }\n\n return \"progid:DXImageTransform.Microsoft.gradient(\"+gradientType+\"startColorstr=\"+hex8String+\",endColorstr=\"+secondHex8String+\")\";\n },\n toString: function(format) {\n var formatSet = !!format;\n format = format || this._format;\n\n var formattedString = false;\n var hasAlpha = this._a < 1 && this._a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format === \"hex\" || format === \"hex6\" || format === \"hex3\" || format === \"hex4\" || format === \"hex8\" || format === \"name\");\n\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === \"name\" && this._a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === \"rgb\") {\n formattedString = this.toRgbString();\n }\n if (format === \"prgb\") {\n formattedString = this.toPercentageRgbString();\n }\n if (format === \"hex\" || format === \"hex6\") {\n formattedString = this.toHexString();\n }\n if (format === \"hex3\") {\n formattedString = this.toHexString(true);\n }\n if (format === \"hex4\") {\n formattedString = this.toHex8String(true);\n }\n if (format === \"hex8\") {\n formattedString = this.toHex8String();\n }\n if (format === \"name\") {\n formattedString = this.toName();\n }\n if (format === \"hsl\") {\n formattedString = this.toHslString();\n }\n if (format === \"hsv\") {\n formattedString = this.toHsvString();\n }\n\n return formattedString || this.toHexString();\n },\n clone: function() {\n return tinycolor(this.toString());\n },\n\n _applyModification: function(fn, args) {\n var color = fn.apply(null, [this].concat([].slice.call(args)));\n this._r = color._r;\n this._g = color._g;\n this._b = color._b;\n this.setAlpha(color._a);\n return this;\n },\n lighten: function() {\n return this._applyModification(lighten, arguments);\n },\n brighten: function() {\n return this._applyModification(brighten, arguments);\n },\n darken: function() {\n return this._applyModification(darken, arguments);\n },\n desaturate: function() {\n return this._applyModification(desaturate, arguments);\n },\n saturate: function() {\n return this._applyModification(saturate, arguments);\n },\n greyscale: function() {\n return this._applyModification(greyscale, arguments);\n },\n spin: function() {\n return this._applyModification(spin, arguments);\n },\n\n _applyCombination: function(fn, args) {\n return fn.apply(null, [this].concat([].slice.call(args)));\n },\n analogous: function() {\n return this._applyCombination(analogous, arguments);\n },\n complement: function() {\n return this._applyCombination(complement, arguments);\n },\n monochromatic: function() {\n return this._applyCombination(monochromatic, arguments);\n },\n splitcomplement: function() {\n return this._applyCombination(splitcomplement, arguments);\n },\n triad: function() {\n return this._applyCombination(triad, arguments);\n },\n tetrad: function() {\n return this._applyCombination(tetrad, arguments);\n }\n};\n\n// If input is an object, force 1 into \"1.0\" to handle ratios properly\n// String input requires \"1.0\" as input, so 1 will be treated as 1\ntinycolor.fromRatio = function(color, opts) {\n if (typeof color == \"object\") {\n var newColor = {};\n for (var i in color) {\n if (color.hasOwnProperty(i)) {\n if (i === \"a\") {\n newColor[i] = color[i];\n }\n else {\n newColor[i] = convertToPercentage(color[i]);\n }\n }\n }\n color = newColor;\n }\n\n return tinycolor(color, opts);\n};\n\n// Given a string or object, convert that input to RGB\n// Possible string inputs:\n//\n// \"red\"\n// \"#f00\" or \"f00\"\n// \"#ff0000\" or \"ff0000\"\n// \"#ff000000\" or \"ff000000\"\n// \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n// \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n// \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n// \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n// \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n// \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n// \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n//\nfunction inputToRGB(color) {\n\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n\n if (typeof color == \"string\") {\n color = stringInputToObject(color);\n }\n\n if (typeof color == \"object\") {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === \"%\" ? \"prgb\" : \"rgb\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = \"hsv\";\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = \"hsl\";\n }\n\n if (color.hasOwnProperty(\"a\")) {\n a = color.a;\n }\n }\n\n a = boundAlpha(a);\n\n return {\n ok: ok,\n format: color.format || format,\n r: mathMin(255, mathMax(rgb.r, 0)),\n g: mathMin(255, mathMax(rgb.g, 0)),\n b: mathMin(255, mathMax(rgb.b, 0)),\n a: a\n };\n}\n\n\n// Conversion Functions\n// --------------------\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n\n// `rgbToRgb`\n// Handle bounds / percentage checking to conform to CSS color spec\n// \n// *Assumes:* r, g, b in [0, 255] or [0, 1]\n// *Returns:* { r, g, b } in [0, 255]\nfunction rgbToRgb(r, g, b){\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255\n };\n}\n\n// `rgbToHsl`\n// Converts an RGB color value to HSL.\n// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n// *Returns:* { h, s, l } in [0,1]\nfunction rgbToHsl(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, l = (max + min) / 2;\n\n if(max == min) {\n h = s = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n\n h /= 6;\n }\n\n return { h: h, s: s, l: l };\n}\n\n// `hslToRgb`\n// Converts an HSL color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\nfunction hslToRgb(h, s, l) {\n var r, g, b;\n\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n\n function hue2rgb(p, q, t) {\n if(t < 0) t += 1;\n if(t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n }\n\n if(s === 0) {\n r = g = b = l; // achromatic\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHsv`\n// Converts an RGB color value to HSV\n// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n// *Returns:* { h, s, v } in [0,1]\nfunction rgbToHsv(r, g, b) {\n\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n\n var max = mathMax(r, g, b), min = mathMin(r, g, b);\n var h, s, v = max;\n\n var d = max - min;\n s = max === 0 ? 0 : d / max;\n\n if(max == min) {\n h = 0; // achromatic\n }\n else {\n switch(max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n\n// `hsvToRgb`\n// Converts an HSV color value to RGB.\n// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n// *Returns:* { r, g, b } in the set [0, 255]\n function hsvToRgb(h, s, v) {\n\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n\n var i = Math.floor(h),\n f = h - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n mod = i % 6,\n r = [v, q, p, p, t, v][mod],\n g = [t, v, v, q, p, p][mod],\n b = [p, p, t, v, v, q][mod];\n\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n\n// `rgbToHex`\n// Converts an RGB color to hex\n// Assumes r, g, and b are contained in the set [0, 255]\n// Returns a 3 or 6 character hex\nfunction rgbToHex(r, g, b, allow3Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n // Return a 3 character hex if possible\n if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToHex`\n// Converts an RGBA color plus alpha transparency to hex\n// Assumes r, g, b are contained in the set [0, 255] and\n// a in [0, 1]. Returns a 4 or 8 character rgba hex\nfunction rgbaToHex(r, g, b, a, allow4Char) {\n\n var hex = [\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16)),\n pad2(convertDecimalToHex(a))\n ];\n\n // Return a 4 character hex if possible\n if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n\n return hex.join(\"\");\n}\n\n// `rgbaToArgbHex`\n// Converts an RGBA color to an ARGB Hex8 string\n// Rarely used, but required for \"toFilter()\"\nfunction rgbaToArgbHex(r, g, b, a) {\n\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(mathRound(r).toString(16)),\n pad2(mathRound(g).toString(16)),\n pad2(mathRound(b).toString(16))\n ];\n\n return hex.join(\"\");\n}\n\n// `equals`\n// Can be called with any tinycolor input\ntinycolor.equals = function (color1, color2) {\n if (!color1 || !color2) { return false; }\n return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString();\n};\n\ntinycolor.random = function() {\n return tinycolor.fromRatio({\n r: mathRandom(),\n g: mathRandom(),\n b: mathRandom()\n });\n};\n\n\n// Modification Functions\n// ----------------------\n// Thanks to less.js for some of the basics here\n// \n\nfunction desaturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction saturate(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return tinycolor(hsl);\n}\n\nfunction greyscale(color) {\n return tinycolor(color).desaturate(100);\n}\n\nfunction lighten (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\nfunction brighten(color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var rgb = tinycolor(color).toRgb();\n rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100))));\n rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100))));\n rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100))));\n return tinycolor(rgb);\n}\n\nfunction darken (color, amount) {\n amount = (amount === 0) ? 0 : (amount || 10);\n var hsl = tinycolor(color).toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return tinycolor(hsl);\n}\n\n// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n// Values outside of this range will be wrapped into this range.\nfunction spin(color, amount) {\n var hsl = tinycolor(color).toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return tinycolor(hsl);\n}\n\n// Combination Functions\n// ---------------------\n// Thanks to jQuery xColor for some of the ideas behind these\n// \n\nfunction complement(color) {\n var hsl = tinycolor(color).toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return tinycolor(hsl);\n}\n\nfunction triad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction tetrad(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }),\n tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l })\n ];\n}\n\nfunction splitcomplement(color) {\n var hsl = tinycolor(color).toHsl();\n var h = hsl.h;\n return [\n tinycolor(color),\n tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}),\n tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l})\n ];\n}\n\nfunction analogous(color, results, slices) {\n results = results || 6;\n slices = slices || 30;\n\n var hsl = tinycolor(color).toHsl();\n var part = 360 / slices;\n var ret = [tinycolor(color)];\n\n for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(tinycolor(hsl));\n }\n return ret;\n}\n\nfunction monochromatic(color, results) {\n results = results || 6;\n var hsv = tinycolor(color).toHsv();\n var h = hsv.h, s = hsv.s, v = hsv.v;\n var ret = [];\n var modification = 1 / results;\n\n while (results--) {\n ret.push(tinycolor({ h: h, s: s, v: v}));\n v = (v + modification) % 1;\n }\n\n return ret;\n}\n\n// Utility Functions\n// ---------------------\n\ntinycolor.mix = function(color1, color2, amount) {\n amount = (amount === 0) ? 0 : (amount || 50);\n\n var rgb1 = tinycolor(color1).toRgb();\n var rgb2 = tinycolor(color2).toRgb();\n\n var p = amount / 100;\n\n var rgba = {\n r: ((rgb2.r - rgb1.r) * p) + rgb1.r,\n g: ((rgb2.g - rgb1.g) * p) + rgb1.g,\n b: ((rgb2.b - rgb1.b) * p) + rgb1.b,\n a: ((rgb2.a - rgb1.a) * p) + rgb1.a\n };\n\n return tinycolor(rgba);\n};\n\n\n// Readability Functions\n// ---------------------\n// false\n// tinycolor.isReadable(\"#000\", \"#111\",{level:\"AA\",size:\"large\"}) => false\ntinycolor.isReadable = function(color1, color2, wcag2) {\n var readability = tinycolor.readability(color1, color2);\n var wcag2Parms, out;\n\n out = false;\n\n wcag2Parms = validateWCAG2Parms(wcag2);\n switch (wcag2Parms.level + wcag2Parms.size) {\n case \"AAsmall\":\n case \"AAAlarge\":\n out = readability >= 4.5;\n break;\n case \"AAlarge\":\n out = readability >= 3;\n break;\n case \"AAAsmall\":\n out = readability >= 7;\n break;\n }\n return out;\n\n};\n\n// `mostReadable`\n// Given a base color and a list of possible foreground or background\n// colors for that base, returns the most readable color.\n// Optionally returns Black or White if the most readable color is unreadable.\n// *Example*\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:false}).toHexString(); // \"#112255\"\n// tinycolor.mostReadable(tinycolor.mostReadable(\"#123\", [\"#124\", \"#125\"],{includeFallbackColors:true}).toHexString(); // \"#ffffff\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"large\"}).toHexString(); // \"#faf3f3\"\n// tinycolor.mostReadable(\"#a8015a\", [\"#faf3f3\"],{includeFallbackColors:true,level:\"AAA\",size:\"small\"}).toHexString(); // \"#ffffff\"\ntinycolor.mostReadable = function(baseColor, colorList, args) {\n var bestColor = null;\n var bestScore = 0;\n var readability;\n var includeFallbackColors, level, size ;\n args = args || {};\n includeFallbackColors = args.includeFallbackColors ;\n level = args.level;\n size = args.size;\n\n for (var i= 0; i < colorList.length ; i++) {\n readability = tinycolor.readability(baseColor, colorList[i]);\n if (readability > bestScore) {\n bestScore = readability;\n bestColor = tinycolor(colorList[i]);\n }\n }\n\n if (tinycolor.isReadable(baseColor, bestColor, {\"level\":level,\"size\":size}) || !includeFallbackColors) {\n return bestColor;\n }\n else {\n args.includeFallbackColors=false;\n return tinycolor.mostReadable(baseColor,[\"#fff\", \"#000\"],args);\n }\n};\n\n\n// Big List of Colors\n// ------------------\n// \nvar names = tinycolor.names = {\n aliceblue: \"f0f8ff\",\n antiquewhite: \"faebd7\",\n aqua: \"0ff\",\n aquamarine: \"7fffd4\",\n azure: \"f0ffff\",\n beige: \"f5f5dc\",\n bisque: \"ffe4c4\",\n black: \"000\",\n blanchedalmond: \"ffebcd\",\n blue: \"00f\",\n blueviolet: \"8a2be2\",\n brown: \"a52a2a\",\n burlywood: \"deb887\",\n burntsienna: \"ea7e5d\",\n cadetblue: \"5f9ea0\",\n chartreuse: \"7fff00\",\n chocolate: \"d2691e\",\n coral: \"ff7f50\",\n cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\",\n crimson: \"dc143c\",\n cyan: \"0ff\",\n darkblue: \"00008b\",\n darkcyan: \"008b8b\",\n darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\",\n darkgreen: \"006400\",\n darkgrey: \"a9a9a9\",\n darkkhaki: \"bdb76b\",\n darkmagenta: \"8b008b\",\n darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\",\n darkorchid: \"9932cc\",\n darkred: \"8b0000\",\n darksalmon: \"e9967a\",\n darkseagreen: \"8fbc8f\",\n darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\",\n darkslategrey: \"2f4f4f\",\n darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\",\n deeppink: \"ff1493\",\n deepskyblue: \"00bfff\",\n dimgray: \"696969\",\n dimgrey: \"696969\",\n dodgerblue: \"1e90ff\",\n firebrick: \"b22222\",\n floralwhite: \"fffaf0\",\n forestgreen: \"228b22\",\n fuchsia: \"f0f\",\n gainsboro: \"dcdcdc\",\n ghostwhite: \"f8f8ff\",\n gold: \"ffd700\",\n goldenrod: \"daa520\",\n gray: \"808080\",\n green: \"008000\",\n greenyellow: \"adff2f\",\n grey: \"808080\",\n honeydew: \"f0fff0\",\n hotpink: \"ff69b4\",\n indianred: \"cd5c5c\",\n indigo: \"4b0082\",\n ivory: \"fffff0\",\n khaki: \"f0e68c\",\n lavender: \"e6e6fa\",\n lavenderblush: \"fff0f5\",\n lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\",\n lightblue: \"add8e6\",\n lightcoral: \"f08080\",\n lightcyan: \"e0ffff\",\n lightgoldenrodyellow: \"fafad2\",\n lightgray: \"d3d3d3\",\n lightgreen: \"90ee90\",\n lightgrey: \"d3d3d3\",\n lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\",\n lightseagreen: \"20b2aa\",\n lightskyblue: \"87cefa\",\n lightslategray: \"789\",\n lightslategrey: \"789\",\n lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\",\n lime: \"0f0\",\n limegreen: \"32cd32\",\n linen: \"faf0e6\",\n magenta: \"f0f\",\n maroon: \"800000\",\n mediumaquamarine: \"66cdaa\",\n mediumblue: \"0000cd\",\n mediumorchid: \"ba55d3\",\n mediumpurple: \"9370db\",\n mediumseagreen: \"3cb371\",\n mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\",\n mediumturquoise: \"48d1cc\",\n mediumvioletred: \"c71585\",\n midnightblue: \"191970\",\n mintcream: \"f5fffa\",\n mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\",\n navajowhite: \"ffdead\",\n navy: \"000080\",\n oldlace: \"fdf5e6\",\n olive: \"808000\",\n olivedrab: \"6b8e23\",\n orange: \"ffa500\",\n orangered: \"ff4500\",\n orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\",\n palegreen: \"98fb98\",\n paleturquoise: \"afeeee\",\n palevioletred: \"db7093\",\n papayawhip: \"ffefd5\",\n peachpuff: \"ffdab9\",\n peru: \"cd853f\",\n pink: \"ffc0cb\",\n plum: \"dda0dd\",\n powderblue: \"b0e0e6\",\n purple: \"800080\",\n rebeccapurple: \"663399\",\n red: \"f00\",\n rosybrown: \"bc8f8f\",\n royalblue: \"4169e1\",\n saddlebrown: \"8b4513\",\n salmon: \"fa8072\",\n sandybrown: \"f4a460\",\n seagreen: \"2e8b57\",\n seashell: \"fff5ee\",\n sienna: \"a0522d\",\n silver: \"c0c0c0\",\n skyblue: \"87ceeb\",\n slateblue: \"6a5acd\",\n slategray: \"708090\",\n slategrey: \"708090\",\n snow: \"fffafa\",\n springgreen: \"00ff7f\",\n steelblue: \"4682b4\",\n tan: \"d2b48c\",\n teal: \"008080\",\n thistle: \"d8bfd8\",\n tomato: \"ff6347\",\n turquoise: \"40e0d0\",\n violet: \"ee82ee\",\n wheat: \"f5deb3\",\n white: \"fff\",\n whitesmoke: \"f5f5f5\",\n yellow: \"ff0\",\n yellowgreen: \"9acd32\"\n};\n\n// Make it easy to access colors via `hexNames[hex]`\nvar hexNames = tinycolor.hexNames = flip(names);\n\n\n// Utilities\n// ---------\n\n// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }`\nfunction flip(o) {\n var flipped = { };\n for (var i in o) {\n if (o.hasOwnProperty(i)) {\n flipped[o[i]] = i;\n }\n }\n return flipped;\n}\n\n// Return a valid alpha value [0,1] with all invalid values being set to 1\nfunction boundAlpha(a) {\n a = parseFloat(a);\n\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n\n return a;\n}\n\n// Take input from [0, n] and return it as [0, 1]\nfunction bound01(n, max) {\n if (isOnePointZero(n)) { n = \"100%\"; }\n\n var processPercent = isPercentage(n);\n n = mathMin(max, mathMax(0, parseFloat(n)));\n\n // Automatically convert percentage into number\n if (processPercent) {\n n = parseInt(n * max, 10) / 100;\n }\n\n // Handle floating point rounding errors\n if ((Math.abs(n - max) < 0.000001)) {\n return 1;\n }\n\n // Convert into [0, 1] range if it isn't already\n return (n % max) / parseFloat(max);\n}\n\n// Force a number between 0 and 1\nfunction clamp01(val) {\n return mathMin(1, mathMax(0, val));\n}\n\n// Parse a base-16 hex value into a base-10 integer\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n// \nfunction isOnePointZero(n) {\n return typeof n == \"string\" && n.indexOf('.') != -1 && parseFloat(n) === 1;\n}\n\n// Check to see if string passed in is a percentage\nfunction isPercentage(n) {\n return typeof n === \"string\" && n.indexOf('%') != -1;\n}\n\n// Force a hex value to have 2 characters\nfunction pad2(c) {\n return c.length == 1 ? '0' + c : '' + c;\n}\n\n// Replace a decimal with it's percentage value\nfunction convertToPercentage(n) {\n if (n <= 1) {\n n = (n * 100) + \"%\";\n }\n\n return n;\n}\n\n// Converts a decimal to a hex value\nfunction convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n// Converts a hex value to a decimal\nfunction convertHexToDecimal(h) {\n return (parseIntFromHex(h) / 255);\n}\n\nvar matchers = (function() {\n\n // \n var CSS_INTEGER = \"[-\\\\+]?\\\\d+%?\";\n\n // \n var CSS_NUMBER = \"[-\\\\+]?\\\\d*\\\\.\\\\d+%?\";\n\n // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\n var CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n\n // Actual matching.\n // Parentheses and commas are optional, but not required.\n // Whitespace can take the place of commas or opening paren\n var PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n var PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\n\n return {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp(\"rgb\" + PERMISSIVE_MATCH3),\n rgba: new RegExp(\"rgba\" + PERMISSIVE_MATCH4),\n hsl: new RegExp(\"hsl\" + PERMISSIVE_MATCH3),\n hsla: new RegExp(\"hsla\" + PERMISSIVE_MATCH4),\n hsv: new RegExp(\"hsv\" + PERMISSIVE_MATCH3),\n hsva: new RegExp(\"hsva\" + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/\n };\n})();\n\n// `isValidCSSUnit`\n// Take in a single string / number and check to see if it looks like a CSS unit\n// (see `matchers` above for definition).\nfunction isValidCSSUnit(color) {\n return !!matchers.CSS_UNIT.exec(color);\n}\n\n// `stringInputToObject`\n// Permissive string parsing. Take in a number of formats, and output an object\n// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\nfunction stringInputToObject(color) {\n\n color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase();\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color == 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: \"name\" };\n }\n\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match;\n if ((match = matchers.rgb.exec(color))) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n if ((match = matchers.rgba.exec(color))) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n if ((match = matchers.hsl.exec(color))) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n if ((match = matchers.hsla.exec(color))) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n if ((match = matchers.hsv.exec(color))) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n if ((match = matchers.hsva.exec(color))) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n if ((match = matchers.hex8.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex6.exec(color))) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n if ((match = matchers.hex4.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n a: convertHexToDecimal(match[4] + '' + match[4]),\n format: named ? \"name\" : \"hex8\"\n };\n }\n if ((match = matchers.hex3.exec(color))) {\n return {\n r: parseIntFromHex(match[1] + '' + match[1]),\n g: parseIntFromHex(match[2] + '' + match[2]),\n b: parseIntFromHex(match[3] + '' + match[3]),\n format: named ? \"name\" : \"hex\"\n };\n }\n\n return false;\n}\n\nfunction validateWCAG2Parms(parms) {\n // return valid WCAG2 parms for isReadable.\n // If input parms are invalid, return {\"level\":\"AA\", \"size\":\"small\"}\n var level, size;\n parms = parms || {\"level\":\"AA\", \"size\":\"small\"};\n level = (parms.level || \"AA\").toUpperCase();\n size = (parms.size || \"small\").toLowerCase();\n if (level !== \"AA\" && level !== \"AAA\") {\n level = \"AA\";\n }\n if (size !== \"small\" && size !== \"large\") {\n size = \"small\";\n }\n return {\"level\":level, \"size\":size};\n}\n\n// Node: Export function\nif (typeof module !== \"undefined\" && module.exports) {\n module.exports = tinycolor;\n}\n// AMD/requirejs: Define the module\nelse if (typeof define === 'function' && define.amd) {\n define(function () {return tinycolor;});\n}\n// Browser: Expose to window\nelse {\n window.tinycolor = tinycolor;\n}\n\n})(Math);\n"],"sourceRoot":""} \ No newline at end of file diff --git a/admin/static/js/200.c6266fbe.chunk.js b/admin/static/js/200.c6266fbe.chunk.js new file mode 100644 index 000000000..cd8f7737f --- /dev/null +++ b/admin/static/js/200.c6266fbe.chunk.js @@ -0,0 +1,7 @@ +"use strict";(self.webpackChunkjs=self.webpackChunkjs||[]).push([[200],{76200:function(vf,vo,s){s.r(vo),s.d(vo,{Accordion:function(){return Ga.Z},AccordionActions:function(){return Qa},AccordionDetails:function(){return qa.Z},AccordionSummary:function(){return _a.Z},Alert:function(){return cs},AlertTitle:function(){return gs},AppBar:function(){return ms.Z},Autocomplete:function(){return Fs},Avatar:function(){return Go},AvatarGroup:function(){return Ys},Backdrop:function(){return Js.Z},Badge:function(){return Qs.Z},BottomNavigation:function(){return oi},BottomNavigationAction:function(){return ii},Box:function(){return li.Z},Breadcrumbs:function(){return xi},Button:function(){return Zi.Z},ButtonBase:function(){return pe.Z},ButtonGroup:function(){return Li},Card:function(){return Ti.Z},CardActionArea:function(){return Ai.Z},CardActions:function(){return Mi.Z},CardContent:function(){return Bi.Z},CardHeader:function(){return Oi},CardMedia:function(){return ji.Z},Checkbox:function(){return zi.Z},Chip:function(){return Fo.Z},CircularProgress:function(){return Hi.Z},ClickAwayListener:function(){return ki.Z},Collapse:function(){return Ve.Z},Container:function(){return rl},CssBaseline:function(){return cl},Dialog:function(){return pl.Z},DialogActions:function(){return fl.Z},DialogContent:function(){return gl.Z},DialogContentText:function(){return ml.Z},DialogTitle:function(){return vl.Z},Divider:function(){return Cl.Z},Drawer:function(){return wt.ZP},Experimental_CssVarsProvider:function(){return X.Experimental_CssVarsProvider},Fab:function(){return Ke.Z},Fade:function(){return bl.Z},FilledInput:function(){return hl.default},FormControl:function(){return xl.Z},FormControlLabel:function(){return Zl.Z},FormGroup:function(){return Bn.Z},FormHelperText:function(){return yl.Z},FormLabel:function(){return Un.Z},FormLabelRoot:function(){return Un.D},GlobalStyles:function(){return hn.Z},Grid:function(){return Sl.ZP},Grow:function(){return Il.Z},Hidden:function(){return jl},Icon:function(){return Wl},IconButton:function(){return Jt.Z},ImageList:function(){return Yl},ImageListItem:function(){return _l},ImageListItemBar:function(){return lc},Input:function(){return Kn.Z},InputAdornment:function(){return cc.Z},InputBase:function(){return Jn.ZP},InputLabel:function(){return uc.Z},LinearProgress:function(){return qn.Z},Link:function(){return vc},List:function(){return Cc.Z},ListItem:function(){return bc.ZP},ListItemAvatar:function(){return Ic},ListItemButton:function(){return Pc.Z},ListItemIcon:function(){return Rc.Z},ListItemSecondaryAction:function(){return Lc.Z},ListItemText:function(){return Tc.Z},ListSubheader:function(){return wo},Menu:function(){return Ac.Z},MenuItem:function(){return fr.Z},MenuList:function(){return Mc.Z},MobileStepper:function(){return Oc},Modal:function(){return vr.Z},ModalManager:function(){return jc.Z},NativeSelect:function(){return Kc},NoSsr:function(){return hr},OutlinedInput:function(){return Jc.Z},Pagination:function(){return uu},PaginationItem:function(){return Pr},Paper:function(){return be.Z},Popover:function(){return to.ZP},Popper:function(){return ke.Z},Portal:function(){return du.Z},Radio:function(){return pu.Z},RadioGroup:function(){return mu},Rating:function(){return $u},ScopedCssBaseline:function(){return Fu},Select:function(){return Nr.Z},Skeleton:function(){return Ou.Z},Slide:function(){return ju.Z},Slider:function(){return zu.ZP},SliderMark:function(){return _t.SliderMark},SliderMarkLabel:function(){return _t.SliderMarkLabel},SliderRail:function(){return _t.SliderRail},SliderRoot:function(){return _t.SliderRoot},SliderThumb:function(){return _t.SliderThumb},SliderTrack:function(){return _t.SliderTrack},SliderValueLabel:function(){return _t.SliderValueLabel},Snackbar:function(){return Hu.Z},SnackbarContent:function(){return ku.Z},SpeedDial:function(){return td},SpeedDialAction:function(){return sd},SpeedDialIcon:function(){return dd},Stack:function(){return hd},Step:function(){return Rd},StepButton:function(){return Hd},StepConnector:function(){return ra},StepContent:function(){return qd},StepContext:function(){return ge},StepIcon:function(){return qr},StepLabel:function(){return ea},Stepper:function(){return rp},StepperContext:function(){return ie},StyledEngineProvider:function(){return pf.Z},SvgIcon:function(){return Yr.Z},SwipeableDrawer:function(){return fp},Switch:function(){return gp.Z},Tab:function(){return mp.Z},TabScrollButton:function(){return Yp.Z},Table:function(){return vp.Z},TableBody:function(){return Cp.Z},TableCell:function(){return De.Z},TableContainer:function(){return yp},TableFooter:function(){return Ap},TableHead:function(){return Mp.Z},TablePagination:function(){return Gp},TableRow:function(){return Vp.Z},TableSortLabel:function(){return Kp.Z},Tabs:function(){return Xp.Z},TextField:function(){return Jp.Z},TextareaAutosize:function(){return Qp.Z},ThemeProvider:function(){return X.ThemeProvider},ToggleButton:function(){return ef},ToggleButtonGroup:function(){return sf},Toolbar:function(){return ba.Z},Tooltip:function(){return zr.Z},Typography:function(){return Qt.Z},Zoom:function(){return Or},accordionActionsClasses:function(){return Ka},accordionClasses:function(){return Co.accordionClasses},accordionDetailsClasses:function(){return ho.accordionDetailsClasses},accordionSummaryClasses:function(){return xo.accordionSummaryClasses},adaptV4Theme:function(){return X.adaptV4Theme},alertClasses:function(){return je},alertTitleClasses:function(){return us},alpha:function(){return X.alpha},appBarClasses:function(){return Lo.appBarClasses},autocompleteClasses:function(){return J},avatarClasses:function(){return Wo},avatarGroupClasses:function(){return Ko},backdropClasses:function(){return Yo.Z},badgeClasses:function(){return Jo.badgeClasses},bottomNavigationActionClasses:function(){return We},bottomNavigationClasses:function(){return qs},breadcrumbsClasses:function(){return tn},buttonBaseClasses:function(){return on.Z},buttonClasses:function(){return en.buttonClasses},buttonGroupClasses:function(){return Vt},capitalize:function(){return Zt.capitalize},cardActionAreaClasses:function(){return sn.Z},cardActionsClasses:function(){return ln.Z},cardClasses:function(){return an.Z},cardContentClasses:function(){return cn.Z},cardHeaderClasses:function(){return Ge},cardMediaClasses:function(){return dn.Z},checkboxClasses:function(){return pn.checkboxClasses},chipClasses:function(){return fn.chipClasses},circularProgressClasses:function(){return gn.circularProgressClasses},collapseClasses:function(){return mn.Z},colors:function(){return Wa},containerClasses:function(){return sl},createChainedFunction:function(){return Zt.createChainedFunction},createFilterOptions:function(){return $o},createMuiTheme:function(){return X.createMuiTheme},createStyles:function(){return X.createStyles},createSvgIcon:function(){return Zt.createSvgIcon},createTheme:function(){return X.createTheme},css:function(){return X.css},darkScrollbar:function(){return dl},darken:function(){return X.darken},debounce:function(){return Zt.debounce},decomposeColor:function(){return X.decomposeColor},deprecatedPropType:function(){return Zt.deprecatedPropType},dialogActionsClasses:function(){return Sn.dialogActionsClasses},dialogClasses:function(){return yn.dialogClasses},dialogContentClasses:function(){return In.dialogContentClasses},dialogContentTextClasses:function(){return Pn.dialogContentTextClasses},dialogTitleClasses:function(){return Rn.dialogTitleClasses},dividerClasses:function(){return Ln.Z},drawerClasses:function(){return Tn.Z},duration:function(){return X.duration},easing:function(){return X.easing},emphasize:function(){return X.emphasize},experimentalStyled:function(){return X.experimentalStyled},experimental_extendTheme:function(){return X.experimental_extendTheme},experimental_sx:function(){return X.experimental_sx},fabClasses:function(){return An.fabClasses},filledInputClasses:function(){return de.Z},formControlClasses:function(){return Xe.formControlClasses},formControlLabelClasses:function(){return Mn.formControlLabelClasses},formGroupClasses:function(){return $n.formGroupClasses},formHelperTextClasses:function(){return Nn.formHelperTextClasses},formLabelClasses:function(){return Dn.Z},generateUtilityClass:function(){return W.Z},generateUtilityClasses:function(){return G.Z},getAccordionActionsUtilityClass:function(){return bo},getAccordionDetailsUtilityClass:function(){return ho.getAccordionDetailsUtilityClass},getAccordionSummaryUtilityClass:function(){return xo.getAccordionSummaryUtilityClass},getAccordionUtilityClass:function(){return Co.getAccordionUtilityClass},getAlertTitleUtilityClass:function(){return Ro},getAlertUtilityClass:function(){return Zo},getAppBarUtilityClass:function(){return Lo.getAppBarUtilityClass},getAutocompleteUtilityClass:function(){return zo},getAvatarGroupUtilityClass:function(){return Vo},getAvatarUtilityClass:function(){return Eo},getBackdropUtilityClass:function(){return Yo.s},getBadgeUtilityClass:function(){return Jo.getBadgeUtilityClass},getBottomNavigationActionUtilityClass:function(){return qo},getBottomNavigationUtilityClass:function(){return Qo},getBreadcrumbsUtilityClass:function(){return _o},getButtonBaseUtilityClass:function(){return on.$},getButtonGroupUtilityClass:function(){return rn},getButtonUtilityClass:function(){return en.getButtonUtilityClass},getCardActionAreaUtilityClass:function(){return sn.J},getCardActionsUtilityClass:function(){return ln.s},getCardContentUtilityClass:function(){return cn.N},getCardHeaderUtilityClass:function(){return un},getCardMediaUtilityClass:function(){return dn.a},getCardUtilityClass:function(){return an.y},getCheckboxUtilityClass:function(){return pn.getCheckboxUtilityClass},getChipUtilityClass:function(){return fn.getChipUtilityClass},getCircularProgressUtilityClass:function(){return gn.getCircularProgressUtilityClass},getCollapseUtilityClass:function(){return mn.d},getContainerUtilityClass:function(){return al},getContrastRatio:function(){return X.getContrastRatio},getDialogActionsUtilityClass:function(){return Sn.getDialogActionsUtilityClass},getDialogContentTextUtilityClass:function(){return Pn.getDialogContentTextUtilityClass},getDialogContentUtilityClass:function(){return In.getDialogContentUtilityClass},getDialogTitleUtilityClass:function(){return Rn.getDialogTitleUtilityClass},getDialogUtilityClass:function(){return yn.getDialogUtilityClass},getDividerUtilityClass:function(){return Ln.V},getDrawerUtilityClass:function(){return Tn.l},getFabUtilityClass:function(){return An.getFabUtilityClass},getFilledInputUtilityClass:function(){return de._},getFormControlLabelUtilityClasses:function(){return Mn.getFormControlLabelUtilityClasses},getFormControlUtilityClasses:function(){return Xe.getFormControlUtilityClasses},getFormGroupUtilityClass:function(){return $n.getFormGroupUtilityClass},getFormHelperTextUtilityClasses:function(){return Nn.getFormHelperTextUtilityClasses},getFormLabelUtilityClasses:function(){return Dn.M},getGridUtilityClass:function(){return wn.getGridUtilityClass},getIconButtonUtilityClass:function(){return kn.getIconButtonUtilityClass},getIconUtilityClass:function(){return zn},getImageListItemBarUtilityClass:function(){return Vn},getImageListItemUtilityClass:function(){return Gn},getImageListUtilityClass:function(){return En},getInitColorSchemeScript:function(){return X.getInitColorSchemeScript},getInputAdornmentUtilityClass:function(){return Yn.getInputAdornmentUtilityClass},getInputBaseUtilityClass:function(){return ue.u},getInputLabelUtilityClasses:function(){return Qn.getInputLabelUtilityClasses},getInputUtilityClass:function(){return Xn.getInputUtilityClass},getLinearProgressUtilityClass:function(){return _n.getLinearProgressUtilityClass},getLinkUtilityClass:function(){return er},getListItemAvatarUtilityClass:function(){return ir},getListItemButtonUtilityClass:function(){return lr.getListItemButtonUtilityClass},getListItemIconUtilityClass:function(){return cr.getListItemIconUtilityClass},getListItemSecondaryActionClassesUtilityClass:function(){return ur.getListItemSecondaryActionClassesUtilityClass},getListItemTextUtilityClass:function(){return dr.getListItemTextUtilityClass},getListItemUtilityClass:function(){return sr.getListItemUtilityClass},getListSubheaderUtilityClass:function(){return Do},getListUtilityClass:function(){return ar.getListUtilityClass},getLuminance:function(){return X.getLuminance},getMenuItemUtilityClass:function(){return gr.getMenuItemUtilityClass},getMenuUtilityClass:function(){return pr.Q},getMobileStepperUtilityClass:function(){return mr},getModalUtilityClass:function(){return Cr.x},getNativeSelectUtilityClasses:function(){return Qe.f},getOffsetLeft:function(){return to.pB},getOffsetTop:function(){return to.oJ},getOutlinedInputUtilityClass:function(){return xr.getOutlinedInputUtilityClass},getPaginationItemUtilityClass:function(){return Sr},getPaginationUtilityClass:function(){return Zr},getPaperUtilityClass:function(){return Rr.getPaperUtilityClass},getPopoverUtilityClass:function(){return Lr.s},getRadioUtilityClass:function(){return Tr.getRadioUtilityClass},getRatingUtilityClass:function(){return Ar},getScopedCssBaselineUtilityClass:function(){return $r},getSelectUtilityClasses:function(){return Ur.getSelectUtilityClasses},getSkeletonUtilityClass:function(){return Dr.B},getSnackbarContentUtilityClass:function(){return Fr.A},getSnackbarUtilityClass:function(){return wr.getSnackbarUtilityClass},getSpeedDialActionUtilityClass:function(){return Hr},getSpeedDialIconUtilityClass:function(){return Er},getSpeedDialUtilityClass:function(){return jr},getStepButtonUtilityClass:function(){return oa},getStepConnectorUtilityClass:function(){return na},getStepContentUtilityClass:function(){return aa},getStepIconUtilityClass:function(){return Jr},getStepLabelUtilityClass:function(){return _r},getStepUtilityClass:function(){return Xr},getStepperUtilityClass:function(){return sa},getSvgIconUtilityClass:function(){return ia.h},getSwitchUtilityClass:function(){return ca.getSwitchUtilityClass},getTabScrollButtonUtilityClass:function(){return Ua.C},getTabUtilityClass:function(){return ua.getTabUtilityClass},getTableBodyUtilityClass:function(){return pa.getTableBodyUtilityClass},getTableCellUtilityClass:function(){return fa.getTableCellUtilityClass},getTableContainerUtilityClass:function(){return ga},getTableFooterUtilityClass:function(){return ma},getTableHeadUtilityClass:function(){return Ca.getTableHeadUtilityClass},getTablePaginationUtilityClass:function(){return Aa},getTableRowUtilityClass:function(){return Ba.getTableRowUtilityClass},getTableSortLabelUtilityClass:function(){return $a.getTableSortLabelUtilityClass},getTableUtilityClass:function(){return da.getTableUtilityClass},getTabsUtilityClass:function(){return Na.getTabsUtilityClass},getTextFieldUtilityClass:function(){return Da.getTextFieldUtilityClass},getToggleButtonGroupUtilityClass:function(){return Fa},getToggleButtonUtilityClass:function(){return wa},getToolbarUtilityClass:function(){return Oa.getToolbarUtilityClass},getTooltipUtilityClass:function(){return ja.getTooltipUtilityClass},getTouchRippleUtilityClass:function(){return nn.H},getTypographyUtilityClass:function(){return za.getTypographyUtilityClass},gridClasses:function(){return wn.gridClasses},hexToRgb:function(){return X.hexToRgb},hslToRgb:function(){return X.hslToRgb},iconButtonClasses:function(){return kn.iconButtonClasses},iconClasses:function(){return zl},imageListClasses:function(){return Gl},imageListItemBarClasses:function(){return tc},imageListItemClasses:function(){return Je},inputAdornmentClasses:function(){return Yn.inputAdornmentClasses},inputBaseClasses:function(){return ue.Z},inputClasses:function(){return Xn.inputClasses},inputLabelClasses:function(){return Qn.inputLabelClasses},isMuiElement:function(){return Zt.isMuiElement},keyframes:function(){return X.keyframes},lighten:function(){return X.lighten},linearProgressClasses:function(){return _n.linearProgressClasses},linkClasses:function(){return or},listClasses:function(){return ar.listClasses},listItemAvatarClasses:function(){return xc},listItemButtonClasses:function(){return lr.listItemButtonClasses},listItemClasses:function(){return sr.listItemClasses},listItemIconClasses:function(){return cr.listItemIconClasses},listItemSecondaryActionClasses:function(){return ur.listItemSecondaryActionClasses},listItemTextClasses:function(){return dr.listItemTextClasses},listSubheaderClasses:function(){return xs},makeStyles:function(){return X.makeStyles},menuClasses:function(){return pr.Z},menuItemClasses:function(){return gr.menuItemClasses},mobileStepperClasses:function(){return Bc},modalClasses:function(){return vr.W},modalUnstyledClasses:function(){return Cr.Z},nativeSelectClasses:function(){return Qe.Z},outlinedInputClasses:function(){return xr.outlinedInputClasses},ownerDocument:function(){return Zt.ownerDocument},ownerWindow:function(){return Zt.ownerWindow},paginationClasses:function(){return Qc},paginationItemClasses:function(){return Mt},paperClasses:function(){return Rr.paperClasses},popoverClasses:function(){return Lr.Z},radioClasses:function(){return Tr.radioClasses},ratingClasses:function(){return fe},recomposeColor:function(){return X.recomposeColor},requirePropFactory:function(){return Zt.requirePropFactory},responsiveFontSizes:function(){return X.responsiveFontSizes},rgbToHex:function(){return X.rgbToHex},scopedCssBaselineClasses:function(){return Nu},selectClasses:function(){return Ur.selectClasses},setRef:function(){return Zt.setRef},shouldSkipGeneratingVar:function(){return X.shouldSkipGeneratingVar},skeletonClasses:function(){return Dr.Z},sliderClasses:function(){return _t.sliderClasses},snackbarClasses:function(){return wr.snackbarClasses},snackbarContentClasses:function(){return Fr.Z},speedDialActionClasses:function(){return kr},speedDialClasses:function(){return ye},speedDialIconClasses:function(){return ee},stepButtonClasses:function(){return ro},stepClasses:function(){return yd},stepConnectorClasses:function(){return kd},stepContentClasses:function(){return Kd},stepIconClasses:function(){return Be},stepLabelClasses:function(){return oe},stepperClasses:function(){return _d},styled:function(){return X.styled},svgIconClasses:function(){return ia.Z},switchClasses:function(){return ca.switchClasses},tabClasses:function(){return ua.tabClasses},tabScrollButtonClasses:function(){return Ua.Z},tableBodyClasses:function(){return pa.tableBodyClasses},tableCellClasses:function(){return fa.tableCellClasses},tableClasses:function(){return da.tableClasses},tableContainerClasses:function(){return bp},tableFooterClasses:function(){return Ip},tableHeadClasses:function(){return Ca.tableHeadClasses},tablePaginationClasses:function(){return me},tableRowClasses:function(){return Ba.tableRowClasses},tableSortLabelClasses:function(){return $a.tableSortLabelClasses},tabsClasses:function(){return Na.tabsClasses},textFieldClasses:function(){return Da.textFieldClasses},toggleButtonClasses:function(){return co},toggleButtonGroupClasses:function(){return kt},toolbarClasses:function(){return Oa.toolbarClasses},tooltipClasses:function(){return ja.tooltipClasses},touchRippleClasses:function(){return nn.Z},typographyClasses:function(){return za.typographyClasses},unstable_ClassNameGenerator:function(){return Zt.unstable_ClassNameGenerator},unstable_composeClasses:function(){return E.Z},unstable_createMuiStrictModeTheme:function(){return X.unstable_createMuiStrictModeTheme},unstable_getUnit:function(){return X.unstable_getUnit},unstable_toUnitless:function(){return X.unstable_toUnitless},unstable_useEnhancedEffect:function(){return Zt.unstable_useEnhancedEffect},unstable_useId:function(){return Zt.unstable_useId},unsupportedProp:function(){return Zt.unsupportedProp},useAutocomplete:function(){return Uo},useColorScheme:function(){return X.useColorScheme},useControlled:function(){return Zt.useControlled},useEventCallback:function(){return Zt.useEventCallback},useForkRef:function(){return Zt.useForkRef},useFormControl:function(){return Xe.useFormControl},useIsFocusVisible:function(){return Zt.useIsFocusVisible},useMediaQuery:function(){return On.Z},usePagination:function(){return yr},useRadioGroup:function(){return vu.Z},useScrollTrigger:function(){return df},useStepContext:function(){return Zd},useStepperContext:function(){return xd},useTheme:function(){return X.useTheme},useThemeProps:function(){return X.useThemeProps},withStyles:function(){return X.withStyles},withTheme:function(){return X.withTheme}});var Wa=s(81655),X=s(81529),Zt=s(88953),Ga=s(28475),Co=s(32592),B=s(1048),a=s(32793),p=s(4819),Va=s(15854),bt=s.n(Va),M=s(90219),E=s(7565),y=s(82500),H=s(89857),W=s(66943),G=s(84443);function bo(t){return(0,W.Z)("MuiAccordionActions",t)}var Ka=(0,G.Z)("MuiAccordionActions",["root","spacing"]),u=s(67557);const Xa=["className","disableSpacing"],Ya=t=>{const{classes:e,disableSpacing:o}=t,n={root:["root",!o&&"spacing"]};return(0,E.Z)(n,bo,e)},Ja=(0,y.ZP)("div",{name:"MuiAccordionActions",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.disableSpacing&&e.spacing]}})(({ownerState:t})=>(0,a.Z)({display:"flex",alignItems:"center",padding:8,justifyContent:"flex-end"},!t.disableSpacing&&{"& > :not(:first-of-type)":{marginLeft:8}}));var Qa=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiAccordionActions"}),{className:r,disableSpacing:i=!1}=n,c=(0,B.Z)(n,Xa),l=(0,a.Z)({},n,{disableSpacing:i}),d=Ya(l);return(0,u.jsx)(Ja,(0,a.Z)({className:(0,M.Z)(d.root,r),ref:o,ownerState:l},c))}),qa=s(12923),ho=s(27376),_a=s(18226),xo=s(17263),ft=s(72945),$=s(14956),be=s(30464);function Zo(t){return(0,W.Z)("MuiAlert",t)}var je=(0,G.Z)("MuiAlert",["root","action","icon","message","filled","filledSuccess","filledInfo","filledWarning","filledError","outlined","outlinedSuccess","outlinedInfo","outlinedWarning","outlinedError","standard","standardSuccess","standardInfo","standardWarning","standardError"]),Jt=s(72170),It=s(85233),ts=(0,It.Z)((0,u.jsx)("path",{d:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"}),"SuccessOutlined"),es=(0,It.Z)((0,u.jsx)("path",{d:"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z"}),"ReportProblemOutlined"),os=(0,It.Z)((0,u.jsx)("path",{d:"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"ErrorOutline"),ns=(0,It.Z)((0,u.jsx)("path",{d:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z"}),"InfoOutlined"),yo=(0,It.Z)((0,u.jsx)("path",{d:"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close"),So;const rs=["action","children","className","closeText","color","icon","iconMapping","onClose","role","severity","variant"],as=t=>{const{variant:e,color:o,severity:n,classes:r}=t,i={root:["root",`${e}${(0,$.Z)(o||n)}`,`${e}`],icon:["icon"],message:["message"],action:["action"]};return(0,E.Z)(i,Zo,r)},ss=(0,y.ZP)(be.Z,{name:"MuiAlert",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`${o.variant}${(0,$.Z)(o.color||o.severity)}`]]}})(({theme:t,ownerState:e})=>{const o=t.palette.mode==="light"?ft._j:ft.$n,n=t.palette.mode==="light"?ft.$n:ft._j,r=e.color||e.severity;return(0,a.Z)({},t.typography.body2,{backgroundColor:"transparent",display:"flex",padding:"6px 16px"},r&&e.variant==="standard"&&{color:t.vars?t.vars.palette.Alert[`${r}Color`]:o(t.palette[r].light,.6),backgroundColor:t.vars?t.vars.palette.Alert[`${r}StandardBg`]:n(t.palette[r].light,.9),[`& .${je.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette.mode==="dark"?t.palette[r].main:t.palette[r].light}},r&&e.variant==="outlined"&&{color:t.vars?t.vars.palette.Alert[`${r}Color`]:o(t.palette[r].light,.6),border:`1px solid ${(t.vars||t).palette[r].light}`,[`& .${je.icon}`]:t.vars?{color:t.vars.palette.Alert[`${r}IconColor`]}:{color:t.palette.mode==="dark"?t.palette[r].main:t.palette[r].light}},r&&e.variant==="filled"&&(0,a.Z)({fontWeight:t.typography.fontWeightMedium},t.vars?{color:t.vars.palette.Alert[`${r}FilledColor`],backgroundColor:t.vars.palette.Alert[`${r}FilledBg`]}:{backgroundColor:t.palette.mode==="dark"?t.palette[r].dark:t.palette[r].main,color:t.palette.getContrastText(t.palette.mode==="dark"?t.palette[r].dark:t.palette[r].main)}))}),is=(0,y.ZP)("div",{name:"MuiAlert",slot:"Icon",overridesResolver:(t,e)=>e.icon})({marginRight:12,padding:"7px 0",display:"flex",fontSize:22,opacity:.9}),ls=(0,y.ZP)("div",{name:"MuiAlert",slot:"Message",overridesResolver:(t,e)=>e.message})({padding:"8px 0",minWidth:0,overflow:"auto"}),Io=(0,y.ZP)("div",{name:"MuiAlert",slot:"Action",overridesResolver:(t,e)=>e.action})({display:"flex",alignItems:"flex-start",padding:"4px 0 0 16px",marginLeft:"auto",marginRight:-8}),Po={success:(0,u.jsx)(ts,{fontSize:"inherit"}),warning:(0,u.jsx)(es,{fontSize:"inherit"}),error:(0,u.jsx)(os,{fontSize:"inherit"}),info:(0,u.jsx)(ns,{fontSize:"inherit"})};var cs=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiAlert"}),{action:r,children:i,className:c,closeText:l="Close",color:d,icon:f,iconMapping:g=Po,onClose:m,role:h="alert",severity:C="success",variant:b="standard"}=n,P=(0,B.Z)(n,rs),v=(0,a.Z)({},n,{color:d,severity:C,variant:b}),I=as(v);return(0,u.jsxs)(ss,(0,a.Z)({role:h,elevation:0,ownerState:v,className:(0,M.Z)(I.root,c),ref:o},P,{children:[f!==!1?(0,u.jsx)(is,{ownerState:v,className:I.icon,children:f||g[C]||Po[C]}):null,(0,u.jsx)(ls,{ownerState:v,className:I.message,children:i}),r!=null?(0,u.jsx)(Io,{ownerState:v,className:I.action,children:r}):null,r==null&&m?(0,u.jsx)(Io,{ownerState:v,className:I.action,children:(0,u.jsx)(Jt.Z,{size:"small","aria-label":l,title:l,color:"inherit",onClick:m,children:So||(So=(0,u.jsx)(yo,{fontSize:"small"}))})}):null]}))}),Qt=s(99296);function Ro(t){return(0,W.Z)("MuiAlertTitle",t)}var us=(0,G.Z)("MuiAlertTitle",["root"]);const ds=["className"],ps=t=>{const{classes:e}=t,o={root:["root"]};return(0,E.Z)(o,Ro,e)},fs=(0,y.ZP)(Qt.Z,{name:"MuiAlertTitle",slot:"Root",overridesResolver:(t,e)=>e.root})(({theme:t})=>({fontWeight:t.typography.fontWeightMedium,marginTop:-2}));var gs=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiAlertTitle"}),{className:r}=n,i=(0,B.Z)(n,ds),c=n,l=ps(c);return(0,u.jsx)(fs,(0,a.Z)({gutterBottom:!0,component:"div",ownerState:c,ref:o,className:(0,M.Z)(l.root,r)},i))}),ms=s(36609),Lo=s(35646),To=s(38331);let Ao=0;function vs(t){const[e,o]=p.useState(t),n=t||e;return p.useEffect(()=>{e==null&&(Ao+=1,o(`mui-${Ao}`))},[e]),n}const Mo=p["useId"];function Cs(t){if(Mo!==void 0){const e=Mo();return t!=null?t:e}return vs(t)}var ze=s(71514),Le=s(5494),bs=s(14973);function Bo(t){return typeof t.normalize!="undefined"?t.normalize("NFD").replace(/[\u0300-\u036f]/g,""):t}function $o(t={}){const{ignoreAccents:e=!0,ignoreCase:o=!0,limit:n,matchFrom:r="any",stringify:i,trim:c=!1}=t;return(l,{inputValue:d,getOptionLabel:f})=>{let g=c?d.trim():d;o&&(g=g.toLowerCase()),e&&(g=Bo(g));const m=l.filter(h=>{let C=(i||f)(h);return o&&(C=C.toLowerCase()),e&&(C=Bo(C)),r==="start"?C.indexOf(g)===0:C.indexOf(g)>-1});return typeof n=="number"?m.slice(0,n):m}}function He(t,e){for(let o=0;o{var x;return(x=S.label)!=null?x:S},groupBy:Z,handleHomeEndKeys:T=!t.freeSolo,id:D,includeInputInList:U=!1,inputValue:K,isOptionEqualToValue:w=(S,x)=>S===x,multiple:A=!1,onChange:R,onClose:it,onHighlightChange:gt,onInputChange:j,onOpen:_,open:q,openOnFocus:et=!1,options:ut,readOnly:Bt=!1,selectOnFocus:Et=!t.freeSolo,value:F}=t,at=Cs(D);let Y=L;Y=S=>{const x=L(S);return typeof x!="string"?String(x):x};const nt=p.useRef(!1),dt=p.useRef(!0),Q=p.useRef(null),lt=p.useRef(null),[mt,O]=p.useState(null),[V,ct]=p.useState(-1),Pt=o?0:-1,vt=p.useRef(Pt),[z,Ft]=(0,ze.Z)({controlled:F,default:d,name:l}),[tt,ot]=(0,ze.Z)({controlled:K,default:"",name:l,state:"inputValue"}),[pt,yt]=p.useState(!1),Ot=p.useCallback((S,x)=>{if(!(A?z.length{const S=z!==Nt.current;Nt.current=z,!(pt&&!S)&&(v&&!S||Ot(null,z))},[z,Ot,pt,Nt,v]);const[Rt,Tt]=(0,ze.Z)({controlled:q,default:!1,name:l,state:"open"}),[jt,ne]=p.useState(!0),we=!A&&z!=null&&tt===Y(z),$t=Rt&&!Bt,St=$t?b(ut.filter(S=>!(P&&(A?z:[z]).some(x=>x!==null&&w(S,x)))),{inputValue:we&&jt?"":tt,getOptionLabel:Y}):[],le=Rt&&St.length>0&&!Bt,ve=(0,Le.Z)(S=>{S===-1?Q.current.focus():mt.querySelector(`[data-tag-index="${S}"]`).focus()});p.useEffect(()=>{A&&V>z.length-1&&(ct(-1),ve(-1))},[z,A,V,ve]);function uo(S,x){if(!lt.current||S===-1)return-1;let N=S;for(;;){if(x==="next"&&N===St.length||x==="previous"&&N===-1)return-1;const k=lt.current.querySelector(`[data-option-index="${N}"]`),st=h?!1:!k||k.disabled||k.getAttribute("aria-disabled")==="true";if(k&&!k.hasAttribute("tabindex")||st)N+=x==="next"?1:-1;else return N}}const zt=(0,Le.Z)(({event:S,index:x,reason:N="auto"})=>{if(vt.current=x,x===-1?Q.current.removeAttribute("aria-activedescendant"):Q.current.setAttribute("aria-activedescendant",`${at}-option-${x}`),gt&>(S,x===-1?null:St[x],N),!lt.current)return;const k=lt.current.querySelector('[role="option"].Mui-focused');k&&(k.classList.remove("Mui-focused"),k.classList.remove("Mui-focusVisible"));const st=lt.current.parentElement.querySelector('[role="listbox"]');if(!st)return;if(x===-1){st.scrollTop=0;return}const Ct=lt.current.querySelector(`[data-option-index="${x}"]`);if(!!Ct&&(Ct.classList.add("Mui-focused"),N==="keyboard"&&Ct.classList.add("Mui-focusVisible"),st.scrollHeight>st.clientHeight&&N!=="mouse")){const xt=Ct,Gt=st.clientHeight+st.scrollTop,Ea=xt.offsetTop+xt.offsetHeight;Ea>Gt?st.scrollTop=Ea-st.clientHeight:xt.offsetTop-xt.offsetHeight*(Z?1.3:0){if(!$t)return;const Ct=uo((()=>{const xt=St.length-1;if(x==="reset")return Pt;if(x==="start")return 0;if(x==="end")return xt;const Gt=vt.current+x;return Gt<0?Gt===-1&&U?-1:C&&vt.current!==-1||Math.abs(x)>1?0:xt:Gt>xt?Gt===xt+1&&U?-1:C||Math.abs(x)>1?xt:0:Gt})(),N);if(zt({index:Ct,reason:k,event:S}),e&&x!=="reset")if(Ct===-1)Q.current.value=tt;else{const xt=Y(St[Ct]);Q.current.value=xt,xt.toLowerCase().indexOf(tt.toLowerCase())===0&&tt.length>0&&Q.current.setSelectionRange(tt.length,xt.length)}}),Re=p.useCallback(()=>{if(!$t)return;const S=A?z[0]:z;if(St.length===0||S==null){Ut({diff:"reset"});return}if(!!lt.current){if(S!=null){const x=St[vt.current];if(A&&x&&He(z,k=>w(x,k))!==-1)return;const N=He(St,k=>w(k,S));N===-1?Ut({diff:"reset"}):zt({index:N});return}if(vt.current>=St.length-1){zt({index:St.length-1});return}zt({index:vt.current})}},[St.length,A?!1:z,P,Ut,zt,$t,tt,A]),Ce=(0,Le.Z)(S=>{(0,bs.Z)(lt,S),S&&Re()});p.useEffect(()=>{Re()},[Re]);const Xt=S=>{Rt||(Tt(!0),ne(!0),_&&_(S))},ce=(S,x)=>{!Rt||(Tt(!1),it&&it(S,x))},Wt=(S,x,N,k)=>{if(A){if(z.length===x.length&&z.every((st,Ct)=>st===x[Ct]))return}else if(z===x)return;R&&R(S,x,N,k),Ft(x)},re=p.useRef(!1),Yt=(S,x,N="selectOption",k="options")=>{let st=N,Ct=x;if(A){Ct=Array.isArray(z)?z.slice():[];const xt=He(Ct,Gt=>w(x,Gt));xt===-1?Ct.push(x):k!=="freeSolo"&&(Ct.splice(xt,1),st="removeOption")}Ot(S,Ct),Wt(S,Ct,st,{option:x}),!g&&!S.ctrlKey&&!S.metaKey&&ce(S,st),(r===!0||r==="touch"&&re.current||r==="mouse"&&!re.current)&&Q.current.blur()};function Lt(S,x){if(S===-1)return-1;let N=S;for(;;){if(x==="next"&&N===z.length||x==="previous"&&N===-1)return-1;const k=mt.querySelector(`[data-tag-index="${N}"]`);if(!k||!k.hasAttribute("tabindex")||k.disabled||k.getAttribute("aria-disabled")==="true")N+=x==="next"?1:-1;else return N}}const ht=(S,x)=>{if(!A)return;tt===""&&ce(S,"toggleInput");let N=V;V===-1?tt===""&&x==="previous"&&(N=z.length-1):(N+=x==="next"?1:-1,N<0&&(N=0),N===z.length&&(N=-1)),N=Lt(N,x),ct(N),ve(N)},Dt=S=>{nt.current=!0,ot(""),j&&j(S,"","clear"),Wt(S,A?[]:null,"clear")},Ha=S=>x=>{if(S.onKeyDown&&S.onKeyDown(x),!x.defaultMuiPrevented&&(V!==-1&&["ArrowLeft","ArrowRight"].indexOf(x.key)===-1&&(ct(-1),ve(-1)),x.which!==229))switch(x.key){case"Home":$t&&T&&(x.preventDefault(),Ut({diff:"start",direction:"next",reason:"keyboard",event:x}));break;case"End":$t&&T&&(x.preventDefault(),Ut({diff:"end",direction:"previous",reason:"keyboard",event:x}));break;case"PageUp":x.preventDefault(),Ut({diff:-No,direction:"previous",reason:"keyboard",event:x}),Xt(x);break;case"PageDown":x.preventDefault(),Ut({diff:No,direction:"next",reason:"keyboard",event:x}),Xt(x);break;case"ArrowDown":x.preventDefault(),Ut({diff:1,direction:"next",reason:"keyboard",event:x}),Xt(x);break;case"ArrowUp":x.preventDefault(),Ut({diff:-1,direction:"previous",reason:"keyboard",event:x}),Xt(x);break;case"ArrowLeft":ht(x,"previous");break;case"ArrowRight":ht(x,"next");break;case"Enter":if(vt.current!==-1&&$t){const N=St[vt.current],k=I?I(N):!1;if(x.preventDefault(),k)return;Yt(x,N,"selectOption"),e&&Q.current.setSelectionRange(Q.current.value.length,Q.current.value.length)}else v&&tt!==""&&we===!1&&(A&&x.preventDefault(),Yt(x,tt,"createOption","freeSolo"));break;case"Escape":$t?(x.preventDefault(),x.stopPropagation(),ce(x,"escape")):c&&(tt!==""||A&&z.length>0)&&(x.preventDefault(),x.stopPropagation(),Dt(x));break;case"Backspace":if(A&&!Bt&&tt===""&&z.length>0){const N=V===-1?z.length-1:V,k=z.slice();k.splice(N,1),Wt(x,k,"removeOption",{option:z[N]})}break;default:}},po=S=>{yt(!0),et&&!nt.current&&Xt(S)},fo=S=>{if(lt.current!==null&<.current.parentElement.contains(document.activeElement)){Q.current.focus();return}yt(!1),dt.current=!0,nt.current=!1,n&&vt.current!==-1&&$t?Yt(S,St[vt.current],"blur"):n&&v&&tt!==""?Yt(S,tt,"blur","freeSolo"):i&&Ot(S,z),ce(S,"blur")},go=S=>{const x=S.target.value;tt!==x&&(ot(x),ne(!1),j&&j(S,x,"input")),x===""?!f&&!A&&Wt(S,null,"clear"):Xt(S)},Fe=S=>{zt({event:S,index:Number(S.currentTarget.getAttribute("data-option-index")),reason:"mouse"})},rt=()=>{re.current=!0},At=S=>{const x=Number(S.currentTarget.getAttribute("data-option-index"));Yt(S,St[x],"selectOption"),re.current=!1},ae=S=>x=>{const N=z.slice();N.splice(S,1),Wt(x,N,"removeOption",{option:z[S]})},Oe=S=>{Rt?ce(S,"toggleInput"):Xt(S)},ff=S=>{S.target.getAttribute("id")!==at&&S.preventDefault()},gf=()=>{Q.current.focus(),Et&&dt.current&&Q.current.selectionEnd-Q.current.selectionStart===0&&Q.current.select(),dt.current=!1},mf=S=>{(tt===""||!Rt)&&Oe(S)};let mo=v&&tt.length>0;mo=mo||(A?z.length>0:z!==null);let ka=St;if(Z){const S=new Map;let x=!1;ka=St.reduce((N,k,st)=>{const Ct=Z(k);return N.length>0&&N[N.length-1].group===Ct?N[N.length-1].options.push(k):N.push({key:st,index:st,group:Ct,options:[k]}),N},[])}return m&&pt&&fo(),{getRootProps:(S={})=>(0,To.Z)({"aria-owns":le?`${at}-listbox`:null},S,{onKeyDown:Ha(S),onMouseDown:ff,onClick:gf}),getInputLabelProps:()=>({id:`${at}-label`,htmlFor:at}),getInputProps:()=>({id:at,value:tt,onBlur:fo,onFocus:po,onChange:go,onMouseDown:mf,"aria-activedescendant":$t?"":null,"aria-autocomplete":e?"both":"list","aria-controls":le?`${at}-listbox`:void 0,"aria-expanded":le,autoComplete:"off",ref:Q,autoCapitalize:"none",spellCheck:"false",role:"combobox"}),getClearProps:()=>({tabIndex:-1,onClick:Dt}),getPopupIndicatorProps:()=>({tabIndex:-1,onClick:Oe}),getTagProps:({index:S})=>(0,To.Z)({key:S,"data-tag-index":S,tabIndex:-1},!Bt&&{onDelete:ae(S)}),getListboxProps:()=>({role:"listbox",id:`${at}-listbox`,"aria-labelledby":`${at}-label`,ref:Ce,onMouseDown:S=>{S.preventDefault()}}),getOptionProps:({index:S,option:x})=>{const N=(A?z:[z]).some(st=>st!=null&&w(x,st)),k=I?I(x):!1;return{key:Y(x),tabIndex:-1,role:"option",id:`${at}-option-${S}`,onMouseOver:Fe,onClick:At,onTouchStart:rt,"data-option-index":S,"aria-disabled":k,"aria-selected":N}},id:at,inputValue:tt,value:z,dirty:mo,popupOpen:$t,focused:pt||V!==-1,anchorEl:mt,setAnchorEl:O,focusedTag:V,groupedOptions:ka}}var ke=s(81669);function Do(t){return(0,W.Z)("MuiListSubheader",t)}var xs=(0,G.Z)("MuiListSubheader",["root","colorPrimary","colorInherit","gutters","inset","sticky"]);const Zs=["className","color","component","disableGutters","disableSticky","inset"],ys=t=>{const{classes:e,color:o,disableGutters:n,inset:r,disableSticky:i}=t,c={root:["root",o!=="default"&&`color${(0,$.Z)(o)}`,!n&&"gutters",r&&"inset",!i&&"sticky"]};return(0,E.Z)(c,Do,e)},Ss=(0,y.ZP)("li",{name:"MuiListSubheader",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="default"&&e[`color${(0,$.Z)(o.color)}`],!o.disableGutters&&e.gutters,o.inset&&e.inset,!o.disableSticky&&e.sticky]}})(({theme:t,ownerState:e})=>(0,a.Z)({boxSizing:"border-box",lineHeight:"48px",listStyle:"none",color:(t.vars||t).palette.text.secondary,fontFamily:t.typography.fontFamily,fontWeight:t.typography.fontWeightMedium,fontSize:t.typography.pxToRem(14)},e.color==="primary"&&{color:(t.vars||t).palette.primary.main},e.color==="inherit"&&{color:"inherit"},!e.disableGutters&&{paddingLeft:16,paddingRight:16},e.inset&&{paddingLeft:72},!e.disableSticky&&{position:"sticky",top:0,zIndex:1,backgroundColor:(t.vars||t).palette.background.paper}));var wo=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiListSubheader"}),{className:r,color:i="default",component:c="li",disableGutters:l=!1,disableSticky:d=!1,inset:f=!1}=n,g=(0,B.Z)(n,Zs),m=(0,a.Z)({},n,{color:i,component:c,disableGutters:l,disableSticky:d,inset:f}),h=ys(m);return(0,u.jsx)(Ss,(0,a.Z)({as:c,className:(0,M.Z)(h.root,r),ref:o,ownerState:m},g))}),Fo=s(94207),Ee=s(60514),ue=s(38282),Oo=s(62818),de=s(42906),jo=s(86162);function zo(t){return(0,W.Z)("MuiAutocomplete",t)}var J=(0,G.Z)("MuiAutocomplete",["root","fullWidth","focused","focusVisible","tag","tagSizeSmall","tagSizeMedium","hasPopupIcon","hasClearIcon","inputRoot","input","inputFocused","endAdornment","clearIndicator","popupIndicator","popupIndicatorOpen","popper","popperDisablePortal","paper","listbox","loading","noOptions","option","groupLabel","groupUl"]),Ho,ko;const Is=["autoComplete","autoHighlight","autoSelect","blurOnSelect","ChipProps","className","clearIcon","clearOnBlur","clearOnEscape","clearText","closeText","componentsProps","defaultValue","disableClearable","disableCloseOnSelect","disabled","disabledItemsFocusable","disableListWrap","disablePortal","filterOptions","filterSelectedOptions","forcePopupIcon","freeSolo","fullWidth","getLimitTagsText","getOptionDisabled","getOptionLabel","isOptionEqualToValue","groupBy","handleHomeEndKeys","id","includeInputInList","inputValue","limitTags","ListboxComponent","ListboxProps","loading","loadingText","multiple","noOptionsText","onChange","onClose","onHighlightChange","onInputChange","onOpen","open","openOnFocus","openText","options","PaperComponent","PopperComponent","popupIcon","readOnly","renderGroup","renderInput","renderOption","renderTags","selectOnFocus","size","value"],Ps=t=>{const{classes:e,disablePortal:o,focused:n,fullWidth:r,hasClearIcon:i,hasPopupIcon:c,inputFocused:l,popupOpen:d,size:f}=t,g={root:["root",n&&"focused",r&&"fullWidth",i&&"hasClearIcon",c&&"hasPopupIcon"],inputRoot:["inputRoot"],input:["input",l&&"inputFocused"],tag:["tag",`tagSize${(0,$.Z)(f)}`],endAdornment:["endAdornment"],clearIndicator:["clearIndicator"],popupIndicator:["popupIndicator",d&&"popupIndicatorOpen"],popper:["popper",o&&"popperDisablePortal"],paper:["paper"],listbox:["listbox"],loading:["loading"],noOptions:["noOptions"],option:["option"],groupLabel:["groupLabel"],groupUl:["groupUl"]};return(0,E.Z)(g,zo,e)},Rs=(0,y.ZP)("div",{name:"MuiAutocomplete",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t,{fullWidth:n,hasClearIcon:r,hasPopupIcon:i,inputFocused:c,size:l}=o;return[{[`& .${J.tag}`]:e.tag},{[`& .${J.tag}`]:e[`tagSize${(0,$.Z)(l)}`]},{[`& .${J.inputRoot}`]:e.inputRoot},{[`& .${J.input}`]:e.input},{[`& .${J.input}`]:c&&e.inputFocused},e.root,n&&e.fullWidth,i&&e.hasPopupIcon,r&&e.hasClearIcon]}})(({ownerState:t})=>(0,a.Z)({[`&.${J.focused} .${J.clearIndicator}`]:{visibility:"visible"},"@media (pointer: fine)":{[`&:hover .${J.clearIndicator}`]:{visibility:"visible"}}},t.fullWidth&&{width:"100%"},{[`& .${J.tag}`]:(0,a.Z)({margin:3,maxWidth:"calc(100% - 6px)"},t.size==="small"&&{margin:2,maxWidth:"calc(100% - 4px)"}),[`& .${J.inputRoot}`]:{flexWrap:"wrap",[`.${J.hasPopupIcon}&, .${J.hasClearIcon}&`]:{paddingRight:26+4},[`.${J.hasPopupIcon}.${J.hasClearIcon}&`]:{paddingRight:52+4},[`& .${J.input}`]:{width:0,minWidth:30}},[`& .${Ee.Z.root}`]:{paddingBottom:1,"& .MuiInput-input":{padding:"4px 4px 4px 0px"}},[`& .${Ee.Z.root}.${ue.Z.sizeSmall}`]:{[`& .${Ee.Z.input}`]:{padding:"2px 4px 3px 0"}},[`& .${Oo.Z.root}`]:{padding:9,[`.${J.hasPopupIcon}&, .${J.hasClearIcon}&`]:{paddingRight:26+4+9},[`.${J.hasPopupIcon}.${J.hasClearIcon}&`]:{paddingRight:52+4+9},[`& .${J.input}`]:{padding:"7.5px 4px 7.5px 6px"},[`& .${J.endAdornment}`]:{right:9}},[`& .${Oo.Z.root}.${ue.Z.sizeSmall}`]:{padding:6,[`& .${J.input}`]:{padding:"2.5px 4px 2.5px 6px"}},[`& .${de.Z.root}`]:{paddingTop:19,paddingLeft:8,[`.${J.hasPopupIcon}&, .${J.hasClearIcon}&`]:{paddingRight:26+4+9},[`.${J.hasPopupIcon}.${J.hasClearIcon}&`]:{paddingRight:52+4+9},[`& .${de.Z.input}`]:{padding:"7px 4px"},[`& .${J.endAdornment}`]:{right:9}},[`& .${de.Z.root}.${ue.Z.sizeSmall}`]:{paddingBottom:1,[`& .${de.Z.input}`]:{padding:"2.5px 4px"}},[`& .${ue.Z.hiddenLabel}`]:{paddingTop:8},[`& .${J.input}`]:(0,a.Z)({flexGrow:1,textOverflow:"ellipsis",opacity:0},t.inputFocused&&{opacity:1})})),Ls=(0,y.ZP)("div",{name:"MuiAutocomplete",slot:"EndAdornment",overridesResolver:(t,e)=>e.endAdornment})({position:"absolute",right:0,top:"calc(50% - 14px)"}),Ts=(0,y.ZP)(Jt.Z,{name:"MuiAutocomplete",slot:"ClearIndicator",overridesResolver:(t,e)=>e.clearIndicator})({marginRight:-2,padding:4,visibility:"hidden"}),As=(0,y.ZP)(Jt.Z,{name:"MuiAutocomplete",slot:"PopupIndicator",overridesResolver:({ownerState:t},e)=>(0,a.Z)({},e.popupIndicator,t.popupOpen&&e.popupIndicatorOpen)})(({ownerState:t})=>(0,a.Z)({padding:2,marginRight:-2},t.popupOpen&&{transform:"rotate(180deg)"})),Ms=(0,y.ZP)(ke.Z,{name:"MuiAutocomplete",slot:"Popper",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${J.option}`]:e.option},e.popper,o.disablePortal&&e.popperDisablePortal]}})(({theme:t,ownerState:e})=>(0,a.Z)({zIndex:(t.vars||t).zIndex.modal},e.disablePortal&&{position:"absolute"})),Bs=(0,y.ZP)(be.Z,{name:"MuiAutocomplete",slot:"Paper",overridesResolver:(t,e)=>e.paper})(({theme:t})=>(0,a.Z)({},t.typography.body1,{overflow:"auto"})),$s=(0,y.ZP)("div",{name:"MuiAutocomplete",slot:"Loading",overridesResolver:(t,e)=>e.loading})(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"})),Ns=(0,y.ZP)("div",{name:"MuiAutocomplete",slot:"NoOptions",overridesResolver:(t,e)=>e.noOptions})(({theme:t})=>({color:(t.vars||t).palette.text.secondary,padding:"14px 16px"})),Us=(0,y.ZP)("div",{name:"MuiAutocomplete",slot:"Listbox",overridesResolver:(t,e)=>e.listbox})(({theme:t})=>({listStyle:"none",margin:0,padding:"8px 0",maxHeight:"40vh",overflow:"auto",[`& .${J.option}`]:{minHeight:48,display:"flex",overflow:"hidden",justifyContent:"flex-start",alignItems:"center",cursor:"pointer",paddingTop:6,boxSizing:"border-box",outline:"0",WebkitTapHighlightColor:"transparent",paddingBottom:6,paddingLeft:16,paddingRight:16,[t.breakpoints.up("sm")]:{minHeight:"auto"},[`&.${J.focused}`]:{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},'&[aria-disabled="true"]':{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${J.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},'&[aria-selected="true"]':{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / ${t.vars.palette.action.selectedOpacity})`:(0,ft.Fq)(t.palette.primary.main,t.palette.action.selectedOpacity),[`&.${J.focused}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:(0,ft.Fq)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${J.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.primary.mainChannel} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:(0,ft.Fq)(t.palette.primary.main,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)}}}})),Ds=(0,y.ZP)(wo,{name:"MuiAutocomplete",slot:"GroupLabel",overridesResolver:(t,e)=>e.groupLabel})(({theme:t})=>({backgroundColor:(t.vars||t).palette.background.paper,top:-8})),ws=(0,y.ZP)("ul",{name:"MuiAutocomplete",slot:"GroupUl",overridesResolver:(t,e)=>e.groupUl})({padding:0,[`& .${J.option}`]:{paddingLeft:24}});var Fs=p.forwardRef(function(e,o){var n,r,i,c;const l=(0,H.Z)({props:e,name:"MuiAutocomplete"}),{autoComplete:d=!1,autoHighlight:f=!1,autoSelect:g=!1,blurOnSelect:m=!1,ChipProps:h,className:C,clearIcon:b=Ho||(Ho=(0,u.jsx)(yo,{fontSize:"small"})),clearOnBlur:P=!l.freeSolo,clearOnEscape:v=!1,clearText:I="Clear",closeText:L="Close",componentsProps:Z={},defaultValue:T=l.multiple?[]:null,disableClearable:D=!1,disableCloseOnSelect:U=!1,disabled:K=!1,disabledItemsFocusable:w=!1,disableListWrap:A=!1,disablePortal:R=!1,filterSelectedOptions:it=!1,forcePopupIcon:gt="auto",freeSolo:j=!1,fullWidth:_=!1,getLimitTagsText:q=rt=>`+${rt}`,getOptionLabel:et=rt=>{var At;return(At=rt.label)!=null?At:rt},groupBy:ut,handleHomeEndKeys:Bt=!l.freeSolo,includeInputInList:Et=!1,limitTags:F=-1,ListboxComponent:at="ul",ListboxProps:Y,loading:nt=!1,loadingText:dt="Loading\u2026",multiple:Q=!1,noOptionsText:lt="No options",openOnFocus:mt=!1,openText:O="Open",PaperComponent:V=be.Z,PopperComponent:ct=ke.Z,popupIcon:Pt=ko||(ko=(0,u.jsx)(jo.Z,{})),readOnly:vt=!1,renderGroup:z,renderInput:Ft,renderOption:tt,renderTags:ot,selectOnFocus:pt=!l.freeSolo,size:yt="medium"}=l,Ot=(0,B.Z)(l,Is),{getRootProps:Nt,getInputProps:Rt,getInputLabelProps:Tt,getPopupIndicatorProps:jt,getClearProps:ne,getTagProps:we,getListboxProps:$t,getOptionProps:St,value:le,dirty:ve,id:uo,popupOpen:zt,focused:Ut,focusedTag:Re,anchorEl:Ce,setAnchorEl:Xt,inputValue:ce,groupedOptions:Wt}=Uo((0,a.Z)({},l,{componentName:"Autocomplete"})),re=!D&&!K&&ve&&!vt,Yt=(!j||gt===!0)&>!==!1,Lt=(0,a.Z)({},l,{disablePortal:R,focused:Ut,fullWidth:_,hasClearIcon:re,hasPopupIcon:Yt,inputFocused:Re===-1,popupOpen:zt,size:yt}),ht=Ps(Lt);let Dt;if(Q&&le.length>0){const rt=At=>(0,a.Z)({className:(0,M.Z)(ht.tag),disabled:K},we(At));ot?Dt=ot(le,rt,Lt):Dt=le.map((At,ae)=>(0,u.jsx)(Fo.Z,(0,a.Z)({label:et(At),size:yt},rt({index:ae}),h)))}if(F>-1&&Array.isArray(Dt)){const rt=Dt.length-F;!Ut&&rt>0&&(Dt=Dt.splice(0,F),Dt.push((0,u.jsx)("span",{className:ht.tag,children:q(rt)},Dt.length)))}const po=z||(rt=>(0,u.jsxs)("li",{children:[(0,u.jsx)(Ds,{className:ht.groupLabel,ownerState:Lt,component:"div",children:rt.group}),(0,u.jsx)(ws,{className:ht.groupUl,ownerState:Lt,children:rt.children})]},rt.key)),go=tt||((rt,At)=>(0,u.jsx)("li",(0,a.Z)({},rt,{children:et(At)}))),Fe=(rt,At)=>{const ae=St({option:rt,index:At});return go((0,a.Z)({},ae,{className:ht.option}),rt,{selected:ae["aria-selected"],inputValue:ce})};return(0,u.jsxs)(p.Fragment,{children:[(0,u.jsx)(Rs,(0,a.Z)({ref:o,className:(0,M.Z)(ht.root,C),ownerState:Lt},Nt(Ot),{children:Ft({id:uo,disabled:K,fullWidth:!0,size:yt==="small"?"small":void 0,InputLabelProps:Tt(),InputProps:(0,a.Z)({ref:Xt,className:ht.inputRoot,startAdornment:Dt},(re||Yt)&&{endAdornment:(0,u.jsxs)(Ls,{className:ht.endAdornment,ownerState:Lt,children:[re?(0,u.jsx)(Ts,(0,a.Z)({},ne(),{"aria-label":I,title:I,ownerState:Lt},Z.clearIndicator,{className:(0,M.Z)(ht.clearIndicator,(n=Z.clearIndicator)==null?void 0:n.className),children:b})):null,Yt?(0,u.jsx)(As,(0,a.Z)({},jt(),{disabled:K,"aria-label":zt?L:O,title:zt?L:O,ownerState:Lt},Z.popupIndicator,{className:(0,M.Z)(ht.popupIndicator,(r=Z.popupIndicator)==null?void 0:r.className),children:Pt})):null]})}),inputProps:(0,a.Z)({className:(0,M.Z)(ht.input),disabled:K,readOnly:vt},Rt())})})),zt&&Ce?(0,u.jsx)(Ms,(0,a.Z)({as:ct,disablePortal:R,style:{width:Ce?Ce.clientWidth:null},ownerState:Lt,role:"presentation",anchorEl:Ce,open:!0},Z.popper,{className:(0,M.Z)(ht.popper,(i=Z.popper)==null?void 0:i.className),children:(0,u.jsxs)(Bs,(0,a.Z)({ownerState:Lt,as:V},Z.paper,{className:(0,M.Z)(ht.paper,(c=Z.paper)==null?void 0:c.className),children:[nt&&Wt.length===0?(0,u.jsx)($s,{className:ht.loading,ownerState:Lt,children:dt}):null,Wt.length===0&&!j&&!nt?(0,u.jsx)(Ns,{className:ht.noOptions,ownerState:Lt,role:"presentation",onMouseDown:rt=>{rt.preventDefault()},children:lt}):null,Wt.length>0?(0,u.jsx)(Us,(0,a.Z)({as:at,className:ht.listbox,ownerState:Lt},$t(),Y,{children:Wt.map((rt,At)=>ut?po({key:rt.key,group:rt.group,children:rt.options.map((ae,Oe)=>Fe(ae,rt.index+Oe))}):Fe(rt,At))})):null]}))})):null]})}),Os=(0,It.Z)((0,u.jsx)("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"Person");function Eo(t){return(0,W.Z)("MuiAvatar",t)}var Wo=(0,G.Z)("MuiAvatar",["root","colorDefault","circular","rounded","square","img","fallback"]);const js=["alt","children","className","component","imgProps","sizes","src","srcSet","variant"],zs=t=>{const{classes:e,variant:o,colorDefault:n}=t,r={root:["root",o,n&&"colorDefault"],img:["img"],fallback:["fallback"]};return(0,E.Z)(r,Eo,e)},Hs=(0,y.ZP)("div",{name:"MuiAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],o.colorDefault&&e.colorDefault]}})(({theme:t,ownerState:e})=>(0,a.Z)({position:"relative",display:"flex",alignItems:"center",justifyContent:"center",flexShrink:0,width:40,height:40,fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(20),lineHeight:1,borderRadius:"50%",overflow:"hidden",userSelect:"none"},e.variant==="rounded"&&{borderRadius:(t.vars||t).shape.borderRadius},e.variant==="square"&&{borderRadius:0},e.colorDefault&&(0,a.Z)({color:(t.vars||t).palette.background.default},t.vars?{backgroundColor:t.vars.palette.Avatar.defaultBg}:{backgroundColor:t.palette.mode==="light"?t.palette.grey[400]:t.palette.grey[600]}))),ks=(0,y.ZP)("img",{name:"MuiAvatar",slot:"Img",overridesResolver:(t,e)=>e.img})({width:"100%",height:"100%",textAlign:"center",objectFit:"cover",color:"transparent",textIndent:1e4}),Es=(0,y.ZP)(Os,{name:"MuiAvatar",slot:"Fallback",overridesResolver:(t,e)=>e.fallback})({width:"75%",height:"75%"});function Ws({crossOrigin:t,referrerPolicy:e,src:o,srcSet:n}){const[r,i]=p.useState(!1);return p.useEffect(()=>{if(!o&&!n)return;i(!1);let c=!0;const l=new Image;return l.onload=()=>{!c||i("loaded")},l.onerror=()=>{!c||i("error")},l.crossOrigin=t,l.referrerPolicy=e,l.src=o,n&&(l.srcset=n),()=>{c=!1}},[t,e,o,n]),r}var Go=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiAvatar"}),{alt:r,children:i,className:c,component:l="div",imgProps:d,sizes:f,src:g,srcSet:m,variant:h="circular"}=n,C=(0,B.Z)(n,js);let b=null;const P=Ws((0,a.Z)({},d,{src:g,srcSet:m})),v=g||m,I=v&&P!=="error",L=(0,a.Z)({},n,{colorDefault:!I,component:l,variant:h}),Z=zs(L);return I?b=(0,u.jsx)(ks,(0,a.Z)({alt:r,src:g,srcSet:m,sizes:f,ownerState:L,className:Z.img},d)):i!=null?b=i:v&&r?b=r[0]:b=(0,u.jsx)(Es,{className:Z.fallback}),(0,u.jsx)(Hs,(0,a.Z)({as:l,ownerState:L,className:(0,M.Z)(Z.root,c),ref:o},C,{children:b}))}),Af=s(338);function Vo(t){return(0,W.Z)("MuiAvatarGroup",t)}var Ko=(0,G.Z)("MuiAvatarGroup",["root","avatar"]);const Gs=["children","className","componentsProps","max","spacing","total","variant"],Xo={small:-16,medium:null},Vs=t=>{const{classes:e}=t,o={root:["root"],avatar:["avatar"]};return(0,E.Z)(o,Vo,e)},Ks=(0,y.ZP)("div",{name:"MuiAvatarGroup",slot:"Root",overridesResolver:(t,e)=>(0,a.Z)({[`& .${Ko.avatar}`]:e.avatar},e.root)})(({theme:t})=>({[`& .${Wo.root}`]:{border:`2px solid ${(t.vars||t).palette.background.default}`,boxSizing:"content-box",marginLeft:-8,"&:last-child":{marginLeft:0}},display:"flex",flexDirection:"row-reverse"})),Xs=(0,y.ZP)(Go,{name:"MuiAvatarGroup",slot:"Avatar",overridesResolver:(t,e)=>e.avatar})(({theme:t})=>({border:`2px solid ${(t.vars||t).palette.background.default}`,boxSizing:"content-box",marginLeft:-8,"&:last-child":{marginLeft:0}}));var Ys=p.forwardRef(function(e,o){var n,r;const i=(0,H.Z)({props:e,name:"MuiAvatarGroup"}),{children:c,className:l,componentsProps:d={},max:f=5,spacing:g="medium",total:m,variant:h="circular"}=i,C=(0,B.Z)(i,Gs);let b=f<2?2:f;const P=(0,a.Z)({},i,{max:f,spacing:g,variant:h}),v=Vs(P),I=p.Children.toArray(c).filter(U=>p.isValidElement(U)),L=m||I.length;L===b&&(b+=1),b=Math.min(L+1,b);const Z=Math.min(I.length,b-1),T=Math.max(L-b,L-Z,0),D=g&&Xo[g]!==void 0?Xo[g]:-g;return(0,u.jsxs)(Ks,(0,a.Z)({ownerState:P,className:(0,M.Z)(v.root,l),ref:o},C,{children:[T?(0,u.jsxs)(Xs,(0,a.Z)({ownerState:P,variant:h},d.additionalAvatar,{className:(0,M.Z)(v.avatar,(n=d.additionalAvatar)==null?void 0:n.className),style:(0,a.Z)({marginLeft:D},(r=d.additionalAvatar)==null?void 0:r.style),children:["+",T]})):null,I.slice(0,Z).reverse().map((U,K)=>p.cloneElement(U,{className:(0,M.Z)(U.props.className,v.avatar),style:(0,a.Z)({marginLeft:K===Z-1?void 0:D},U.props.style),variant:U.props.variant||h}))]}))}),Js=s(499),Yo=s(96216),Qs=s(75239),Jo=s(23536);function Qo(t){return(0,W.Z)("MuiBottomNavigation",t)}var qs=(0,G.Z)("MuiBottomNavigation",["root"]);const _s=["children","className","component","onChange","showLabels","value"],ti=t=>{const{classes:e}=t,o={root:["root"]};return(0,E.Z)(o,Qo,e)},ei=(0,y.ZP)("div",{name:"MuiBottomNavigation",slot:"Root",overridesResolver:(t,e)=>e.root})(({theme:t})=>({display:"flex",justifyContent:"center",height:56,backgroundColor:(t.vars||t).palette.background.paper}));var oi=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiBottomNavigation"}),{children:r,className:i,component:c="div",onChange:l,showLabels:d=!1,value:f}=n,g=(0,B.Z)(n,_s),m=(0,a.Z)({},n,{component:c,showLabels:d}),h=ti(m);return(0,u.jsx)(ei,(0,a.Z)({as:c,className:(0,M.Z)(h.root,i),ref:o,ownerState:m},g,{children:p.Children.map(r,(C,b)=>{if(!p.isValidElement(C))return null;const P=C.props.value===void 0?b:C.props.value;return p.cloneElement(C,{selected:P===f,showLabel:C.props.showLabel!==void 0?C.props.showLabel:d,value:P,onChange:l})})}))}),pe=s(4078);function qo(t){return(0,W.Z)("MuiBottomNavigationAction",t)}var We=(0,G.Z)("MuiBottomNavigationAction",["root","iconOnly","selected","label"]);const ni=["className","icon","label","onChange","onClick","selected","showLabel","value"],ri=t=>{const{classes:e,showLabel:o,selected:n}=t,r={root:["root",!o&&!n&&"iconOnly",n&&"selected"],label:["label",!o&&!n&&"iconOnly",n&&"selected"]};return(0,E.Z)(r,qo,e)},ai=(0,y.ZP)(pe.Z,{name:"MuiBottomNavigationAction",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,!o.showLabel&&!o.selected&&e.iconOnly]}})(({theme:t,ownerState:e})=>(0,a.Z)({transition:t.transitions.create(["color","padding-top"],{duration:t.transitions.duration.short}),padding:"0px 12px",minWidth:80,maxWidth:168,color:(t.vars||t).palette.text.secondary,flexDirection:"column",flex:"1"},!e.showLabel&&!e.selected&&{paddingTop:14},!e.showLabel&&!e.selected&&!e.label&&{paddingTop:0},{[`&.${We.selected}`]:{color:(t.vars||t).palette.primary.main}})),si=(0,y.ZP)("span",{name:"MuiBottomNavigationAction",slot:"Label",overridesResolver:(t,e)=>e.label})(({theme:t,ownerState:e})=>(0,a.Z)({fontFamily:t.typography.fontFamily,fontSize:t.typography.pxToRem(12),opacity:1,transition:"font-size 0.2s, opacity 0.2s",transitionDelay:"0.1s"},!e.showLabel&&!e.selected&&{opacity:0,transitionDelay:"0s"},{[`&.${We.selected}`]:{fontSize:t.typography.pxToRem(14)}}));var ii=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiBottomNavigationAction"}),{className:r,icon:i,label:c,onChange:l,onClick:d,value:f}=n,g=(0,B.Z)(n,ni),m=n,h=ri(m),C=b=>{l&&l(b,f),d&&d(b)};return(0,u.jsxs)(ai,(0,a.Z)({ref:o,className:(0,M.Z)(h.root,r),focusRipple:!0,onClick:C,ownerState:m},g,{children:[i,(0,u.jsx)(si,{className:h.label,ownerState:m,children:c})]}))}),li=s(12551),ci=(0,It.Z)((0,u.jsx)("path",{d:"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"}),"MoreHoriz");const ui=(0,y.ZP)(pe.Z)(({theme:t})=>(0,a.Z)({display:"flex",marginLeft:`calc(${t.spacing(1)} * 0.5)`,marginRight:`calc(${t.spacing(1)} * 0.5)`},t.palette.mode==="light"?{backgroundColor:t.palette.grey[100],color:t.palette.grey[700]}:{backgroundColor:t.palette.grey[700],color:t.palette.grey[100]},{borderRadius:2,"&:hover, &:focus":(0,a.Z)({},t.palette.mode==="light"?{backgroundColor:t.palette.grey[200]}:{backgroundColor:t.palette.grey[600]}),"&:active":(0,a.Z)({boxShadow:t.shadows[0]},t.palette.mode==="light"?{backgroundColor:(0,ft._4)(t.palette.grey[200],.12)}:{backgroundColor:(0,ft._4)(t.palette.grey[600],.12)})})),di=(0,y.ZP)(ci)({width:24,height:16});function pi(t){const e=t;return(0,u.jsx)("li",{children:(0,u.jsx)(ui,(0,a.Z)({focusRipple:!0},t,{ownerState:e,children:(0,u.jsx)(di,{ownerState:e})}))})}var fi=pi;function _o(t){return(0,W.Z)("MuiBreadcrumbs",t)}var tn=(0,G.Z)("MuiBreadcrumbs",["root","ol","li","separator"]);const gi=["children","className","component","expandText","itemsAfterCollapse","itemsBeforeCollapse","maxItems","separator"],mi=t=>{const{classes:e}=t,o={root:["root"],li:["li"],ol:["ol"],separator:["separator"]};return(0,E.Z)(o,_o,e)},vi=(0,y.ZP)(Qt.Z,{name:"MuiBreadcrumbs",slot:"Root",overridesResolver:(t,e)=>[{[`& .${tn.li}`]:e.li},e.root]})({}),Ci=(0,y.ZP)("ol",{name:"MuiBreadcrumbs",slot:"Ol",overridesResolver:(t,e)=>e.ol})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"}),bi=(0,y.ZP)("li",{name:"MuiBreadcrumbs",slot:"Separator",overridesResolver:(t,e)=>e.separator})({display:"flex",userSelect:"none",marginLeft:8,marginRight:8});function hi(t,e,o,n){return t.reduce((r,i,c)=>(c{const D=()=>{b(!0);const U=I.current.querySelector("a[href],button,[tabindex]");U&&U.focus()};return f+d>=T.length?T:[...T.slice(0,f),(0,u.jsx)(fi,{"aria-label":l,onClick:D},"ellipsis"),...T.slice(T.length-d,T.length)]},Z=p.Children.toArray(r).filter(T=>p.isValidElement(T)).map((T,D)=>(0,u.jsx)("li",{className:v.li,children:T},`child-${D}`));return(0,u.jsx)(vi,(0,a.Z)({ref:o,component:c,color:"text.secondary",className:(0,M.Z)(v.root,i),ownerState:P},h,{children:(0,u.jsx)(Ci,{className:v.ol,ref:I,ownerState:P,children:hi(C||g&&Z.length<=g?Z:L(Z),v.separator,m,P)})}))}),Zi=s(55480),en=s(73319),on=s(10769),nn=s(37364);function rn(t){return(0,W.Z)("MuiButtonGroup",t)}var Vt=(0,G.Z)("MuiButtonGroup",["root","contained","outlined","text","disableElevation","disabled","fullWidth","vertical","grouped","groupedHorizontal","groupedVertical","groupedText","groupedTextHorizontal","groupedTextVertical","groupedTextPrimary","groupedTextSecondary","groupedOutlined","groupedOutlinedHorizontal","groupedOutlinedVertical","groupedOutlinedPrimary","groupedOutlinedSecondary","groupedContained","groupedContainedHorizontal","groupedContainedVertical","groupedContainedPrimary","groupedContainedSecondary"]),yi=s(32706);const Si=["children","className","color","component","disabled","disableElevation","disableFocusRipple","disableRipple","fullWidth","orientation","size","variant"],Ii=(t,e)=>{const{ownerState:o}=t;return[{[`& .${Vt.grouped}`]:e.grouped},{[`& .${Vt.grouped}`]:e[`grouped${(0,$.Z)(o.orientation)}`]},{[`& .${Vt.grouped}`]:e[`grouped${(0,$.Z)(o.variant)}`]},{[`& .${Vt.grouped}`]:e[`grouped${(0,$.Z)(o.variant)}${(0,$.Z)(o.orientation)}`]},{[`& .${Vt.grouped}`]:e[`grouped${(0,$.Z)(o.variant)}${(0,$.Z)(o.color)}`]},e.root,e[o.variant],o.disableElevation===!0&&e.disableElevation,o.fullWidth&&e.fullWidth,o.orientation==="vertical"&&e.vertical]},Pi=t=>{const{classes:e,color:o,disabled:n,disableElevation:r,fullWidth:i,orientation:c,variant:l}=t,d={root:["root",l,c==="vertical"&&"vertical",i&&"fullWidth",r&&"disableElevation"],grouped:["grouped",`grouped${(0,$.Z)(c)}`,`grouped${(0,$.Z)(l)}`,`grouped${(0,$.Z)(l)}${(0,$.Z)(c)}`,`grouped${(0,$.Z)(l)}${(0,$.Z)(o)}`,n&&"disabled"]};return(0,E.Z)(d,rn,e)},Ri=(0,y.ZP)("div",{name:"MuiButtonGroup",slot:"Root",overridesResolver:Ii})(({theme:t,ownerState:e})=>(0,a.Z)({display:"inline-flex",borderRadius:(t.vars||t).shape.borderRadius},e.variant==="contained"&&{boxShadow:(t.vars||t).shadows[2]},e.disableElevation&&{boxShadow:"none"},e.fullWidth&&{width:"100%"},e.orientation==="vertical"&&{flexDirection:"column"},{[`& .${Vt.grouped}`]:(0,a.Z)({minWidth:40,"&:not(:first-of-type)":(0,a.Z)({},e.orientation==="horizontal"&&{borderTopLeftRadius:0,borderBottomLeftRadius:0},e.orientation==="vertical"&&{borderTopRightRadius:0,borderTopLeftRadius:0},e.variant==="outlined"&&e.orientation==="horizontal"&&{marginLeft:-1},e.variant==="outlined"&&e.orientation==="vertical"&&{marginTop:-1}),"&:not(:last-of-type)":(0,a.Z)({},e.orientation==="horizontal"&&{borderTopRightRadius:0,borderBottomRightRadius:0},e.orientation==="vertical"&&{borderBottomRightRadius:0,borderBottomLeftRadius:0},e.variant==="text"&&e.orientation==="horizontal"&&{borderRight:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`},e.variant==="text"&&e.orientation==="vertical"&&{borderBottom:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`},e.variant==="text"&&e.color!=="inherit"&&{borderColor:t.vars?`rgba(${t.vars.palette[e.color].mainChannel} / 0.5)`:(0,ft.Fq)(t.palette[e.color].main,.5)},e.variant==="outlined"&&e.orientation==="horizontal"&&{borderRightColor:"transparent"},e.variant==="outlined"&&e.orientation==="vertical"&&{borderBottomColor:"transparent"},e.variant==="contained"&&e.orientation==="horizontal"&&{borderRight:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${Vt.disabled}`]:{borderRight:`1px solid ${(t.vars||t).palette.action.disabled}`}},e.variant==="contained"&&e.orientation==="vertical"&&{borderBottom:`1px solid ${(t.vars||t).palette.grey[400]}`,[`&.${Vt.disabled}`]:{borderBottom:`1px solid ${(t.vars||t).palette.action.disabled}`}},e.variant==="contained"&&e.color!=="inherit"&&{borderColor:(t.vars||t).palette[e.color].dark},{"&:hover":(0,a.Z)({},e.variant==="outlined"&&e.orientation==="horizontal"&&{borderRightColor:"currentColor"},e.variant==="outlined"&&e.orientation==="vertical"&&{borderBottomColor:"currentColor"})}),"&:hover":(0,a.Z)({},e.variant==="contained"&&{boxShadow:"none"})},e.variant==="contained"&&{boxShadow:"none"})}));var Li=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiButtonGroup"}),{children:r,className:i,color:c="primary",component:l="div",disabled:d=!1,disableElevation:f=!1,disableFocusRipple:g=!1,disableRipple:m=!1,fullWidth:h=!1,orientation:C="horizontal",size:b="medium",variant:P="outlined"}=n,v=(0,B.Z)(n,Si),I=(0,a.Z)({},n,{color:c,component:l,disabled:d,disableElevation:f,disableFocusRipple:g,disableRipple:m,fullWidth:h,orientation:C,size:b,variant:P}),L=Pi(I),Z=p.useMemo(()=>({className:L.grouped,color:c,disabled:d,disableElevation:f,disableFocusRipple:g,disableRipple:m,fullWidth:h,size:b,variant:P}),[c,d,f,g,m,h,b,P,L.grouped]);return(0,u.jsx)(Ri,(0,a.Z)({as:l,role:"group",className:(0,M.Z)(L.root,i),ref:o,ownerState:I},v,{children:(0,u.jsx)(yi.Z.Provider,{value:Z,children:r})}))}),Ti=s(42577),an=s(53478),Ai=s(56428),sn=s(14063),Mi=s(69876),ln=s(22531),Bi=s(55973),cn=s(4502);function un(t){return(0,W.Z)("MuiCardHeader",t)}var Ge=(0,G.Z)("MuiCardHeader",["root","avatar","action","content","title","subheader"]);const $i=["action","avatar","className","component","disableTypography","subheader","subheaderTypographyProps","title","titleTypographyProps"],Ni=t=>{const{classes:e}=t,o={root:["root"],avatar:["avatar"],action:["action"],content:["content"],title:["title"],subheader:["subheader"]};return(0,E.Z)(o,un,e)},Ui=(0,y.ZP)("div",{name:"MuiCardHeader",slot:"Root",overridesResolver:(t,e)=>(0,a.Z)({[`& .${Ge.title}`]:e.title,[`& .${Ge.subheader}`]:e.subheader},e.root)})({display:"flex",alignItems:"center",padding:16}),Di=(0,y.ZP)("div",{name:"MuiCardHeader",slot:"Avatar",overridesResolver:(t,e)=>e.avatar})({display:"flex",flex:"0 0 auto",marginRight:16}),wi=(0,y.ZP)("div",{name:"MuiCardHeader",slot:"Action",overridesResolver:(t,e)=>e.action})({flex:"0 0 auto",alignSelf:"flex-start",marginTop:-4,marginRight:-8,marginBottom:-4}),Fi=(0,y.ZP)("div",{name:"MuiCardHeader",slot:"Content",overridesResolver:(t,e)=>e.content})({flex:"1 1 auto"});var Oi=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiCardHeader"}),{action:r,avatar:i,className:c,component:l="div",disableTypography:d=!1,subheader:f,subheaderTypographyProps:g,title:m,titleTypographyProps:h}=n,C=(0,B.Z)(n,$i),b=(0,a.Z)({},n,{component:l,disableTypography:d}),P=Ni(b);let v=m;v!=null&&v.type!==Qt.Z&&!d&&(v=(0,u.jsx)(Qt.Z,(0,a.Z)({variant:i?"body2":"h5",className:P.title,component:"span",display:"block"},h,{children:v})));let I=f;return I!=null&&I.type!==Qt.Z&&!d&&(I=(0,u.jsx)(Qt.Z,(0,a.Z)({variant:i?"body2":"body1",className:P.subheader,color:"text.secondary",component:"span",display:"block"},g,{children:I}))),(0,u.jsxs)(Ui,(0,a.Z)({className:(0,M.Z)(P.root,c),as:l,ref:o,ownerState:b},C,{children:[i&&(0,u.jsx)(Di,{className:P.avatar,ownerState:b,children:i}),(0,u.jsxs)(Fi,{className:P.content,ownerState:b,children:[v,I]}),r&&(0,u.jsx)(wi,{className:P.action,ownerState:b,children:r})]}))}),ji=s(97882),dn=s(26377),zi=s(36315),pn=s(23082),fn=s(27737),Hi=s(78918),gn=s(62428),ki=s(85317),Ve=s(25601),mn=s(11298),Ei=s(60916),Te=s(54695),Wi=s(39322),vn=s(25786);const Cn=t=>t;var Gi=(()=>{let t=Cn;return{configure(e){t=e},generate(e){return t(e)},reset(){t=Cn}}})();const Vi={active:"active",checked:"checked",completed:"completed",disabled:"disabled",error:"error",expanded:"expanded",focused:"focused",focusVisible:"focusVisible",required:"required",selected:"selected"};function Ki(t,e,o="Mui"){const n=Vi[e];return n?`${o}-${n}`:`${Gi.generate(t)}-${e}`}function Xi(t,e,o){const n={};return Object.keys(t).forEach(r=>{n[r]=t[r].reduce((i,c)=>(c&&(o&&o[c]&&i.push(o[c]),i.push(e(c))),i),[]).join(" ")}),n}var bn=s(15901),Yi=s(34228),Ji=(0,Yi.ZP)(),Qi=s(89655);const qi=["className","component","disableGutters","fixed","maxWidth","classes"],_i=(0,Qi.Z)(),tl=Ji("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${(0,vn.Z)(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),el=t=>(0,bn.Z)({props:t,name:"MuiContainer",defaultTheme:_i}),ol=(t,e)=>{const o=d=>Ki(e,d),{classes:n,fixed:r,disableGutters:i,maxWidth:c}=t,l={root:["root",c&&`maxWidth${(0,vn.Z)(String(c))}`,r&&"fixed",i&&"disableGutters"]};return Xi(l,o,n)};function nl(t={}){const{createStyledComponent:e=tl,useThemeProps:o=el,componentName:n="MuiContainer"}=t,r=e(({theme:c,ownerState:l})=>(0,Te.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!l.disableGutters&&{paddingLeft:c.spacing(2),paddingRight:c.spacing(2),[c.breakpoints.up("sm")]:{paddingLeft:c.spacing(3),paddingRight:c.spacing(3)}}),({theme:c,ownerState:l})=>l.fixed&&Object.keys(c.breakpoints.values).reduce((d,f)=>{const g=f,m=c.breakpoints.values[g];return m!==0&&(d[c.breakpoints.up(g)]={maxWidth:`${m}${c.breakpoints.unit}`}),d},{}),({theme:c,ownerState:l})=>(0,Te.Z)({},l.maxWidth==="xs"&&{[c.breakpoints.up("xs")]:{maxWidth:Math.max(c.breakpoints.values.xs,444)}},l.maxWidth&&l.maxWidth!=="xs"&&{[c.breakpoints.up(l.maxWidth)]:{maxWidth:`${c.breakpoints.values[l.maxWidth]}${c.breakpoints.unit}`}}));return p.forwardRef(function(l,d){const f=o(l),{className:g,component:m="div",disableGutters:h=!1,fixed:C=!1,maxWidth:b="lg"}=f,P=(0,Ei.Z)(f,qi),v=(0,Te.Z)({},f,{component:m,disableGutters:h,fixed:C,maxWidth:b}),I=ol(v,n);return(0,u.jsx)(r,(0,Te.Z)({as:m,ownerState:v,className:(0,Wi.Z)(I.root,g),ref:d},P))})}var rl=nl({createStyledComponent:(0,y.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`maxWidth${(0,$.Z)(String(o.maxWidth))}`],o.fixed&&e.fixed,o.disableGutters&&e.disableGutters]}}),useThemeProps:t=>(0,H.Z)({props:t,name:"MuiContainer"})});function al(t){return(0,W.Z)("MuiContainer",t)}var sl=(0,G.Z)("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"]),hn=s(5524);const xn=(t,e)=>(0,a.Z)({WebkitFontSmoothing:"antialiased",MozOsxFontSmoothing:"grayscale",boxSizing:"border-box",WebkitTextSizeAdjust:"100%"},e&&{colorScheme:t.palette.mode}),Zn=t=>(0,a.Z)({color:(t.vars||t).palette.text.primary},t.typography.body1,{backgroundColor:(t.vars||t).palette.background.default,"@media print":{backgroundColor:(t.vars||t).palette.common.white}}),il=(t,e=!1)=>{var o,n;let r={html:xn(t,e),"*, *::before, *::after":{boxSizing:"inherit"},"strong, b":{fontWeight:t.typography.fontWeightBold},body:(0,a.Z)({margin:0},Zn(t),{"&::backdrop":{backgroundColor:(t.vars||t).palette.background.default}})};const i=(o=t.components)==null||(n=o.MuiCssBaseline)==null?void 0:n.styleOverrides;return i&&(r=[r,i]),r};function ll(t){const e=(0,H.Z)({props:t,name:"MuiCssBaseline"}),{children:o,enableColorScheme:n=!1}=e;return(0,u.jsxs)(p.Fragment,{children:[(0,u.jsx)(hn.Z,{styles:r=>il(r,n)}),o]})}var cl=ll;const ul={track:"#2b2b2b",thumb:"#6b6b6b",active:"#959595"};function dl(t=ul){return{scrollbarColor:`${t.thumb} ${t.track}`,"&::-webkit-scrollbar, & *::-webkit-scrollbar":{backgroundColor:t.track},"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb":{borderRadius:8,backgroundColor:t.thumb,minHeight:24,border:`3px solid ${t.track}`},"&::-webkit-scrollbar-thumb:focus, & *::-webkit-scrollbar-thumb:focus":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:active, & *::-webkit-scrollbar-thumb:active":{backgroundColor:t.active},"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover":{backgroundColor:t.active},"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner":{backgroundColor:t.track}}}var pl=s(66447),yn=s(28020),fl=s(19974),Sn=s(41818),gl=s(6774),In=s(67730),ml=s(44887),Pn=s(81602),vl=s(29480),Rn=s(89676),Cl=s(3394),Ln=s(13272),wt=s(72202),Tn=s(24220),Ke=s(67552),An=s(22238),bl=s(92339),hl=s(49789),xl=s(71386),Xe=s(75197),Zl=s(2598),Mn=s(11933),Bn=s(23736),$n=s(61202),yl=s(98056),Nn=s(93640),Un=s(61551),Dn=s(54414),Sl=s(75836),wn=s(61711),Il=s(70354),Pl=s(85319),Kt=s(18051),Fn=s(63830),On=s(96675);const Rl=["initialWidth","width"],qt=["xs","sm","md","lg","xl"],Ll=(t,e,o=!0)=>o?qt.indexOf(t)<=qt.indexOf(e):qt.indexOf(t)o?qt.indexOf(e)<=qt.indexOf(t):qt.indexOf(e)e=>{const{withTheme:o=!1,noSSR:n=!1,initialWidth:r}=t;function i(c){const l=(0,Kt.Z)(),d=c.theme||l,f=(0,Pl.Z)({theme:d,name:"MuiWithWidth",props:c}),{initialWidth:g,width:m}=f,h=(0,B.Z)(f,Rl),[C,b]=p.useState(!1);(0,Fn.Z)(()=>{b(!0)},[]);const v=d.breakpoints.keys.slice().reverse().reduce((L,Z)=>{const T=(0,On.Z)(d.breakpoints.up(Z));return!L&&T?Z:L},null),I=(0,a.Z)({width:m||(C||n?v:void 0)||g||r},o?{theme:d}:{},h);return I.width===void 0?null:(0,u.jsx)(e,(0,a.Z)({},I))}return i};function jn(t){const{children:e,only:o,width:n}=t,r=(0,Kt.Z)();let i=!0;if(o)if(Array.isArray(o))for(let c=0;c{const{classes:e,breakpoints:o}=t,n={root:["root",...o.map(({breakpoint:r,dir:i})=>i==="only"?`${i}${(0,$.Z)(r)}`:`${r}${(0,$.Z)(i)}`)]};return(0,E.Z)(n,Bl,e)},Ul=(0,y.ZP)("div",{name:"PrivateHiddenCss",slot:"Root"})(({theme:t,ownerState:e})=>{const o={display:"none"};return(0,a.Z)({},e.breakpoints.map(({breakpoint:n,dir:r})=>r==="only"?{[t.breakpoints.only(n)]:o}:r==="up"?{[t.breakpoints.up(n)]:o}:{[t.breakpoints.down(n)]:o}).reduce((n,r)=>(Object.keys(r).forEach(i=>{n[i]=r[i]}),n),{}))});function Dl(t){const{children:e,className:o,only:n}=t,r=(0,B.Z)(t,$l),i=(0,Kt.Z)(),c=[];for(let f=0;f{c.push({breakpoint:g,dir:"only"})});const l=(0,a.Z)({},t,{breakpoints:c}),d=Nl(l);return(0,u.jsx)(Ul,{className:(0,M.Z)(d.root,o),ownerState:l,children:e})}var wl=Dl;const Fl=["implementation","lgDown","lgUp","mdDown","mdUp","smDown","smUp","xlDown","xlUp","xsDown","xsUp"];function Ol(t){const{implementation:e="js",lgDown:o=!1,lgUp:n=!1,mdDown:r=!1,mdUp:i=!1,smDown:c=!1,smUp:l=!1,xlDown:d=!1,xlUp:f=!1,xsDown:g=!1,xsUp:m=!1}=t,h=(0,B.Z)(t,Fl);return e==="js"?(0,u.jsx)(Ml,(0,a.Z)({lgDown:o,lgUp:n,mdDown:r,mdUp:i,smDown:c,smUp:l,xlDown:d,xlUp:f,xsDown:g,xsUp:m},h)):(0,u.jsx)(wl,(0,a.Z)({lgDown:o,lgUp:n,mdDown:r,mdUp:i,smDown:c,smUp:l,xlDown:d,xlUp:f,xsDown:g,xsUp:m},h))}var jl=Ol;function zn(t){return(0,W.Z)("MuiIcon",t)}var zl=(0,G.Z)("MuiIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]);const Hl=["baseClassName","className","color","component","fontSize"],kl=t=>{const{color:e,fontSize:o,classes:n}=t,r={root:["root",e!=="inherit"&&`color${(0,$.Z)(e)}`,`fontSize${(0,$.Z)(o)}`]};return(0,E.Z)(r,zn,n)},El=(0,y.ZP)("span",{name:"MuiIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.color!=="inherit"&&e[`color${(0,$.Z)(o.color)}`],e[`fontSize${(0,$.Z)(o.fontSize)}`]]}})(({theme:t,ownerState:e})=>({userSelect:"none",width:"1em",height:"1em",overflow:"hidden",display:"inline-block",textAlign:"center",flexShrink:0,fontSize:{inherit:"inherit",small:t.typography.pxToRem(20),medium:t.typography.pxToRem(24),large:t.typography.pxToRem(36)}[e.fontSize],color:{primary:(t.vars||t).palette.primary.main,secondary:(t.vars||t).palette.secondary.main,info:(t.vars||t).palette.info.main,success:(t.vars||t).palette.success.main,warning:(t.vars||t).palette.warning.main,action:(t.vars||t).palette.action.active,error:(t.vars||t).palette.error.main,disabled:(t.vars||t).palette.action.disabled,inherit:void 0}[e.color]})),Hn=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiIcon"}),{baseClassName:r="material-icons",className:i,color:c="inherit",component:l="span",fontSize:d="medium"}=n,f=(0,B.Z)(n,Hl),g=(0,a.Z)({},n,{baseClassName:r,color:c,component:l,fontSize:d}),m=kl(g);return(0,u.jsx)(El,(0,a.Z)({as:l,className:(0,M.Z)(r,"notranslate",m.root,i),ownerState:g,"aria-hidden":!0,ref:o},f))});Hn.muiName="Icon";var Wl=Hn,kn=s(72952);function En(t){return(0,W.Z)("MuiImageList",t)}var Gl=(0,G.Z)("MuiImageList",["root","masonry","quilted","standard","woven"]),Wn=p.createContext({});const Vl=["children","className","cols","component","rowHeight","gap","style","variant"],Kl=t=>{const{classes:e,variant:o}=t,n={root:["root",o]};return(0,E.Z)(n,En,e)},Xl=(0,y.ZP)("ul",{name:"MuiImageList",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})(({ownerState:t})=>(0,a.Z)({display:"grid",overflowY:"auto",listStyle:"none",padding:0,WebkitOverflowScrolling:"touch"},t.variant==="masonry"&&{display:"block"}));var Yl=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiImageList"}),{children:r,className:i,cols:c=2,component:l="ul",rowHeight:d="auto",gap:f=4,style:g,variant:m="standard"}=n,h=(0,B.Z)(n,Vl),C=p.useMemo(()=>({rowHeight:d,gap:f,variant:m}),[d,f,m]);p.useEffect(()=>{},[]);const b=m==="masonry"?(0,a.Z)({columnCount:c,columnGap:f},g):(0,a.Z)({gridTemplateColumns:`repeat(${c}, 1fr)`,gap:f},g),P=(0,a.Z)({},n,{component:l,gap:f,rowHeight:d,variant:m}),v=Kl(P);return(0,u.jsx)(Xl,(0,a.Z)({as:l,className:(0,M.Z)(v.root,v[m],i),ref:o,style:b,ownerState:P},h,{children:(0,u.jsx)(Wn.Provider,{value:C,children:r})}))}),Ye=s(61104);function Gn(t){return(0,W.Z)("MuiImageListItem",t)}var Je=(0,G.Z)("MuiImageListItem",["root","img","standard","woven","masonry","quilted"]);const Jl=["children","className","cols","component","rows","style"],Ql=t=>{const{classes:e,variant:o}=t,n={root:["root",o],img:["img"]};return(0,E.Z)(n,Gn,e)},ql=(0,y.ZP)("li",{name:"MuiImageListItem",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${Je.img}`]:e.img},e.root,e[o.variant]]}})(({ownerState:t})=>(0,a.Z)({display:"inline-block",position:"relative",lineHeight:0},t.variant==="standard"&&{display:"flex",flexDirection:"column"},t.variant==="woven"&&{height:"100%",alignSelf:"center","&:nth-of-type(even)":{height:"70%"}},{[`& .${Je.img}`]:(0,a.Z)({objectFit:"cover",width:"100%",height:"100%"},t.variant==="standard"&&{height:"auto",flexGrow:1})}));var _l=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiImageListItem"}),{children:r,className:i,cols:c=1,component:l="li",rows:d=1,style:f}=n,g=(0,B.Z)(n,Jl),{rowHeight:m="auto",gap:h,variant:C}=p.useContext(Wn);let b="auto";C==="woven"?b=void 0:m!=="auto"&&(b=m*d+h*(d-1));const P=(0,a.Z)({},n,{cols:c,component:l,gap:h,rowHeight:m,rows:d,variant:C}),v=Ql(P);return(0,u.jsx)(ql,(0,a.Z)({as:l,className:(0,M.Z)(v.root,v[C],i),ref:o,style:(0,a.Z)({height:b,gridColumnEnd:C!=="masonry"?`span ${c}`:void 0,gridRowEnd:C!=="masonry"?`span ${d}`:void 0,marginBottom:C==="masonry"?h:void 0},f),ownerState:P},g,{children:p.Children.map(r,I=>p.isValidElement(I)?I.type==="img"||(0,Ye.Z)(I,["Image"])?p.cloneElement(I,{className:(0,M.Z)(v.img,I.props.className)}):I:null)}))});function Vn(t){return(0,W.Z)("MuiImageListItemBar",t)}var tc=(0,G.Z)("MuiImageListItemBar",["root","positionBottom","positionTop","positionBelow","titleWrap","titleWrapBottom","titleWrapTop","titleWrapBelow","titleWrapActionPosLeft","titleWrapActionPosRight","title","subtitle","actionIcon","actionIconActionPosLeft","actionIconActionPosRight"]);const ec=["actionIcon","actionPosition","className","subtitle","title","position"],oc=t=>{const{classes:e,position:o,actionIcon:n,actionPosition:r}=t,i={root:["root",`position${(0,$.Z)(o)}`],titleWrap:["titleWrap",`titleWrap${(0,$.Z)(o)}`,n&&`titleWrapActionPos${(0,$.Z)(r)}`],title:["title"],subtitle:["subtitle"],actionIcon:["actionIcon",`actionIconActionPos${(0,$.Z)(r)}`]};return(0,E.Z)(i,Vn,e)},nc=(0,y.ZP)("div",{name:"MuiImageListItemBar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${(0,$.Z)(o.position)}`]]}})(({theme:t,ownerState:e})=>(0,a.Z)({position:"absolute",left:0,right:0,background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",fontFamily:t.typography.fontFamily},e.position==="bottom"&&{bottom:0},e.position==="top"&&{top:0},e.position==="below"&&{position:"relative",background:"transparent",alignItems:"normal"})),rc=(0,y.ZP)("div",{name:"MuiImageListItemBar",slot:"TitleWrap",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.titleWrap,e[`titleWrap${(0,$.Z)(o.position)}`],o.actionIcon&&e[`titleWrapActionPos${(0,$.Z)(o.actionPosition)}`]]}})(({theme:t,ownerState:e})=>(0,a.Z)({flexGrow:1,padding:"12px 16px",color:(t.vars||t).palette.common.white,overflow:"hidden"},e.position==="below"&&{padding:"6px 0 12px",color:"inherit"},e.actionIcon&&e.actionPosition==="left"&&{paddingLeft:0},e.actionIcon&&e.actionPosition==="right"&&{paddingRight:0})),ac=(0,y.ZP)("div",{name:"MuiImageListItemBar",slot:"Title",overridesResolver:(t,e)=>e.title})(({theme:t})=>({fontSize:t.typography.pxToRem(16),lineHeight:"24px",textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"})),sc=(0,y.ZP)("div",{name:"MuiImageListItemBar",slot:"Subtitle",overridesResolver:(t,e)=>e.subtitle})(({theme:t})=>({fontSize:t.typography.pxToRem(12),lineHeight:1,textOverflow:"ellipsis",overflow:"hidden",whiteSpace:"nowrap"})),ic=(0,y.ZP)("div",{name:"MuiImageListItemBar",slot:"ActionIcon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actionIcon,e[`actionIconActionPos${(0,$.Z)(o.actionPosition)}`]]}})(({ownerState:t})=>(0,a.Z)({},t.actionPosition==="left"&&{order:-1}));var lc=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiImageListItemBar"}),{actionIcon:r,actionPosition:i="right",className:c,subtitle:l,title:d,position:f="bottom"}=n,g=(0,B.Z)(n,ec),m=(0,a.Z)({},n,{position:f,actionPosition:i}),h=oc(m);return(0,u.jsxs)(nc,(0,a.Z)({ownerState:m,className:(0,M.Z)(h.root,c),ref:o},g,{children:[(0,u.jsxs)(rc,{ownerState:m,className:h.titleWrap,children:[(0,u.jsx)(ac,{className:h.title,children:d}),l?(0,u.jsx)(sc,{className:h.subtitle,children:l}):null]}),r?(0,u.jsx)(ic,{ownerState:m,className:h.actionIcon,children:r}):null]}))}),Kn=s(69073),Xn=s(49521),cc=s(27254),Yn=s(23357),Jn=s(4666),uc=s(66116),Qn=s(10391),qn=s(66966),_n=s(23180),tr=s(85827),se=s(70485);function er(t){return(0,W.Z)("MuiLink",t)}var or=(0,G.Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),nr=s(13713);const rr={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},dc=t=>rr[t]||t;var pc=({theme:t,ownerState:e})=>{const o=dc(e.color),n=(0,nr.D)(t,`palette.${o}`,!1)||e.color,r=(0,nr.D)(t,`palette.${o}Channel`);return"vars"in t&&r?`rgba(${r} / 0.4)`:(0,ft.Fq)(n,.4)};const fc=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant","sx"],gc=t=>{const{classes:e,component:o,focusVisible:n,underline:r}=t,i={root:["root",`underline${(0,$.Z)(r)}`,o==="button"&&"button",n&&"focusVisible"]};return(0,E.Z)(i,er,e)},mc=(0,y.ZP)(Qt.Z,{name:"MuiLink",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`underline${(0,$.Z)(o.underline)}`],o.component==="button"&&e.button]}})(({theme:t,ownerState:e})=>(0,a.Z)({},e.underline==="none"&&{textDecoration:"none"},e.underline==="hover"&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},e.underline==="always"&&(0,a.Z)({textDecoration:"underline"},e.color!=="inherit"&&{textDecorationColor:pc({theme:t,ownerState:e})},{"&:hover":{textDecorationColor:"inherit"}}),e.component==="button"&&{position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"},[`&.${or.focusVisible}`]:{outline:"auto"}}));var vc=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiLink"}),{className:r,color:i="primary",component:c="a",onBlur:l,onFocus:d,TypographyClasses:f,underline:g="always",variant:m="inherit",sx:h}=n,C=(0,B.Z)(n,fc),{isFocusVisibleRef:b,onBlur:P,onFocus:v,ref:I}=(0,tr.Z)(),[L,Z]=p.useState(!1),T=(0,se.Z)(o,I),D=A=>{P(A),b.current===!1&&Z(!1),l&&l(A)},U=A=>{v(A),b.current===!0&&Z(!0),d&&d(A)},K=(0,a.Z)({},n,{color:i,component:c,focusVisible:L,underline:g,variant:m}),w=gc(K);return(0,u.jsx)(mc,(0,a.Z)({color:i,className:(0,M.Z)(w.root,r),classes:f,component:c,onBlur:D,onFocus:U,ref:T,ownerState:K,variant:m,sx:[...Object.keys(rr).includes(i)?[]:[{color:i}],...Array.isArray(h)?h:[h]]},C))}),Cc=s(51402),ar=s(67677),bc=s(70315),sr=s(12172),hc=s(27511);function ir(t){return(0,W.Z)("MuiListItemAvatar",t)}var xc=(0,G.Z)("MuiListItemAvatar",["root","alignItemsFlexStart"]);const Zc=["className"],yc=t=>{const{alignItems:e,classes:o}=t,n={root:["root",e==="flex-start"&&"alignItemsFlexStart"]};return(0,E.Z)(n,ir,o)},Sc=(0,y.ZP)("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.alignItems==="flex-start"&&e.alignItemsFlexStart]}})(({ownerState:t})=>(0,a.Z)({minWidth:56,flexShrink:0},t.alignItems==="flex-start"&&{marginTop:8}));var Ic=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiListItemAvatar"}),{className:r}=n,i=(0,B.Z)(n,Zc),c=p.useContext(hc.Z),l=(0,a.Z)({},n,{alignItems:c.alignItems}),d=yc(l);return(0,u.jsx)(Sc,(0,a.Z)({className:(0,M.Z)(d.root,r),ownerState:l,ref:o},i))}),Pc=s(64527),lr=s(88757),Rc=s(79882),cr=s(58206),Lc=s(14734),ur=s(46883),Tc=s(57931),dr=s(60128),Ac=s(46572),pr=s(83184),fr=s(41381),gr=s(46881),Mc=s(10156);function mr(t){return(0,W.Z)("MuiMobileStepper",t)}var Bc=(0,G.Z)("MuiMobileStepper",["root","positionBottom","positionTop","positionStatic","dots","dot","dotActive","progress"]);const $c=["activeStep","backButton","className","LinearProgressProps","nextButton","position","steps","variant"],Nc=t=>{const{classes:e,position:o}=t,n={root:["root",`position${(0,$.Z)(o)}`],dots:["dots"],dot:["dot"],dotActive:["dotActive"],progress:["progress"]};return(0,E.Z)(n,mr,e)},Uc=(0,y.ZP)(be.Z,{name:"MuiMobileStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`position${(0,$.Z)(o.position)}`]]}})(({theme:t,ownerState:e})=>(0,a.Z)({display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center",background:(t.vars||t).palette.background.default,padding:8},e.position==="bottom"&&{position:"fixed",bottom:0,left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper},e.position==="top"&&{position:"fixed",top:0,left:0,right:0,zIndex:(t.vars||t).zIndex.mobileStepper})),Dc=(0,y.ZP)("div",{name:"MuiMobileStepper",slot:"Dots",overridesResolver:(t,e)=>e.dots})(({ownerState:t})=>(0,a.Z)({},t.variant==="dots"&&{display:"flex",flexDirection:"row"})),wc=(0,y.ZP)("div",{name:"MuiMobileStepper",slot:"Dot",shouldForwardProp:t=>(0,y.Dz)(t)&&t!=="dotActive",overridesResolver:(t,e)=>{const{dotActive:o}=t;return[e.dot,o&&e.dotActive]}})(({theme:t,ownerState:e,dotActive:o})=>(0,a.Z)({},e.variant==="dots"&&(0,a.Z)({transition:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),backgroundColor:(t.vars||t).palette.action.disabled,borderRadius:"50%",width:8,height:8,margin:"0 2px"},o&&{backgroundColor:(t.vars||t).palette.primary.main}))),Fc=(0,y.ZP)(qn.Z,{name:"MuiMobileStepper",slot:"Progress",overridesResolver:(t,e)=>e.progress})(({ownerState:t})=>(0,a.Z)({},t.variant==="progress"&&{width:"50%"}));var Oc=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiMobileStepper"}),{activeStep:r=0,backButton:i,className:c,LinearProgressProps:l,nextButton:d,position:f="bottom",steps:g,variant:m="dots"}=n,h=(0,B.Z)(n,$c),C=(0,a.Z)({},n,{activeStep:r,position:f,variant:m}),b=Nc(C);return(0,u.jsxs)(Uc,(0,a.Z)({square:!0,elevation:0,className:(0,M.Z)(b.root,c),ref:o,ownerState:C},h,{children:[i,m==="text"&&(0,u.jsxs)(p.Fragment,{children:[r+1," / ",g]}),m==="dots"&&(0,u.jsx)(Dc,{ownerState:C,className:b.dots,children:[...new Array(g)].map((P,v)=>(0,u.jsx)(wc,{className:(0,M.Z)(b.dot,v===r&&b.dotActive),ownerState:C,dotActive:v===r},v))}),m==="progress"&&(0,u.jsx)(Fc,(0,a.Z)({ownerState:C,className:b.progress,variant:"determinate",value:Math.ceil(r/(g-1)*100)},l)),d]}))}),vr=s(56266),jc=s(70223),Cr=s(73544),zc=s(12498),Hc=s(82742),kc=s(21704),Qe=s(43880);const Ec=["className","children","classes","IconComponent","input","inputProps","variant"],Wc=["root"],Gc=t=>{const{classes:e}=t,o={root:["root"]};return(0,E.Z)(o,Qe.f,e)},Vc=(0,u.jsx)(Kn.Z,{}),br=p.forwardRef(function(e,o){const n=(0,H.Z)({name:"MuiNativeSelect",props:e}),{className:r,children:i,classes:c={},IconComponent:l=jo.Z,input:d=Vc,inputProps:f}=n,g=(0,B.Z)(n,Ec),m=(0,kc.Z)(),h=(0,Hc.Z)({props:n,muiFormControl:m,states:["variant"]}),C=(0,a.Z)({},n,{classes:c}),b=Gc(C),P=(0,B.Z)(c,Wc);return p.cloneElement(d,(0,a.Z)({inputComponent:zc.ZP,inputProps:(0,a.Z)({children:i,classes:P,IconComponent:l,variant:h.variant,type:void 0},f,d?d.props.inputProps:{}),ref:o},g,{className:(0,M.Z)(b.root,d.props.className,r)}))});br.muiName="Select";var Kc=br,Xc=s(47242);function Yc(t){const{children:e,defer:o=!1,fallback:n=null}=t,[r,i]=p.useState(!1);return(0,Xc.Z)(()=>{o||i(!0)},[o]),p.useEffect(()=>{o&&i(!0)},[o]),(0,u.jsx)(p.Fragment,{children:r?e:n})}var hr=Yc,Jc=s(2039),xr=s(93300);function Zr(t){return(0,W.Z)("MuiPagination",t)}var Qc=(0,G.Z)("MuiPagination",["root","ul","outlined","text"]),qc=s(77710);const _c=["boundaryCount","componentName","count","defaultPage","disabled","hideNextButton","hidePrevButton","onChange","page","showFirstButton","showLastButton","siblingCount"];function yr(t={}){const{boundaryCount:e=1,componentName:o="usePagination",count:n=1,defaultPage:r=1,disabled:i=!1,hideNextButton:c=!1,hidePrevButton:l=!1,onChange:d,page:f,showFirstButton:g=!1,showLastButton:m=!1,siblingCount:h=1}=t,C=(0,B.Z)(t,_c),[b,P]=(0,qc.Z)({controlled:f,default:r,name:o,state:"page"}),v=(A,R)=>{f||P(R),d&&d(A,R)},I=(A,R)=>{const it=R-A+1;return Array.from({length:it},(gt,j)=>A+j)},L=I(1,Math.min(e,n)),Z=I(Math.max(n-e+1,e+1),n),T=Math.max(Math.min(b-h,n-e-h*2-1),e+2),D=Math.min(Math.max(b+h,e+h*2+2),Z.length>0?Z[0]-2:n-1),U=[...g?["first"]:[],...l?[]:["previous"],...L,...T>e+2?["start-ellipsis"]:e+1e?[n-e]:[],...Z,...c?[]:["next"],...m?["last"]:[]],K=A=>{switch(A){case"first":return 1;case"previous":return b-1;case"next":return b+1;case"last":return n;default:return null}},w=U.map(A=>typeof A=="number"?{onClick:R=>{v(R,A)},type:"page",page:A,selected:A===b,disabled:i,"aria-current":A===b?"true":void 0}:{onClick:R=>{v(R,K(A))},type:A,page:K(A),selected:!1,disabled:i||A.indexOf("ellipsis")===-1&&(A==="next"||A==="last"?b>=n:b<=1)});return(0,a.Z)({items:w},C)}function Sr(t){return(0,W.Z)("MuiPaginationItem",t)}var Mt=(0,G.Z)("MuiPaginationItem",["root","page","sizeSmall","sizeLarge","text","textPrimary","textSecondary","outlined","outlinedPrimary","outlinedSecondary","rounded","ellipsis","firstLast","previousNext","focusVisible","disabled","selected","icon"]),he=(0,It.Z)((0,u.jsx)("path",{d:"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z"}),"FirstPage"),xe=(0,It.Z)((0,u.jsx)("path",{d:"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z"}),"LastPage"),qe=(0,It.Z)((0,u.jsx)("path",{d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"}),"NavigateBefore"),_e=(0,It.Z)((0,u.jsx)("path",{d:"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"}),"NavigateNext");const tu=["className","color","component","components","disabled","page","selected","shape","size","type","variant"],Ir=(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant],e[`size${(0,$.Z)(o.size)}`],o.variant==="text"&&e[`text${(0,$.Z)(o.color)}`],o.variant==="outlined"&&e[`outlined${(0,$.Z)(o.color)}`],o.shape==="rounded"&&e.rounded,o.type==="page"&&e.page,(o.type==="start-ellipsis"||o.type==="end-ellipsis")&&e.ellipsis,(o.type==="previous"||o.type==="next")&&e.previousNext,(o.type==="first"||o.type==="last")&&e.firstLast]},eu=t=>{const{classes:e,color:o,disabled:n,selected:r,size:i,shape:c,type:l,variant:d}=t,f={root:["root",`size${(0,$.Z)(i)}`,d,c,o!=="standard"&&`${d}${(0,$.Z)(o)}`,n&&"disabled",r&&"selected",{page:"page",first:"firstLast",last:"firstLast","start-ellipsis":"ellipsis","end-ellipsis":"ellipsis",previous:"previousNext",next:"previousNext"}[l]],icon:["icon"]};return(0,E.Z)(f,Sr,e)},ou=(0,y.ZP)("div",{name:"MuiPaginationItem",slot:"Root",overridesResolver:Ir})(({theme:t,ownerState:e})=>(0,a.Z)({},t.typography.body2,{borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,height:"auto",[`&.${Mt.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity}},e.size==="small"&&{minWidth:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"},e.size==="large"&&{minWidth:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)})),nu=(0,y.ZP)(pe.Z,{name:"MuiPaginationItem",slot:"Root",overridesResolver:Ir})(({theme:t,ownerState:e})=>(0,a.Z)({},t.typography.body2,{borderRadius:32/2,textAlign:"center",boxSizing:"border-box",minWidth:32,height:32,padding:"0 6px",margin:"0 3px",color:(t.vars||t).palette.text.primary,[`&.${Mt.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${Mt.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},transition:t.transitions.create(["color","background-color"],{duration:t.transitions.duration.short}),"&:hover":{backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Mt.selected}`]:{backgroundColor:(t.vars||t).palette.action.selected,"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selected} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:(0,ft.Fq)(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:(t.vars||t).palette.action.selected}},[`&.${Mt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette.action.selected} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.focusOpacity}))`:(0,ft.Fq)(t.palette.action.selected,t.palette.action.selectedOpacity+t.palette.action.focusOpacity)},[`&.${Mt.disabled}`]:{opacity:1,color:(t.vars||t).palette.action.disabled,backgroundColor:(t.vars||t).palette.action.selected}}},e.size==="small"&&{minWidth:26,height:26,borderRadius:26/2,margin:"0 1px",padding:"0 4px"},e.size==="large"&&{minWidth:40,height:40,borderRadius:40/2,padding:"0 10px",fontSize:t.typography.pxToRem(15)},e.shape==="rounded"&&{borderRadius:(t.vars||t).shape.borderRadius}),({theme:t,ownerState:e})=>(0,a.Z)({},e.variant==="text"&&{[`&.${Mt.selected}`]:(0,a.Z)({},e.color!=="standard"&&{color:(t.vars||t).palette[e.color].contrastText,backgroundColor:(t.vars||t).palette[e.color].main,"&:hover":{backgroundColor:(t.vars||t).palette[e.color].dark,"@media (hover: none)":{backgroundColor:(t.vars||t).palette[e.color].main}},[`&.${Mt.focusVisible}`]:{backgroundColor:(t.vars||t).palette[e.color].dark}},{[`&.${Mt.disabled}`]:{color:(t.vars||t).palette.action.disabled}})},e.variant==="outlined"&&{border:t.vars?`1px solid rgba(${t.vars.palette.common.onBackgroundChannel} / 0.23)`:`1px solid ${t.palette.mode==="light"?"rgba(0, 0, 0, 0.23)":"rgba(255, 255, 255, 0.23)"}`,[`&.${Mt.selected}`]:(0,a.Z)({},e.color!=="standard"&&{color:(t.vars||t).palette[e.color].main,border:`1px solid ${t.vars?`rgba(${t.vars.palette[e.color].mainChannel} / 0.5)`:(0,ft.Fq)(t.palette[e.color].main,.5)}`,backgroundColor:t.vars?`rgba(${t.vars.palette[e.color].mainChannel} / ${t.vars.palette.action.activatedOpacity})`:(0,ft.Fq)(t.palette[e.color].main,t.palette.action.activatedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${t.vars.palette[e.color].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:(0,ft.Fq)(t.palette[e.color].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${Mt.focusVisible}`]:{backgroundColor:t.vars?`rgba(${t.vars.palette[e.color].mainChannel} / calc(${t.vars.palette.action.activatedOpacity} + ${t.vars.palette.action.focusOpacity}))`:(0,ft.Fq)(t.palette[e.color].main,t.palette.action.activatedOpacity+t.palette.action.focusOpacity)}},{[`&.${Mt.disabled}`]:{borderColor:(t.vars||t).palette.action.disabledBackground,color:(t.vars||t).palette.action.disabled}})})),ru=(0,y.ZP)("div",{name:"MuiPaginationItem",slot:"Icon",overridesResolver:(t,e)=>e.icon})(({theme:t,ownerState:e})=>(0,a.Z)({fontSize:t.typography.pxToRem(20),margin:"0 -8px"},e.size==="small"&&{fontSize:t.typography.pxToRem(18)},e.size==="large"&&{fontSize:t.typography.pxToRem(22)}));var Pr=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiPaginationItem"}),{className:r,color:i="standard",component:c,components:l={first:he,last:xe,next:_e,previous:qe},disabled:d=!1,page:f,selected:g=!1,shape:m="circular",size:h="medium",type:C="page",variant:b="text"}=n,P=(0,B.Z)(n,tu),v=(0,a.Z)({},n,{color:i,disabled:d,selected:g,shape:m,size:h,type:C,variant:b}),I=(0,Kt.Z)(),L=eu(v),T=(I.direction==="rtl"?{previous:l.next||_e,next:l.previous||qe,last:l.first||he,first:l.last||xe}:{previous:l.previous||qe,next:l.next||_e,first:l.first||he,last:l.last||xe})[C];return C==="start-ellipsis"||C==="end-ellipsis"?(0,u.jsx)(ou,{ref:o,ownerState:v,className:(0,M.Z)(L.root,r),children:"\u2026"}):(0,u.jsxs)(nu,(0,a.Z)({ref:o,ownerState:v,component:c,disabled:d,className:(0,M.Z)(L.root,r)},P,{children:[C==="page"&&f,T?(0,u.jsx)(ru,{as:T,ownerState:v,className:L.icon}):null]}))});const au=["boundaryCount","className","color","count","defaultPage","disabled","getItemAriaLabel","hideNextButton","hidePrevButton","onChange","page","renderItem","shape","showFirstButton","showLastButton","siblingCount","size","variant"],su=t=>{const{classes:e,variant:o}=t,n={root:["root",o],ul:["ul"]};return(0,E.Z)(n,Zr,e)},iu=(0,y.ZP)("nav",{name:"MuiPagination",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.variant]]}})({}),lu=(0,y.ZP)("ul",{name:"MuiPagination",slot:"Ul",overridesResolver:(t,e)=>e.ul})({display:"flex",flexWrap:"wrap",alignItems:"center",padding:0,margin:0,listStyle:"none"});function cu(t,e,o){return t==="page"?`${o?"":"Go to "}page ${e}`:`Go to ${t} page`}var uu=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiPagination"}),{boundaryCount:r=1,className:i,color:c="standard",count:l=1,defaultPage:d=1,disabled:f=!1,getItemAriaLabel:g=cu,hideNextButton:m=!1,hidePrevButton:h=!1,renderItem:C=w=>(0,u.jsx)(Pr,(0,a.Z)({},w)),shape:b="circular",showFirstButton:P=!1,showLastButton:v=!1,siblingCount:I=1,size:L="medium",variant:Z="text"}=n,T=(0,B.Z)(n,au),{items:D}=yr((0,a.Z)({},n,{componentName:"Pagination"})),U=(0,a.Z)({},n,{boundaryCount:r,color:c,count:l,defaultPage:d,disabled:f,getItemAriaLabel:g,hideNextButton:m,hidePrevButton:h,renderItem:C,shape:b,showFirstButton:P,showLastButton:v,siblingCount:I,size:L,variant:Z}),K=su(U);return(0,u.jsx)(iu,(0,a.Z)({"aria-label":"pagination navigation",className:(0,M.Z)(K.root,i),ownerState:U,ref:o},T,{children:(0,u.jsx)(lu,{className:K.ul,ownerState:U,children:D.map((w,A)=>(0,u.jsx)("li",{children:C((0,a.Z)({},w,{color:c,"aria-label":g(w.type,w.page,w.selected),shape:b,size:L,variant:Z}))},A))})}))}),Rr=s(17427),to=s(42540),Lr=s(29911),du=s(64028),pu=s(40295),Tr=s(67284),eo=s(50770),fu=s(9854),Ze=s(80641);const gu=["actions","children","defaultValue","name","onChange","value"];var mu=p.forwardRef(function(e,o){const{actions:n,children:r,defaultValue:i,name:c,onChange:l,value:d}=e,f=(0,B.Z)(e,gu),g=p.useRef(null),[m,h]=(0,eo.Z)({controlled:d,default:i,name:"RadioGroup"});p.useImperativeHandle(n,()=>({focus:()=>{let v=g.current.querySelector("input:not(:disabled):checked");v||(v=g.current.querySelector("input:not(:disabled)")),v&&v.focus()}}),[]);const C=(0,se.Z)(o,g),b=v=>{h(v.target.value),l&&l(v,v.target.value)},P=(0,Ze.Z)(c);return(0,u.jsx)(fu.Z.Provider,{value:{name:P,onChange:b,value:m},children:(0,u.jsx)(Bn.Z,(0,a.Z)({role:"radiogroup",ref:C},f,{children:r}))})}),vu=s(24454),Cu={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:-1,overflow:"hidden",padding:0,position:"absolute",whiteSpace:"nowrap",width:"1px"},bu=(0,It.Z)((0,u.jsx)("path",{d:"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"}),"Star"),hu=(0,It.Z)((0,u.jsx)("path",{d:"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"}),"StarBorder");function Ar(t){return(0,W.Z)("MuiRating",t)}var fe=(0,G.Z)("MuiRating",["root","sizeSmall","sizeMedium","sizeLarge","readOnly","disabled","focusVisible","visuallyHidden","pristine","label","labelEmptyValueActive","icon","iconEmpty","iconFilled","iconHover","iconFocus","iconActive","decimal"]);const xu=["value"],Zu=["className","defaultValue","disabled","emptyIcon","emptyLabelText","getLabelText","highlightSelectedOnly","icon","IconContainerComponent","max","name","onChange","onChangeActive","onMouseLeave","onMouseMove","precision","readOnly","size","value"];function yu(t,e,o){return to?o:t}function Su(t){const e=t.toString().split(".")[1];return e?e.length:0}function oo(t,e){if(t==null)return t;const o=Math.round(t/e)*e;return Number(o.toFixed(Su(e)))}const Iu=t=>{const{classes:e,size:o,readOnly:n,disabled:r,emptyValueFocused:i,focusVisible:c}=t,l={root:["root",`size${(0,$.Z)(o)}`,r&&"disabled",c&&"focusVisible",n&&"readyOnly"],label:["label","pristine"],labelEmptyValue:[i&&"labelEmptyValueActive"],icon:["icon"],iconEmpty:["iconEmpty"],iconFilled:["iconFilled"],iconHover:["iconHover"],iconFocus:["iconFocus"],iconActive:["iconActive"],decimal:["decimal"],visuallyHidden:["visuallyHidden"]};return(0,E.Z)(l,Ar,e)},Pu=(0,y.ZP)("span",{name:"MuiRating",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${fe.visuallyHidden}`]:e.visuallyHidden},e.root,e[`size${(0,$.Z)(o.size)}`],o.readOnly&&e.readOnly]}})(({theme:t,ownerState:e})=>(0,a.Z)({display:"inline-flex",position:"relative",fontSize:t.typography.pxToRem(24),color:"#faaf00",cursor:"pointer",textAlign:"left",WebkitTapHighlightColor:"transparent",[`&.${fe.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity,pointerEvents:"none"},[`&.${fe.focusVisible} .${fe.iconActive}`]:{outline:"1px solid #999"},[`& .${fe.visuallyHidden}`]:Cu},e.size==="small"&&{fontSize:t.typography.pxToRem(18)},e.size==="large"&&{fontSize:t.typography.pxToRem(30)},e.readOnly&&{pointerEvents:"none"})),Mr=(0,y.ZP)("label",{name:"MuiRating",slot:"Label",overridesResolver:(t,e)=>e.label})(({ownerState:t})=>(0,a.Z)({cursor:"inherit"},t.emptyValueFocused&&{top:0,bottom:0,position:"absolute",outline:"1px solid #999",width:"100%"})),Ru=(0,y.ZP)("span",{name:"MuiRating",slot:"Icon",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.icon,o.iconEmpty&&e.iconEmpty,o.iconFilled&&e.iconFilled,o.iconHover&&e.iconHover,o.iconFocus&&e.iconFocus,o.iconActive&&e.iconActive]}})(({theme:t,ownerState:e})=>(0,a.Z)({display:"flex",transition:t.transitions.create("transform",{duration:t.transitions.duration.shortest}),pointerEvents:"none"},e.iconActive&&{transform:"scale(1.2)"},e.iconEmpty&&{color:(t.vars||t).palette.action.disabled})),Lu=(0,y.ZP)("span",{name:"MuiRating",slot:"Decimal",shouldForwardProp:t=>(0,y.Dz)(t)&&t!=="iconActive",overridesResolver:(t,e)=>{const{iconActive:o}=t;return[e.decimal,o&&e.iconActive]}})(({iconActive:t})=>(0,a.Z)({position:"relative"},t&&{transform:"scale(1.2)"}));function Tu(t){const e=(0,B.Z)(t,xu);return(0,u.jsx)("span",(0,a.Z)({},e))}function Br(t){const{classes:e,disabled:o,emptyIcon:n,focus:r,getLabelText:i,highlightSelectedOnly:c,hover:l,icon:d,IconContainerComponent:f,isActive:g,itemValue:m,labelProps:h,name:C,onBlur:b,onChange:P,onClick:v,onFocus:I,readOnly:L,ownerState:Z,ratingValue:T,ratingValueRounded:D}=t,U=c?m===T:m<=T,K=m<=l,w=m<=r,A=m===D,R=(0,Ze.Z)(),it=(0,u.jsx)(Ru,{as:f,value:m,className:(0,M.Z)(e.icon,U?e.iconFilled:e.iconEmpty,K&&e.iconHover,w&&e.iconFocus,g&&e.iconActive),ownerState:(0,a.Z)({},Z,{iconEmpty:!U,iconFilled:U,iconHover:K,iconFocus:w,iconActive:g}),children:n&&!U?n:d});return L?(0,u.jsx)("span",(0,a.Z)({},h,{children:it})):(0,u.jsxs)(p.Fragment,{children:[(0,u.jsxs)(Mr,(0,a.Z)({ownerState:(0,a.Z)({},Z,{emptyValueFocused:void 0}),htmlFor:R},h,{children:[it,(0,u.jsx)("span",{className:e.visuallyHidden,children:i(m)})]})),(0,u.jsx)("input",{className:e.visuallyHidden,onFocus:I,onBlur:b,onChange:P,onClick:v,disabled:o,value:m,id:R,type:"radio",name:C,checked:A})]})}const Au=(0,u.jsx)(bu,{fontSize:"inherit"}),Mu=(0,u.jsx)(hu,{fontSize:"inherit"});function Bu(t){return`${t} Star${t!==1?"s":""}`}var $u=p.forwardRef(function(e,o){const n=(0,H.Z)({name:"MuiRating",props:e}),{className:r,defaultValue:i=null,disabled:c=!1,emptyIcon:l=Mu,emptyLabelText:d="Empty",getLabelText:f=Bu,highlightSelectedOnly:g=!1,icon:m=Au,IconContainerComponent:h=Tu,max:C=5,name:b,onChange:P,onChangeActive:v,onMouseLeave:I,onMouseMove:L,precision:Z=1,readOnly:T=!1,size:D="medium",value:U}=n,K=(0,B.Z)(n,Zu),w=(0,Ze.Z)(b),[A,R]=(0,eo.Z)({controlled:U,default:i,name:"Rating"}),it=oo(A,Z),gt=(0,Kt.Z)(),[{hover:j,focus:_},q]=p.useState({hover:-1,focus:-1});let et=it;j!==-1&&(et=j),_!==-1&&(et=_);const{isFocusVisibleRef:ut,onBlur:Bt,onFocus:Et,ref:F}=(0,tr.Z)(),[at,Y]=p.useState(!1),nt=p.useRef(),dt=(0,se.Z)(F,nt),Q=(0,se.Z)(dt,o),lt=ot=>{L&&L(ot);const pt=nt.current,{right:yt,left:Ot}=pt.getBoundingClientRect(),{width:Nt}=pt.firstChild.getBoundingClientRect();let Rt;gt.direction==="rtl"?Rt=(yt-ot.clientX)/(Nt*C):Rt=(ot.clientX-Ot)/(Nt*C);let Tt=oo(C*Rt+Z/2,Z);Tt=yu(Tt,Z,C),q(jt=>jt.hover===Tt&&jt.focus===Tt?jt:{hover:Tt,focus:Tt}),Y(!1),v&&j!==Tt&&v(ot,Tt)},mt=ot=>{I&&I(ot);const pt=-1;q({hover:pt,focus:pt}),v&&j!==pt&&v(ot,pt)},O=ot=>{let pt=ot.target.value===""?null:parseFloat(ot.target.value);j!==-1&&(pt=j),R(pt),P&&P(ot,pt)},V=ot=>{ot.clientX===0&&ot.clientY===0||(q({hover:-1,focus:-1}),R(null),P&&parseFloat(ot.target.value)===it&&P(ot,null))},ct=ot=>{Et(ot),ut.current===!0&&Y(!0);const pt=parseFloat(ot.target.value);q(yt=>({hover:yt.hover,focus:pt}))},Pt=ot=>{if(j!==-1)return;Bt(ot),ut.current===!1&&Y(!1);const pt=-1;q(yt=>({hover:yt.hover,focus:pt}))},[vt,z]=p.useState(!1),Ft=(0,a.Z)({},n,{defaultValue:i,disabled:c,emptyIcon:l,emptyLabelText:d,emptyValueFocused:vt,focusVisible:at,getLabelText:f,icon:m,IconContainerComponent:h,max:C,precision:Z,readOnly:T,size:D}),tt=Iu(Ft);return(0,u.jsxs)(Pu,(0,a.Z)({ref:Q,onMouseMove:lt,onMouseLeave:mt,className:(0,M.Z)(tt.root,r),ownerState:Ft,role:T?"img":null,"aria-label":T?f(et):null},K,{children:[Array.from(new Array(C)).map((ot,pt)=>{const yt=pt+1,Ot={classes:tt,disabled:c,emptyIcon:l,focus:_,getLabelText:f,highlightSelectedOnly:g,hover:j,icon:m,IconContainerComponent:h,name:w,onBlur:Pt,onChange:O,onClick:V,onFocus:ct,ratingValue:et,ratingValueRounded:it,readOnly:T,ownerState:Ft},Nt=yt===Math.ceil(et)&&(j!==-1||_!==-1);if(Z<1){const Rt=Array.from(new Array(1/Z));return(0,u.jsx)(Lu,{className:(0,M.Z)(tt.decimal,Nt&&tt.iconActive),ownerState:Ft,iconActive:Nt,children:Rt.map((Tt,jt)=>{const ne=oo(yt-1+(jt+1)*Z,Z);return(0,u.jsx)(Br,(0,a.Z)({},Ot,{isActive:!1,itemValue:ne,labelProps:{style:Rt.length-1===jt?{}:{width:ne===et?`${(jt+1)*Z*100}%`:"0%",overflow:"hidden",position:"absolute"}}}),ne)})},yt)}return(0,u.jsx)(Br,(0,a.Z)({},Ot,{isActive:Nt,itemValue:yt}),yt)}),!T&&!c&&(0,u.jsxs)(Mr,{className:(0,M.Z)(tt.label,tt.labelEmptyValue),ownerState:Ft,children:[(0,u.jsx)("input",{className:tt.visuallyHidden,value:"",id:`${w}-empty`,type:"radio",name:w,checked:it==null,onFocus:()=>z(!0),onBlur:()=>z(!1),onChange:O}),(0,u.jsx)("span",{className:tt.visuallyHidden,children:d})]})]}))});function $r(t){return(0,W.Z)("MuiScopedCssBaseline",t)}var Nu=(0,G.Z)("MuiScopedCssBaseline",["root"]);const Uu=["className","component","enableColorScheme"],Du=t=>{const{classes:e}=t,o={root:["root"]};return(0,E.Z)(o,$r,e)},wu=(0,y.ZP)("div",{name:"MuiScopedCssBaseline",slot:"Root",overridesResolver:(t,e)=>e.root})(({theme:t,ownerState:e})=>(0,a.Z)({},xn(t,e.enableColorScheme),Zn(t),{"& *, & *::before, & *::after":{boxSizing:"inherit"},"& strong, & b":{fontWeight:t.typography.fontWeightBold}}));var Fu=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiScopedCssBaseline"}),{className:r,component:i="div"}=n,c=(0,B.Z)(n,Uu),l=(0,a.Z)({},n,{component:i}),d=Du(l);return(0,u.jsx)(wu,(0,a.Z)({as:i,className:(0,M.Z)(d.root,r),ref:o,ownerState:l},c))}),Nr=s(67304),Ur=s(96489),Ou=s(83609),Dr=s(90757),ju=s(30260),zu=s(96796),_t=s(82804),Hu=s(96094),wr=s(56631),ku=s(69489),Fr=s(19538),Eu=s(24561),Ae=s(45942);const Wu=["addEndListener","appear","children","easing","in","onEnter","onEntered","onEntering","onExit","onExited","onExiting","style","timeout","TransitionComponent"],Gu={entering:{transform:"none"},entered:{transform:"none"}};var Or=p.forwardRef(function(e,o){const n=(0,Kt.Z)(),r={enter:n.transitions.duration.enteringScreen,exit:n.transitions.duration.leavingScreen},{addEndListener:i,appear:c=!0,children:l,easing:d,in:f,onEnter:g,onEntered:m,onEntering:h,onExit:C,onExited:b,onExiting:P,style:v,timeout:I=r,TransitionComponent:L=Eu.ZP}=e,Z=(0,B.Z)(e,Wu),T=p.useRef(null),D=(0,se.Z)(l.ref,o),U=(0,se.Z)(T,D),K=q=>et=>{if(q){const ut=T.current;et===void 0?q(ut):q(ut,et)}},w=K(h),A=K((q,et)=>{(0,Ae.n)(q);const ut=(0,Ae.C)({style:v,timeout:I,easing:d},{mode:"enter"});q.style.webkitTransition=n.transitions.create("transform",ut),q.style.transition=n.transitions.create("transform",ut),g&&g(q,et)}),R=K(m),it=K(P),gt=K(q=>{const et=(0,Ae.C)({style:v,timeout:I,easing:d},{mode:"exit"});q.style.webkitTransition=n.transitions.create("transform",et),q.style.transition=n.transitions.create("transform",et),C&&C(q)}),j=K(b),_=q=>{i&&i(T.current,q)};return(0,u.jsx)(L,(0,a.Z)({appear:c,in:f,nodeRef:T,onEnter:A,onEntered:R,onEntering:w,onExit:gt,onExited:j,onExiting:it,addEndListener:_,timeout:I},Z,{children:(q,et)=>p.cloneElement(l,(0,a.Z)({style:(0,a.Z)({transform:"scale(0)",visibility:q==="exited"&&!f?"hidden":void 0},Gu[q],v,l.props.style),ref:U},et))}))});function jr(t){return(0,W.Z)("MuiSpeedDial",t)}var ye=(0,G.Z)("MuiSpeedDial",["root","fab","directionUp","directionDown","directionLeft","directionRight","actions","actionsClosed"]);const Vu=["ref"],Ku=["ariaLabel","FabProps","children","className","direction","hidden","icon","onBlur","onClose","onFocus","onKeyDown","onMouseEnter","onMouseLeave","onOpen","open","openIcon","TransitionComponent","transitionDuration","TransitionProps"],Xu=["ref"],Yu=t=>{const{classes:e,open:o,direction:n}=t,r={root:["root",`direction${(0,$.Z)(n)}`],fab:["fab"],actions:["actions",!o&&"actionsClosed"]};return(0,E.Z)(r,jr,e)};function Se(t){if(t==="up"||t==="down")return"vertical";if(t==="right"||t==="left")return"horizontal"}function Ju(t,e,o){return to?o:t}const te=32,Me=16,Qu=(0,y.ZP)("div",{name:"MuiSpeedDial",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`direction${(0,$.Z)(o.direction)}`]]}})(({theme:t,ownerState:e})=>(0,a.Z)({zIndex:(t.vars||t).zIndex.speedDial,display:"flex",alignItems:"center",pointerEvents:"none"},e.direction==="up"&&{flexDirection:"column-reverse",[`& .${ye.actions}`]:{flexDirection:"column-reverse",marginBottom:-te,paddingBottom:Me+te}},e.direction==="down"&&{flexDirection:"column",[`& .${ye.actions}`]:{flexDirection:"column",marginTop:-te,paddingTop:Me+te}},e.direction==="left"&&{flexDirection:"row-reverse",[`& .${ye.actions}`]:{flexDirection:"row-reverse",marginRight:-te,paddingRight:Me+te}},e.direction==="right"&&{flexDirection:"row",[`& .${ye.actions}`]:{flexDirection:"row",marginLeft:-te,paddingLeft:Me+te}})),qu=(0,y.ZP)(Ke.Z,{name:"MuiSpeedDial",slot:"Fab",overridesResolver:(t,e)=>e.fab})(()=>({pointerEvents:"auto"})),_u=(0,y.ZP)("div",{name:"MuiSpeedDial",slot:"Actions",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.actions,!o.open&&e.actionsClosed]}})(({ownerState:t})=>(0,a.Z)({display:"flex",pointerEvents:"auto"},!t.open&&{transition:"top 0s linear 0.2s",pointerEvents:"none"}));var td=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiSpeedDial"}),r=(0,Kt.Z)(),i={enter:r.transitions.duration.enteringScreen,exit:r.transitions.duration.leavingScreen},{ariaLabel:c,FabProps:{ref:l}={},children:d,className:f,direction:g="up",hidden:m=!1,icon:h,onBlur:C,onClose:b,onFocus:P,onKeyDown:v,onMouseEnter:I,onMouseLeave:L,onOpen:Z,open:T,TransitionComponent:D=Or,transitionDuration:U=i,TransitionProps:K}=n,w=(0,B.Z)(n.FabProps,Vu),A=(0,B.Z)(n,Ku),[R,it]=(0,eo.Z)({controlled:T,default:!1,name:"SpeedDial",state:"open"}),gt=(0,a.Z)({},n,{open:R,direction:g}),j=Yu(gt),_=p.useRef();p.useEffect(()=>()=>{clearTimeout(_.current)},[]);const q=p.useRef(0),et=p.useRef(),ut=p.useRef([]);ut.current=[ut.current[0]];const Bt=p.useCallback(O=>{ut.current[0]=O},[]),Et=(0,se.Z)(l,Bt),F=(O,V)=>ct=>{ut.current[O+1]=ct,V&&V(ct)},at=O=>{v&&v(O);const V=O.key.replace("Arrow","").toLowerCase(),{current:ct=V}=et;if(O.key==="Escape"){it(!1),ut.current[0].focus(),b&&b(O,"escapeKeyDown");return}if(Se(V)===Se(ct)&&Se(V)!==void 0){O.preventDefault();const Pt=V===ct?1:-1,vt=Ju(q.current+Pt,0,ut.current.length-1);ut.current[vt].focus(),q.current=vt,et.current=ct}};p.useEffect(()=>{R||(q.current=0,et.current=void 0)},[R]);const Y=O=>{O.type==="mouseleave"&&L&&L(O),O.type==="blur"&&C&&C(O),clearTimeout(_.current),O.type==="blur"?_.current=setTimeout(()=>{it(!1),b&&b(O,"blur")}):(it(!1),b&&b(O,"mouseLeave"))},nt=O=>{w.onClick&&w.onClick(O),clearTimeout(_.current),R?(it(!1),b&&b(O,"toggle")):(it(!0),Z&&Z(O,"toggle"))},dt=O=>{O.type==="mouseenter"&&I&&I(O),O.type==="focus"&&P&&P(O),clearTimeout(_.current),R||(_.current=setTimeout(()=>{it(!0),Z&&Z(O,{focus:"focus",mouseenter:"mouseEnter"}[O.type])}))},Q=c.replace(/^[^a-z]+|[^\w:.-]+/gi,""),lt=p.Children.toArray(d).filter(O=>p.isValidElement(O)),mt=lt.map((O,V)=>{const ct=O.props,{FabProps:{ref:Pt}={},tooltipPlacement:vt}=ct,z=(0,B.Z)(ct.FabProps,Xu),Ft=vt||(Se(g)==="vertical"?"left":"top");return p.cloneElement(O,{FabProps:(0,a.Z)({},z,{ref:F(V,Pt)}),delay:30*(R?V:lt.length-V),open:R,tooltipPlacement:Ft,id:`${Q}-action-${V}`})});return(0,u.jsxs)(Qu,(0,a.Z)({className:(0,M.Z)(j.root,f),ref:o,role:"presentation",onKeyDown:at,onBlur:Y,onFocus:dt,onMouseEnter:dt,onMouseLeave:Y,ownerState:gt},A,{children:[(0,u.jsx)(D,(0,a.Z)({in:!m,timeout:U,unmountOnExit:!0},K,{children:(0,u.jsx)(qu,(0,a.Z)({color:"primary","aria-label":c,"aria-haspopup":"true","aria-expanded":R,"aria-controls":`${Q}-actions`},w,{onClick:nt,className:(0,M.Z)(j.fab,w.className),ref:Et,ownerState:gt,children:p.isValidElement(h)&&(0,Ye.Z)(h,["SpeedDialIcon"])?p.cloneElement(h,{open:R}):h}))})),(0,u.jsx)(_u,{id:`${Q}-actions`,role:"menu","aria-orientation":Se(g),className:(0,M.Z)(j.actions,!R&&j.actionsClosed),ownerState:gt,children:mt})]}))}),zr=s(88261);function Hr(t){return(0,W.Z)("MuiSpeedDialAction",t)}var kr=(0,G.Z)("MuiSpeedDialAction",["fab","fabClosed","staticTooltip","staticTooltipClosed","staticTooltipLabel","tooltipPlacementLeft","tooltipPlacementRight"]);const ed=["className","delay","FabProps","icon","id","open","TooltipClasses","tooltipOpen","tooltipPlacement","tooltipTitle"],od=t=>{const{open:e,tooltipPlacement:o,classes:n}=t,r={fab:["fab",!e&&"fabClosed"],staticTooltip:["staticTooltip",`tooltipPlacement${(0,$.Z)(o)}`,!e&&"staticTooltipClosed"],staticTooltipLabel:["staticTooltipLabel"]};return(0,E.Z)(r,Hr,n)},nd=(0,y.ZP)(Ke.Z,{name:"MuiSpeedDialAction",slot:"Fab",skipVariantsResolver:!1,overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.fab,!o.open&&e.fabClosed]}})(({theme:t,ownerState:e})=>(0,a.Z)({margin:8,color:(t.vars||t).palette.text.secondary,backgroundColor:(t.vars||t).palette.background.paper,"&:hover":{backgroundColor:t.vars?t.vars.palette.SpeedDialAction.fabHoverBg:(0,ft._4)(t.palette.background.paper,.15)},transition:`${t.transitions.create("transform",{duration:t.transitions.duration.shorter})}, opacity 0.8s`,opacity:1},!e.open&&{opacity:0,transform:"scale(0)"})),rd=(0,y.ZP)("span",{name:"MuiSpeedDialAction",slot:"StaticTooltip",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.staticTooltip,!o.open&&e.staticTooltipClosed,e[`tooltipPlacement${(0,$.Z)(o.tooltipPlacement)}`]]}})(({theme:t,ownerState:e})=>({position:"relative",display:"flex",alignItems:"center",[`& .${kr.staticTooltipLabel}`]:(0,a.Z)({transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.shorter}),opacity:1},!e.open&&{opacity:0,transform:"scale(0.5)"},e.tooltipPlacement==="left"&&{transformOrigin:"100% 50%",right:"100%",marginRight:8},e.tooltipPlacement==="right"&&{transformOrigin:"0% 50%",left:"100%",marginLeft:8})})),ad=(0,y.ZP)("span",{name:"MuiSpeedDialAction",slot:"StaticTooltipLabel",overridesResolver:(t,e)=>e.staticTooltipLabel})(({theme:t})=>(0,a.Z)({position:"absolute"},t.typography.body1,{backgroundColor:(t.vars||t).palette.background.paper,borderRadius:(t.vars||t).shape.borderRadius,boxShadow:(t.vars||t).shadows[1],color:(t.vars||t).palette.text.secondary,padding:"4px 16px",wordBreak:"keep-all"}));var sd=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiSpeedDialAction"}),{className:r,delay:i=0,FabProps:c={},icon:l,id:d,open:f,TooltipClasses:g,tooltipOpen:m=!1,tooltipPlacement:h="left",tooltipTitle:C}=n,b=(0,B.Z)(n,ed),P=(0,a.Z)({},n,{tooltipPlacement:h}),v=od(P),[I,L]=p.useState(m),Z=()=>{L(!1)},T=()=>{L(!0)},D={transitionDelay:`${i}ms`},U=(0,u.jsx)(nd,(0,a.Z)({size:"small",className:(0,M.Z)(v.fab,r),tabIndex:-1,role:"menuitem",ownerState:P},c,{style:(0,a.Z)({},D,c.style),children:l}));return m?(0,u.jsxs)(rd,(0,a.Z)({id:d,ref:o,className:v.staticTooltip,ownerState:P},b,{children:[(0,u.jsx)(ad,{style:D,id:`${d}-label`,className:v.staticTooltipLabel,ownerState:P,children:C}),p.cloneElement(U,{"aria-labelledby":`${d}-label`})]})):(!f&&I&&L(!1),(0,u.jsx)(zr.Z,(0,a.Z)({id:d,ref:o,title:C,placement:h,onClose:Z,onOpen:T,open:f&&I,classes:g},b,{children:U})))}),id=(0,It.Z)((0,u.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");function Er(t){return(0,W.Z)("MuiSpeedDialIcon",t)}var ee=(0,G.Z)("MuiSpeedDialIcon",["root","icon","iconOpen","iconWithOpenIconOpen","openIcon","openIconOpen"]);const ld=["className","icon","open","openIcon"],cd=t=>{const{classes:e,open:o,openIcon:n}=t,r={root:["root"],icon:["icon",o&&"iconOpen",n&&o&&"iconWithOpenIconOpen"],openIcon:["openIcon",o&&"openIconOpen"]};return(0,E.Z)(r,Er,e)},ud=(0,y.ZP)("span",{name:"MuiSpeedDialIcon",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ee.icon}`]:e.icon},{[`& .${ee.icon}`]:o.open&&e.iconOpen},{[`& .${ee.icon}`]:o.open&&o.openIcon&&e.iconWithOpenIconOpen},{[`& .${ee.openIcon}`]:e.openIcon},{[`& .${ee.openIcon}`]:o.open&&e.openIconOpen},e.root]}})(({theme:t,ownerState:e})=>({height:24,[`& .${ee.icon}`]:(0,a.Z)({transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short})},e.open&&(0,a.Z)({transform:"rotate(45deg)"},e.openIcon&&{opacity:0})),[`& .${ee.openIcon}`]:(0,a.Z)({position:"absolute",transition:t.transitions.create(["transform","opacity"],{duration:t.transitions.duration.short}),opacity:0,transform:"rotate(-45deg)"},e.open&&{transform:"rotate(0deg)",opacity:1})})),Wr=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiSpeedDialIcon"}),{className:r,icon:i,openIcon:c}=n,l=(0,B.Z)(n,ld),d=n,f=cd(d);function g(m,h){return p.isValidElement(m)?p.cloneElement(m,{className:h}):m}return(0,u.jsxs)(ud,(0,a.Z)({className:(0,M.Z)(f.root,r),ref:o,ownerState:d},l,{children:[c?g(c,f.openIcon):null,i?g(i,f.icon):(0,u.jsx)(id,{className:f.icon})]}))});Wr.muiName="SpeedDialIcon";var dd=Wr,Ie=s(36006),Gr=s(4019),pd=s(38368),fd=s(24784);const gd=["component","direction","spacing","divider","children"];function md(t,e){const o=p.Children.toArray(t).filter(Boolean);return o.reduce((n,r,i)=>(n.push(r),i({row:"Left","row-reverse":"Right",column:"Top","column-reverse":"Bottom"})[t],Cd=({ownerState:t,theme:e})=>{let o=(0,a.Z)({display:"flex"},(0,Ie.k9)({theme:e},(0,Ie.P$)({values:t.direction,breakpoints:e.breakpoints.values}),n=>({flexDirection:n})));if(t.spacing){const n=(0,Gr.hB)(e),r=Object.keys(e.breakpoints.values).reduce((d,f)=>((typeof t.spacing=="object"&&t.spacing[f]!=null||typeof t.direction=="object"&&t.direction[f]!=null)&&(d[f]=!0),d),{}),i=(0,Ie.P$)({values:t.direction,base:r}),c=(0,Ie.P$)({values:t.spacing,base:r}),l=(d,f)=>({"& > :not(style) + :not(style)":{margin:0,[`margin${vd(f?i[f]:t.direction)}`]:(0,Gr.NA)(n,d)}});o=(0,fd.Z)(o,(0,Ie.k9)({theme:e},c,l))}return o},bd=(0,y.ZP)("div",{name:"MuiStack",slot:"Root",overridesResolver:(t,e)=>[e.root]})(Cd);var hd=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStack"}),r=(0,pd.Z)(n),{component:i="div",direction:c="column",spacing:l=0,divider:d,children:f}=r,g=(0,B.Z)(r,gd),m={direction:c,spacing:l};return(0,u.jsx)(bd,(0,a.Z)({as:i,ownerState:m,ref:o},g,{children:d?md(f,d):f}))});const Vr=p.createContext({});function xd(){return p.useContext(Vr)}var ie=Vr;const Kr=p.createContext({});function Zd(){return p.useContext(Kr)}var ge=Kr;function Xr(t){return(0,W.Z)("MuiStep",t)}var yd=(0,G.Z)("MuiStep",["root","horizontal","vertical","alternativeLabel","completed"]);const Sd=["active","children","className","completed","disabled","expanded","index","last"],Id=t=>{const{classes:e,orientation:o,alternativeLabel:n,completed:r}=t,i={root:["root",o,n&&"alternativeLabel",r&&"completed"]};return(0,E.Z)(i,Xr,e)},Pd=(0,y.ZP)("div",{name:"MuiStep",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})(({ownerState:t})=>(0,a.Z)({},t.orientation==="horizontal"&&{paddingLeft:8,paddingRight:8},t.alternativeLabel&&{flex:1,position:"relative"}));var Rd=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStep"}),{active:r,children:i,className:c,completed:l,disabled:d,expanded:f=!1,index:g,last:m}=n,h=(0,B.Z)(n,Sd),{activeStep:C,connector:b,alternativeLabel:P,orientation:v,nonLinear:I}=p.useContext(ie);let[L=!1,Z=!1,T=!1]=[r,l,d];C===g?L=r!==void 0?r:!0:!I&&C>g?Z=l!==void 0?l:!0:!I&&C({index:g,last:m,expanded:f,icon:g+1,active:L,completed:Z,disabled:T}),[g,m,f,L,Z,T]),U=(0,a.Z)({},n,{active:L,orientation:v,alternativeLabel:P,completed:Z,disabled:T,expanded:f}),K=Id(U),w=(0,u.jsxs)(Pd,(0,a.Z)({className:(0,M.Z)(K.root,c),ref:o,ownerState:U},h,{children:[b&&P&&g!==0?b:null,i]}));return(0,u.jsx)(ge.Provider,{value:D,children:b&&!P&&g!==0?(0,u.jsxs)(p.Fragment,{children:[b,w]}):w})}),Ld=(0,It.Z)((0,u.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"),Td=(0,It.Z)((0,u.jsx)("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning"),Yr=s(69647);function Jr(t){return(0,W.Z)("MuiStepIcon",t)}var Be=(0,G.Z)("MuiStepIcon",["root","active","completed","error","text"]),Qr;const Ad=["active","className","completed","error","icon"],Md=t=>{const{classes:e,active:o,completed:n,error:r}=t,i={root:["root",o&&"active",n&&"completed",r&&"error"],text:["text"]};return(0,E.Z)(i,Jr,e)},no=(0,y.ZP)(Yr.Z,{name:"MuiStepIcon",slot:"Root",overridesResolver:(t,e)=>e.root})(({theme:t})=>({display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),color:(t.vars||t).palette.text.disabled,[`&.${Be.completed}`]:{color:(t.vars||t).palette.primary.main},[`&.${Be.active}`]:{color:(t.vars||t).palette.primary.main},[`&.${Be.error}`]:{color:(t.vars||t).palette.error.main}})),Bd=(0,y.ZP)("text",{name:"MuiStepIcon",slot:"Text",overridesResolver:(t,e)=>e.text})(({theme:t})=>({fill:(t.vars||t).palette.primary.contrastText,fontSize:t.typography.caption.fontSize,fontFamily:t.typography.fontFamily}));var qr=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStepIcon"}),{active:r=!1,className:i,completed:c=!1,error:l=!1,icon:d}=n,f=(0,B.Z)(n,Ad),g=(0,a.Z)({},n,{active:r,completed:c,error:l}),m=Md(g);if(typeof d=="number"||typeof d=="string"){const h=(0,M.Z)(i,m.root);return l?(0,u.jsx)(no,(0,a.Z)({as:Td,className:h,ref:o,ownerState:g},f)):c?(0,u.jsx)(no,(0,a.Z)({as:Ld,className:h,ref:o,ownerState:g},f)):(0,u.jsxs)(no,(0,a.Z)({className:h,ref:o,ownerState:g},f,{children:[Qr||(Qr=(0,u.jsx)("circle",{cx:"12",cy:"12",r:"12"})),(0,u.jsx)(Bd,{className:m.text,x:"12",y:"12",textAnchor:"middle",dominantBaseline:"central",ownerState:g,children:d})]}))}return d});function _r(t){return(0,W.Z)("MuiStepLabel",t)}var oe=(0,G.Z)("MuiStepLabel",["root","horizontal","vertical","label","active","completed","error","disabled","iconContainer","alternativeLabel","labelContainer"]);const $d=["children","className","componentsProps","error","icon","optional","StepIconComponent","StepIconProps"],Nd=t=>{const{classes:e,orientation:o,active:n,completed:r,error:i,disabled:c,alternativeLabel:l}=t,d={root:["root",o,i&&"error",c&&"disabled",l&&"alternativeLabel"],label:["label",n&&"active",r&&"completed",i&&"error",c&&"disabled",l&&"alternativeLabel"],iconContainer:["iconContainer",l&&"alternativeLabel"],labelContainer:["labelContainer"]};return(0,E.Z)(d,_r,e)},Ud=(0,y.ZP)("span",{name:"MuiStepLabel",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation]]}})(({ownerState:t})=>(0,a.Z)({display:"flex",alignItems:"center",[`&.${oe.alternativeLabel}`]:{flexDirection:"column"},[`&.${oe.disabled}`]:{cursor:"default"}},t.orientation==="vertical"&&{textAlign:"left",padding:"8px 0"})),Dd=(0,y.ZP)("span",{name:"MuiStepLabel",slot:"Label",overridesResolver:(t,e)=>e.label})(({theme:t})=>(0,a.Z)({},t.typography.body2,{display:"block",transition:t.transitions.create("color",{duration:t.transitions.duration.shortest}),[`&.${oe.active}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${oe.completed}`]:{color:(t.vars||t).palette.text.primary,fontWeight:500},[`&.${oe.alternativeLabel}`]:{textAlign:"center",marginTop:16},[`&.${oe.error}`]:{color:(t.vars||t).palette.error.main}})),wd=(0,y.ZP)("span",{name:"MuiStepLabel",slot:"IconContainer",overridesResolver:(t,e)=>e.iconContainer})(()=>({flexShrink:0,display:"flex",paddingRight:8,[`&.${oe.alternativeLabel}`]:{paddingRight:0}})),Fd=(0,y.ZP)("span",{name:"MuiStepLabel",slot:"LabelContainer",overridesResolver:(t,e)=>e.labelContainer})(({theme:t})=>({width:"100%",color:(t.vars||t).palette.text.secondary})),ta=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStepLabel"}),{children:r,className:i,componentsProps:c={},error:l=!1,icon:d,optional:f,StepIconComponent:g,StepIconProps:m}=n,h=(0,B.Z)(n,$d),{alternativeLabel:C,orientation:b}=p.useContext(ie),{active:P,disabled:v,completed:I,icon:L}=p.useContext(ge),Z=d||L;let T=g;Z&&!T&&(T=qr);const D=(0,a.Z)({},n,{active:P,alternativeLabel:C,completed:I,disabled:v,error:l,orientation:b}),U=Nd(D);return(0,u.jsxs)(Ud,(0,a.Z)({className:(0,M.Z)(U.root,i),ref:o,ownerState:D},h,{children:[Z||T?(0,u.jsx)(wd,{className:U.iconContainer,ownerState:D,children:(0,u.jsx)(T,(0,a.Z)({completed:I,active:P,error:l,icon:Z},m))}):null,(0,u.jsxs)(Fd,{className:U.labelContainer,ownerState:D,children:[r?(0,u.jsx)(Dd,(0,a.Z)({className:U.label,ownerState:D},c.label,{children:r})):null,f]})]}))});ta.muiName="StepLabel";var ea=ta;function oa(t){return(0,W.Z)("MuiStepButton",t)}var ro=(0,G.Z)("MuiStepButton",["root","horizontal","vertical","touchRipple"]);const Od=["children","className","icon","optional"],jd=t=>{const{classes:e,orientation:o}=t,n={root:["root",o],touchRipple:["touchRipple"]};return(0,E.Z)(n,oa,e)},zd=(0,y.ZP)(pe.Z,{name:"MuiStepButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${ro.touchRipple}`]:e.touchRipple},e.root,e[o.orientation]]}})(({ownerState:t})=>(0,a.Z)({width:"100%",padding:"24px 16px",margin:"-24px -16px",boxSizing:"content-box"},t.orientation==="vertical"&&{justifyContent:"flex-start",padding:"8px",margin:"-8px"},{[`& .${ro.touchRipple}`]:{color:"rgba(0, 0, 0, 0.3)"}}));var Hd=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStepButton"}),{children:r,className:i,icon:c,optional:l}=n,d=(0,B.Z)(n,Od),{disabled:f}=p.useContext(ge),{orientation:g}=p.useContext(ie),m=(0,a.Z)({},n,{orientation:g}),h=jd(m),C={icon:c,optional:l},b=(0,Ye.Z)(r,["StepLabel"])?p.cloneElement(r,C):(0,u.jsx)(ea,(0,a.Z)({},C,{children:r}));return(0,u.jsx)(zd,(0,a.Z)({focusRipple:!0,disabled:f,TouchRippleProps:{className:h.touchRipple},className:(0,M.Z)(h.root,i),ref:o,ownerState:m},d,{children:b}))});function na(t){return(0,W.Z)("MuiStepConnector",t)}var kd=(0,G.Z)("MuiStepConnector",["root","horizontal","vertical","alternativeLabel","active","completed","disabled","line","lineHorizontal","lineVertical"]);const Ed=["className"],Wd=t=>{const{classes:e,orientation:o,alternativeLabel:n,active:r,completed:i,disabled:c}=t,l={root:["root",o,n&&"alternativeLabel",r&&"active",i&&"completed",c&&"disabled"],line:["line",`line${(0,$.Z)(o)}`]};return(0,E.Z)(l,na,e)},Gd=(0,y.ZP)("div",{name:"MuiStepConnector",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel,o.completed&&e.completed]}})(({ownerState:t})=>(0,a.Z)({flex:"1 1 auto"},t.orientation==="vertical"&&{marginLeft:12},t.alternativeLabel&&{position:"absolute",top:8+4,left:"calc(-50% + 20px)",right:"calc(50% + 20px)"})),Vd=(0,y.ZP)("span",{name:"MuiStepConnector",slot:"Line",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.line,e[`line${(0,$.Z)(o.orientation)}`]]}})(({ownerState:t,theme:e})=>{const o=e.palette.mode==="light"?e.palette.grey[400]:e.palette.grey[600];return(0,a.Z)({display:"block",borderColor:e.vars?e.vars.palette.StepConnector.border:o},t.orientation==="horizontal"&&{borderTopStyle:"solid",borderTopWidth:1},t.orientation==="vertical"&&{borderLeftStyle:"solid",borderLeftWidth:1,minHeight:24})});var ra=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStepConnector"}),{className:r}=n,i=(0,B.Z)(n,Ed),{alternativeLabel:c,orientation:l="horizontal"}=p.useContext(ie),{active:d,disabled:f,completed:g}=p.useContext(ge),m=(0,a.Z)({},n,{alternativeLabel:c,orientation:l,active:d,completed:g,disabled:f}),h=Wd(m);return(0,u.jsx)(Gd,(0,a.Z)({className:(0,M.Z)(h.root,r),ref:o,ownerState:m},i,{children:(0,u.jsx)(Vd,{className:h.line,ownerState:m})}))});function aa(t){return(0,W.Z)("MuiStepContent",t)}var Kd=(0,G.Z)("MuiStepContent",["root","last","transition"]);const Xd=["children","className","TransitionComponent","transitionDuration","TransitionProps"],Yd=t=>{const{classes:e,last:o}=t,n={root:["root",o&&"last"],transition:["transition"]};return(0,E.Z)(n,aa,e)},Jd=(0,y.ZP)("div",{name:"MuiStepContent",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,o.last&&e.last]}})(({ownerState:t,theme:e})=>(0,a.Z)({marginLeft:12,paddingLeft:8+12,paddingRight:8,borderLeft:e.vars?`1px solid ${e.vars.palette.StepContent.border}`:`1px solid ${e.palette.mode==="light"?e.palette.grey[400]:e.palette.grey[600]}`},t.last&&{borderLeft:"none"})),Qd=(0,y.ZP)(Ve.Z,{name:"MuiStepContent",slot:"Transition",overridesResolver:(t,e)=>e.transition})({});var qd=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStepContent"}),{children:r,className:i,TransitionComponent:c=Ve.Z,transitionDuration:l="auto",TransitionProps:d}=n,f=(0,B.Z)(n,Xd),{orientation:g}=p.useContext(ie),{active:m,last:h,expanded:C}=p.useContext(ge),b=(0,a.Z)({},n,{last:h}),P=Yd(b);let v=l;return l==="auto"&&!c.muiSupportAuto&&(v=void 0),(0,u.jsx)(Jd,(0,a.Z)({className:(0,M.Z)(P.root,i),ref:o,ownerState:b},f,{children:(0,u.jsx)(Qd,(0,a.Z)({as:c,in:m||C,className:P.transition,ownerState:b,timeout:v,unmountOnExit:!0},d,{children:r}))}))});function sa(t){return(0,W.Z)("MuiStepper",t)}var _d=(0,G.Z)("MuiStepper",["root","horizontal","vertical","alternativeLabel"]);const tp=["activeStep","alternativeLabel","children","className","connector","nonLinear","orientation"],ep=t=>{const{orientation:e,alternativeLabel:o,classes:n}=t,r={root:["root",e,o&&"alternativeLabel"]};return(0,E.Z)(r,sa,n)},op=(0,y.ZP)("div",{name:"MuiStepper",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[o.orientation],o.alternativeLabel&&e.alternativeLabel]}})(({ownerState:t})=>(0,a.Z)({display:"flex"},t.orientation==="horizontal"&&{flexDirection:"row",alignItems:"center"},t.orientation==="vertical"&&{flexDirection:"column"},t.alternativeLabel&&{alignItems:"flex-start"})),np=(0,u.jsx)(ra,{});var rp=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiStepper"}),{activeStep:r=0,alternativeLabel:i=!1,children:c,className:l,connector:d=np,nonLinear:f=!1,orientation:g="horizontal"}=n,m=(0,B.Z)(n,tp),h=(0,a.Z)({},n,{alternativeLabel:i,orientation:g}),C=ep(h),b=p.Children.toArray(c).filter(Boolean),P=b.map((I,L)=>p.cloneElement(I,(0,a.Z)({index:L,last:L+1===b.length},I.props))),v=p.useMemo(()=>({activeStep:r,alternativeLabel:i,connector:d,nonLinear:f,orientation:g}),[r,i,d,f,g]);return(0,u.jsx)(ie.Provider,{value:v,children:(0,u.jsx)(op,(0,a.Z)({ownerState:h,className:(0,M.Z)(C.root,l),ref:o},m,{children:P}))})}),ia=s(65384),$e=s(72022),Ne=s(77360),ao=s(66934);const ap=["anchor","classes","className","width","style"],sp=(0,y.ZP)("div")(({theme:t,ownerState:e})=>(0,a.Z)({position:"fixed",top:0,left:0,bottom:0,zIndex:t.zIndex.drawer-1},e.anchor==="left"&&{right:"auto"},e.anchor==="right"&&{left:"auto",right:0},e.anchor==="top"&&{bottom:"auto",right:0},e.anchor==="bottom"&&{top:"auto",bottom:0,right:0}));var ip=p.forwardRef(function(e,o){const{anchor:n,classes:r={},className:i,width:c,style:l}=e,d=(0,B.Z)(e,ap),f=e;return(0,u.jsx)(sp,(0,a.Z)({className:(0,M.Z)("PrivateSwipeArea-root",r.root,r[`anchor${(0,$.Z)(n)}`],i),ref:o,style:(0,a.Z)({[(0,wt.wE)(n)?"width":"height"]:c},l),ownerState:f},d))});const lp=["BackdropProps"],cp=["anchor","disableBackdropTransition","disableDiscovery","disableSwipeToOpen","hideBackdrop","hysteresis","minFlingVelocity","ModalProps","onClose","onOpen","open","PaperProps","SwipeAreaProps","swipeAreaWidth","transitionDuration","variant"],Ue=3,so=20;let Ht=null;function kg(){Ht=null}function io(t,e,o){return t==="right"?o.body.offsetWidth-e[0].pageX:e[0].pageX}function lo(t,e,o){return t==="bottom"?o.innerHeight-e[0].clientY:e[0].clientY}function Pe(t,e){return t?e.clientWidth:e.clientHeight}function la(t,e,o,n){return Math.min(Math.max(o?e-t:n+e-t,0),n)}function up(t,e){const o=[];for(;t&&t!==e.parentElement;){const n=(0,Ne.Z)(e).getComputedStyle(t);n.getPropertyValue("position")==="absolute"||n.getPropertyValue("overflow-x")==="hidden"||(t.clientWidth>0&&t.scrollWidth>t.clientWidth||t.clientHeight>0&&t.scrollHeight>t.clientHeight)&&o.push(t),t=t.parentElement}return o}function dp({domTreeShapes:t,start:e,current:o,anchor:n}){const r={scrollPosition:{x:"scrollLeft",y:"scrollTop"},scrollLength:{x:"scrollWidth",y:"scrollHeight"},clientLength:{x:"clientWidth",y:"clientHeight"}};return t.some(i=>{let c=o>=e;(n==="top"||n==="left")&&(c=!c);const l=n==="left"||n==="right"?"x":"y",d=Math.round(i[r.scrollPosition[l]]),f=d>0,g=d+i[r.clientLength[l]]{q.current=null},[v]);const et=p.useCallback((F,at={})=>{const{mode:Y=null,changeTransition:nt=!0}=at,dt=(0,wt.ni)(r,c),Q=["right","bottom"].indexOf(dt)!==-1?1:-1,lt=(0,wt.wE)(c),mt=lt?`translate(${Q*F}px, 0)`:`translate(0, ${Q*F}px)`,O=j.current.style;O.webkitTransform=mt,O.transform=mt;let V="";if(Y&&(V=r.transitions.create("all",(0,Ae.C)({easing:void 0,style:void 0,timeout:T},{mode:Y}))),nt&&(O.webkitTransition=V,O.transition=V),!l&&!g){const ct=gt.current.style;ct.opacity=1-F/Pe(lt,j.current),nt&&(ct.webkitTransition=V,ct.transition=V)}},[c,l,g,r,T]),ut=(0,ao.Z)(F=>{if(!_.current)return;if(Ht=null,_.current=!1,A(!1),!R.current.isSwiping){R.current.isSwiping=null;return}R.current.isSwiping=null;const at=(0,wt.ni)(r,c),Y=(0,wt.wE)(c);let nt;Y?nt=io(at,F.changedTouches,(0,$e.Z)(F.currentTarget)):nt=lo(at,F.changedTouches,(0,Ne.Z)(F.currentTarget));const dt=Y?R.current.startX:R.current.startY,Q=Pe(Y,j.current),lt=la(nt,dt,v,Q),mt=lt/Q;if(Math.abs(R.current.velocity)>h&&(q.current=Math.abs((Q-lt)/R.current.velocity)*1e3),v){R.current.velocity>h||mt>m?b():et(0,{mode:"exit"});return}R.current.velocity<-h||1-mt>m?P():et(Pe(Y,j.current),{mode:"enter"})}),Bt=(0,ao.Z)(F=>{if(!j.current||!_.current||Ht!==null&&Ht!==R.current)return;const at=(0,wt.ni)(r,c),Y=(0,wt.wE)(c),nt=io(at,F.touches,(0,$e.Z)(F.currentTarget)),dt=lo(at,F.touches,(0,Ne.Z)(F.currentTarget));if(v&&j.current.contains(F.target)&&Ht===null){const V=up(F.target,j.current);if(dp({domTreeShapes:V,start:Y?R.current.startX:R.current.startY,current:Y?nt:dt,anchor:c})){Ht=!0;return}Ht=R.current}if(R.current.isSwiping==null){const V=Math.abs(nt-R.current.startX),ct=Math.abs(dt-R.current.startY),Pt=Y?V>ct&&V>Ue:ct>V&&ct>Ue;if(Pt&&F.cancelable&&F.preventDefault(),Pt===!0||(Y?ct>Ue:V>Ue)){if(R.current.isSwiping=Pt,!Pt){ut(F);return}R.current.startX=nt,R.current.startY=dt,!d&&!v&&(Y?R.current.startX-=so:R.current.startY-=so)}}if(!R.current.isSwiping)return;const Q=Pe(Y,j.current);let lt=Y?R.current.startX:R.current.startY;v&&!R.current.paperHit&&(lt=Math.min(lt,Q));const mt=la(Y?nt:dt,lt,v,Q);if(v)if(R.current.paperHit)mt===0&&(R.current.startX=nt,R.current.startY=dt);else if(Y?nt{if(F.defaultPrevented||F.defaultMuiPrevented||v&&(g||!gt.current.contains(F.target))&&!j.current.contains(F.target))return;const at=(0,wt.ni)(r,c),Y=(0,wt.wE)(c),nt=io(at,F.touches,(0,$e.Z)(F.currentTarget)),dt=lo(at,F.touches,(0,Ne.Z)(F.currentTarget));if(!v){if(f||F.target!==it.current)return;if(Y){if(nt>Z)return}else if(dt>Z)return}F.defaultMuiPrevented=!0,Ht=null,R.current.startX=nt,R.current.startY=dt,A(!0),!v&&j.current&&et(Pe(Y,j.current)+(d?15:-so),{changeTransition:!1}),R.current.velocity=0,R.current.lastTime=null,R.current.lastTranslate=null,R.current.paperHit=!1,_.current=!0});return p.useEffect(()=>{if(D==="temporary"){const F=(0,$e.Z)(j.current);return F.addEventListener("touchstart",Et),F.addEventListener("touchmove",Bt,{passive:!v}),F.addEventListener("touchend",ut),()=>{F.removeEventListener("touchstart",Et),F.removeEventListener("touchmove",Bt,{passive:!v}),F.removeEventListener("touchend",ut)}}},[D,v,Et,Bt,ut]),p.useEffect(()=>()=>{Ht===R.current&&(Ht=null)},[]),p.useEffect(()=>{v||A(!1)},[v]),(0,u.jsxs)(p.Fragment,{children:[(0,u.jsx)(wt.ZP,(0,a.Z)({open:D==="temporary"&&w?!0:v,variant:D,ModalProps:(0,a.Z)({BackdropProps:(0,a.Z)({},C,{ref:gt})},U),hideBackdrop:g,PaperProps:(0,a.Z)({},I,{style:(0,a.Z)({pointerEvents:D==="temporary"&&!v?"none":""},I.style),ref:j}),anchor:c,transitionDuration:q.current||T,onClose:b,ref:o},K)),!f&&D==="temporary"&&(0,u.jsx)(hr,{children:(0,u.jsx)(ip,(0,a.Z)({anchor:c,ref:it,width:Z},L))})]})}),gp=s(21233),ca=s(83374),mp=s(49630),ua=s(84141),vp=s(10722),da=s(8085),Cp=s(96875),pa=s(80405),De=s(59357),fa=s(33272);function ga(t){return(0,W.Z)("MuiTableContainer",t)}var bp=(0,G.Z)("MuiTableContainer",["root"]);const hp=["className","component"],xp=t=>{const{classes:e}=t,o={root:["root"]};return(0,E.Z)(o,ga,e)},Zp=(0,y.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:(t,e)=>e.root})({width:"100%",overflowX:"auto"});var yp=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiTableContainer"}),{className:r,component:i="div"}=n,c=(0,B.Z)(n,hp),l=(0,a.Z)({},n,{component:i}),d=xp(l);return(0,u.jsx)(Zp,(0,a.Z)({ref:o,as:i,className:(0,M.Z)(d.root,r),ownerState:l},c))}),Sp=s(78214);function ma(t){return(0,W.Z)("MuiTableFooter",t)}var Ip=(0,G.Z)("MuiTableFooter",["root"]);const Pp=["className","component"],Rp=t=>{const{classes:e}=t,o={root:["root"]};return(0,E.Z)(o,ma,e)},Lp=(0,y.ZP)("tfoot",{name:"MuiTableFooter",slot:"Root",overridesResolver:(t,e)=>e.root})({display:"table-footer-group"}),Tp={variant:"footer"},va="tfoot";var Ap=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiTableFooter"}),{className:r,component:i=va}=n,c=(0,B.Z)(n,Pp),l=(0,a.Z)({},n,{component:i}),d=Rp(l);return(0,u.jsx)(Sp.Z.Provider,{value:Tp,children:(0,u.jsx)(Lp,(0,a.Z)({as:i,className:(0,M.Z)(d.root,r),ref:o,role:i===va?null:"rowgroup",ownerState:l},c))})}),Mp=s(42959),Ca=s(35313),Bp=s(14823),ba=s(56892),ha=s(953),xa=s(65550),Za,ya,Sa,Ia,Pa,Ra,La,Ta;const $p=["backIconButtonProps","count","getItemAriaLabel","nextIconButtonProps","onPageChange","page","rowsPerPage","showFirstButton","showLastButton"];var Np=p.forwardRef(function(e,o){const{backIconButtonProps:n,count:r,getItemAriaLabel:i,nextIconButtonProps:c,onPageChange:l,page:d,rowsPerPage:f,showFirstButton:g,showLastButton:m}=e,h=(0,B.Z)(e,$p),C=(0,Kt.Z)(),b=L=>{l(L,0)},P=L=>{l(L,d-1)},v=L=>{l(L,d+1)},I=L=>{l(L,Math.max(0,Math.ceil(r/f)-1))};return(0,u.jsxs)("div",(0,a.Z)({ref:o},h,{children:[g&&(0,u.jsx)(Jt.Z,{onClick:b,disabled:d===0,"aria-label":i("first",d),title:i("first",d),children:C.direction==="rtl"?Za||(Za=(0,u.jsx)(xe,{})):ya||(ya=(0,u.jsx)(he,{}))}),(0,u.jsx)(Jt.Z,(0,a.Z)({onClick:P,disabled:d===0,color:"inherit","aria-label":i("previous",d),title:i("previous",d)},n,{children:C.direction==="rtl"?Sa||(Sa=(0,u.jsx)(xa.Z,{})):Ia||(Ia=(0,u.jsx)(ha.Z,{}))})),(0,u.jsx)(Jt.Z,(0,a.Z)({onClick:v,disabled:r!==-1?d>=Math.ceil(r/f)-1:!1,color:"inherit","aria-label":i("next",d),title:i("next",d)},c,{children:C.direction==="rtl"?Pa||(Pa=(0,u.jsx)(ha.Z,{})):Ra||(Ra=(0,u.jsx)(xa.Z,{}))})),m&&(0,u.jsx)(Jt.Z,{onClick:I,disabled:d>=Math.ceil(r/f)-1,"aria-label":i("last",d),title:i("last",d),children:C.direction==="rtl"?La||(La=(0,u.jsx)(he,{})):Ta||(Ta=(0,u.jsx)(xe,{}))})]}))});function Aa(t){return(0,W.Z)("MuiTablePagination",t)}var me=(0,G.Z)("MuiTablePagination",["root","toolbar","spacer","selectLabel","selectRoot","select","selectIcon","input","menuItem","displayedRows","actions"]),Ma;const Up=["ActionsComponent","backIconButtonProps","className","colSpan","component","count","getItemAriaLabel","labelDisplayedRows","labelRowsPerPage","nextIconButtonProps","onPageChange","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","SelectProps","showFirstButton","showLastButton"],Dp=(0,y.ZP)(De.Z,{name:"MuiTablePagination",slot:"Root",overridesResolver:(t,e)=>e.root})(({theme:t})=>({overflow:"auto",color:(t.vars||t).palette.text.primary,fontSize:t.typography.pxToRem(14),"&:last-child":{padding:0}})),wp=(0,y.ZP)(ba.Z,{name:"MuiTablePagination",slot:"Toolbar",overridesResolver:(t,e)=>(0,a.Z)({[`& .${me.actions}`]:e.actions},e.toolbar)})(({theme:t})=>({minHeight:52,paddingRight:2,[`${t.breakpoints.up("xs")} and (orientation: landscape)`]:{minHeight:52},[t.breakpoints.up("sm")]:{minHeight:52,paddingRight:2},[`& .${me.actions}`]:{flexShrink:0,marginLeft:20}})),Fp=(0,y.ZP)("div",{name:"MuiTablePagination",slot:"Spacer",overridesResolver:(t,e)=>e.spacer})({flex:"1 1 100%"}),Op=(0,y.ZP)("p",{name:"MuiTablePagination",slot:"SelectLabel",overridesResolver:(t,e)=>e.selectLabel})(({theme:t})=>(0,a.Z)({},t.typography.body2,{flexShrink:0})),jp=(0,y.ZP)(Nr.Z,{name:"MuiTablePagination",slot:"Select",overridesResolver:(t,e)=>(0,a.Z)({[`& .${me.selectIcon}`]:e.selectIcon,[`& .${me.select}`]:e.select},e.input,e.selectRoot)})({color:"inherit",fontSize:"inherit",flexShrink:0,marginRight:32,marginLeft:8,[`& .${me.select}`]:{paddingLeft:8,paddingRight:24,textAlign:"right",textAlignLast:"right"}}),zp=(0,y.ZP)(fr.Z,{name:"MuiTablePagination",slot:"MenuItem",overridesResolver:(t,e)=>e.menuItem})({}),Hp=(0,y.ZP)("p",{name:"MuiTablePagination",slot:"DisplayedRows",overridesResolver:(t,e)=>e.displayedRows})(({theme:t})=>(0,a.Z)({},t.typography.body2,{flexShrink:0}));function kp({from:t,to:e,count:o}){return`${t}\u2013${e} of ${o!==-1?o:`more than ${e}`}`}function Ep(t){return`Go to ${t} page`}const Wp=t=>{const{classes:e}=t,o={root:["root"],toolbar:["toolbar"],spacer:["spacer"],selectLabel:["selectLabel"],select:["select"],input:["input"],selectIcon:["selectIcon"],menuItem:["menuItem"],displayedRows:["displayedRows"],actions:["actions"]};return(0,E.Z)(o,Aa,e)};var Gp=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiTablePagination"}),{ActionsComponent:r=Np,backIconButtonProps:i,className:c,colSpan:l,component:d=De.Z,count:f,getItemAriaLabel:g=Ep,labelDisplayedRows:m=kp,labelRowsPerPage:h="Rows per page:",nextIconButtonProps:C,onPageChange:b,onRowsPerPageChange:P,page:v,rowsPerPage:I,rowsPerPageOptions:L=[10,25,50,100],SelectProps:Z={},showFirstButton:T=!1,showLastButton:D=!1}=n,U=(0,B.Z)(n,Up),K=n,w=Wp(K),A=Z.native?"option":zp;let R;(d===De.Z||d==="td")&&(R=l||1e3);const it=(0,Ze.Z)(Z.id),gt=(0,Ze.Z)(Z.labelId),j=()=>f===-1?(v+1)*I:I===-1?f:Math.min(f,(v+1)*I);return(0,u.jsx)(Dp,(0,a.Z)({colSpan:R,ref:o,as:d,ownerState:K,className:(0,M.Z)(w.root,c)},U,{children:(0,u.jsxs)(wp,{className:w.toolbar,children:[(0,u.jsx)(Fp,{className:w.spacer}),L.length>1&&(0,u.jsx)(Op,{className:w.selectLabel,id:gt,children:h}),L.length>1&&(0,u.jsx)(jp,(0,a.Z)({variant:"standard",input:Ma||(Ma=(0,u.jsx)(Jn.ZP,{})),value:I,onChange:P,id:it,labelId:gt},Z,{classes:(0,a.Z)({},Z.classes,{root:(0,M.Z)(w.input,w.selectRoot,(Z.classes||{}).root),select:(0,M.Z)(w.select,(Z.classes||{}).select),icon:(0,M.Z)(w.selectIcon,(Z.classes||{}).icon)}),children:L.map(_=>(0,p.createElement)(A,(0,a.Z)({},!(0,Bp.Z)(A)&&{ownerState:K},{className:w.menuItem,key:_.label?_.label:_,value:_.value?_.value:_}),_.label?_.label:_))})),(0,u.jsx)(Hp,{className:w.displayedRows,children:m({from:f===0?0:v*I+1,to:j(),count:f===-1?-1:f,page:v})}),(0,u.jsx)(r,{className:w.actions,backIconButtonProps:i,count:f,nextIconButtonProps:C,onPageChange:b,page:v,rowsPerPage:I,showFirstButton:T,showLastButton:D,getItemAriaLabel:g})]})}))}),Vp=s(44583),Ba=s(44858),Kp=s(41367),$a=s(13790),Xp=s(29922),Na=s(54977),Yp=s(51133),Ua=s(2997),Jp=s(18635),Da=s(61318),Qp=s(36207);function wa(t){return(0,W.Z)("MuiToggleButton",t)}var co=(0,G.Z)("MuiToggleButton",["root","disabled","selected","standard","primary","secondary","sizeSmall","sizeMedium","sizeLarge"]);const qp=["children","className","color","disabled","disableFocusRipple","fullWidth","onChange","onClick","selected","size","value"],_p=t=>{const{classes:e,fullWidth:o,selected:n,disabled:r,size:i,color:c}=t,l={root:["root",n&&"selected",r&&"disabled",o&&"fullWidth",`size${(0,$.Z)(i)}`,c]};return(0,E.Z)(l,wa,e)},tf=(0,y.ZP)(pe.Z,{name:"MuiToggleButton",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[e.root,e[`size${(0,$.Z)(o.size)}`]]}})(({theme:t,ownerState:e})=>{let o=e.color==="standard"?t.palette.text.primary:t.palette[e.color].main,n;return t.vars&&(o=e.color==="standard"?t.vars.palette.text.primary:t.vars.palette[e.color].main,n=e.color==="standard"?t.vars.palette.text.primaryChannel:t.vars.palette[e.color].mainChannel),(0,a.Z)({},t.typography.button,{borderRadius:(t.vars||t).shape.borderRadius,padding:11,border:`1px solid ${(t.vars||t).palette.divider}`,color:(t.vars||t).palette.action.active},e.fullWidth&&{width:"100%"},{[`&.${co.disabled}`]:{color:(t.vars||t).palette.action.disabled,border:`1px solid ${(t.vars||t).palette.action.disabledBackground}`},"&:hover":{textDecoration:"none",backgroundColor:t.vars?`rgba(${t.vars.palette.text.primaryChannel} / ${t.vars.palette.action.hoverOpacity})`:(0,ft.Fq)(t.palette.text.primary,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${co.selected}`]:{color:o,backgroundColor:t.vars?`rgba(${n} / ${t.vars.palette.action.selectedOpacity})`:(0,ft.Fq)(o,t.palette.action.selectedOpacity),"&:hover":{backgroundColor:t.vars?`rgba(${n} / calc(${t.vars.palette.action.selectedOpacity} + ${t.vars.palette.action.hoverOpacity}))`:(0,ft.Fq)(o,t.palette.action.selectedOpacity+t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:t.vars?`rgba(${n} / ${t.vars.palette.action.selectedOpacity})`:(0,ft.Fq)(o,t.palette.action.selectedOpacity)}}}},e.size==="small"&&{padding:7,fontSize:t.typography.pxToRem(13)},e.size==="large"&&{padding:15,fontSize:t.typography.pxToRem(15)})});var ef=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiToggleButton"}),{children:r,className:i,color:c="standard",disabled:l=!1,disableFocusRipple:d=!1,fullWidth:f=!1,onChange:g,onClick:m,selected:h,size:C="medium",value:b}=n,P=(0,B.Z)(n,qp),v=(0,a.Z)({},n,{color:c,disabled:l,disableFocusRipple:d,fullWidth:f,size:C}),I=_p(v),L=Z=>{m&&(m(Z,b),Z.defaultPrevented)||g&&g(Z,b)};return(0,u.jsx)(tf,(0,a.Z)({className:(0,M.Z)(I.root,i),disabled:l,focusRipple:!d,ref:o,onClick:L,onChange:g,value:b,ownerState:v,"aria-pressed":h},P,{children:r}))});function of(t,e){return e===void 0||t===void 0?!1:Array.isArray(e)?e.indexOf(t)>=0:t===e}function Fa(t){return(0,W.Z)("MuiToggleButtonGroup",t)}var kt=(0,G.Z)("MuiToggleButtonGroup",["root","selected","vertical","disabled","grouped","groupedHorizontal","groupedVertical"]);const nf=["children","className","color","disabled","exclusive","fullWidth","onChange","orientation","size","value"],rf=t=>{const{classes:e,orientation:o,fullWidth:n,disabled:r}=t,i={root:["root",o==="vertical"&&"vertical",n&&"fullWidth"],grouped:["grouped",`grouped${(0,$.Z)(o)}`,r&&"disabled"]};return(0,E.Z)(i,Fa,e)},af=(0,y.ZP)("div",{name:"MuiToggleButtonGroup",slot:"Root",overridesResolver:(t,e)=>{const{ownerState:o}=t;return[{[`& .${kt.grouped}`]:e.grouped},{[`& .${kt.grouped}`]:e[`grouped${(0,$.Z)(o.orientation)}`]},e.root,o.orientation==="vertical"&&e.vertical,o.fullWidth&&e.fullWidth]}})(({ownerState:t,theme:e})=>(0,a.Z)({display:"inline-flex",borderRadius:(e.vars||e).shape.borderRadius},t.orientation==="vertical"&&{flexDirection:"column"},t.fullWidth&&{width:"100%"},{[`& .${kt.grouped}`]:(0,a.Z)({},t.orientation==="horizontal"?{"&:not(:first-of-type)":{marginLeft:-1,borderLeft:"1px solid transparent",borderTopLeftRadius:0,borderBottomLeftRadius:0},"&:not(:last-of-type)":{borderTopRightRadius:0,borderBottomRightRadius:0},[`&.${kt.selected} + .${kt.grouped}.${kt.selected}`]:{borderLeft:0,marginLeft:0}}:{"&:not(:first-of-type)":{marginTop:-1,borderTop:"1px solid transparent",borderTopLeftRadius:0,borderTopRightRadius:0},"&:not(:last-of-type)":{borderBottomLeftRadius:0,borderBottomRightRadius:0},[`&.${kt.selected} + .${kt.grouped}.${kt.selected}`]:{borderTop:0,marginTop:0}})}));var sf=p.forwardRef(function(e,o){const n=(0,H.Z)({props:e,name:"MuiToggleButtonGroup"}),{children:r,className:i,color:c="standard",disabled:l=!1,exclusive:d=!1,fullWidth:f=!1,onChange:g,orientation:m="horizontal",size:h="medium",value:C}=n,b=(0,B.Z)(n,nf),P=(0,a.Z)({},n,{disabled:l,fullWidth:f,orientation:m,size:h}),v=rf(P),I=(Z,T)=>{if(!g)return;const D=C&&C.indexOf(T);let U;C&&D>=0?(U=C.slice(),U.splice(D,1)):U=C?C.concat(T):[T],g(Z,U)},L=(Z,T)=>{!g||g(Z,C===T?null:T)};return(0,u.jsx)(af,(0,a.Z)({role:"group",className:(0,M.Z)(v.root,i),ref:o,ownerState:P},b,{children:p.Children.map(r,Z=>p.isValidElement(Z)?p.cloneElement(Z,{className:(0,M.Z)(v.grouped,Z.props.className),onChange:d?L:I,selected:Z.props.selected===void 0?of(Z.props.value,C):Z.props.selected,size:Z.props.size||h,fullWidth:f,color:Z.props.color||c,disabled:Z.props.disabled||l}):null)}))}),Oa=s(57585),ja=s(56095),za=s(2475);const lf=["getTrigger","target"];function cf(t,e){const{disableHysteresis:o=!1,threshold:n=100,target:r}=e,i=t.current;return r&&(t.current=r.pageYOffset!==void 0?r.pageYOffset:r.scrollTop),!o&&i!==void 0&&t.currentn}const uf=typeof window!="undefined"?window:null;function df(t={}){const{getTrigger:e=cf,target:o=uf}=t,n=(0,B.Z)(t,lf),r=p.useRef(),[i,c]=p.useState(()=>e(r,n));return p.useEffect(()=>{const l=()=>{c(e(r,(0,a.Z)({target:o},n)))};return l(),o.addEventListener("scroll",l),()=>{o.removeEventListener("scroll",l)}},[o,e,JSON.stringify(n)]),i}var pf=s(25309);/** @license MUI v5.8.7 + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */}}]); + +//# sourceMappingURL=200.c6266fbe.chunk.js.map \ No newline at end of file diff --git a/admin/static/js/200.c6266fbe.chunk.js.map b/admin/static/js/200.c6266fbe.chunk.js.map new file mode 100644 index 000000000..dcbb7003e --- /dev/null +++ b/admin/static/js/200.c6266fbe.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../node_modules/@mui/material/AccordionActions/accordionActionsClasses.js","../node_modules/@mui/material/AccordionActions/AccordionActions.js","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/Alert/Alert.js","../node_modules/@mui/material/AlertTitle/alertTitleClasses.js","../node_modules/@mui/material/AlertTitle/AlertTitle.js","../node_modules/@mui/base/node_modules/@mui/utils/esm/useId.js","../node_modules/@mui/base/AutocompleteUnstyled/useAutocomplete.js","../node_modules/@mui/material/ListSubheader/listSubheaderClasses.js","../node_modules/@mui/material/ListSubheader/ListSubheader.js","../node_modules/@mui/material/Autocomplete/autocompleteClasses.js","../node_modules/@mui/material/Autocomplete/Autocomplete.js","../node_modules/@mui/material/internal/svg-icons/Person.js","../node_modules/@mui/material/Avatar/avatarClasses.js","../node_modules/@mui/material/Avatar/Avatar.js","../node_modules/@mui/material/AvatarGroup/avatarGroupClasses.js","../node_modules/@mui/material/AvatarGroup/AvatarGroup.js","../node_modules/@mui/material/BottomNavigation/bottomNavigationClasses.js","../node_modules/@mui/material/BottomNavigation/BottomNavigation.js","../node_modules/@mui/material/BottomNavigationAction/bottomNavigationActionClasses.js","../node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction.js","../node_modules/@mui/material/internal/svg-icons/MoreHoriz.js","../node_modules/@mui/material/Breadcrumbs/BreadcrumbCollapsed.js","../node_modules/@mui/material/Breadcrumbs/breadcrumbsClasses.js","../node_modules/@mui/material/Breadcrumbs/Breadcrumbs.js","../node_modules/@mui/material/ButtonGroup/buttonGroupClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroup.js","../node_modules/@mui/material/CardHeader/cardHeaderClasses.js","../node_modules/@mui/material/CardHeader/CardHeader.js","../node_modules/@mui/system/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/system/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/system/node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/system/esm/styled.js","../node_modules/@mui/system/esm/Container/createContainer.js","../node_modules/@mui/material/Container/Container.js","../node_modules/@mui/material/Container/containerClasses.js","../node_modules/@mui/material/CssBaseline/CssBaseline.js","../node_modules/@mui/material/darkScrollbar/index.js","../node_modules/@mui/material/Hidden/withWidth.js","../node_modules/@mui/material/Hidden/HiddenJs.js","../node_modules/@mui/material/Hidden/hiddenCssClasses.js","../node_modules/@mui/material/Hidden/HiddenCss.js","../node_modules/@mui/material/Hidden/Hidden.js","../node_modules/@mui/material/Icon/iconClasses.js","../node_modules/@mui/material/Icon/Icon.js","../node_modules/@mui/material/ImageList/imageListClasses.js","../node_modules/@mui/material/ImageList/ImageListContext.js","../node_modules/@mui/material/ImageList/ImageList.js","../node_modules/@mui/material/ImageListItem/imageListItemClasses.js","../node_modules/@mui/material/ImageListItem/ImageListItem.js","../node_modules/@mui/material/ImageListItemBar/imageListItemBarClasses.js","../node_modules/@mui/material/ImageListItemBar/ImageListItemBar.js","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/getTextDecoration.js","../node_modules/@mui/material/Link/Link.js","../node_modules/@mui/material/ListItemAvatar/listItemAvatarClasses.js","../node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js","../node_modules/@mui/material/MobileStepper/mobileStepperClasses.js","../node_modules/@mui/material/MobileStepper/MobileStepper.js","../node_modules/@mui/material/NativeSelect/NativeSelect.js","../node_modules/@mui/base/NoSsr/NoSsr.js","../node_modules/@mui/material/Pagination/paginationClasses.js","../node_modules/@mui/material/usePagination/usePagination.js","../node_modules/@mui/material/PaginationItem/paginationItemClasses.js","../node_modules/@mui/material/internal/svg-icons/FirstPage.js","../node_modules/@mui/material/internal/svg-icons/LastPage.js","../node_modules/@mui/material/internal/svg-icons/NavigateBefore.js","../node_modules/@mui/material/internal/svg-icons/NavigateNext.js","../node_modules/@mui/material/PaginationItem/PaginationItem.js","../node_modules/@mui/material/Pagination/Pagination.js","../node_modules/@mui/material/RadioGroup/RadioGroup.js","../node_modules/@mui/material/node_modules/@mui/utils/esm/visuallyHidden.js","../node_modules/@mui/material/internal/svg-icons/Star.js","../node_modules/@mui/material/internal/svg-icons/StarBorder.js","../node_modules/@mui/material/Rating/ratingClasses.js","../node_modules/@mui/material/Rating/Rating.js","../node_modules/@mui/material/ScopedCssBaseline/scopedCssBaselineClasses.js","../node_modules/@mui/material/ScopedCssBaseline/ScopedCssBaseline.js","../node_modules/@mui/material/Zoom/Zoom.js","../node_modules/@mui/material/SpeedDial/speedDialClasses.js","../node_modules/@mui/material/SpeedDial/SpeedDial.js","../node_modules/@mui/material/SpeedDialAction/speedDialActionClasses.js","../node_modules/@mui/material/SpeedDialAction/SpeedDialAction.js","../node_modules/@mui/material/internal/svg-icons/Add.js","../node_modules/@mui/material/SpeedDialIcon/speedDialIconClasses.js","../node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/@mui/material/Stepper/StepperContext.js","../node_modules/@mui/material/Step/StepContext.js","../node_modules/@mui/material/Step/stepClasses.js","../node_modules/@mui/material/Step/Step.js","../node_modules/@mui/material/internal/svg-icons/CheckCircle.js","../node_modules/@mui/material/internal/svg-icons/Warning.js","../node_modules/@mui/material/StepIcon/stepIconClasses.js","../node_modules/@mui/material/StepIcon/StepIcon.js","../node_modules/@mui/material/StepLabel/stepLabelClasses.js","../node_modules/@mui/material/StepLabel/StepLabel.js","../node_modules/@mui/material/StepButton/stepButtonClasses.js","../node_modules/@mui/material/StepButton/StepButton.js","../node_modules/@mui/material/StepConnector/stepConnectorClasses.js","../node_modules/@mui/material/StepConnector/StepConnector.js","../node_modules/@mui/material/StepContent/stepContentClasses.js","../node_modules/@mui/material/StepContent/StepContent.js","../node_modules/@mui/material/Stepper/stepperClasses.js","../node_modules/@mui/material/Stepper/Stepper.js","../node_modules/@mui/material/SwipeableDrawer/SwipeArea.js","../node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/material/TableFooter/tableFooterClasses.js","../node_modules/@mui/material/TableFooter/TableFooter.js","../node_modules/@mui/material/TablePagination/TablePaginationActions.js","../node_modules/@mui/material/TablePagination/tablePaginationClasses.js","../node_modules/@mui/material/TablePagination/TablePagination.js","../node_modules/@mui/material/ToggleButton/toggleButtonClasses.js","../node_modules/@mui/material/ToggleButton/ToggleButton.js","../node_modules/@mui/material/ToggleButtonGroup/isValueSelected.js","../node_modules/@mui/material/ToggleButtonGroup/toggleButtonGroupClasses.js","../node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js","../node_modules/@mui/material/useScrollTrigger/useScrollTrigger.js","../node_modules/@mui/material/index.js"],"names":[],"mappings":"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","file":"static/js/200.c6266fbe.chunk.js","sourcesContent":["import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAccordionActionsUtilityClass(slot) {\n return generateUtilityClass('MuiAccordionActions', slot);\n}\nconst accordionActionsClasses = generateUtilityClasses('MuiAccordionActions', ['root', 'spacing']);\nexport default accordionActionsClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disableSpacing\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getAccordionActionsUtilityClass } from './accordionActionsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getAccordionActionsUtilityClass, classes);\n};\n\nconst AccordionActionsRoot = styled('div', {\n name: 'MuiAccordionActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end'\n}, !ownerState.disableSpacing && {\n '& > :not(:first-of-type)': {\n marginLeft: 8\n }\n}));\nconst AccordionActions = /*#__PURE__*/React.forwardRef(function AccordionActions(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAccordionActions'\n });\n\n const {\n className,\n disableSpacing = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disableSpacing\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AccordionActionsRoot, _extends({\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AccordionActions.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AccordionActions;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAlertUtilityClass(slot) {\n return generateUtilityClass('MuiAlert', slot);\n}\nconst alertClasses = generateUtilityClasses('MuiAlert', ['root', 'action', 'icon', 'message', 'filled', 'filledSuccess', 'filledInfo', 'filledWarning', 'filledError', 'outlined', 'outlinedSuccess', 'outlinedInfo', 'outlinedWarning', 'outlinedError', 'standard', 'standardSuccess', 'standardInfo', 'standardWarning', 'standardError']);\nexport default alertClasses;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2, 4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0, 0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z\"\n}), 'SuccessOutlined');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 5.99L19.53 19H4.47L12 5.99M12 2L1 21h22L12 2zm1 14h-2v2h2v-2zm0-6h-2v4h2v-4z\"\n}), 'ReportProblemOutlined');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n}), 'ErrorOutline');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20, 12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10, 10 0 0,0 12,2M11,17H13V11H11V17Z\"\n}), 'InfoOutlined');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n *\n * Alias to `Clear`.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _CloseIcon;\n\nconst _excluded = [\"action\", \"children\", \"className\", \"closeText\", \"color\", \"icon\", \"iconMapping\", \"onClose\", \"role\", \"severity\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { darken, lighten } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nimport alertClasses, { getAlertUtilityClass } from './alertClasses';\nimport IconButton from '../IconButton';\nimport SuccessOutlinedIcon from '../internal/svg-icons/SuccessOutlined';\nimport ReportProblemOutlinedIcon from '../internal/svg-icons/ReportProblemOutlined';\nimport ErrorOutlineIcon from '../internal/svg-icons/ErrorOutline';\nimport InfoOutlinedIcon from '../internal/svg-icons/InfoOutlined';\nimport CloseIcon from '../internal/svg-icons/Close';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n variant,\n color,\n severity,\n classes\n } = ownerState;\n const slots = {\n root: ['root', `${variant}${capitalize(color || severity)}`, `${variant}`],\n icon: ['icon'],\n message: ['message'],\n action: ['action']\n };\n return composeClasses(slots, getAlertUtilityClass, classes);\n};\n\nconst AlertRoot = styled(Paper, {\n name: 'MuiAlert',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], styles[`${ownerState.variant}${capitalize(ownerState.color || ownerState.severity)}`]];\n }\n})(({\n theme,\n ownerState\n}) => {\n const getColor = theme.palette.mode === 'light' ? darken : lighten;\n const getBackgroundColor = theme.palette.mode === 'light' ? lighten : darken;\n const color = ownerState.color || ownerState.severity;\n return _extends({}, theme.typography.body2, {\n backgroundColor: 'transparent',\n display: 'flex',\n padding: '6px 16px'\n }, color && ownerState.variant === 'standard' && {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n backgroundColor: theme.vars ? theme.vars.palette.Alert[`${color}StandardBg`] : getBackgroundColor(theme.palette[color].light, 0.9),\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette.mode === 'dark' ? theme.palette[color].main : theme.palette[color].light\n }\n }, color && ownerState.variant === 'outlined' && {\n color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),\n border: `1px solid ${(theme.vars || theme).palette[color].light}`,\n [`& .${alertClasses.icon}`]: theme.vars ? {\n color: theme.vars.palette.Alert[`${color}IconColor`]\n } : {\n color: theme.palette.mode === 'dark' ? theme.palette[color].main : theme.palette[color].light\n }\n }, color && ownerState.variant === 'filled' && _extends({\n fontWeight: theme.typography.fontWeightMedium\n }, theme.vars ? {\n color: theme.vars.palette.Alert[`${color}FilledColor`],\n backgroundColor: theme.vars.palette.Alert[`${color}FilledBg`]\n } : {\n backgroundColor: theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main,\n color: theme.palette.getContrastText(theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main)\n }));\n});\nconst AlertIcon = styled('div', {\n name: 'MuiAlert',\n slot: 'Icon',\n overridesResolver: (props, styles) => styles.icon\n})({\n marginRight: 12,\n padding: '7px 0',\n display: 'flex',\n fontSize: 22,\n opacity: 0.9\n});\nconst AlertMessage = styled('div', {\n name: 'MuiAlert',\n slot: 'Message',\n overridesResolver: (props, styles) => styles.message\n})({\n padding: '8px 0',\n minWidth: 0,\n overflow: 'auto'\n});\nconst AlertAction = styled('div', {\n name: 'MuiAlert',\n slot: 'Action',\n overridesResolver: (props, styles) => styles.action\n})({\n display: 'flex',\n alignItems: 'flex-start',\n padding: '4px 0 0 16px',\n marginLeft: 'auto',\n marginRight: -8\n});\nconst defaultIconMapping = {\n success: /*#__PURE__*/_jsx(SuccessOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n warning: /*#__PURE__*/_jsx(ReportProblemOutlinedIcon, {\n fontSize: \"inherit\"\n }),\n error: /*#__PURE__*/_jsx(ErrorOutlineIcon, {\n fontSize: \"inherit\"\n }),\n info: /*#__PURE__*/_jsx(InfoOutlinedIcon, {\n fontSize: \"inherit\"\n })\n};\nconst Alert = /*#__PURE__*/React.forwardRef(function Alert(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAlert'\n });\n\n const {\n action,\n children,\n className,\n closeText = 'Close',\n color,\n icon,\n iconMapping = defaultIconMapping,\n onClose,\n role = 'alert',\n severity = 'success',\n variant = 'standard'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n severity,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(AlertRoot, _extends({\n role: role,\n elevation: 0,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [icon !== false ? /*#__PURE__*/_jsx(AlertIcon, {\n ownerState: ownerState,\n className: classes.icon,\n children: icon || iconMapping[severity] || defaultIconMapping[severity]\n }) : null, /*#__PURE__*/_jsx(AlertMessage, {\n ownerState: ownerState,\n className: classes.message,\n children: children\n }), action != null ? /*#__PURE__*/_jsx(AlertAction, {\n ownerState: ownerState,\n className: classes.action,\n children: action\n }) : null, action == null && onClose ? /*#__PURE__*/_jsx(AlertAction, {\n ownerState: ownerState,\n className: classes.action,\n children: /*#__PURE__*/_jsx(IconButton, {\n size: \"small\",\n \"aria-label\": closeText,\n title: closeText,\n color: \"inherit\",\n onClick: onClose,\n children: _CloseIcon || (_CloseIcon = /*#__PURE__*/_jsx(CloseIcon, {\n fontSize: \"small\"\n }))\n })\n }) : null]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Alert.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The action to display. It renders after the message, at the end of the alert.\n */\n action: PropTypes.node,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * Override the default label for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n\n /**\n * The color of the component. Unless provided, the value is taken from the `severity` prop.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * Override the icon displayed before the children.\n * Unless provided, the icon is mapped to the value of the `severity` prop.\n * Set to `false` to remove the `icon`.\n */\n icon: PropTypes.node,\n\n /**\n * The component maps the `severity` prop to a range of different icons,\n * for instance success to ``.\n * If you wish to change this mapping, you can provide your own.\n * Alternatively, you can use the `icon` prop to override the icon displayed.\n */\n iconMapping: PropTypes.shape({\n error: PropTypes.node,\n info: PropTypes.node,\n success: PropTypes.node,\n warning: PropTypes.node\n }),\n\n /**\n * Callback fired when the component requests to be closed.\n * When provided and no `action` prop is set, a close icon button is displayed that triggers the callback when clicked.\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onClose: PropTypes.func,\n\n /**\n * The ARIA role attribute of the element.\n * @default 'alert'\n */\n role: PropTypes.string,\n\n /**\n * The severity of the alert. This defines the color and icon used.\n * @default 'success'\n */\n severity: PropTypes.oneOf(['error', 'info', 'success', 'warning']),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * @default 'standard'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])\n} : void 0;\nexport default Alert;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAlertTitleUtilityClass(slot) {\n return generateUtilityClass('MuiAlertTitle', slot);\n}\nconst alertTitleClasses = generateUtilityClasses('MuiAlertTitle', ['root']);\nexport default alertTitleClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Typography from '../Typography';\nimport { getAlertTitleUtilityClass } from './alertTitleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getAlertTitleUtilityClass, classes);\n};\n\nconst AlertTitleRoot = styled(Typography, {\n name: 'MuiAlertTitle',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => {\n return {\n fontWeight: theme.typography.fontWeightMedium,\n marginTop: -2\n };\n});\nconst AlertTitle = /*#__PURE__*/React.forwardRef(function AlertTitle(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAlertTitle'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(AlertTitleRoot, _extends({\n gutterBottom: true,\n component: \"div\",\n ownerState: ownerState,\n ref: ref,\n className: clsx(classes.root, className)\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AlertTitle.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default AlertTitle;","import * as React from 'react';\nlet globalId = 0;\n\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseId = React['useId' + ''];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\n\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n } // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n\n\n return useGlobalId(idOverride);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n\n/* eslint-disable no-constant-condition */\nimport * as React from 'react';\nimport { unstable_setRef as setRef, unstable_useEventCallback as useEventCallback, unstable_useControlled as useControlled, unstable_useId as useId } from '@mui/utils'; // https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript\n// Give up on IE11 support for this feature\n\nfunction stripDiacritics(string) {\n return typeof string.normalize !== 'undefined' ? string.normalize('NFD').replace(/[\\u0300-\\u036f]/g, '') : string;\n}\n\nexport function createFilterOptions(config = {}) {\n const {\n ignoreAccents = true,\n ignoreCase = true,\n limit,\n matchFrom = 'any',\n stringify,\n trim = false\n } = config;\n return (options, {\n inputValue,\n getOptionLabel\n }) => {\n let input = trim ? inputValue.trim() : inputValue;\n\n if (ignoreCase) {\n input = input.toLowerCase();\n }\n\n if (ignoreAccents) {\n input = stripDiacritics(input);\n }\n\n const filteredOptions = options.filter(option => {\n let candidate = (stringify || getOptionLabel)(option);\n\n if (ignoreCase) {\n candidate = candidate.toLowerCase();\n }\n\n if (ignoreAccents) {\n candidate = stripDiacritics(candidate);\n }\n\n return matchFrom === 'start' ? candidate.indexOf(input) === 0 : candidate.indexOf(input) > -1;\n });\n return typeof limit === 'number' ? filteredOptions.slice(0, limit) : filteredOptions;\n };\n} // To replace with .findIndex() once we stop IE11 support.\n\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nconst defaultFilterOptions = createFilterOptions(); // Number of options to jump in list box when pageup and pagedown keys are used.\n\nconst pageSize = 5;\nexport default function useAutocomplete(props) {\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n componentName = 'useAutocomplete',\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled: disabledProp,\n disabledItemsFocusable = false,\n disableListWrap = false,\n filterOptions = defaultFilterOptions,\n filterSelectedOptions = false,\n freeSolo = false,\n getOptionDisabled,\n getOptionLabel: getOptionLabelProp = option => {\n var _option$label;\n\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n id: idProp,\n includeInputInList = false,\n inputValue: inputValueProp,\n isOptionEqualToValue = (option, value) => option === value,\n multiple = false,\n onChange,\n onClose,\n onHighlightChange,\n onInputChange,\n onOpen,\n open: openProp,\n openOnFocus = false,\n options,\n readOnly = false,\n selectOnFocus = !props.freeSolo,\n value: valueProp\n } = props;\n const id = useId(idProp);\n let getOptionLabel = getOptionLabelProp;\n\n getOptionLabel = option => {\n const optionLabel = getOptionLabelProp(option);\n\n if (typeof optionLabel !== 'string') {\n if (process.env.NODE_ENV !== 'production') {\n const erroneousReturn = optionLabel === undefined ? 'undefined' : `${typeof optionLabel} (${optionLabel})`;\n console.error(`MUI: The \\`getOptionLabel\\` method of ${componentName} returned ${erroneousReturn} instead of a string for ${JSON.stringify(option)}.`);\n }\n\n return String(optionLabel);\n }\n\n return optionLabel;\n };\n\n const ignoreFocus = React.useRef(false);\n const firstFocus = React.useRef(true);\n const inputRef = React.useRef(null);\n const listboxRef = React.useRef(null);\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [focusedTag, setFocusedTag] = React.useState(-1);\n const defaultHighlighted = autoHighlight ? 0 : -1;\n const highlightedIndexRef = React.useRef(defaultHighlighted);\n const [value, setValueState] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: componentName\n });\n const [inputValue, setInputValueState] = useControlled({\n controlled: inputValueProp,\n default: '',\n name: componentName,\n state: 'inputValue'\n });\n const [focused, setFocused] = React.useState(false);\n const resetInputValue = React.useCallback((event, newValue) => {\n // retain current `inputValue` if new option isn't selected and `clearOnBlur` is false\n // When `multiple` is enabled, `newValue` is an array of all selected items including the newly selected item\n const isOptionSelected = multiple ? value.length < newValue.length : newValue !== null;\n\n if (!isOptionSelected && !clearOnBlur) {\n return;\n }\n\n let newInputValue;\n\n if (multiple) {\n newInputValue = '';\n } else if (newValue == null) {\n newInputValue = '';\n } else {\n const optionLabel = getOptionLabel(newValue);\n newInputValue = typeof optionLabel === 'string' ? optionLabel : '';\n }\n\n if (inputValue === newInputValue) {\n return;\n }\n\n setInputValueState(newInputValue);\n\n if (onInputChange) {\n onInputChange(event, newInputValue, 'reset');\n }\n }, [getOptionLabel, inputValue, multiple, onInputChange, setInputValueState, clearOnBlur, value]);\n const prevValue = React.useRef();\n React.useEffect(() => {\n const valueChange = value !== prevValue.current;\n prevValue.current = value;\n\n if (focused && !valueChange) {\n return;\n } // Only reset the input's value when freeSolo if the component's value changes.\n\n\n if (freeSolo && !valueChange) {\n return;\n }\n\n resetInputValue(null, value);\n }, [value, resetInputValue, focused, prevValue, freeSolo]);\n const [open, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: componentName,\n state: 'open'\n });\n const [inputPristine, setInputPristine] = React.useState(true);\n const inputValueIsSelectedValue = !multiple && value != null && inputValue === getOptionLabel(value);\n const popupOpen = open && !readOnly;\n const filteredOptions = popupOpen ? filterOptions(options.filter(option => {\n if (filterSelectedOptions && (multiple ? value : [value]).some(value2 => value2 !== null && isOptionEqualToValue(option, value2))) {\n return false;\n }\n\n return true;\n }), // we use the empty string to manipulate `filterOptions` to not filter any options\n // i.e. the filter predicate always returns true\n {\n inputValue: inputValueIsSelectedValue && inputPristine ? '' : inputValue,\n getOptionLabel\n }) : [];\n const listboxAvailable = open && filteredOptions.length > 0 && !readOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value !== null && !freeSolo && options.length > 0) {\n const missingValue = (multiple ? value : [value]).filter(value2 => !options.some(option => isOptionEqualToValue(option, value2)));\n\n if (missingValue.length > 0) {\n console.warn([`MUI: The value provided to ${componentName} is invalid.`, `None of the options match with \\`${missingValue.length > 1 ? JSON.stringify(missingValue) : JSON.stringify(missingValue[0])}\\`.`, 'You can use the `isOptionEqualToValue` prop to customize the equality test.'].join('\\n'));\n }\n }\n }\n\n const focusTag = useEventCallback(tagToFocus => {\n if (tagToFocus === -1) {\n inputRef.current.focus();\n } else {\n anchorEl.querySelector(`[data-tag-index=\"${tagToFocus}\"]`).focus();\n }\n }); // Ensure the focusedTag is never inconsistent\n\n React.useEffect(() => {\n if (multiple && focusedTag > value.length - 1) {\n setFocusedTag(-1);\n focusTag(-1);\n }\n }, [value, multiple, focusedTag, focusTag]);\n\n function validOptionIndex(index, direction) {\n if (!listboxRef.current || index === -1) {\n return -1;\n }\n\n let nextFocus = index;\n\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === filteredOptions.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n\n const option = listboxRef.current.querySelector(`[data-option-index=\"${nextFocus}\"]`); // Same logic as MenuList.js\n\n const nextFocusDisabled = disabledItemsFocusable ? false : !option || option.disabled || option.getAttribute('aria-disabled') === 'true';\n\n if (option && !option.hasAttribute('tabindex') || nextFocusDisabled) {\n // Move to the next element.\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n\n const setHighlightedIndex = useEventCallback(({\n event,\n index,\n reason = 'auto'\n }) => {\n highlightedIndexRef.current = index; // does the index exist?\n\n if (index === -1) {\n inputRef.current.removeAttribute('aria-activedescendant');\n } else {\n inputRef.current.setAttribute('aria-activedescendant', `${id}-option-${index}`);\n }\n\n if (onHighlightChange) {\n onHighlightChange(event, index === -1 ? null : filteredOptions[index], reason);\n }\n\n if (!listboxRef.current) {\n return;\n }\n\n const prev = listboxRef.current.querySelector('[role=\"option\"].Mui-focused');\n\n if (prev) {\n prev.classList.remove('Mui-focused');\n prev.classList.remove('Mui-focusVisible');\n }\n\n const listboxNode = listboxRef.current.parentElement.querySelector('[role=\"listbox\"]'); // \"No results\"\n\n if (!listboxNode) {\n return;\n }\n\n if (index === -1) {\n listboxNode.scrollTop = 0;\n return;\n }\n\n const option = listboxRef.current.querySelector(`[data-option-index=\"${index}\"]`);\n\n if (!option) {\n return;\n }\n\n option.classList.add('Mui-focused');\n\n if (reason === 'keyboard') {\n option.classList.add('Mui-focusVisible');\n } // Scroll active descendant into view.\n // Logic copied from https://www.w3.org/WAI/ARIA/apg/example-index/combobox/js/select-only.js\n //\n // Consider this API instead once it has a better browser support:\n // .scrollIntoView({ scrollMode: 'if-needed', block: 'nearest' });\n\n\n if (listboxNode.scrollHeight > listboxNode.clientHeight && reason !== 'mouse') {\n const element = option;\n const scrollBottom = listboxNode.clientHeight + listboxNode.scrollTop;\n const elementBottom = element.offsetTop + element.offsetHeight;\n\n if (elementBottom > scrollBottom) {\n listboxNode.scrollTop = elementBottom - listboxNode.clientHeight;\n } else if (element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0) < listboxNode.scrollTop) {\n listboxNode.scrollTop = element.offsetTop - element.offsetHeight * (groupBy ? 1.3 : 0);\n }\n }\n });\n const changeHighlightedIndex = useEventCallback(({\n event,\n diff,\n direction = 'next',\n reason = 'auto'\n }) => {\n if (!popupOpen) {\n return;\n }\n\n const getNextIndex = () => {\n const maxIndex = filteredOptions.length - 1;\n\n if (diff === 'reset') {\n return defaultHighlighted;\n }\n\n if (diff === 'start') {\n return 0;\n }\n\n if (diff === 'end') {\n return maxIndex;\n }\n\n const newIndex = highlightedIndexRef.current + diff;\n\n if (newIndex < 0) {\n if (newIndex === -1 && includeInputInList) {\n return -1;\n }\n\n if (disableListWrap && highlightedIndexRef.current !== -1 || Math.abs(diff) > 1) {\n return 0;\n }\n\n return maxIndex;\n }\n\n if (newIndex > maxIndex) {\n if (newIndex === maxIndex + 1 && includeInputInList) {\n return -1;\n }\n\n if (disableListWrap || Math.abs(diff) > 1) {\n return maxIndex;\n }\n\n return 0;\n }\n\n return newIndex;\n };\n\n const nextIndex = validOptionIndex(getNextIndex(), direction);\n setHighlightedIndex({\n index: nextIndex,\n reason,\n event\n }); // Sync the content of the input with the highlighted option.\n\n if (autoComplete && diff !== 'reset') {\n if (nextIndex === -1) {\n inputRef.current.value = inputValue;\n } else {\n const option = getOptionLabel(filteredOptions[nextIndex]);\n inputRef.current.value = option; // The portion of the selected suggestion that has not been typed by the user,\n // a completion string, appears inline after the input cursor in the textbox.\n\n const index = option.toLowerCase().indexOf(inputValue.toLowerCase());\n\n if (index === 0 && inputValue.length > 0) {\n inputRef.current.setSelectionRange(inputValue.length, option.length);\n }\n }\n }\n });\n const syncHighlightedIndex = React.useCallback(() => {\n if (!popupOpen) {\n return;\n }\n\n const valueItem = multiple ? value[0] : value; // The popup is empty, reset\n\n if (filteredOptions.length === 0 || valueItem == null) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n return;\n }\n\n if (!listboxRef.current) {\n return;\n } // Synchronize the value with the highlighted index\n\n\n if (valueItem != null) {\n const currentOption = filteredOptions[highlightedIndexRef.current]; // Keep the current highlighted index if possible\n\n if (multiple && currentOption && findIndex(value, val => isOptionEqualToValue(currentOption, val)) !== -1) {\n return;\n }\n\n const itemIndex = findIndex(filteredOptions, optionItem => isOptionEqualToValue(optionItem, valueItem));\n\n if (itemIndex === -1) {\n changeHighlightedIndex({\n diff: 'reset'\n });\n } else {\n setHighlightedIndex({\n index: itemIndex\n });\n }\n\n return;\n } // Prevent the highlighted index to leak outside the boundaries.\n\n\n if (highlightedIndexRef.current >= filteredOptions.length - 1) {\n setHighlightedIndex({\n index: filteredOptions.length - 1\n });\n return;\n } // Restore the focus to the previous index.\n\n\n setHighlightedIndex({\n index: highlightedIndexRef.current\n }); // Ignore filteredOptions (and options, isOptionEqualToValue, getOptionLabel) not to break the scroll position\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [// Only sync the highlighted index when the option switch between empty and not\n filteredOptions.length, // Don't sync the highlighted index with the value when multiple\n // eslint-disable-next-line react-hooks/exhaustive-deps\n multiple ? false : value, filterSelectedOptions, changeHighlightedIndex, setHighlightedIndex, popupOpen, inputValue, multiple]);\n const handleListboxRef = useEventCallback(node => {\n setRef(listboxRef, node);\n\n if (!node) {\n return;\n }\n\n syncHighlightedIndex();\n });\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputRef.current || inputRef.current.nodeName !== 'INPUT') {\n if (inputRef.current && inputRef.current.nodeName === 'TEXTAREA') {\n console.warn([`A textarea element was provided to ${componentName} where input was expected.`, `This is not a supported scenario but it may work under certain conditions.`, `A textarea keyboard navigation may conflict with Autocomplete controls (e.g. enter and arrow keys).`, `Make sure to test keyboard navigation and add custom event handlers if necessary.`].join('\\n'));\n } else {\n console.error([`MUI: Unable to find the input element. It was resolved to ${inputRef.current} while an HTMLInputElement was expected.`, `Instead, ${componentName} expects an input element.`, '', componentName === 'useAutocomplete' ? 'Make sure you have binded getInputProps correctly and that the normal ref/effect resolutions order is guaranteed.' : 'Make sure you have customized the input component correctly.'].join('\\n'));\n }\n }\n }, [componentName]);\n }\n\n React.useEffect(() => {\n syncHighlightedIndex();\n }, [syncHighlightedIndex]);\n\n const handleOpen = event => {\n if (open) {\n return;\n }\n\n setOpenState(true);\n setInputPristine(true);\n\n if (onOpen) {\n onOpen(event);\n }\n };\n\n const handleClose = (event, reason) => {\n if (!open) {\n return;\n }\n\n setOpenState(false);\n\n if (onClose) {\n onClose(event, reason);\n }\n };\n\n const handleValue = (event, newValue, reason, details) => {\n if (multiple) {\n if (value.length === newValue.length && value.every((val, i) => val === newValue[i])) {\n return;\n }\n } else if (value === newValue) {\n return;\n }\n\n if (onChange) {\n onChange(event, newValue, reason, details);\n }\n\n setValueState(newValue);\n };\n\n const isTouch = React.useRef(false);\n\n const selectNewValue = (event, option, reasonProp = 'selectOption', origin = 'options') => {\n let reason = reasonProp;\n let newValue = option;\n\n if (multiple) {\n newValue = Array.isArray(value) ? value.slice() : [];\n\n if (process.env.NODE_ENV !== 'production') {\n const matches = newValue.filter(val => isOptionEqualToValue(option, val));\n\n if (matches.length > 1) {\n console.error([`MUI: The \\`isOptionEqualToValue\\` method of ${componentName} do not handle the arguments correctly.`, `The component expects a single value to match a given option but found ${matches.length} matches.`].join('\\n'));\n }\n }\n\n const itemIndex = findIndex(newValue, valueItem => isOptionEqualToValue(option, valueItem));\n\n if (itemIndex === -1) {\n newValue.push(option);\n } else if (origin !== 'freeSolo') {\n newValue.splice(itemIndex, 1);\n reason = 'removeOption';\n }\n }\n\n resetInputValue(event, newValue);\n handleValue(event, newValue, reason, {\n option\n });\n\n if (!disableCloseOnSelect && !event.ctrlKey && !event.metaKey) {\n handleClose(event, reason);\n }\n\n if (blurOnSelect === true || blurOnSelect === 'touch' && isTouch.current || blurOnSelect === 'mouse' && !isTouch.current) {\n inputRef.current.blur();\n }\n };\n\n function validTagIndex(index, direction) {\n if (index === -1) {\n return -1;\n }\n\n let nextFocus = index;\n\n while (true) {\n // Out of range\n if (direction === 'next' && nextFocus === value.length || direction === 'previous' && nextFocus === -1) {\n return -1;\n }\n\n const option = anchorEl.querySelector(`[data-tag-index=\"${nextFocus}\"]`); // Same logic as MenuList.js\n\n if (!option || !option.hasAttribute('tabindex') || option.disabled || option.getAttribute('aria-disabled') === 'true') {\n nextFocus += direction === 'next' ? 1 : -1;\n } else {\n return nextFocus;\n }\n }\n }\n\n const handleFocusTag = (event, direction) => {\n if (!multiple) {\n return;\n }\n\n if (inputValue === '') {\n handleClose(event, 'toggleInput');\n }\n\n let nextTag = focusedTag;\n\n if (focusedTag === -1) {\n if (inputValue === '' && direction === 'previous') {\n nextTag = value.length - 1;\n }\n } else {\n nextTag += direction === 'next' ? 1 : -1;\n\n if (nextTag < 0) {\n nextTag = 0;\n }\n\n if (nextTag === value.length) {\n nextTag = -1;\n }\n }\n\n nextTag = validTagIndex(nextTag, direction);\n setFocusedTag(nextTag);\n focusTag(nextTag);\n };\n\n const handleClear = event => {\n ignoreFocus.current = true;\n setInputValueState('');\n\n if (onInputChange) {\n onInputChange(event, '', 'clear');\n }\n\n handleValue(event, multiple ? [] : null, 'clear');\n };\n\n const handleKeyDown = other => event => {\n if (other.onKeyDown) {\n other.onKeyDown(event);\n }\n\n if (event.defaultMuiPrevented) {\n return;\n }\n\n if (focusedTag !== -1 && ['ArrowLeft', 'ArrowRight'].indexOf(event.key) === -1) {\n setFocusedTag(-1);\n focusTag(-1);\n } // Wait until IME is settled.\n\n\n if (event.which !== 229) {\n switch (event.key) {\n case 'Home':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'start',\n direction: 'next',\n reason: 'keyboard',\n event\n });\n }\n\n break;\n\n case 'End':\n if (popupOpen && handleHomeEndKeys) {\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: 'end',\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n }\n\n break;\n\n case 'PageUp':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: -pageSize,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'PageDown':\n // Prevent scroll of the page\n event.preventDefault();\n changeHighlightedIndex({\n diff: pageSize,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowDown':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: 1,\n direction: 'next',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowUp':\n // Prevent cursor move\n event.preventDefault();\n changeHighlightedIndex({\n diff: -1,\n direction: 'previous',\n reason: 'keyboard',\n event\n });\n handleOpen(event);\n break;\n\n case 'ArrowLeft':\n handleFocusTag(event, 'previous');\n break;\n\n case 'ArrowRight':\n handleFocusTag(event, 'next');\n break;\n\n case 'Enter':\n if (highlightedIndexRef.current !== -1 && popupOpen) {\n const option = filteredOptions[highlightedIndexRef.current];\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false; // Avoid early form validation, let the end-users continue filling the form.\n\n event.preventDefault();\n\n if (disabled) {\n return;\n }\n\n selectNewValue(event, option, 'selectOption'); // Move the selection to the end.\n\n if (autoComplete) {\n inputRef.current.setSelectionRange(inputRef.current.value.length, inputRef.current.value.length);\n }\n } else if (freeSolo && inputValue !== '' && inputValueIsSelectedValue === false) {\n if (multiple) {\n // Allow people to add new values before they submit the form.\n event.preventDefault();\n }\n\n selectNewValue(event, inputValue, 'createOption', 'freeSolo');\n }\n\n break;\n\n case 'Escape':\n if (popupOpen) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault(); // Avoid the Modal to handle the event.\n\n event.stopPropagation();\n handleClose(event, 'escape');\n } else if (clearOnEscape && (inputValue !== '' || multiple && value.length > 0)) {\n // Avoid Opera to exit fullscreen mode.\n event.preventDefault(); // Avoid the Modal to handle the event.\n\n event.stopPropagation();\n handleClear(event);\n }\n\n break;\n\n case 'Backspace':\n if (multiple && !readOnly && inputValue === '' && value.length > 0) {\n const index = focusedTag === -1 ? value.length - 1 : focusedTag;\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n }\n\n break;\n\n default:\n }\n }\n };\n\n const handleFocus = event => {\n setFocused(true);\n\n if (openOnFocus && !ignoreFocus.current) {\n handleOpen(event);\n }\n };\n\n const handleBlur = event => {\n // Ignore the event when using the scrollbar with IE11\n if (listboxRef.current !== null && listboxRef.current.parentElement.contains(document.activeElement)) {\n inputRef.current.focus();\n return;\n }\n\n setFocused(false);\n firstFocus.current = true;\n ignoreFocus.current = false;\n\n if (autoSelect && highlightedIndexRef.current !== -1 && popupOpen) {\n selectNewValue(event, filteredOptions[highlightedIndexRef.current], 'blur');\n } else if (autoSelect && freeSolo && inputValue !== '') {\n selectNewValue(event, inputValue, 'blur', 'freeSolo');\n } else if (clearOnBlur) {\n resetInputValue(event, value);\n }\n\n handleClose(event, 'blur');\n };\n\n const handleInputChange = event => {\n const newValue = event.target.value;\n\n if (inputValue !== newValue) {\n setInputValueState(newValue);\n setInputPristine(false);\n\n if (onInputChange) {\n onInputChange(event, newValue, 'input');\n }\n }\n\n if (newValue === '') {\n if (!disableClearable && !multiple) {\n handleValue(event, null, 'clear');\n }\n } else {\n handleOpen(event);\n }\n };\n\n const handleOptionMouseOver = event => {\n setHighlightedIndex({\n event,\n index: Number(event.currentTarget.getAttribute('data-option-index')),\n reason: 'mouse'\n });\n };\n\n const handleOptionTouchStart = () => {\n isTouch.current = true;\n };\n\n const handleOptionClick = event => {\n const index = Number(event.currentTarget.getAttribute('data-option-index'));\n selectNewValue(event, filteredOptions[index], 'selectOption');\n isTouch.current = false;\n };\n\n const handleTagDelete = index => event => {\n const newValue = value.slice();\n newValue.splice(index, 1);\n handleValue(event, newValue, 'removeOption', {\n option: value[index]\n });\n };\n\n const handlePopupIndicator = event => {\n if (open) {\n handleClose(event, 'toggleInput');\n } else {\n handleOpen(event);\n }\n }; // Prevent input blur when interacting with the combobox\n\n\n const handleMouseDown = event => {\n if (event.target.getAttribute('id') !== id) {\n event.preventDefault();\n }\n }; // Focus the input when interacting with the combobox\n\n\n const handleClick = () => {\n inputRef.current.focus();\n\n if (selectOnFocus && firstFocus.current && inputRef.current.selectionEnd - inputRef.current.selectionStart === 0) {\n inputRef.current.select();\n }\n\n firstFocus.current = false;\n };\n\n const handleInputMouseDown = event => {\n if (inputValue === '' || !open) {\n handlePopupIndicator(event);\n }\n };\n\n let dirty = freeSolo && inputValue.length > 0;\n dirty = dirty || (multiple ? value.length > 0 : value !== null);\n let groupedOptions = filteredOptions;\n\n if (groupBy) {\n // used to keep track of key and indexes in the result array\n const indexBy = new Map();\n let warn = false;\n groupedOptions = filteredOptions.reduce((acc, option, index) => {\n const group = groupBy(option);\n\n if (acc.length > 0 && acc[acc.length - 1].group === group) {\n acc[acc.length - 1].options.push(option);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n if (indexBy.get(group) && !warn) {\n console.warn(`MUI: The options provided combined with the \\`groupBy\\` method of ${componentName} returns duplicated headers.`, 'You can solve the issue by sorting the options with the output of `groupBy`.');\n warn = true;\n }\n\n indexBy.set(group, true);\n }\n\n acc.push({\n key: index,\n index,\n group,\n options: [option]\n });\n }\n\n return acc;\n }, []);\n }\n\n if (disabledProp && focused) {\n handleBlur();\n }\n\n return {\n getRootProps: (other = {}) => _extends({\n 'aria-owns': listboxAvailable ? `${id}-listbox` : null\n }, other, {\n onKeyDown: handleKeyDown(other),\n onMouseDown: handleMouseDown,\n onClick: handleClick\n }),\n getInputLabelProps: () => ({\n id: `${id}-label`,\n htmlFor: id\n }),\n getInputProps: () => ({\n id,\n value: inputValue,\n onBlur: handleBlur,\n onFocus: handleFocus,\n onChange: handleInputChange,\n onMouseDown: handleInputMouseDown,\n // if open then this is handled imperativeley so don't let react override\n // only have an opinion about this when closed\n 'aria-activedescendant': popupOpen ? '' : null,\n 'aria-autocomplete': autoComplete ? 'both' : 'list',\n 'aria-controls': listboxAvailable ? `${id}-listbox` : undefined,\n 'aria-expanded': listboxAvailable,\n // Disable browser's suggestion that might overlap with the popup.\n // Handle autocomplete but not autofill.\n autoComplete: 'off',\n ref: inputRef,\n autoCapitalize: 'none',\n spellCheck: 'false',\n role: 'combobox'\n }),\n getClearProps: () => ({\n tabIndex: -1,\n onClick: handleClear\n }),\n getPopupIndicatorProps: () => ({\n tabIndex: -1,\n onClick: handlePopupIndicator\n }),\n getTagProps: ({\n index\n }) => _extends({\n key: index,\n 'data-tag-index': index,\n tabIndex: -1\n }, !readOnly && {\n onDelete: handleTagDelete(index)\n }),\n getListboxProps: () => ({\n role: 'listbox',\n id: `${id}-listbox`,\n 'aria-labelledby': `${id}-label`,\n ref: handleListboxRef,\n onMouseDown: event => {\n // Prevent blur\n event.preventDefault();\n }\n }),\n getOptionProps: ({\n index,\n option\n }) => {\n const selected = (multiple ? value : [value]).some(value2 => value2 != null && isOptionEqualToValue(option, value2));\n const disabled = getOptionDisabled ? getOptionDisabled(option) : false;\n return {\n key: getOptionLabel(option),\n tabIndex: -1,\n role: 'option',\n id: `${id}-option-${index}`,\n onMouseOver: handleOptionMouseOver,\n onClick: handleOptionClick,\n onTouchStart: handleOptionTouchStart,\n 'data-option-index': index,\n 'aria-disabled': disabled,\n 'aria-selected': selected\n };\n },\n id,\n inputValue,\n value,\n dirty,\n popupOpen,\n focused: focused || focusedTag !== -1,\n anchorEl,\n setAnchorEl,\n focusedTag,\n groupedOptions\n };\n}","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListSubheaderUtilityClass(slot) {\n return generateUtilityClass('MuiListSubheader', slot);\n}\nconst listSubheaderClasses = generateUtilityClasses('MuiListSubheader', ['root', 'colorPrimary', 'colorInherit', 'gutters', 'inset', 'sticky']);\nexport default listSubheaderClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"disableGutters\", \"disableSticky\", \"inset\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport { getListSubheaderUtilityClass } from './listSubheaderClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n color,\n disableGutters,\n inset,\n disableSticky\n } = ownerState;\n const slots = {\n root: ['root', color !== 'default' && `color${capitalize(color)}`, !disableGutters && 'gutters', inset && 'inset', !disableSticky && 'sticky']\n };\n return composeClasses(slots, getListSubheaderUtilityClass, classes);\n};\n\nconst ListSubheaderRoot = styled('li', {\n name: 'MuiListSubheader',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`], !ownerState.disableGutters && styles.gutters, ownerState.inset && styles.inset, !ownerState.disableSticky && styles.sticky];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n boxSizing: 'border-box',\n lineHeight: '48px',\n listStyle: 'none',\n color: (theme.vars || theme).palette.text.secondary,\n fontFamily: theme.typography.fontFamily,\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.pxToRem(14)\n}, ownerState.color === 'primary' && {\n color: (theme.vars || theme).palette.primary.main\n}, ownerState.color === 'inherit' && {\n color: 'inherit'\n}, !ownerState.disableGutters && {\n paddingLeft: 16,\n paddingRight: 16\n}, ownerState.inset && {\n paddingLeft: 72\n}, !ownerState.disableSticky && {\n position: 'sticky',\n top: 0,\n zIndex: 1,\n backgroundColor: (theme.vars || theme).palette.background.paper\n}));\nconst ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListSubheader'\n });\n\n const {\n className,\n color = 'default',\n component = 'li',\n disableGutters = false,\n disableSticky = false,\n inset = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n color,\n component,\n disableGutters,\n disableSticky,\n inset\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListSubheaderRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListSubheader.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'default'\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary']),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * If `true`, the List Subheader will not have gutters.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader will not stick to the top during scroll.\n * @default false\n */\n disableSticky: PropTypes.bool,\n\n /**\n * If `true`, the List Subheader is indented.\n * @default false\n */\n inset: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListSubheader;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAutocompleteUtilityClass(slot) {\n return generateUtilityClass('MuiAutocomplete', slot);\n}\nconst autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);\nexport default autocompleteClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _ClearIcon, _ArrowDropDownIcon;\n\nconst _excluded = [\"autoComplete\", \"autoHighlight\", \"autoSelect\", \"blurOnSelect\", \"ChipProps\", \"className\", \"clearIcon\", \"clearOnBlur\", \"clearOnEscape\", \"clearText\", \"closeText\", \"componentsProps\", \"defaultValue\", \"disableClearable\", \"disableCloseOnSelect\", \"disabled\", \"disabledItemsFocusable\", \"disableListWrap\", \"disablePortal\", \"filterOptions\", \"filterSelectedOptions\", \"forcePopupIcon\", \"freeSolo\", \"fullWidth\", \"getLimitTagsText\", \"getOptionDisabled\", \"getOptionLabel\", \"isOptionEqualToValue\", \"groupBy\", \"handleHomeEndKeys\", \"id\", \"includeInputInList\", \"inputValue\", \"limitTags\", \"ListboxComponent\", \"ListboxProps\", \"loading\", \"loadingText\", \"multiple\", \"noOptionsText\", \"onChange\", \"onClose\", \"onHighlightChange\", \"onInputChange\", \"onOpen\", \"open\", \"openOnFocus\", \"openText\", \"options\", \"PaperComponent\", \"PopperComponent\", \"popupIcon\", \"readOnly\", \"renderGroup\", \"renderInput\", \"renderOption\", \"renderTags\", \"selectOnFocus\", \"size\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, useAutocomplete, createFilterOptions } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport Popper from '../Popper';\nimport ListSubheader from '../ListSubheader';\nimport Paper from '../Paper';\nimport IconButton from '../IconButton';\nimport Chip from '../Chip';\nimport inputClasses from '../Input/inputClasses';\nimport inputBaseClasses from '../InputBase/inputBaseClasses';\nimport outlinedInputClasses from '../OutlinedInput/outlinedInputClasses';\nimport filledInputClasses from '../FilledInput/filledInputClasses';\nimport ClearIcon from '../internal/svg-icons/Close';\nimport ArrowDropDownIcon from '../internal/svg-icons/ArrowDropDown';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport autocompleteClasses, { getAutocompleteUtilityClass } from './autocompleteClasses';\nimport capitalize from '../utils/capitalize';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePortal,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n popupOpen,\n size\n } = ownerState;\n const slots = {\n root: ['root', focused && 'focused', fullWidth && 'fullWidth', hasClearIcon && 'hasClearIcon', hasPopupIcon && 'hasPopupIcon'],\n inputRoot: ['inputRoot'],\n input: ['input', inputFocused && 'inputFocused'],\n tag: ['tag', `tagSize${capitalize(size)}`],\n endAdornment: ['endAdornment'],\n clearIndicator: ['clearIndicator'],\n popupIndicator: ['popupIndicator', popupOpen && 'popupIndicatorOpen'],\n popper: ['popper', disablePortal && 'popperDisablePortal'],\n paper: ['paper'],\n listbox: ['listbox'],\n loading: ['loading'],\n noOptions: ['noOptions'],\n option: ['option'],\n groupLabel: ['groupLabel'],\n groupUl: ['groupUl']\n };\n return composeClasses(slots, getAutocompleteUtilityClass, classes);\n};\n\nconst AutocompleteRoot = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n const {\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused,\n size\n } = ownerState;\n return [{\n [`& .${autocompleteClasses.tag}`]: styles.tag\n }, {\n [`& .${autocompleteClasses.tag}`]: styles[`tagSize${capitalize(size)}`]\n }, {\n [`& .${autocompleteClasses.inputRoot}`]: styles.inputRoot\n }, {\n [`& .${autocompleteClasses.input}`]: styles.input\n }, {\n [`& .${autocompleteClasses.input}`]: inputFocused && styles.inputFocused\n }, styles.root, fullWidth && styles.fullWidth, hasPopupIcon && styles.hasPopupIcon, hasClearIcon && styles.hasClearIcon];\n }\n})(({\n ownerState\n}) => _extends({\n [`&.${autocompleteClasses.focused} .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n },\n\n /* Avoid double tap issue on iOS */\n '@media (pointer: fine)': {\n [`&:hover .${autocompleteClasses.clearIndicator}`]: {\n visibility: 'visible'\n }\n }\n}, ownerState.fullWidth && {\n width: '100%'\n}, {\n [`& .${autocompleteClasses.tag}`]: _extends({\n margin: 3,\n maxWidth: 'calc(100% - 6px)'\n }, ownerState.size === 'small' && {\n margin: 2,\n maxWidth: 'calc(100% - 4px)'\n }),\n [`& .${autocompleteClasses.inputRoot}`]: {\n flexWrap: 'wrap',\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4\n },\n [`& .${autocompleteClasses.input}`]: {\n width: 0,\n minWidth: 30\n }\n },\n [`& .${inputClasses.root}`]: {\n paddingBottom: 1,\n '& .MuiInput-input': {\n padding: '4px 4px 4px 0px'\n }\n },\n [`& .${inputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n [`& .${inputClasses.input}`]: {\n padding: '2px 4px 3px 0'\n }\n },\n [`& .${outlinedInputClasses.root}`]: {\n padding: 9,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${autocompleteClasses.input}`]: {\n padding: '7.5px 4px 7.5px 6px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${outlinedInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n padding: 6,\n [`& .${autocompleteClasses.input}`]: {\n padding: '2.5px 4px 2.5px 6px'\n }\n },\n [`& .${filledInputClasses.root}`]: {\n paddingTop: 19,\n paddingLeft: 8,\n [`.${autocompleteClasses.hasPopupIcon}&, .${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 26 + 4 + 9\n },\n [`.${autocompleteClasses.hasPopupIcon}.${autocompleteClasses.hasClearIcon}&`]: {\n paddingRight: 52 + 4 + 9\n },\n [`& .${filledInputClasses.input}`]: {\n padding: '7px 4px'\n },\n [`& .${autocompleteClasses.endAdornment}`]: {\n right: 9\n }\n },\n [`& .${filledInputClasses.root}.${inputBaseClasses.sizeSmall}`]: {\n paddingBottom: 1,\n [`& .${filledInputClasses.input}`]: {\n padding: '2.5px 4px'\n }\n },\n [`& .${inputBaseClasses.hiddenLabel}`]: {\n paddingTop: 8\n },\n [`& .${autocompleteClasses.input}`]: _extends({\n flexGrow: 1,\n textOverflow: 'ellipsis',\n opacity: 0\n }, ownerState.inputFocused && {\n opacity: 1\n })\n}));\nconst AutocompleteEndAdornment = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'EndAdornment',\n overridesResolver: (props, styles) => styles.endAdornment\n})({\n // We use a position absolute to support wrapping tags.\n position: 'absolute',\n right: 0,\n top: 'calc(50% - 14px)' // Center vertically\n\n});\nconst AutocompleteClearIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'ClearIndicator',\n overridesResolver: (props, styles) => styles.clearIndicator\n})({\n marginRight: -2,\n padding: 4,\n visibility: 'hidden'\n});\nconst AutocompletePopupIndicator = styled(IconButton, {\n name: 'MuiAutocomplete',\n slot: 'PopupIndicator',\n overridesResolver: ({\n ownerState\n }, styles) => _extends({}, styles.popupIndicator, ownerState.popupOpen && styles.popupIndicatorOpen)\n})(({\n ownerState\n}) => _extends({\n padding: 2,\n marginRight: -2\n}, ownerState.popupOpen && {\n transform: 'rotate(180deg)'\n}));\nconst AutocompletePopper = styled(Popper, {\n name: 'MuiAutocomplete',\n slot: 'Popper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [{\n [`& .${autocompleteClasses.option}`]: styles.option\n }, styles.popper, ownerState.disablePortal && styles.popperDisablePortal];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n zIndex: (theme.vars || theme).zIndex.modal\n}, ownerState.disablePortal && {\n position: 'absolute'\n}));\nconst AutocompletePaper = styled(Paper, {\n name: 'MuiAutocomplete',\n slot: 'Paper',\n overridesResolver: (props, styles) => styles.paper\n})(({\n theme\n}) => _extends({}, theme.typography.body1, {\n overflow: 'auto'\n}));\nconst AutocompleteLoading = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Loading',\n overridesResolver: (props, styles) => styles.loading\n})(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteNoOptions = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'NoOptions',\n overridesResolver: (props, styles) => styles.noOptions\n})(({\n theme\n}) => ({\n color: (theme.vars || theme).palette.text.secondary,\n padding: '14px 16px'\n}));\nconst AutocompleteListbox = styled('div', {\n name: 'MuiAutocomplete',\n slot: 'Listbox',\n overridesResolver: (props, styles) => styles.listbox\n})(({\n theme\n}) => ({\n listStyle: 'none',\n margin: 0,\n padding: '8px 0',\n maxHeight: '40vh',\n overflow: 'auto',\n [`& .${autocompleteClasses.option}`]: {\n minHeight: 48,\n display: 'flex',\n overflow: 'hidden',\n justifyContent: 'flex-start',\n alignItems: 'center',\n cursor: 'pointer',\n paddingTop: 6,\n boxSizing: 'border-box',\n outline: '0',\n WebkitTapHighlightColor: 'transparent',\n paddingBottom: 6,\n paddingLeft: 16,\n paddingRight: 16,\n [theme.breakpoints.up('sm')]: {\n minHeight: 'auto'\n },\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: (theme.vars || theme).palette.action.hover,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n },\n '&[aria-disabled=\"true\"]': {\n opacity: (theme.vars || theme).palette.action.disabledOpacity,\n pointerEvents: 'none'\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: (theme.vars || theme).palette.action.focus\n },\n '&[aria-selected=\"true\"]': {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity),\n [`&.${autocompleteClasses.focused}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: (theme.vars || theme).palette.action.selected\n }\n },\n [`&.${autocompleteClasses.focusVisible}`]: {\n backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : alpha(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)\n }\n }\n }\n}));\nconst AutocompleteGroupLabel = styled(ListSubheader, {\n name: 'MuiAutocomplete',\n slot: 'GroupLabel',\n overridesResolver: (props, styles) => styles.groupLabel\n})(({\n theme\n}) => ({\n backgroundColor: (theme.vars || theme).palette.background.paper,\n top: -8\n}));\nconst AutocompleteGroupUl = styled('ul', {\n name: 'MuiAutocomplete',\n slot: 'GroupUl',\n overridesResolver: (props, styles) => styles.groupUl\n})({\n padding: 0,\n [`& .${autocompleteClasses.option}`]: {\n paddingLeft: 24\n }\n});\nexport { createFilterOptions };\nconst Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps, ref) {\n var _componentsProps$clea, _componentsProps$popu, _componentsProps$popp, _componentsProps$pape;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAutocomplete'\n });\n /* eslint-disable @typescript-eslint/no-unused-vars */\n\n const {\n autoComplete = false,\n autoHighlight = false,\n autoSelect = false,\n blurOnSelect = false,\n ChipProps,\n className,\n clearIcon = _ClearIcon || (_ClearIcon = /*#__PURE__*/_jsx(ClearIcon, {\n fontSize: \"small\"\n })),\n clearOnBlur = !props.freeSolo,\n clearOnEscape = false,\n clearText = 'Clear',\n closeText = 'Close',\n componentsProps = {},\n defaultValue = props.multiple ? [] : null,\n disableClearable = false,\n disableCloseOnSelect = false,\n disabled = false,\n disabledItemsFocusable = false,\n disableListWrap = false,\n disablePortal = false,\n filterSelectedOptions = false,\n forcePopupIcon = 'auto',\n freeSolo = false,\n fullWidth = false,\n getLimitTagsText = more => `+${more}`,\n getOptionLabel = option => {\n var _option$label;\n\n return (_option$label = option.label) != null ? _option$label : option;\n },\n groupBy,\n handleHomeEndKeys = !props.freeSolo,\n includeInputInList = false,\n limitTags = -1,\n ListboxComponent = 'ul',\n ListboxProps,\n loading = false,\n loadingText = 'Loading…',\n multiple = false,\n noOptionsText = 'No options',\n openOnFocus = false,\n openText = 'Open',\n PaperComponent = Paper,\n PopperComponent = Popper,\n popupIcon = _ArrowDropDownIcon || (_ArrowDropDownIcon = /*#__PURE__*/_jsx(ArrowDropDownIcon, {})),\n readOnly = false,\n renderGroup: renderGroupProp,\n renderInput,\n renderOption: renderOptionProp,\n renderTags,\n selectOnFocus = !props.freeSolo,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n\n\n const {\n getRootProps,\n getInputProps,\n getInputLabelProps,\n getPopupIndicatorProps,\n getClearProps,\n getTagProps,\n getListboxProps,\n getOptionProps,\n value,\n dirty,\n id,\n popupOpen,\n focused,\n focusedTag,\n anchorEl,\n setAnchorEl,\n inputValue,\n groupedOptions\n } = useAutocomplete(_extends({}, props, {\n componentName: 'Autocomplete'\n }));\n const hasClearIcon = !disableClearable && !disabled && dirty && !readOnly;\n const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false; // If you modify this, make sure to keep the `AutocompleteOwnerState` type in sync.\n\n const ownerState = _extends({}, props, {\n disablePortal,\n focused,\n fullWidth,\n hasClearIcon,\n hasPopupIcon,\n inputFocused: focusedTag === -1,\n popupOpen,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n let startAdornment;\n\n if (multiple && value.length > 0) {\n const getCustomizedTagProps = params => _extends({\n className: clsx(classes.tag),\n disabled\n }, getTagProps(params));\n\n if (renderTags) {\n startAdornment = renderTags(value, getCustomizedTagProps, ownerState);\n } else {\n startAdornment = value.map((option, index) => /*#__PURE__*/_jsx(Chip, _extends({\n label: getOptionLabel(option),\n size: size\n }, getCustomizedTagProps({\n index\n }), ChipProps)));\n }\n }\n\n if (limitTags > -1 && Array.isArray(startAdornment)) {\n const more = startAdornment.length - limitTags;\n\n if (!focused && more > 0) {\n startAdornment = startAdornment.splice(0, limitTags);\n startAdornment.push( /*#__PURE__*/_jsx(\"span\", {\n className: classes.tag,\n children: getLimitTagsText(more)\n }, startAdornment.length));\n }\n }\n\n const defaultRenderGroup = params => /*#__PURE__*/_jsxs(\"li\", {\n children: [/*#__PURE__*/_jsx(AutocompleteGroupLabel, {\n className: classes.groupLabel,\n ownerState: ownerState,\n component: \"div\",\n children: params.group\n }), /*#__PURE__*/_jsx(AutocompleteGroupUl, {\n className: classes.groupUl,\n ownerState: ownerState,\n children: params.children\n })]\n }, params.key);\n\n const renderGroup = renderGroupProp || defaultRenderGroup;\n\n const defaultRenderOption = (props2, option) => /*#__PURE__*/_jsx(\"li\", _extends({}, props2, {\n children: getOptionLabel(option)\n }));\n\n const renderOption = renderOptionProp || defaultRenderOption;\n\n const renderListOption = (option, index) => {\n const optionProps = getOptionProps({\n option,\n index\n });\n return renderOption(_extends({}, optionProps, {\n className: classes.option\n }), option, {\n selected: optionProps['aria-selected'],\n inputValue\n });\n };\n\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/_jsx(AutocompleteRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, getRootProps(other), {\n children: renderInput({\n id,\n disabled,\n fullWidth: true,\n size: size === 'small' ? 'small' : undefined,\n InputLabelProps: getInputLabelProps(),\n InputProps: _extends({\n ref: setAnchorEl,\n className: classes.inputRoot,\n startAdornment\n }, (hasClearIcon || hasPopupIcon) && {\n endAdornment: /*#__PURE__*/_jsxs(AutocompleteEndAdornment, {\n className: classes.endAdornment,\n ownerState: ownerState,\n children: [hasClearIcon ? /*#__PURE__*/_jsx(AutocompleteClearIndicator, _extends({}, getClearProps(), {\n \"aria-label\": clearText,\n title: clearText,\n ownerState: ownerState\n }, componentsProps.clearIndicator, {\n className: clsx(classes.clearIndicator, (_componentsProps$clea = componentsProps.clearIndicator) == null ? void 0 : _componentsProps$clea.className),\n children: clearIcon\n })) : null, hasPopupIcon ? /*#__PURE__*/_jsx(AutocompletePopupIndicator, _extends({}, getPopupIndicatorProps(), {\n disabled: disabled,\n \"aria-label\": popupOpen ? closeText : openText,\n title: popupOpen ? closeText : openText,\n ownerState: ownerState\n }, componentsProps.popupIndicator, {\n className: clsx(classes.popupIndicator, (_componentsProps$popu = componentsProps.popupIndicator) == null ? void 0 : _componentsProps$popu.className),\n children: popupIcon\n })) : null]\n })\n }),\n inputProps: _extends({\n className: clsx(classes.input),\n disabled,\n readOnly\n }, getInputProps())\n })\n })), popupOpen && anchorEl ? /*#__PURE__*/_jsx(AutocompletePopper, _extends({\n as: PopperComponent,\n disablePortal: disablePortal,\n style: {\n width: anchorEl ? anchorEl.clientWidth : null\n },\n ownerState: ownerState,\n role: \"presentation\",\n anchorEl: anchorEl,\n open: true\n }, componentsProps.popper, {\n className: clsx(classes.popper, (_componentsProps$popp = componentsProps.popper) == null ? void 0 : _componentsProps$popp.className),\n children: /*#__PURE__*/_jsxs(AutocompletePaper, _extends({\n ownerState: ownerState,\n as: PaperComponent\n }, componentsProps.paper, {\n className: clsx(classes.paper, (_componentsProps$pape = componentsProps.paper) == null ? void 0 : _componentsProps$pape.className),\n children: [loading && groupedOptions.length === 0 ? /*#__PURE__*/_jsx(AutocompleteLoading, {\n className: classes.loading,\n ownerState: ownerState,\n children: loadingText\n }) : null, groupedOptions.length === 0 && !freeSolo && !loading ? /*#__PURE__*/_jsx(AutocompleteNoOptions, {\n className: classes.noOptions,\n ownerState: ownerState,\n role: \"presentation\",\n onMouseDown: event => {\n // Prevent input blur when interacting with the \"no options\" content\n event.preventDefault();\n },\n children: noOptionsText\n }) : null, groupedOptions.length > 0 ? /*#__PURE__*/_jsx(AutocompleteListbox, _extends({\n as: ListboxComponent,\n className: classes.listbox,\n ownerState: ownerState\n }, getListboxProps(), ListboxProps, {\n children: groupedOptions.map((option, index) => {\n if (groupBy) {\n return renderGroup({\n key: option.key,\n group: option.group,\n children: option.options.map((option2, index2) => renderListOption(option2, option.index + index2))\n });\n }\n\n return renderListOption(option, index);\n })\n })) : null]\n }))\n })) : null]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Autocomplete.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the portion of the selected suggestion that has not been typed by the user,\n * known as the completion string, appears inline after the input cursor in the textbox.\n * The inline completion string is visually highlighted and has a selected state.\n * @default false\n */\n autoComplete: PropTypes.bool,\n\n /**\n * If `true`, the first option is automatically highlighted.\n * @default false\n */\n autoHighlight: PropTypes.bool,\n\n /**\n * If `true`, the selected option becomes the value of the input\n * when the Autocomplete loses focus unless the user chooses\n * a different option or changes the character string in the input.\n * @default false\n */\n autoSelect: PropTypes.bool,\n\n /**\n * Control if the input should be blurred when an option is selected:\n *\n * - `false` the input is not blurred.\n * - `true` the input is always blurred.\n * - `touch` the input is blurred after a touch event.\n * - `mouse` the input is blurred after a mouse event.\n * @default false\n */\n blurOnSelect: PropTypes.oneOfType([PropTypes.oneOf(['mouse', 'touch']), PropTypes.bool]),\n\n /**\n * Props applied to the [`Chip`](/material-ui/api/chip/) element.\n */\n ChipProps: PropTypes.object,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The icon to display in place of the default clear icon.\n * @default \n */\n clearIcon: PropTypes.node,\n\n /**\n * If `true`, the input's text is cleared on blur if no value is selected.\n *\n * Set to `true` if you want to help the user enter a new value.\n * Set to `false` if you want to help the user resume their search.\n * @default !props.freeSolo\n */\n clearOnBlur: PropTypes.bool,\n\n /**\n * If `true`, clear all values when the user presses escape and the popup is closed.\n * @default false\n */\n clearOnEscape: PropTypes.bool,\n\n /**\n * Override the default text for the *clear* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Clear'\n */\n clearText: PropTypes.string,\n\n /**\n * Override the default text for the *close popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Close'\n */\n closeText: PropTypes.string,\n\n /**\n * The props used for each slot inside.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n clearIndicator: PropTypes.object,\n paper: PropTypes.object,\n popper: PropTypes.object,\n popupIndicator: PropTypes.object\n }),\n\n /**\n * The default value. Use when the component is not controlled.\n * @default props.multiple ? [] : null\n */\n defaultValue: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.defaultValue !== undefined && !Array.isArray(props.defaultValue)) {\n return new Error(['MUI: The Autocomplete expects the `defaultValue` prop to be an array when `multiple={true}` or undefined.', `However, ${props.defaultValue} was provided.`].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * If `true`, the input can't be cleared.\n * @default false\n */\n disableClearable: PropTypes.bool,\n\n /**\n * If `true`, the popup won't close when a value is selected.\n * @default false\n */\n disableCloseOnSelect: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n\n /**\n * If `true`, the list box in the popup will not wrap focus.\n * @default false\n */\n disableListWrap: PropTypes.bool,\n\n /**\n * If `true`, the `Popper` content will be under the DOM hierarchy of the parent component.\n * @default false\n */\n disablePortal: PropTypes.bool,\n\n /**\n * A function that determines the filtered options to be rendered on search.\n *\n * @param {T[]} options The options to render.\n * @param {object} state The state of the component.\n * @returns {T[]}\n */\n filterOptions: PropTypes.func,\n\n /**\n * If `true`, hide the selected options from the list box.\n * @default false\n */\n filterSelectedOptions: PropTypes.bool,\n\n /**\n * Force the visibility display of the popup icon.\n * @default 'auto'\n */\n forcePopupIcon: PropTypes.oneOfType([PropTypes.oneOf(['auto']), PropTypes.bool]),\n\n /**\n * If `true`, the Autocomplete is free solo, meaning that the user input is not bound to provided options.\n * @default false\n */\n freeSolo: PropTypes.bool,\n\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The label to display when the tags are truncated (`limitTags`).\n *\n * @param {number} more The number of truncated tags.\n * @returns {ReactNode}\n * @default (more) => `+${more}`\n */\n getLimitTagsText: PropTypes.func,\n\n /**\n * Used to determine the disabled state for a given option.\n *\n * @param {T} option The option to test.\n * @returns {boolean}\n */\n getOptionDisabled: PropTypes.func,\n\n /**\n * Used to determine the string value for a given option.\n * It's used to fill the input (and the list box options if `renderOption` is not provided).\n *\n * If used in free solo mode, it must accept both the type of the options and a string.\n *\n * @param {T} option\n * @returns {string}\n * @default (option) => option.label ?? option\n */\n getOptionLabel: PropTypes.func,\n\n /**\n * If provided, the options will be grouped under the returned string.\n * The groupBy value is also used as the text for group headings when `renderGroup` is not provided.\n *\n * @param {T} options The options to group.\n * @returns {string}\n */\n groupBy: PropTypes.func,\n\n /**\n * If `true`, the component handles the \"Home\" and \"End\" keys when the popup is open.\n * It should move focus to the first option and last option, respectively.\n * @default !props.freeSolo\n */\n handleHomeEndKeys: PropTypes.bool,\n\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide an id it will fall back to a randomly generated one.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the highlight can move to the input.\n * @default false\n */\n includeInputInList: PropTypes.bool,\n\n /**\n * The input value.\n */\n inputValue: PropTypes.string,\n\n /**\n * Used to determine if the option represents the given value.\n * Uses strict equality by default.\n * ⚠️ Both arguments need to be handled, an option can only match with one value.\n *\n * @param {T} option The option to test.\n * @param {T} value The value to test against.\n * @returns {boolean}\n */\n isOptionEqualToValue: PropTypes.func,\n\n /**\n * The maximum number of tags that will be visible when not focused.\n * Set `-1` to disable the limit.\n * @default -1\n */\n limitTags: integerPropType,\n\n /**\n * The component used to render the listbox.\n * @default 'ul'\n */\n ListboxComponent: PropTypes.elementType,\n\n /**\n * Props applied to the Listbox element.\n */\n ListboxProps: PropTypes.object,\n\n /**\n * If `true`, the component is in a loading state.\n * This shows the `loadingText` in place of suggestions (only if there are no suggestions to show, e.g. `options` are empty).\n * @default false\n */\n loading: PropTypes.bool,\n\n /**\n * Text to display when in a loading state.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Loading…'\n */\n loadingText: PropTypes.node,\n\n /**\n * If `true`, `value` must be an array and the menu will support multiple selections.\n * @default false\n */\n multiple: PropTypes.bool,\n\n /**\n * Text to display when there are no options.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'No options'\n */\n noOptionsText: PropTypes.node,\n\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {T|T[]} value The new value of the component.\n * @param {string} reason One of \"createOption\", \"selectOption\", \"removeOption\", \"blur\" or \"clear\".\n * @param {string} [details]\n */\n onChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be closed.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} reason Can be: `\"toggleInput\"`, `\"escape\"`, `\"selectOption\"`, `\"removeOption\"`, `\"blur\"`.\n */\n onClose: PropTypes.func,\n\n /**\n * Callback fired when the highlight option changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {T} option The highlighted option.\n * @param {string} reason Can be: `\"keyboard\"`, `\"auto\"`, `\"mouse\"`.\n */\n onHighlightChange: PropTypes.func,\n\n /**\n * Callback fired when the input value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n * @param {string} value The new value of the text input.\n * @param {string} reason Can be: `\"input\"` (user input), `\"reset\"` (programmatic change), `\"clear\"`.\n */\n onInputChange: PropTypes.func,\n\n /**\n * Callback fired when the popup requests to be opened.\n * Use in controlled mode (see open).\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n\n /**\n * If `true`, the popup will open on input focus.\n * @default false\n */\n openOnFocus: PropTypes.bool,\n\n /**\n * Override the default text for the *open popup* icon button.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n * @default 'Open'\n */\n openText: PropTypes.string,\n\n /**\n * Array of options.\n */\n options: PropTypes.array.isRequired,\n\n /**\n * The component used to render the body of the popup.\n * @default Paper\n */\n PaperComponent: PropTypes.elementType,\n\n /**\n * The component used to position the popup.\n * @default Popper\n */\n PopperComponent: PropTypes.elementType,\n\n /**\n * The icon to display in place of the default popup icon.\n * @default \n */\n popupIcon: PropTypes.node,\n\n /**\n * If `true`, the component becomes readonly. It is also supported for multiple tags where the tag cannot be deleted.\n * @default false\n */\n readOnly: PropTypes.bool,\n\n /**\n * Render the group.\n *\n * @param {AutocompleteRenderGroupParams} params The group to render.\n * @returns {ReactNode}\n */\n renderGroup: PropTypes.func,\n\n /**\n * Render the input.\n *\n * @param {object} params\n * @returns {ReactNode}\n */\n renderInput: PropTypes.func.isRequired,\n\n /**\n * Render the option, use `getOptionLabel` by default.\n *\n * @param {object} props The props to apply on the li element.\n * @param {T} option The option to render.\n * @param {object} state The state of the component.\n * @returns {ReactNode}\n */\n renderOption: PropTypes.func,\n\n /**\n * Render the selected value.\n *\n * @param {T[]} value The `value` provided to the component.\n * @param {function} getTagProps A tag props getter.\n * @param {object} ownerState The state of the Autocomplete component.\n * @returns {ReactNode}\n */\n renderTags: PropTypes.func,\n\n /**\n * If `true`, the input's text is selected on focus.\n * It helps the user clear the selected value.\n * @default !props.freeSolo\n */\n selectOnFocus: PropTypes.bool,\n\n /**\n * The size of the component.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['small', 'medium']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the autocomplete.\n *\n * The value must have reference equality with the option in order to be selected.\n * You can customize the equality behavior with the `isOptionEqualToValue` prop.\n */\n value: chainPropTypes(PropTypes.any, props => {\n if (props.multiple && props.value !== undefined && !Array.isArray(props.value)) {\n return new Error(['MUI: The Autocomplete expects the `value` prop to be an array when `multiple={true}` or undefined.', `However, ${props.value} was provided.`].join('\\n'));\n }\n\n return null;\n })\n} : void 0;\nexport default Autocomplete;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\"\n}), 'Person');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiAvatar', slot);\n}\nconst avatarClasses = generateUtilityClasses('MuiAvatar', ['root', 'colorDefault', 'circular', 'rounded', 'square', 'img', 'fallback']);\nexport default avatarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"alt\", \"children\", \"className\", \"component\", \"imgProps\", \"sizes\", \"src\", \"srcSet\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Person from '../internal/svg-icons/Person';\nimport { getAvatarUtilityClass } from './avatarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n variant,\n colorDefault\n } = ownerState;\n const slots = {\n root: ['root', variant, colorDefault && 'colorDefault'],\n img: ['img'],\n fallback: ['fallback']\n };\n return composeClasses(slots, getAvatarUtilityClass, classes);\n};\n\nconst AvatarRoot = styled('div', {\n name: 'MuiAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[ownerState.variant], ownerState.colorDefault && styles.colorDefault];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n width: 40,\n height: 40,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(20),\n lineHeight: 1,\n borderRadius: '50%',\n overflow: 'hidden',\n userSelect: 'none'\n}, ownerState.variant === 'rounded' && {\n borderRadius: (theme.vars || theme).shape.borderRadius\n}, ownerState.variant === 'square' && {\n borderRadius: 0\n}, ownerState.colorDefault && _extends({\n color: (theme.vars || theme).palette.background.default\n}, theme.vars ? {\n backgroundColor: theme.vars.palette.Avatar.defaultBg\n} : {\n backgroundColor: theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]\n})));\nconst AvatarImg = styled('img', {\n name: 'MuiAvatar',\n slot: 'Img',\n overridesResolver: (props, styles) => styles.img\n})({\n width: '100%',\n height: '100%',\n textAlign: 'center',\n // Handle non-square image. The property isn't supported by IE11.\n objectFit: 'cover',\n // Hide alt text.\n color: 'transparent',\n // Hide the image broken icon, only works on Chrome.\n textIndent: 10000\n});\nconst AvatarFallback = styled(Person, {\n name: 'MuiAvatar',\n slot: 'Fallback',\n overridesResolver: (props, styles) => styles.fallback\n})({\n width: '75%',\n height: '75%'\n});\n\nfunction useLoaded({\n crossOrigin,\n referrerPolicy,\n src,\n srcSet\n}) {\n const [loaded, setLoaded] = React.useState(false);\n React.useEffect(() => {\n if (!src && !srcSet) {\n return undefined;\n }\n\n setLoaded(false);\n let active = true;\n const image = new Image();\n\n image.onload = () => {\n if (!active) {\n return;\n }\n\n setLoaded('loaded');\n };\n\n image.onerror = () => {\n if (!active) {\n return;\n }\n\n setLoaded('error');\n };\n\n image.crossOrigin = crossOrigin;\n image.referrerPolicy = referrerPolicy;\n image.src = src;\n\n if (srcSet) {\n image.srcset = srcSet;\n }\n\n return () => {\n active = false;\n };\n }, [crossOrigin, referrerPolicy, src, srcSet]);\n return loaded;\n}\n\nconst Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAvatar'\n });\n\n const {\n alt,\n children: childrenProp,\n className,\n component = 'div',\n imgProps,\n sizes,\n src,\n srcSet,\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n let children = null; // Use a hook instead of onError on the img element to support server-side rendering.\n\n const loaded = useLoaded(_extends({}, imgProps, {\n src,\n srcSet\n }));\n const hasImg = src || srcSet;\n const hasImgNotFailing = hasImg && loaded !== 'error';\n\n const ownerState = _extends({}, props, {\n colorDefault: !hasImgNotFailing,\n component,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n\n if (hasImgNotFailing) {\n children = /*#__PURE__*/_jsx(AvatarImg, _extends({\n alt: alt,\n src: src,\n srcSet: srcSet,\n sizes: sizes,\n ownerState: ownerState,\n className: classes.img\n }, imgProps));\n } else if (childrenProp != null) {\n children = childrenProp;\n } else if (hasImg && alt) {\n children = alt[0];\n } else {\n children = /*#__PURE__*/_jsx(AvatarFallback, {\n className: classes.fallback\n });\n }\n\n return /*#__PURE__*/_jsx(AvatarRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Avatar.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Used in combination with `src` or `srcSet` to\n * provide an alt attribute for the rendered `img` element.\n */\n alt: PropTypes.string,\n\n /**\n * Used to render icon or text elements inside the Avatar if `src` is not set.\n * This can be an element, or just a string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attributes) applied to the `img` element if the component is used to display an image.\n * It can be used to listen for the loading error event.\n */\n imgProps: PropTypes.object,\n\n /**\n * The `sizes` attribute for the `img` element.\n */\n sizes: PropTypes.string,\n\n /**\n * The `src` attribute for the `img` element.\n */\n src: PropTypes.string,\n\n /**\n * The `srcSet` attribute for the `img` element.\n * Use this attribute for responsive image display.\n */\n srcSet: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The shape of the avatar.\n * @default 'circular'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default Avatar;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getAvatarGroupUtilityClass(slot) {\n return generateUtilityClass('MuiAvatarGroup', slot);\n}\nconst avatarGroupClasses = generateUtilityClasses('MuiAvatarGroup', ['root', 'avatar']);\nexport default avatarGroupClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"children\", \"className\", \"componentsProps\", \"max\", \"spacing\", \"total\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { isFragment } from 'react-is';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Avatar, { avatarClasses } from '../Avatar';\nimport avatarGroupClasses, { getAvatarGroupUtilityClass } from './avatarGroupClasses';\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst SPACINGS = {\n small: -16,\n medium: null\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n avatar: ['avatar']\n };\n return composeClasses(slots, getAvatarGroupUtilityClass, classes);\n};\n\nconst AvatarGroupRoot = styled('div', {\n name: 'MuiAvatarGroup',\n slot: 'Root',\n overridesResolver: (props, styles) => _extends({\n [`& .${avatarGroupClasses.avatar}`]: styles.avatar\n }, styles.root)\n})(({\n theme\n}) => ({\n [`& .${avatarClasses.root}`]: {\n border: `2px solid ${(theme.vars || theme).palette.background.default}`,\n boxSizing: 'content-box',\n marginLeft: -8,\n '&:last-child': {\n marginLeft: 0\n }\n },\n display: 'flex',\n flexDirection: 'row-reverse'\n}));\nconst AvatarGroupAvatar = styled(Avatar, {\n name: 'MuiAvatarGroup',\n slot: 'Avatar',\n overridesResolver: (props, styles) => styles.avatar\n})(({\n theme\n}) => ({\n border: `2px solid ${(theme.vars || theme).palette.background.default}`,\n boxSizing: 'content-box',\n marginLeft: -8,\n '&:last-child': {\n marginLeft: 0\n }\n}));\nconst AvatarGroup = /*#__PURE__*/React.forwardRef(function AvatarGroup(inProps, ref) {\n var _componentsProps$addi, _componentsProps$addi2;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiAvatarGroup'\n });\n\n const {\n children: childrenProp,\n className,\n componentsProps = {},\n max = 5,\n spacing = 'medium',\n total,\n variant = 'circular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n let clampedMax = max < 2 ? 2 : max;\n\n const ownerState = _extends({}, props, {\n max,\n spacing,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n const children = React.Children.toArray(childrenProp).filter(child => {\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The AvatarGroup component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n return /*#__PURE__*/React.isValidElement(child);\n });\n const totalAvatars = total || children.length;\n\n if (totalAvatars === clampedMax) {\n clampedMax += 1;\n }\n\n clampedMax = Math.min(totalAvatars + 1, clampedMax);\n const maxAvatars = Math.min(children.length, clampedMax - 1);\n const extraAvatars = Math.max(totalAvatars - clampedMax, totalAvatars - maxAvatars, 0);\n const marginLeft = spacing && SPACINGS[spacing] !== undefined ? SPACINGS[spacing] : -spacing;\n return /*#__PURE__*/_jsxs(AvatarGroupRoot, _extends({\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: [extraAvatars ? /*#__PURE__*/_jsxs(AvatarGroupAvatar, _extends({\n ownerState: ownerState,\n variant: variant\n }, componentsProps.additionalAvatar, {\n className: clsx(classes.avatar, (_componentsProps$addi = componentsProps.additionalAvatar) == null ? void 0 : _componentsProps$addi.className),\n style: _extends({\n marginLeft\n }, (_componentsProps$addi2 = componentsProps.additionalAvatar) == null ? void 0 : _componentsProps$addi2.style),\n children: [\"+\", extraAvatars]\n })) : null, children.slice(0, maxAvatars).reverse().map((child, index) => {\n return /*#__PURE__*/React.cloneElement(child, {\n className: clsx(child.props.className, classes.avatar),\n style: _extends({\n // Consistent with \"&:last-child\" styling for the default spacing,\n // we do not apply custom marginLeft spacing on the last child\n marginLeft: index === maxAvatars - 1 ? undefined : marginLeft\n }, child.props.style),\n variant: child.props.variant || variant\n });\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? AvatarGroup.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The avatars to stack.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The props used for each slot inside the AvatarGroup.\n * @default {}\n */\n componentsProps: PropTypes.shape({\n additionalAvatar: PropTypes.object\n }),\n\n /**\n * Max avatars to show before +x.\n * @default 5\n */\n max: chainPropTypes(PropTypes.number, props => {\n if (props.max < 2) {\n return new Error(['MUI: The prop `max` should be equal to 2 or above.', 'A value below is clamped to 2.'].join('\\n'));\n }\n\n return null;\n }),\n\n /**\n * Spacing between avatars.\n * @default 'medium'\n */\n spacing: PropTypes.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.number]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The total number of avatars. Used for calculating the number of extra avatars.\n * @default children.length\n */\n total: PropTypes.number,\n\n /**\n * The variant to use.\n * @default 'circular'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['circular', 'rounded', 'square']), PropTypes.string])\n} : void 0;\nexport default AvatarGroup;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getBottomNavigationUtilityClass(slot) {\n return generateUtilityClass('MuiBottomNavigation', slot);\n}\nconst bottomNavigationClasses = generateUtilityClasses('MuiBottomNavigation', ['root']);\nexport default bottomNavigationClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"component\", \"onChange\", \"showLabels\", \"value\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getBottomNavigationUtilityClass } from './bottomNavigationClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getBottomNavigationUtilityClass, classes);\n};\n\nconst BottomNavigationRoot = styled('div', {\n name: 'MuiBottomNavigation',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n display: 'flex',\n justifyContent: 'center',\n height: 56,\n backgroundColor: (theme.vars || theme).palette.background.paper\n}));\nconst BottomNavigation = /*#__PURE__*/React.forwardRef(function BottomNavigation(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiBottomNavigation'\n });\n\n const {\n children,\n className,\n component = 'div',\n onChange,\n showLabels = false,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n showLabels\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(BottomNavigationRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: React.Children.map(children, (child, childIndex) => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (isFragment(child)) {\n console.error([\"MUI: The BottomNavigation component doesn't accept a Fragment as a child.\", 'Consider providing an array instead.'].join('\\n'));\n }\n }\n\n const childValue = child.props.value === undefined ? childIndex : child.props.value;\n return /*#__PURE__*/React.cloneElement(child, {\n selected: childValue === value,\n showLabel: child.props.showLabel !== undefined ? child.props.showLabel : showLabels,\n value: childValue,\n onChange\n });\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? BottomNavigation.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Callback fired when the value changes.\n *\n * @param {React.SyntheticEvent} event The event source of the callback. **Warning**: This is a generic event not a change event.\n * @param {any} value We default to the index of the child.\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, all `BottomNavigationAction`s will show their labels.\n * By default, only the selected `BottomNavigationAction` will show its label.\n * @default false\n */\n showLabels: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the currently selected `BottomNavigationAction`.\n */\n value: PropTypes.any\n} : void 0;\nexport default BottomNavigation;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getBottomNavigationActionUtilityClass(slot) {\n return generateUtilityClass('MuiBottomNavigationAction', slot);\n}\nconst bottomNavigationActionClasses = generateUtilityClasses('MuiBottomNavigationAction', ['root', 'iconOnly', 'selected', 'label']);\nexport default bottomNavigationActionClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"icon\", \"label\", \"onChange\", \"onClick\", \"selected\", \"showLabel\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport ButtonBase from '../ButtonBase';\nimport unsupportedProp from '../utils/unsupportedProp';\nimport bottomNavigationActionClasses, { getBottomNavigationActionUtilityClass } from './bottomNavigationActionClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n showLabel,\n selected\n } = ownerState;\n const slots = {\n root: ['root', !showLabel && !selected && 'iconOnly', selected && 'selected'],\n label: ['label', !showLabel && !selected && 'iconOnly', selected && 'selected']\n };\n return composeClasses(slots, getBottomNavigationActionUtilityClass, classes);\n};\n\nconst BottomNavigationActionRoot = styled(ButtonBase, {\n name: 'MuiBottomNavigationAction',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.showLabel && !ownerState.selected && styles.iconOnly];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n transition: theme.transitions.create(['color', 'padding-top'], {\n duration: theme.transitions.duration.short\n }),\n padding: '0px 12px',\n minWidth: 80,\n maxWidth: 168,\n color: (theme.vars || theme).palette.text.secondary,\n flexDirection: 'column',\n flex: '1'\n}, !ownerState.showLabel && !ownerState.selected && {\n paddingTop: 14\n}, !ownerState.showLabel && !ownerState.selected && !ownerState.label && {\n paddingTop: 0\n}, {\n [`&.${bottomNavigationActionClasses.selected}`]: {\n color: (theme.vars || theme).palette.primary.main\n }\n}));\nconst BottomNavigationActionLabel = styled('span', {\n name: 'MuiBottomNavigationAction',\n slot: 'Label',\n overridesResolver: (props, styles) => styles.label\n})(({\n theme,\n ownerState\n}) => _extends({\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.pxToRem(12),\n opacity: 1,\n transition: 'font-size 0.2s, opacity 0.2s',\n transitionDelay: '0.1s'\n}, !ownerState.showLabel && !ownerState.selected && {\n opacity: 0,\n transitionDelay: '0s'\n}, {\n [`&.${bottomNavigationActionClasses.selected}`]: {\n fontSize: theme.typography.pxToRem(14)\n }\n}));\nconst BottomNavigationAction = /*#__PURE__*/React.forwardRef(function BottomNavigationAction(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiBottomNavigationAction'\n });\n\n const {\n className,\n icon,\n label,\n onChange,\n onClick,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = props;\n const classes = useUtilityClasses(ownerState);\n\n const handleChange = event => {\n if (onChange) {\n onChange(event, value);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n return /*#__PURE__*/_jsxs(BottomNavigationActionRoot, _extends({\n ref: ref,\n className: clsx(classes.root, className),\n focusRipple: true,\n onClick: handleChange,\n ownerState: ownerState\n }, other, {\n children: [icon, /*#__PURE__*/_jsx(BottomNavigationActionLabel, {\n className: classes.label,\n ownerState: ownerState,\n children: label\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? BottomNavigationAction.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The icon to display.\n */\n icon: PropTypes.node,\n\n /**\n * The label element.\n */\n label: PropTypes.node,\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * If `true`, the `BottomNavigationAction` will show its label.\n * By default, only the selected `BottomNavigationAction`\n * inside `BottomNavigation` will show its label.\n *\n * The prop defaults to the value (`false`) inherited from the parent BottomNavigation component.\n */\n showLabel: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any\n} : void 0;\nexport default BottomNavigationAction;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\"\n}), 'MoreHoriz');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { emphasize } from '@mui/system';\nimport styled from '../styles/styled';\nimport MoreHorizIcon from '../internal/svg-icons/MoreHoriz';\nimport ButtonBase from '../ButtonBase';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst BreadcrumbCollapsedButton = styled(ButtonBase)(({\n theme\n}) => _extends({\n display: 'flex',\n marginLeft: `calc(${theme.spacing(1)} * 0.5)`,\n marginRight: `calc(${theme.spacing(1)} * 0.5)`\n}, theme.palette.mode === 'light' ? {\n backgroundColor: theme.palette.grey[100],\n color: theme.palette.grey[700]\n} : {\n backgroundColor: theme.palette.grey[700],\n color: theme.palette.grey[100]\n}, {\n borderRadius: 2,\n '&:hover, &:focus': _extends({}, theme.palette.mode === 'light' ? {\n backgroundColor: theme.palette.grey[200]\n } : {\n backgroundColor: theme.palette.grey[600]\n }),\n '&:active': _extends({\n boxShadow: theme.shadows[0]\n }, theme.palette.mode === 'light' ? {\n backgroundColor: emphasize(theme.palette.grey[200], 0.12)\n } : {\n backgroundColor: emphasize(theme.palette.grey[600], 0.12)\n })\n}));\nconst BreadcrumbCollapsedIcon = styled(MoreHorizIcon)({\n width: 24,\n height: 16\n});\n/**\n * @ignore - internal component.\n */\n\nfunction BreadcrumbCollapsed(props) {\n const ownerState = props;\n return /*#__PURE__*/_jsx(\"li\", {\n children: /*#__PURE__*/_jsx(BreadcrumbCollapsedButton, _extends({\n focusRipple: true\n }, props, {\n ownerState: ownerState,\n children: /*#__PURE__*/_jsx(BreadcrumbCollapsedIcon, {\n ownerState: ownerState\n })\n }))\n });\n}\n\nprocess.env.NODE_ENV !== \"production\" ? BreadcrumbCollapsed.propTypes = {\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object\n} : void 0;\nexport default BreadcrumbCollapsed;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getBreadcrumbsUtilityClass(slot) {\n return generateUtilityClass('MuiBreadcrumbs', slot);\n}\nconst breadcrumbsClasses = generateUtilityClasses('MuiBreadcrumbs', ['root', 'ol', 'li', 'separator']);\nexport default breadcrumbsClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"component\", \"expandText\", \"itemsAfterCollapse\", \"itemsBeforeCollapse\", \"maxItems\", \"separator\"];\nimport * as React from 'react';\nimport { isFragment } from 'react-is';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Typography from '../Typography';\nimport BreadcrumbCollapsed from './BreadcrumbCollapsed';\nimport breadcrumbsClasses, { getBreadcrumbsUtilityClass } from './breadcrumbsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root'],\n li: ['li'],\n ol: ['ol'],\n separator: ['separator']\n };\n return composeClasses(slots, getBreadcrumbsUtilityClass, classes);\n};\n\nconst BreadcrumbsRoot = styled(Typography, {\n name: 'MuiBreadcrumbs',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n return [{\n [`& .${breadcrumbsClasses.li}`]: styles.li\n }, styles.root];\n }\n})({});\nconst BreadcrumbsOl = styled('ol', {\n name: 'MuiBreadcrumbs',\n slot: 'Ol',\n overridesResolver: (props, styles) => styles.ol\n})({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n padding: 0,\n margin: 0,\n listStyle: 'none'\n});\nconst BreadcrumbsSeparator = styled('li', {\n name: 'MuiBreadcrumbs',\n slot: 'Separator',\n overridesResolver: (props, styles) => styles.separator\n})({\n display: 'flex',\n userSelect: 'none',\n marginLeft: 8,\n marginRight: 8\n});\n\nfunction insertSeparators(items, className, separator, ownerState) {\n return items.reduce((acc, current, index) => {\n if (index < items.length - 1) {\n acc = acc.concat(current, /*#__PURE__*/_jsx(BreadcrumbsSeparator, {\n \"aria-hidden\": true,\n className: className,\n ownerState: ownerState,\n children: separator\n }, `separator-${index}`));\n } else {\n acc.push(current);\n }\n\n return acc;\n }, []);\n}\n\nconst Breadcrumbs = /*#__PURE__*/React.forwardRef(function Breadcrumbs(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiBreadcrumbs'\n });\n\n const {\n children,\n className,\n component = 'nav',\n expandText = 'Show path',\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems = 8,\n separator = '/'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const [expanded, setExpanded] = React.useState(false);\n\n const ownerState = _extends({}, props, {\n component,\n expanded,\n expandText,\n itemsAfterCollapse,\n itemsBeforeCollapse,\n maxItems,\n separator\n });\n\n const classes = useUtilityClasses(ownerState);\n const listRef = React.useRef(null);\n\n const renderItemsBeforeAndAfter = allItems => {\n const handleClickExpand = () => {\n setExpanded(true); // The clicked element received the focus but gets removed from the DOM.\n // Let's keep the focus in the component after expanding.\n // Moving it to the
    or