iobroker.javascript
Version:
Rules Engine for ioBroker
2 lines • 2.4 MB
JavaScript
/*! For license information please see 310.d901d4b0.chunk.js.LICENSE.txt */
(self.webpackChunkjs=self.webpackChunkjs||[]).push([[310],{3516:(t,e,a)=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var r=a(71936);e.default=r.AdminConnection},93329:(t,e,a)=>{"use strict";var r=a(24994);Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=r(a(73738)),i=r(a(17383)),o=r(a(34579)),c=r(a(28452)),s=r(a(63072)),l=r(a(29511)),h=r(a(43693)),u=r(a(53482)),d=a(59478),p=r(a(95973)),m=a(32496),v=a(65298),g=a(21839),f=r(a(12539)),x=r(a(653));function b(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function z(t,e,a){return e=(0,s.default)(e),(0,c.default)(t,C()?Reflect.construct(e,a||[],(0,s.default)(t).constructor):e.apply(t,a))}function C(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(C=function(){return!!t})()}var w=function(t){function e(t){var a;return(0,i.default)(this,e),a=z(this,e,[t]),(0,h.default)(a,"handleClick",(function(t){a.setState({displayColorPicker:!a.state.displayColorPicker,anchorEl:a.state.displayColorPicker?null:t.currentTarget})})),(0,h.default)(a,"handleClose",(function(){a.setState({displayColorPicker:!1,anchorEl:null})})),(0,h.default)(a,"handleChange",(function(t){a.setState({color:t},(function(){return a.props.onChange&&a.props.onChange(e.getColor(t))}))})),a.state={displayColorPicker:!1,color:a.props.value||a.props.color,anchorEl:null},a}return(0,l.default)(e,t),(0,o.default)(e,[{key:"componentDidUpdate",value:function(t,a){var r=e.getColor(this.props.color||this.props.value);r!==a.color&&this.setState({color:r})}},{key:"renderCustomPalette",value:function(){var t=this;return this.props.customPalette?u.default.createElement("div",{style:{width:"100%",display:"flex",flexWrap:"flex"}},this.props.customPalette.map((function(e){return u.default.createElement(v.Button,{className:t.props.classes.button,key:e,onClick:function(){t.handleChange(e),setTimeout((function(){return t.handleClose()}),300)}},u.default.createElement("div",{className:t.props.classes.iconButton,style:{background:e}}))}))):null}},{key:"render",value:function(){var t=this,e=function(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?b(Object(a),!0).forEach((function(e){(0,h.default)(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):b(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}({},this.props.style||{});e.position="relative";var a=this.state.color;return u.default.createElement("div",{style:e,className:this.props.className||""},this.props.noInputField?null:u.default.createElement(v.TextField,{disabled:this.props.disabled,variant:"standard",id:"ar_color_picker_name",style:a?{width:"calc(100% - 80px)"}:{width:"calc(100% - 56px)",marginRight:8},label:this.props.label||this.props.name||"color",value:a||"",margin:"dense",classes:{root:this.props.classes.textDense},onChange:function(e){return t.handleChange(e.target.value)}}),!this.props.noInputField&&a?u.default.createElement(v.IconButton,{disabled:this.props.disabled,onClick:function(){return t.handleChange("")},size:"small",className:this.props.classes.delButton,style:a?{}:{opacity:0,cursor:"default"}},u.default.createElement(g.Delete,null)):null,u.default.createElement("div",{className:x.default.clsx(this.props.classes.swatch,this.props.disabled&&this.props.classes.swatchDisabled),onClick:function(e){return!t.props.disabled&&t.handleClick(e)},title:f.default.t("ra_Select color"),style:{background:a?void 0:"transparent",border:a?void 0:"1px dashed #ccc",boxSizing:"border-box",marginTop:this.props.noInputField?0:void 0}},u.default.createElement("div",{className:this.props.classes.color,style:{background:a,width:this.props.noInputField?this.props.barWidth||16:this.props.barWidth||void 0}})),this.state.displayColorPicker&&!this.props.disabled?u.default.createElement(v.Menu,{classes:{paper:this.props.classes.popover,list:this.props.classes.popoverList},anchorEl:this.state.anchorEl,open:!0,onClose:function(){return t.handleClose()}},u.default.createElement(d.ChromePicker,{className:this.props.classes.picker,color:this.state.color||"",onChangeComplete:function(e){return t.handleChange(e)},styles:{picker:{background:"#112233"}}}),a&&this.props.noInputField?u.default.createElement(v.IconButton,{className:this.props.classes.closeButton,onClick:function(){return t.handleChange("")}},u.default.createElement(g.Delete,null)):null,u.default.createElement(v.IconButton,{className:this.props.classes.closeButton,onClick:function(){return t.handleClose()}},u.default.createElement(g.Close,null)),this.renderCustomPalette()):null)}}],[{key:"getColor",value:function(t,a){return t&&"object"===(0,n.default)(t)?t.rgb?a?"#".concat(t.rgb.r.toString(16).padStart(2,"0")).concat(t.rgb.g.toString(16).padStart(2,"0")).concat(t.rgb.b.toString(16).padStart(2,"0")):"rgba(".concat(t.rgb.r,",").concat(t.rgb.g,",").concat(t.rgb.b,",").concat(t.rgb.a,")"):a?"#".concat(t.r.toString(16).padStart(2,"0")).concat(t.g.toString(16).padStart(2,"0")).concat(t.b.toString(16).padStart(2,"0")):"rgba(".concat(t.r,",").concat(t.g,",").concat(t.b,",").concat(t.a,")"):a?e.rgb2hex(t||""):t||""}},{key:"rgb2hex",value:function(t){var e=t.match(/^rgba?[\s+]?\([\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?,[\s+]?(\d+)[\s+]?/i),a=parseInt(e[1],10).toString(16).padStart(2,"0"),r=parseInt(e[2],10).toString(16).padStart(2,"0"),n=parseInt(e[3],10).toString(16).padStart(2,"0");return e&&4===e.length?"#".concat(a).concat(r).concat(n):t}}])}(u.default.Component);w.propTypes={disabled:p.default.bool,value:p.default.string,onChange:p.default.func.isRequired,label:p.default.string,name:p.default.string,style:p.default.object,className:p.default.string,customPalette:p.default.array,noInputField:p.default.bool,barWidth:p.default.number};var y=(0,m.withStyles)((function(t){return{color:{width:36,height:14,borderRadius:2},delButton:{marginTop:16},swatch:{marginTop:16,padding:5,background:t.palette.background.paper,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:{backgroundColor:"#00000000",textAlign:"right"},popoverList:{padding:0},closeButton:{backgroundColor:"".concat(t.palette.background.paper," !important"),borderRadius:"0 0 25% 25%","&:hover":{backgroundColor:"".concat(t.palette.secondary.main," !important")}},cover:{position:"fixed",top:0,right:0,bottom:0,left:0},textDense:{marginTop:0,marginBottom:0},picker:{background:"".concat(t.palette.background.paper," !important")},iconButton:{width:16,height:16},button:{width:32,height:32,minWidth:32,minHeight:32}}}))(w);e.default=y},3136:function(t,e,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(e,a);n&&!("get"in n?!e.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(t,r,n)}:function(t,e,a,r){void 0===r&&(r=a),t[r]=e[a]}),n=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)"default"!==a&&Object.prototype.hasOwnProperty.call(t,a)&&r(e,t,a);return n(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const c=i(a(53482)),s=a(32496),l=a(65298),h=a(21839),u=o(a(653)),d=o(a(12539));e.default=(0,s.withStyles)((t=>({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}})))((t=>{const{open:e,toggleTranslation:a,noTranslation:r,title:n,fullWidth:i,help:o,maxWidth:s,progress:p,icon:m,applyDisabled:v,applyButton:g,classes:f,onClose:x,children:b,titleButtonApply:z,titleButtonClose:C,onApply:w,textInput:y,defaultValue:M,overflowHidden:S}=t,[A,F]=(0,c.useState)(M||"");(0,c.useEffect)((()=>{F(M||"")}),[M]);let D=null;return m&&(D=m),c.default.createElement(l.Dialog,{open:e,maxWidth:s||"md",fullWidth:!!i,disableEscapeKeyDown:!1,onClose:x,classes:{paper:f.modalDialog}},n&&c.default.createElement(l.DialogTitle,null,m?c.default.createElement(D,{className:f.titleIcon}):null,n,"en"!==d.default.getLanguage()&&a?c.default.createElement(l.IconButton,{size:"large",className:u.default.clsx(f.languageButton,r&&f.languageButtonActive),onClick:()=>a(),title:d.default.t("Disable/Enable translation")},c.default.createElement(h.Language,null)):null),c.default.createElement(l.DialogContent,{className:u.default.clsx(S?f.overflowHidden:null,f.content),style:{paddingTop:8}},y&&c.default.createElement(l.TextField,{autoComplete:"off",fullWidth:!0,autoFocus:!0,variant:"outlined",size:"medium",multiline:!0,value:A,onChange:t=>F(t.target.value)}),b,o?c.default.createElement("div",null,o):null),c.default.createElement(l.DialogActions,null,!1!==g&&c.default.createElement(l.Button,{startIcon:c.default.createElement(h.Check,null),disabled:p||v&&M===A,onClick:()=>w(y?A:""),variant:"contained",color:"primary"},d.default.t(z||"ra_Ok")),c.default.createElement(l.Button,{color:"grey",onClick:x,disabled:p,variant:"contained",startIcon:c.default.createElement(h.Close,null)},d.default.t(C||"ra_Cancel"))))}))},76934:function(t,e,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(t,e,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(e,a);n&&!("get"in n?!e.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return e[a]}}),Object.defineProperty(t,r,n)}:function(t,e,a,r){void 0===r&&(r=a),t[r]=e[a]}),n=this&&this.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),i=this&&this.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var a in t)"default"!==a&&Object.prototype.hasOwnProperty.call(t,a)&&r(e,t,a);return n(e,t),e},o=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});const c=i(a(53482)),s=a(32496),l=o(a(33155)),h=a(65298),u=a(21839),d=o(a(99795)),p=o(a(653)),m=o(a(12788)),v=o(a(8225)),g=o(a(3553)),f=o(a(47389)),x=o(a(92091)),b=o(a(81363)),z=o(a(72524)),C=i(a(37150)),w=32,y=32,M=120,S="Not found",A={all:u.InsertDriveFile,images:u.Image,code:u.Code,txt:u.FontDownload,audio:u.AudioFile,video:u.Videocam},F="0_userdata.0";function D(t){const e=(t||"").split("/");return e.length&&e.pop(),e.join("/")}function E(t){const e=p.default.getFileExtension(t);return!!((null===e||void 0===e?void 0:e.toLowerCase().match(/[a-z]+/))&&e.length<5)}const L="Table",H="Tile";function V(t,e){return t.folder&&e.folder?t.name>e.name?1:t.name<e.name?-1:0:t.folder?-1:e.folder||t.name>e.name?1:t.name<e.name?-1:0}class B extends c.Component{constructor(t){super(t),this.limitToObjectID=null,this.limitToPath=null,this.lastSelect=null,this.setOpacityTimer=null,this.cacheFoldersTimeout=null,this.foldersLoading=null,this.cacheFolders=null,this.onFileChange=(t,e,a)=>{const r="".concat(t,"/").concat(e),n=r.lastIndexOf("/"),i=r.substring(0,n);console.log("File changed ".concat(r,"[").concat(a,"]")),this.state.folders[i]&&(this._tempTimeout[i]&&clearTimeout(this._tempTimeout[i]),this._tempTimeout[i]=setTimeout((()=>{delete this._tempTimeout[i],this.browseFolder(i,null,!1,!0).then((t=>this.setState({folders:t})))}),300))},this.setStateBackgroundImage=()=>{const t=["light","dark","colored","delete"];this.setState((e=>{let{backgroundImage:a}=e;return-1!==t.indexOf(a)&&t.length-1!==t.indexOf(a)?((window._localStorage||window.localStorage).setItem("files.backgroundImage",t[t.indexOf(a)+1]),{backgroundImage:t[t.indexOf(a)+1]}):((window._localStorage||window.localStorage).setItem("files.backgroundImage",t[0]),{backgroundImage:t[0]})}))},this.getClassBackgroundImage=()=>{switch(this.state.backgroundImage){case"light":return this.props.classes.backgroundImageLight;case"dark":return this.props.classes.backgroundImageDark;case"colored":return this.props.classes.backgroundImageColored;default:return null}};const e=(window._localStorage||window.localStorage).getItem("files.expanded")||"[]";if(this.props.limitPath){const t=this.props.limitPath.split("/");this.limitToObjectID=t[0],this.limitToPath=t.length?1===t.length&&""===t[0]?null:t.join("/"):null,this.limitToPath&&this.limitToPath.endsWith("/")&&this.limitToPath.substring(0,this.limitToPath.length-1)}let a,r;try{a=JSON.parse(e),this.limitToPath&&(a=a.filter((t=>{var e;return t.startsWith("".concat(this.limitToPath,"/"))||t===this.limitToPath||(null===(e=this.limitToPath)||void 0===e?void 0:e.startsWith("".concat(t,"/")))})))}catch(c){a=[]}r=this.props.showViewTypeButton&&(window._localStorage||window.localStorage).getItem("files.viewType")||L;let n,i=this.props.selected||(window._localStorage||window.localStorage).getItem("files.selected")||F;if(t.restrictToFolder){i=t.restrictToFolder,n=t.restrictToFolder;const e=t.restrictToFolder.split("/");a=[];let r="";for(let t=0;t<e.length;t++)r+=(r?"/":"")+e[t],a.push(r)}else Array.isArray(i)&&(i=i[0]),n=E(i)?D(i):i;const o=(window._localStorage||window.localStorage).getItem("files.backgroundImage")||null;this.state={viewType:r,folders:{},filterEmpty:"false"!==(window._localStorage||window.localStorage).getItem("files.empty"),expanded:a,currentDir:n,expertMode:!!t.expertMode,addFolder:!1,uploadFile:!1,deleteItem:"",viewer:"",formatEditFile:"",path:i,selected:i,errorText:"",modalEditOfAccess:!1,backgroundImage:o,queueLength:0,loadAllFolders:!1,fileErrors:[],filterByType:t.filterByType||window.localStorage.getItem("files.filterByType")||"",showTypesMenu:null,restrictToFolder:t.restrictToFolder||"",pathFocus:!1},this.imagePrefix=this.props.imagePrefix||"./files/",this.levelPadding=this.props.levelPadding||20,this.mounted=!0,this.suppressDeleteConfirm=0,this.browseList=[],this.browseListRunning=!1,this.initialReadFinished=!1,this.supportSubscribes=null,this._tempTimeout={}}static getDerivedStateFromProps(t,e){return void 0!==t.expertMode&&t.expertMode!==e.expertMode?{expertMode:t.expertMode,loadAllFolders:!0}:null}async loadFolders(){this.initialReadFinished=!1;let t=await this.browseFolder("/");this.state.viewType===L?t=await this.browseFolders([...this.state.expanded],t):!this.state.currentDir||"/"===this.state.currentDir||this.limitToObjectID&&!this.state.currentDir.startsWith(this.limitToObjectID)||(t=await this.browseFolder(this.state.currentDir,t)),this.setState({folders:t},(()=>{if(this.state.viewType!==L||this.findItem(this.state.selected))this.scrollToSelected();else{const t=this.state.selected.split("/");for(;t.length&&!this.findItem(t.join("/"));)t.pop();let e;e=t.length?t.join("/"):F,this.setState({selected:e,path:e,pathFocus:!1},(()=>this.scrollToSelected()))}this.initialReadFinished=!0}))}scrollToSelected(){if(this.mounted){const t=document.getElementById(this.state.selected);t&&t.scrollIntoView()}}async componentDidMount(){this.mounted=!0,this.loadFolders().catch((t=>console.error("Cannot load folders: ".concat(t)))),this.supportSubscribes=await this.props.socket.checkFeatureSupported("BINARY_STATE_EVENT"),this.supportSubscribes&&await this.props.socket.subscribeFiles("*","*",this.onFileChange)}componentWillUnmount(){this.supportSubscribes&&this.props.socket.unsubscribeFiles("*","*",this.onFileChange),this.mounted=!1,this.browseList=null,this.browseListRunning=!1,Object.values(this._tempTimeout).forEach((t=>t&&clearTimeout(t))),this._tempTimeout={}}browseFoldersCb(t,e,a){if(null===t||void 0===t?void 0:t.length){const r=t.shift();r?this.browseFolder(r,e).catch((t=>console.error("Cannot read folder ".concat(r,": ").concat(t)))).then((()=>{setTimeout((()=>this.browseFoldersCb(t,e,a)),0)})):setTimeout((()=>this.browseFoldersCb(t,e,a)),0)}else a(e)}browseFolders(t,e){let a;return e?a=e:(a={},Object.keys(this.state.folders).forEach((t=>a[t]=this.state.folders[t]))),(null===t||void 0===t?void 0:t.length)?new Promise((e=>{this.browseFoldersCb(t,a,e)})):Promise.resolve(a)}readDirSerial(t,e){return new Promise(((a,r)=>{this.browseList&&(this.browseList.push({resolve:a,reject:r,adapter:t,relPath:e}),!this.browseListRunning&&this.processBrowseList())}))}processBrowseList(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;!this.browseListRunning&&this.browseList&&this.browseList.length&&(this.browseListRunning=!0,this.browseList.length>10&&this.browseList.length%10||this.setState({queueLength:this.browseList.length}),this.browseList[0].processing=!0,this.props.socket.readDir(this.browseList[0].adapter,this.browseList[0].relPath).then((e=>{if(this.browseList){const a=this.browseList.shift();if(a){const r=a.resolve;a.resolve=null,a.reject=null,a.adapter=null,a.relPath=null,r&&r(e),this.browseListRunning=!1,this.browseList.length?t<5?this.processBrowseList(t+1):setTimeout((()=>this.processBrowseList(0)),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}})).catch((e=>{if(this.browseList){const a=this.browseList.shift();if(a){const r=a.reject;a.resolve=null,a.reject=null,a.adapter=null,a.relPath=null,r&&r(e),this.browseListRunning=!1,this.browseList.length?t<5?this.processBrowseList(t+1):setTimeout((()=>this.processBrowseList(0)),0):this.setState({queueLength:0})}else this.setState({queueLength:0})}})))}async browseFolder(t,e,a,r){let n;if(e?n=e:(n={},Object.keys(this.state.folders).forEach((t=>{n[t]=this.state.folders[t]}))),n[t]&&!r)return a?Promise.resolve(n):new Promise(((e,a)=>{Promise.all(n[t].filter((t=>t.folder)).map((t=>this.browseFolder(t.id,n,!0).catch((()=>{}))))).then((()=>e(n))).catch((t=>a(t)))}));if(!t||"/"===t){try{let e=await this.props.socket.readMetaItems();const r=[];let i=null;if(this.state.restrictToFolder){const t=this.state.restrictToFolder.split("/")[0];e=e.filter((e=>e._id===t))}else this.state.expertMode||(e=e.filter((t=>!t._id.endsWith(".admin"))));const o=e.findIndex((t=>"system.meta.uuid"===t._id));if(-1!==o&&e.splice(o,1),e.forEach((t=>{if(this.limitToObjectID&&this.limitToObjectID!==t._id)return;const e={id:t._id,name:t._id,title:t.common&&t.common.name||t._id,meta:!0,from:t.from,ts:t.ts,color:t.common&&t.common.color,icon:t.common&&t.common.icon,folder:!0,acl:t.acl,level:0};e.id===F?i=e:r.push(e)})),r.sort(((t,e)=>t.id>e.id?1:t.id<e.id?-1:0)),this.limitToObjectID&&this.limitToObjectID!==F||i&&r.unshift(i),n[t||"/"]=r,!a)return Promise.all(r.filter((t=>t.folder)).map((t=>this.browseFolder(t.id,n,!0).catch((()=>{}))))).then((()=>n))}catch(h){this.initialReadFinished&&window.alert("Cannot read meta items: ".concat(h)),n[t||"/"]=[]}return n}const i=t.split("/"),o=i.length,c=i.shift(),s=i.join("/"),l=await this.readDirSerial(c||"",s);try{const e=[];if(l.forEach((a=>{var r;const n={id:"".concat(t,"/").concat(a.file),ext:p.default.getFileExtension(a.file),folder:a.isDir,name:a.file,size:null===(r=a.stats)||void 0===r?void 0:r.size,modified:a.modifiedAt,acl:a.acl,level:o};this.state.restrictToFolder?(n.folder&&(n.id.startsWith("".concat(this.state.restrictToFolder,"/"))||n.id===this.state.restrictToFolder||this.state.restrictToFolder.startsWith("".concat(n.id,"/")))||n.id.startsWith("".concat(this.state.restrictToFolder,"/")))&&e.push(n):this.limitToPath?(n.folder&&(n.id.startsWith("".concat(this.limitToPath,"/"))||n.id===this.limitToPath||this.limitToPath.startsWith("".concat(n.id,"/")))||n.id.startsWith("".concat(this.limitToPath,"/")))&&e.push(n):e.push(n)})),e.sort(V),n[t]=e,!a)return Promise.all(e.filter((t=>t.folder)).map((t=>this.browseFolder(t.id,n,!0)))).then((()=>n))}catch(h){this.initialReadFinished&&window.alert("Cannot read ".concat(c).concat(s?"/".concat(s):"",": ").concat(h)),n[t]=[]}return n}toggleFolder(t,e){e&&e.stopPropagation();const a=[...this.state.expanded],r=a.indexOf(t.id);-1===r?(a.push(t.id),a.sort(),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(a)),t.temp?this.setState({expanded:a}):this.browseFolder(t.id).then((t=>this.setState({expanded:a,folders:t}))).catch((e=>window.alert(e===S?this.props.t('ra_Cannot find "%s"',t.id):this.props.t('ra_Cannot read "%s"',t.id))))):(a.splice(r,1),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(a)),this.setState({expanded:a}))}changeFolder(t,e){t&&t.stopPropagation(),this.lastSelect=Date.now();let a=e||D(this.state.currentDir);return"/"===a&&(a=""),(window._localStorage||window.localStorage).setItem("files.currentDir",a),e&&t&&(t.altKey||t.shiftKey||t.ctrlKey||t.metaKey)?this.setState({selected:a}):a&&!this.state.folders[a]?this.browseFolder(a).then((t=>this.setState({folders:t,path:a,currentDir:a,selected:a,pathFocus:!1},(()=>this.props.onSelect&&this.props.onSelect(""))))):this.setState({currentDir:a,selected:a,path:a,pathFocus:!1},(()=>this.props.onSelect&&this.props.onSelect("")))}select(t,e,a){e&&e.stopPropagation(),this.lastSelect=Date.now(),(window._localStorage||window.localStorage).setItem("files.selected",t),this.setState({selected:t,path:t,pathFocus:!1},(()=>{if(this.props.onSelect){const e=p.default.getFileExtension(t);(!this.props.filterFiles||e&&this.props.filterFiles.includes(e))&&(!this.state.filterByType||e&&C.EXTENSIONS[this.state.filterByType].includes(e))?this.props.onSelect(t,!1,!!this.state.folders[t]):this.props.onSelect("")}a&&a()}))}getText(t){if(t)return"object"===typeof t?t[this.props.lang]||t.en||void 0:t}renderFolder(t,e){if(this.state.viewType===L&&this.state.filterEmpty&&(!this.state.folders[t.id]||!this.state.folders[t.id].length)&&t.id!==F&&!t.temp)return null;const a=e?f.default:g.default,r=this.state.viewType===L?t.level*this.levelPadding:0,n=t.name===F,i=n||"vis.0"===t.name||"vis-2.0"===t.name;return c.default.createElement("div",{key:t.id,id:t.id,style:this.state.viewType===L?{marginLeft:r,width:"calc(100% - ".concat(r,"px")}:{},onClick:e=>this.state.viewType===L?this.select(t.id,e):this.changeFolder(e,t.id),onDoubleClick:e=>this.state.viewType===L&&this.toggleFolder(t,e),title:this.getText(t.title),className:p.default.clsx("browserItem",this.props.classes["item".concat(this.state.viewType)],this.props.classes["itemFolder".concat(this.state.viewType)],this.state.selected===t.id&&this.props.classes.itemSelected,t.temp&&this.props.classes.itemFolderTemp)},c.default.createElement(a,{className:p.default.clsx(this.props.classes["itemFolderIcon".concat(this.state.viewType)],i&&this.props.classes.specialFolder),onClick:this.state.viewType===L?e=>this.toggleFolder(t,e):void 0}),c.default.createElement("div",{className:p.default.clsx(this.props.classes["itemName".concat(this.state.viewType)],this.props.classes["itemNameFolder".concat(this.state.viewType)])},n?this.props.t("ra_User files"):t.name),c.default.createElement(h.Hidden,{smDown:!0},c.default.createElement("div",{className:this.props.classes["itemSize".concat(this.state.viewType)]},this.state.viewType===L&&this.state.folders[t.id]?this.state.folders[t.id].length:"")),c.default.createElement(h.Hidden,{smDown:!0},this.state.viewType===L&&this.props.expertMode?this.formatAcl(t.acl):null),c.default.createElement(h.Hidden,{smDown:!0},this.state.viewType===L&&this.props.expertMode?c.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]}):null),this.state.viewType===L&&this.props.allowDownload?c.default.createElement("div",{className:this.props.classes["itemDownloadEmpty".concat(this.state.viewType)]}):null,this.state.viewType===L&&this.props.allowDelete&&this.state.folders[t.id]&&this.state.folders[t.id].length?c.default.createElement(h.IconButton,{"aria-label":"delete",onClick:e=>{e.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(t.id):this.setState({deleteItem:t.id})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},c.default.createElement(u.Delete,{fontSize:"small"})):this.state.viewType===L&&this.props.allowDelete?c.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]}):null)}renderBackFolder(){return c.default.createElement("div",{key:this.state.currentDir,id:this.state.currentDir,onClick:t=>this.changeFolder(t),title:this.props.t("ra_Back to %s",D(this.state.currentDir)),className:p.default.clsx("browserItem",this.props.classes["item".concat(this.state.viewType)],this.props.classes["itemFolder".concat(this.state.viewType)])},c.default.createElement(g.default,{className:this.props.classes["itemFolderIcon".concat(this.state.viewType)]}),c.default.createElement(u.ArrowBack,{className:this.props.classes.itemFolderIconBack}),c.default.createElement("div",{className:p.default.clsx(this.props.classes["itemName".concat(this.state.viewType)],this.props.classes["itemNameFolder".concat(this.state.viewType)])},".."))}formatSize(t){return c.default.createElement("div",{className:this.props.classes["itemSize".concat(this.state.viewType)]},t||0===t?p.default.formatBytes(t):"")}formatAcl(t){const e=t&&(t.permissions||t.file);let a;return a=e?e.toString(16).padStart(3,"0"):"",c.default.createElement("div",{className:this.props.classes["itemAccess".concat(this.state.viewType)]},this.props.modalEditOfAccessControl?c.default.createElement(h.IconButton,{size:"large",onClick:()=>this.setState({modalEditOfAccess:!0}),className:this.props.classes["itemAclButton".concat(this.state.viewType)]},a||"---"):a||"---")}getFileIcon(t){switch(t){case"json":case"json5":return c.default.createElement(u.Bookmark,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"css":return c.default.createElement(u.BookmarkBorder,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"js":case"ts":return c.default.createElement(u.Code,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"html":case"md":return c.default.createElement(u.Description,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});case"mp3":case"ogg":case"wav":case"m4a":case"mp4":case"flac":return c.default.createElement(u.MusicNote,{className:this.props.classes["itemIcon".concat(this.state.viewType)]});default:return c.default.createElement(u.InsertDriveFile,{className:this.props.classes["itemIcon".concat(this.state.viewType)]})}}static getEditFile(t){switch(t){case"json":case"json5":case"js":case"html":case"txt":case"css":case"log":return!0;default:return!1}}renderFile(t){const e=this.state.viewType===L?t.level*this.levelPadding:0,a=p.default.getFileExtension(t.name);return c.default.createElement("div",{key:t.id,id:t.id,onDoubleClick:e=>{e.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||t.ext&&this.props.filterFiles.includes(t.ext))&&(!this.state.filterByType||t.ext&&C.EXTENSIONS[this.state.filterByType].includes(t.ext))&&this.props.onSelect(t.id,!0,!!this.state.folders[t.id]):this.setState({viewer:this.imagePrefix+t.id,formatEditFile:a})},onClick:e=>this.select(t.id,e),style:this.state.viewType===L?{marginLeft:e,width:"calc(100% - ".concat(e,"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===t.id&&this.props.classes.itemSelected)},a&&C.EXTENSIONS.images.includes(a)?this.state.fileErrors.includes(t.id)?c.default.createElement(x.default,{className:p.default.clsx(this.props.classes["itemImage".concat(this.state.viewType)],this.getClassBackgroundImage(),this.props.classes["itemNoImage".concat(this.state.viewType)])}):c.default.createElement(b.default,{onError:e=>{e.target.onerror=null;const a=[...this.state.fileErrors];a.includes(t.id)||(a.push(t.id),this.setState({fileErrors:a}))},className:p.default.clsx(this.props.classes["itemImage".concat(this.state.viewType)],this.getClassBackgroundImage()),src:this.imagePrefix+t.id,alt:t.name}):this.getFileIcon(a),c.default.createElement("div",{className:this.props.classes["itemName".concat(this.state.viewType)]},t.name),c.default.createElement(h.Hidden,{smDown:!0},this.formatSize(t.size)),c.default.createElement(h.Hidden,{smDown:!0},this.state.viewType===L&&this.props.expertMode?this.formatAcl(t.acl):null),c.default.createElement(h.Hidden,{smDown:!0},this.state.viewType===L&&this.props.expertMode&&B.getEditFile(a)?c.default.createElement(h.IconButton,{"aria-label":"edit",onClick:e=>{e.stopPropagation(),this.props.onSelect?(!this.props.filterFiles||t.ext&&this.props.filterFiles.includes(t.ext))&&(!this.state.filterByType||t.ext&&C.EXTENSIONS[this.state.filterByType].includes(t.ext))&&this.props.onSelect(t.id,!0,!!this.state.folders[t.id]):this.setState({viewer:this.imagePrefix+t.id,formatEditFile:a})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},c.default.createElement(u.Edit,{fontSize:"small"})):c.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]})),this.state.viewType===L&&this.props.allowDownload?c.default.createElement("a",{className:p.default.clsx("MuiButtonBase-root","MuiIconButton-root","MuiIconButton-sizeLarge",this.props.classes.itemDownloadButtonTable),tabIndex:0,download:t.id,href:this.imagePrefix+t.id,onClick:t=>{t.stopPropagation()}},c.default.createElement(u.SaveAlt,null)):null,this.state.viewType===L&&this.props.allowDelete&&"vis.0/"!==t.id&&"vis-2.0/"!==t.id&&t.id!==F?c.default.createElement(h.IconButton,{"aria-label":"delete",onClick:e=>{e.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(t.id):this.setState({deleteItem:t.id})},className:this.props.classes["itemDeleteButton".concat(this.state.viewType)],size:"large"},c.default.createElement(u.Delete,{fontSize:"small"})):this.state.viewType===L&&this.props.allowDelete?c.default.createElement("div",{className:this.props.classes["itemDeleteButton".concat(this.state.viewType)]}):null)}renderItems(t){if(this.state.folders&&this.state.folders[t]){if(this.state.viewType===H){const e=[];return t&&"/"!==t&&e.push(this.renderBackFolder()),this.state.folders[t].forEach((t=>{t.folder?e.push(this.renderFolder(t)):(!this.props.filterFiles||t.ext&&this.props.filterFiles.includes(t.ext))&&(!this.state.filterByType||t.ext&&C.EXTENSIONS[this.state.filterByType].includes(t.ext))&&e.push(this.renderFile(t))})),e}const e=[];return this.state.folders[t].forEach((t=>{if(t.folder){const a=this.state.expanded.includes(t.id),r=this.renderFolder(t,a);if(Array.isArray(r)?r.forEach((t=>e.push(t))):e.push(r),this.state.folders[t.id]&&a){const a=this.renderItems(t.id);Array.isArray(a)?a.forEach((t=>e.push(t))):e.push(a)}}else(!this.props.filterFiles||t.ext&&this.props.filterFiles.includes(t.ext))&&(!this.state.filterByType||t.ext&&C.EXTENSIONS[this.state.filterByType].includes(t.ext))&&e.push(this.renderFile(t))})),e}return c.default.createElement("div",{style:{position:"relative"}},c.default.createElement(h.CircularProgress,{key:t,color:"secondary",size:24}),c.default.createElement("div",{style:{position:"absolute",zIndex:2,top:4,width:24,textAlign:"center"}},this.state.queueLength))}renderToolbar(){const t=this.props.showTypeSelector?A[this.state.filterByType||"all"]||A.all:null,e=this.findFirstFolder(this.state.selected);return c.default.createElement(h.Toolbar,{key:"toolbar",variant:"dense"},this.props.allowNonRestricted&&this.props.restrictToFolder?c.default.createElement(h.IconButton,{edge:"start",title:this.state.restrictToFolder?this.props.t("ra_Show all folders"):this.props.t("ra_Restrict to folder"),className:p.default.clsx(this.props.classes.menuButton,this.state.restrictToFolder&&this.props.classes.menuButtonRestrictActive),"aria-label":"restricted to folder",onClick:()=>this.setState({restrictToFolder:(this.state.restrictToFolder?"":this.props.restrictToFolder)||"",loadAllFolders:!0}),size:"small"},c.default.createElement(u.FolderSpecial,{fontSize:"small"})):null,this.props.showExpertButton?c.default.createElement(h.IconButton,{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:()=>this.setState({expertMode:!this.state.expertMode}),size:"small"},c.default.createElement(v.default,null)):null,this.props.showViewTypeButton?c.default.createElement(h.IconButton,{edge:"start",title:this.props.t("ra_Toggle view mode"),className:this.props.classes.menuButton,"aria-label":"view mode",onClick:()=>{const t=this.state.viewType===L?H:L;(window._localStorage||window.localStorage).setItem("files.viewType",t);let e=this.state.selected;E(e)&&(e=D(e)),this.setState({viewType:t,currentDir:e},(()=>{this.state.viewType===L&&this.scrollToSelected()}))},size:"small"},this.state.viewType!==L?c.default.createElement(u.List,{fontSize:"small"}):c.default.createElement(u.ViewModule,{fontSize:"small"})):null,c.default.createElement(h.IconButton,{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:()=>{(window._localStorage||window.localStorage).setItem("file.empty",!this.state.filterEmpty),this.setState({filterEmpty:!this.state.filterEmpty})},size:"small"},c.default.createElement(u.FolderOpen,{fontSize:"small"})),c.default.createElement(h.IconButton,{edge:"start",title:this.props.t("ra_Reload files"),className:this.props.classes.menuButton,color:"inherit","aria-label":"reload files",onClick:()=>this.setState({folders:{}},(()=>this.loadFolders())),size:"small"},c.default.createElement(u.Refresh,{fontSize:"small"})),this.props.allowCreateFolder?c.default.createElement(h.IconButton,{edge:"start",disabled:!this.state.selected||!e||!!this.limitToPath&&!this.state.selected.startsWith("".concat(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:()=>this.setState({addFolder:!0}),size:"small"},c.default.createElement(u.CreateNewFolder,{fontSize:"small"})):null,this.props.allowUpload?c.default.createElement(h.IconButton,{edge:"start",disabled:!this.state.selected||!e||!!this.limitToPath&&!this.state.selected.startsWith("".concat(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:()=>this.setState({uploadFile:!0}),size:"small"},c.default.createElement(u.Publish,{fontSize:"small"})):null,this.props.showTypeSelector?c.default.createElement(h.Tooltip,{title:this.props.t("ra_Filter files")},c.default.createElement(h.IconButton,{size:"small",onClick:t=>this.setState({showTypesMenu:t.target})},c.default.createElement(t,{fontSize:"small"}))):null,this.state.showTypesMenu?c.default.createElement(h.Menu,{open:!0,anchorEl:this.state.showTypesMenu,onClose:()=>this.setState({showTypesMenu:null})},Object.keys(A).map((t=>{const e=A[t];return c.default.createElement(h.MenuItem,{key:t,selected:this.state.filterByType===t,onClick:()=>{"all"===t?((window._localStorage||window.localStorage).removeItem("files.filterByType"),this.setState({filterByType:"",showTypesMenu:null})):((window._localStorage||window.localStorage).setItem("files.filterByType",t),this.setState({filterByType:t,showTypesMenu:null}))}},c.default.createElement(h.ListItemIcon,null,c.default.createElement(e,{fontSize:"small"})),c.default.createElement(h.ListItemText,null,this.props.t("ra_fileType_".concat(t))))}))):null,c.default.createElement(h.Tooltip,{title:this.props.t("ra_Background image")},c.default.createElement(h.IconButton,{color:"inherit",edge:"start",className:this.props.classes.menuButton,onClick:this.setStateBackgroundImage,size:"small"},c.default.createElement(u.Brightness6,{fontSize:"small"}))),this.state.viewType!==L&&this.props.allowDelete?c.default.createElement(h.Tooltip,{title:this.props.t("ra_Delete")},c.default.createElement("span",null,c.default.createElement(h.IconButton,{"aria-label":"delete",disabled:!this.state.selected||"vis.0/"===this.state.selected||"vis-2.0/"===this.state.selected||this.state.selected===F,color:"inherit",edge:"start",className:this.props.classes.menuButton,onClick:t=>{t.stopPropagation(),this.suppressDeleteConfirm>Date.now()?this.deleteItem(this.state.selected):this.setState({deleteItem:this.state.selected})},size:"small"},c.default.createElement(u.Delete,{fontSize:"small"})))):null)}findItem(t,e){if(!(e=e||this.state.folders))return null;const a=t.split("/");a.pop();const r=a.join("/")||"/";return e[r]?e[r].find((e=>e.id===t)):null}renderInputDialog(){if(this.state.addFolder){const t=this.findFirstFolder(this.state.selected);return t?c.default.createElement(m.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:e=>this.state.folders[t].find((t=>t.name===e))?"":this.props.t("ra_Duplicate name"),onClose:e=>{if(e){const a={};Object.keys(this.state.folders).forEach((t=>a[t]=this.state.folders[t]));const r=this.findItem(t),n="".concat(t,"/").concat(e);a[t].push({id:n,level:((null===r||void 0===r?void 0:r.level)||0)+1,name:e,folder:!0,temp:!0}),a[t].sort(V),a[n]=[];const i=[...this.state.expanded];i.includes(t)||(i.push(t),i.sort()),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(i)),this.setState({addFolder:!1,folders:a,expanded:i},(()=>this.select(n)))}else this.setState({addFolder:!1})},replace:t=>t.replace(/[^-_\w]/,"_")}):(window.alert(this.props.t("ra_Invalid parent folder!")),null)}return null}componentDidUpdate(){this.setOpacityTimer&&clearTimeout(this.setOpacityTimer),this.setOpacityTimer=setTimeout((()=>{this.setOpacityTimer=null;const t=window.document.getElementsByClassName("browserItem");for(let e=0;e<t.length;e++)t[e].style.opacity="1"}),100)}async uploadFile(t,e){const a=t.split("/"),r=a.shift();try{return await this.props.socket.writeFile64(r||"",a.join("/"),e)}catch(n){return window.alert("Cannot write file: ".concat(n))}}findFirstFolder(t){let e=t;const a=this.findItem(e);if(a&&!a.folder){const t=e.split("/");for(t.pop(),e="";t.length;){const a=this.findItem(t.join("/"));if(null===a||void 0===a?void 0:a.folder){e=t.join("/");break}t.pop()}if(!t.length)return null}return e}renderUpload(){return this.state.uploadFile?[c.default.createElement(h.Fab,{key:"close",color:"primary","aria-label":"close",className:this.props.classes.uploadCloseButton,onClick:()=>this.setState({uploadFile:!1})},c.default.createElement(u.Close,null)),c.default.createElement(l.default,{key:"dropzone",onDragEnter:()=>this.setState({uploadFile:"dragging"}),onDragLeave:()=>this.setState({uploadFile:!0}),onDrop:t=>{let e=t.length;t.forEach((t=>{const a=new FileReader;a.onabort=()=>console.log("file reading was aborted"),a.onerror=()=>console.log("file reading has failed"),a.onload=()=>{const r=this.findFirstFolder(this.state.selected);if(r){const n="".concat(r,"/").concat(t.name);this.uploadFile(n,a.result).then((()=>{--e||this.setState({uploadFile:!1},(()=>{if(this.supportSubscribes){const t=[...this.state.expanded];t.includes(r)||(t.push(r),t.sort(),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(t))),this.setState({expanded:t},(()=>this.select(n)))}else setTimeout((()=>this.browseFolder(r,null,!1,!0).then((t=>{const e=[...this.state.expanded];e.includes(r)||(e.push(r),e.sort(),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(e))),this.setState({folders:t,expanded:e},(()=>this.select(n)))}))),500)}))}))}else window.alert(this.props.t("ra_Invalid parent folder!"))},a.readAsArrayBuffer(t)}))}},(t=>{let{getRootProps:e,getInputProps:a}=t;return c.default.createElement("div",Object.assign({className:p.default.clsx(this.props.classes.uploadDiv,"dragging"===this.state.uploadFile&&this.props.classes.uploadDivDragging)},e()),c.default.createElement("input",Object.assign({},a())),c.default.createElement("div",{className:this.props.classes.uploadCenterDiv},c.default.createElement("div",{className:this.props.classes.uploadCenterTextAndIcon},c.default.createElement(u.Publish,{className:this.props.classes.uploadCenterIcon}),c.default.createElement("div",{className:this.props.classes.uploadCenterText},"dragging"===this.state.uploadFile?this.props.t("ra_Drop file here"):this.props.t("ra_Place your files here or click here to open the browse dialog")))))}))]:null}deleteRecursive(t){const e=this.findItem(t);if(null===e||void 0===e?void 0:e.folder)return(this.state.folders[t]?Promise.all(this.state.folders[t].map((t=>this.deleteRecursive(t.id)))):Promise.resolve()).then((()=>{if(e.level>=1){const a=t.split("/"),r=a.shift();this.props.socket.deleteFolder(r||"",a.join("/")).then((()=>{const t=JSON.parse(JSON.stringify(this.state.folders));delete t[e.id];const a=D(e.id),r=t[a];if(r){const n=r.findIndex((t=>t.id===e.id));-1!==n&&r.splice(n,1),this.select(a,null,(()=>this.setState({folders:t})))}}))}}));const a=t.split("/"),r=a.shift();return a.length?this.props.socket.deleteFile(r||"",a.join("/")).catch((t=>window.alert("Cannot delete file: ".concat(t)))):Promise.resolve()}deleteItem(t){t=t||this.state.deleteItem,this.setState({deleteItem:""},(()=>this.deleteRecursive(t).then((()=>{const e={},a=this.state.expanded.indexOf(t);if(-1!==a){const t=[...this.state.expanded];t.splice(a,1),(window._localStorage||window.localStorage).setItem("files.expanded",JSON.stringify(t)),e.expanded=t}if(this.state.selected===t){const t=this.state.selected.split("/");t.pop(),e.selected=t.join("/")}if(this.supportSubscribes)this.setState(e);else{const a=this.findFirstFolder(t),r={};Object.keys(this.state.folders).forEach((t=>{t===a||t.startsWith("".concat(a,"/"))||(r[t]=this.state.folders[t])})),e.folders=r,this.setState(e,(()=>setTimeout((()=>{this.browseFolders([...this.state.expanded],r).then((t=>this.setState({folders:t})))}),200)))}}))))}renderDeleteDialog(){return!!this.state.deleteItem&&c.default.createElement(h.Dialog,{key:"deleteDialog",open:!0,onClose:()=>this.setState({deleteItem:""}),"aria-labelledby":"ar_dialog_file_delete_title"},c.default.createElement(h.DialogTitle,{id:"ar_dialog_file_delete_title"},this.props.t("ra_Confirm deletion of %s",this.state.deleteItem.split("/").pop())),c.default.createElement(h.DialogContent,null,c.default.createElement(h.DialogContentText,null,this.props.t("ra_Are you sure?"))),c.default.createElement(h.DialogActions,null,c.default.createElement(h.Button,{color:"grey",variant:"contained",onClick:()=>{this.suppressDeleteConfirm=Date.now()+3e5,this.deleteItem("")}},this.props.t("ra_Delete (no confirm for 5 mins)")),c.default.createElement(h.Button,{variant:"contained",onClick:()=>this.deleteItem(""),color:"primary",autoFocus:!0},this.props.t("ra_Delete")),c.default.createElement(h.Button,{variant:"contained",onClick:()=>this.setState({deleteItem:""}),color:"grey"},this.props.t("ra_Cancel"))))}renderViewDialog(){return this.state.viewer?c.default.createElement(C.default,{supportSubscribes:this.supportSubscribes,key:this.state.viewer,href:this.state.viewer,formatEditFile:this.state.formatEditFile,themeType:this.props.themeType,setStateBackgroundImage:this.setStateBackgroundImage,getClassBackgroundImage:this.getClassBackgroundImage,t:this.props.t,socket:this.props.socket,lang:this.props.lang,expertMode:this.state.expertMode,onClose:()=>this.setState({viewer:"",formatEditFile:""})}):null}renderError(){return this.state.errorText?c.default.createElement(d.default,{key:"errorDialog",text:this.state.errorText,onClose:()=>this.setState({errorText:""})}):null}updateItemsAcl(t){let e;this.cacheFolders=this.cacheFolders||JSON.parse(JSON.stringify(this.state.folders)),t.forEach((t=>{const a=this.findItem(t.id,this.cacheFolders);a&&JSON.stringify(a.acl)!==JSON.stringify(t.acl)&&(a.acl=t.acl,e=!0)})),e&&(this.cacheFoldersTimeout&&clearTimeout(this.cacheFoldersTimeout),this.cacheFoldersTimeout=setTimeout((()=>{this.cacheFoldersTimeout=null;const t=this.cacheFolders||{};this.cacheFolders=null,this.setState({folders:t})}),200))}changeToPath(){setTimeout((()=>{if(this.state.path!==this.state.selected&&(!this.lastSelect||Date.now()-this.lastSelect>100)){let t=this.state.path;E(this.state.path)&&(t=D(this.state.path)),new Promise((e=>{this.state.folders[t]?e(!0):this.browseFolder(t).then((t=>this.setState({folders:t},(()=>e(!0))))).catch((e=>this.setState({errorText:e===S?this.props.t('ra_Cannot find "%s"',t):this.props.t('ra_Cannot read "%s"',t)})))})).then((e=>e&&this.setState({selected:this.state.path,currentDir:t,pathFocus:!1})))}else(!this.lastSelect||Date.now()-this.lastSelect>100)&&this.setState({pathFocus:!1})}),100)}renderBreadcrumb(){const t=this.state.currentDir.startsWith("/")?this.state.currentDir.split("/"):"/".concat(this.state.currentDir).split("/"),e=[];return c.default.createElement(h.Breadcrumbs,{style:{paddingLeft:8}},t.map(((a,r)=>{a&&e.push(a);const n=e.join("/");return r<t.length-1?c.default.createElement("div",{key:"".concat(this.state.selected,"_").concat(r),className:this.props.classes.pathDivBreadcrumbDir,onClick:t=>this.changeFolder(t,n||"/")},a||this.props.t("ra_Root")):c.default.createElement("div",{className:this.props.classes.pathDivBreadcrumbSelected,key:"".concat(this.state.selected,"_").concat(r),onClick:()=>this.setState({pathFocus:!0})},a)})))}renderPath(){return c.default.createElement("div",{key:"path",className:this.props.classes.pathDiv},this.state.pathFocus?c.default.createElement(h.Input,{value:this.state.path,onKeyDown:t=>{"Enter"===t.key?this.changeToPath():"Escape"===t.key&&this.setState({pathFocus:!1})},endAdornment:c.default.createElement(h.IconButton,{size:"small",onClick:()=>this.changeToPath()},c.default.createElement(u.KeyboardReturn,null)),onBlur:()=>this.changeToPath(),onChange:t=>this.setState({path:t.target.value}),className:this.props.classes.pathDivInput}):this.renderBreadcrumb())}render(){return this.props.ready?(this.state.loadAllFolders&&!this.foldersLoading&&(this.foldersLoading=!0,setTimeout((()=>{this.setState({loadAllFolders:!1,folders:{}},(()=>{this.foldersLoading=!1,this.loadFolders().catch((t=>console.error("Cannot load folders: ".concat(t))))}))}),300)),c.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===H?this.renderPath():null,c.default.createElement("div",{className:p.default.clsx(this.props.classes.filesDiv,this.props.classes["filesDiv".concat(this.state.viewType)]),onClick:t=>{this.state.viewType!==L&&(this.state.selected!==(this.state.currentDir||"/")?this.changeFolder(t,this.state.currentDir||"/"):t.stopPropagation())}},this.state.viewType===L?this.renderItems("/"):this.renderItems(this.state.currentDir||"/"),this.state.viewType!==L?c.default.createElement("div",{className:this.props.classes.filesDivHint},this.props.t("ra_select_folder_hint")):null),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):null,this.renderError())):c.default.createElement(h.LinearProgress,null)}}e.default=(0,z.default)()((0,s.withStyles)((t=>({dialog:{height:"calc(100% - ".concat(t.mixins.toolbar.minHeight,"px)")},root:{width:"100%",overflow:"hidden",height:"100%",position:"relative"},filesDiv:{width:"calc(100% - ".concat(t.spacing(2),")"),overflowX:"hidden",overflowY:"auto",padding:t.spacing(1)},filesDivHint:{position:"absolute",bottom:0,left:20,opacity:.7,fontStyle:"italic",fontSize:12},filesDivTable:{height:"calc(100% - ".concat(48+parseInt(t.spacing(1),10),"px)")},filesDivTile:{height:"calc(100% - ".concat(96+parseInt(t.spacing(1),10),"px)"),display:"flex",alignContent:"flex-start",alignItems:"stretch",flexWrap:"wrap",flex:"0 0 ".concat(64,"px")},itemTile:{position:"relative",userSelect:"none",cursor:"pointer",height:M,width:64,display:"inline-block",textAlign:"center",opacity:.1,transition:"opacity 1s",margin:4,"&:hover":{background:t.palette.secondary.light,color:p.default.invertColor(t.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:64,display:"block",paddingLeft:8,color:t.palette.secondary.main||"#fbff7d"},itemFolderIconBack:{position:"absolute",top:22,left:18,zIndex:1,color:"dark"===t.palette.mode?"#FFF":"#000"},itemSizeTile:{width:"100%",height:16,textAlign:"center",fontSize:10},itemImageTile:{width:"calc(100% - 8px)",height:64,margin:4,display:"block",textAlign:"center",objectFit:"contain"},itemIconTile:{width:"100%",height:64,display:"block",objectFit:"contain"},itemSelected:{background:t.palette.primary.main,color:p.default.invertColor(t.palette.primary.main,!0)},itemTable:{userSelect:"none",cursor:"pointer",height:w,display:"inline-flex",lineHeight:"".concat(w,"px"),"&:hover":{background:t.palette.secondary.light,color:p.d