@emailmaker/emailmaker 1.1.4 → 1.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/emailmaker-core.7d5d6426.js +1 -0
- package/emailmaker-esm.js +3 -3
- package/emailmaker.d.ts +2 -2
- package/emailmaker.js +3 -3
- package/iframe/js/amp.BtGt-xkd.js +1 -0
- package/iframe/js/iframe-eblock.js +1 -1
- package/iframe/js/iframe.js +1 -1
- package/iframe/js/rules.CNqvmp_P.js +1 -1
- package/iframe/js/sanitize-html.BzjMWt1k.js +1 -0
- package/package.json +1 -1
- package/static/core/{857a130e.js → 2a6d9ce7.js} +1 -1
- package/static/core/{d1bf7655.js → 33d703fb.js} +1 -1
- package/static/core/{b1fd86b4.js → 37cc0ac5.js} +1 -1
- package/static/core/3872445e.js +1 -0
- package/static/core/{28ca49a6.js → 45958f0e.js} +1 -1
- package/static/core/{34b8b5ce.js → 69b8570a.js} +44 -44
- package/static/core/{786ef914.js → 72ee0271.js} +1 -1
- package/static/core/{a29e21f4.js → 771d97fd.js} +1 -1
- package/static/core/{7a60accf.js → 925dcb4a.js} +1 -1
- package/static/core/{fcb5a15a.js → 9ffd0912.js} +1 -1
- package/static/core/{62cd8965.js → a389d04a.js} +1 -1
- package/static/core/{24946254.js → bb9df2d2.js} +1 -1
- package/static/core/{31db2775.js → bd0eba9e.js} +1 -1
- package/static/core/d62f3e6a.js +47 -0
- package/static/core/{edf6a1bb.js → f11f8091.js} +1 -1
- package/static/esm/27964dfe.js +1 -0
- package/static/esm/c1e3467e.js +1 -0
- package/emailmaker-core.a1df38d3.js +0 -1
- package/iframe/js/amp.BiJ6w6WR.js +0 -1
- package/iframe/js/sanitize-html.3OUPclIN.js +0 -1
- package/static/core/39ea46f3.js +0 -1
- package/static/core/5cdb0560.js +0 -47
- package/static/esm/48de0f80.js +0 -1
- package/static/esm/53bd1900.js +0 -1
- /package/iframe/{iframe-eblock.a1df38d3.html → iframe-eblock.7d5d6426.html} +0 -0
- /package/iframe/{iframe.a1df38d3.html → iframe.7d5d6426.html} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
__emailmaker__.define(`static/core/
|
|
1
|
+
__emailmaker__.define(`static/core/72ee0271.js`,[`require`,`exports`,`module`,`static/core/354bf8a9.js`,`static/core/f11f8091.js`,`static/core/2a6d9ce7.js`,`react`],function(e,t,n){let r=e("./354bf8a9.js"),i=e("./f11f8091.js"),a=e("./2a6d9ce7.js"),o=e("react");o=r.l(o);function s(e){let t=e.length;for(;t>0&&e[t-1]===`/`;)t--;return e.slice(0,t)}function c(e){let t=0;for(;t<e.length&&e[t]===`/`;)t++;return e.slice(t)}function l(e,t){return e?t?`${s(e)}/${c(t)}`:e:t}function u(e){let t=i.r();if(e&&/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(e))return e;let n=l(t,e||``);return n&&!n.startsWith(`/`)&&!/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(n)&&(n=`/`+n),n}function d(e,t){if(/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(t))return t;let n=l(u(e),t||``);return n&&!n.startsWith(`/`)&&!/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(n)?`/`+n:n}function f(e,t){return e!=null&&Object.prototype.hasOwnProperty.call(e,t)}function p(e,t,n){let r={...e,id:`FM_${e.id}`},i=(e,r)=>{let i=t.normalizeId(e);return n?n.pathForId(i,r,!0):i};if(f(r.data,`itemId`)&&typeof r.data.itemId==`string`&&(r.data.itemId=i(r.data.itemId,!1)),f(r.data,`itemIds`)&&Array.isArray(r.data.itemIds)&&(r.data.itemIds=r.data.itemIds.map(e=>typeof e==`string`?i(e,!1):e)),f(r.data,`folderId`)){let e=r.data.folderId;typeof e==`string`?r.data.folderId=i(e,!0):e??(r.data.folderId=i(``,!0))}return r}function m(e){if(e){if(typeof e==`function`)return e;if(typeof e==`string`){let t=e,n=e=>{let{className:n,style:r,onClick:i,...s}=e,c=a.f(t);return o.default.createElement(`span`,{role:`img`,className:n?`anticon ${n}`:`anticon`,style:r,onClick:i,dangerouslySetInnerHTML:{__html:c},...s})};return n.displayName=`IconFromSource`,n}}}function h(e){if(!e)return;let t={};for(let[n,r]of Object.entries(e)){let e=m(r);e&&(t[n]=e)}return Object.keys(t).length>0?t:void 0}Object.defineProperty(t,"n",{enumerable:!0,get:function(){return h}}),Object.defineProperty(t,"r",{enumerable:!0,get:function(){return p}}),Object.defineProperty(t,"t",{enumerable:!0,get:function(){return d}})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
__emailmaker__.define(`static/core/a29e21f4.js`,[`require`,`exports`,`module`,`static/core/5cdb0560.js`,`static/core/edf6a1bb.js`],function(e,t,n){let r=e("./5cdb0560.js"),i=e("./edf6a1bb.js");var a;(function(e){function t(e,t,n=(e,t)=>e===t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!n(e[r],t[r]))return!1;return!0}e.isEqual=t;function n(e,t=e=>e){let n=new Set;return e.filter(e=>{let r=t(e);return n.has(r)?!1:(n.add(r),!0)})}e.unique=n;function r(e=[],t=[],n=(e,t)=>e===t){let r=[],i=[],a=[];for(let r of e){let e=t.find(e=>n(r,e));e?a.push({prev:r,next:e}):i.push(r)}for(let i of t)e.find(e=>n(i,e))||r.push(i);return{added:r,removed:i,exists:a}}e.diff=r})(a||={});var o=``,s=`Trash`,c=`Trash`,l=class{_inner;rootPath;trashId;trashPath;ensureFolderTrailingSlash;i18n;_pathToId=new Map;_idToPath=new Map;getUrl;getThumbnailUrl;validateDuplicates;constructor(e,t=o,n=c,r=s,a=!0,l=i.m){this._inner=e,this.rootPath=t,this.trashId=n,this.trashPath=r,this.ensureFolderTrailingSlash=a,this.i18n=l,this.validateDuplicates=this._inner.validateDuplicates,typeof e.getUrl==`function`&&(this.getUrl=t=>e.getUrl({...t,id:this.pathForId(t.id,!1),folderId:t.folderId?this.pathForId(t.folderId,!0):this.rootPath})),typeof e.getThumbnailUrl==`function`&&(this.getThumbnailUrl=t=>e.getThumbnailUrl({...t,id:this.pathForId(t.id,!1),folderId:t.folderId?this.pathForId(t.folderId,!0):this.rootPath})),typeof this._inner.deleteItems!=`function`&&(this.deleteItems=void 0),typeof this._inner.deleteItem!=`function`&&(this.deleteItem=void 0),typeof this._inner.moveItems==`function`?this.moveItem=void 0:this.moveItems=void 0,typeof this._inner.copyItems==`function`?this.copyItem=void 0:this.copyItems=void 0,typeof this._inner.uploadFiles==`function`?this.uploadFile=void 0:this.uploadFiles=void 0,typeof this._inner.clearCache!=`function`&&(this.clearCache=void 0),this._getOrGenerateId(this.rootPath)}setController(e){typeof this._inner.setController==`function`&&this._inner.setController({invalidateItemCache:t=>{let n=t.replace(/^\/+|\/+$/g,``),r=this._pathToId.get(n);r&&e.invalidateItemCache(r)},getCachedItem:t=>{let n=t.replace(/^\/+|\/+$/g,``),r=this._pathToId.get(n);if(r){let t=e.getCachedItem(r);if(t)return{...t,id:this.pathForId(t.id,t.isFolder),folderId:this.pathForId(t.folderId,t.isFolder)}}}})}clearCache(e){if(typeof this._inner.clearCache==`function`)return this._inner.clearCache(e)}_getOrGenerateId(e){if(e===this.rootPath)return;let t=e.replaceAll(/^\/+|\/+$/g,``);if(t===this.trashPath.replaceAll(/^\/+|\/+$/g,``))return this.trashId;if(this._pathToId.has(t))return this._pathToId.get(t);let n=r.$a();return this._pathToId.set(t,n),this._idToPath.set(n,t),n}pathForId(e,t,n){let{__:i}=this.i18n;if(e===``||e===void 0)return this.rootPath;if(e===this.trashId)return this.trashPath;let a=this._idToPath.get(e);if(!a){if(n)return`unknown folder ${e}`;throw new r.Xa(i?i(`Path for id '${e}' not found in mapping`):`Path for id '${e}' not found in mapping`,`FileNotFound`)}let o=0;for(;o<this.rootPath.length&&this.rootPath[o]===`/`;)o++;if(o){let e=0;for(;e<a.length&&a[e]===`/`;)e++;let t=a.slice(e);a=`/`.repeat(o)+t}return t&&this.ensureFolderTrailingSlash&&!a.endsWith(`/`)&&(a+=`/`),a}_updateIdMapping(e,t){let n=t.replace(/^\/+|\/+$/g,``),r=this._idToPath.get(e);r&&this._pathToId.delete(r),this._idToPath.set(e,n),this._pathToId.set(n,e)}async getItems(e){let t=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,n=await this._inner.getItems({...e,folderId:t}),r=n.items.map(e=>{let t=this._getOrGenerateId(e.id),n=e.folderId?this._getOrGenerateId(e.folderId):this._getOrGenerateId(this.rootPath);return{...e,id:t,folderId:n}});return{...n,items:r}}async createFolder(e,t,n){let r=t?this.pathForId(t,!0):this.rootPath,i=await this._inner.createFolder(e,r,n),a=this._getOrGenerateId(i.id),o=i.folderId?this._getOrGenerateId(i.folderId):this._getOrGenerateId(this.rootPath);return{...i,id:a,folderId:o}}async renameItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.renameItem!=`function`)throw new r.Xa(n?n(`Rename item is not supported by inner storage`):`Rename item is not supported by inner storage`,`RenameNotAllowed`);let i=this.pathForId(e.id,e.isFolder),a=i,{...o}=await this._inner.renameItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t);return this._updateIdMapping(e.id,o.id),e.isFolder&&this.remapCachedFolderContents(e.id,a,o.id),o.folderId&&(o={...o,folderId:this._getOrGenerateId(o.folderId)}),{...o,id:this._getOrGenerateId(o.id)}}async deleteItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.deleteItem!=`function`)throw new r.Xa(n?n(`Delete item is not supported by inner storage`):`Delete item is not supported by inner storage`,`DeleteNotAllowed`);let i=this.pathForId(e.id,e.isFolder);await this._inner.deleteItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t),this.recursivelyRemoveMappings(e.id,i)}async uploadFile(e){let{__:t}=this.i18n;if(typeof this._inner.uploadFile!=`function`)throw new r.Xa(t?t(`Upload file is not supported by inner storage`):`Upload file is not supported by inner storage`,`UnsupportedOperation`);let n=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,i=await this._inner.uploadFile({...e,folderId:n}),a=this._getOrGenerateId(i.id),o=i.folderId?this._getOrGenerateId(i.folderId):this._getOrGenerateId(this.rootPath);return{...i,id:a,folderId:o}}async uploadFiles(e){let t=e.folderId,n=e.items?.map(e=>e.folderId)??[],r=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,i={...e,folderId:r,items:e.items?.map(e=>({...e,folderId:e.folderId?this.pathForId(e.folderId,!0):r}))??[]},a=await this._inner.uploadFiles(i);return{...a,detailed:a.detailed?.map((e,r)=>{if(!e?.data)return e;let i=e.data.id?this._getOrGenerateId(e.data.id):void 0,a=e.data.folderId?this._getOrGenerateId(e.data.folderId):n[r]??t??this._getOrGenerateId(this.rootPath);return{...e,data:{...e.data,id:i,folderId:a}}})}}async findFileByUrl(e,t){let n=t?this.pathForId(t,!0):this.rootPath;if(typeof this._inner.findFileByUrl==`function`){let t=await this._inner.findFileByUrl(e,n);if(!t)return;let r=this._getOrGenerateId(t.id),i=t.folderId?this._getOrGenerateId(t.folderId):this._getOrGenerateId(this.rootPath);return{...t,id:r,folderId:i}}}async uploadFileByUrl(e,t,n){let r=t?this.pathForId(t,!0):this.rootPath,i=await this._inner.uploadFileByUrl(e,r,n),a=this._getOrGenerateId(i.id),o=i.folderId?this._getOrGenerateId(i.folderId):this._getOrGenerateId(this.rootPath);return{...i,id:a,folderId:o}}async moveItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.moveItem!=`function`)throw new r.Xa(n?n(`Move item is not supported by inner storage`):`Move item is not supported by inner storage`,`MoveNotAllowed`);let i=this.pathForId(e.id,e.isFolder),a=this.pathForId(t,!0),o=await this._inner.moveItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},a);this._updateIdMapping(e.id,o.id),e.isFolder&&this.remapCachedFolderContents(e.id,i,o.id);let s=this._getOrGenerateId(o.id),c=o.folderId?this._getOrGenerateId(o.folderId):t;return{...o,id:s,folderId:c}}async moveItems(e,t){let{__:n}=this.i18n;if(typeof this._inner.moveItems!=`function`)throw new r.Xa(n?n(`Move items is not supported by inner storage`):`Move items is not supported by inner storage`,`MoveNotAllowed`);let i=t?this.pathForId(t,!0):this.rootPath,a=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder),folderId:e.folderId?this.pathForId(e.folderId,!0):this.rootPath})),o=await this._inner.moveItems(a,i),s=[];if(o.detailed&&o.detailed.length>0){let r=new Map;for(let t=0;t<o.detailed.length;t++){let n=o.detailed[t],i=n.requestId||(t<e.length?e[t].id:void 0);i&&r.set(i,n)}for(let i of e){let a=r.get(i.id)||(o.detailed.length===e.length?o.detailed[e.indexOf(i)]:void 0);if(a?.success&&a.data){if(this._updateIdMapping(i.id,a.data.id),i.isFolder){let e=this.pathForId(i.id,i.isFolder);this.remapCachedFolderContents(i.id,e,a.data.id)}s.push({requestId:i.id,success:!0,data:{...a.data,id:this._getOrGenerateId(a.data.id),folderId:a.data.folderId?this._getOrGenerateId(a.data.folderId):t||this._getOrGenerateId(this.rootPath)}})}else{let e=n?n(`Move operation failed - no detailed result`):`Move operation failed - no detailed result`;s.push({requestId:i.id,success:!1,error:a?.error||{message:e,code:`MoveNotAllowed`}})}}}else for(let t of e){let e=n?n(`Move operation failed - no detailed results`):`Move operation failed - no detailed results`;s.push({requestId:t.id,success:!1,error:{message:e,code:`MoveNotAllowed`}})}return{success:o.success,detailed:s,error:o.error}}async copyItems(e,t){let{__:n}=this.i18n;if(typeof this._inner.copyItems!=`function`)throw new r.Xa(n?n(`Copy items is not supported by inner storage`):`Copy items is not supported by inner storage`,`CopyNotAllowed`);let i=t?this.pathForId(t,!0):this.rootPath,a=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder),folderId:e.folderId?this.pathForId(e.folderId,!0):this.rootPath})),o=await this._inner.copyItems(a,i),s=[];if(o.detailed&&o.detailed.length>0){let r=new Map;for(let t=0;t<o.detailed.length;t++){let n=o.detailed[t],i=n.requestId||(t<e.length?e[t].id:void 0);i&&r.set(i,n)}for(let i of e){let a=r.get(i.id)||(o.detailed.length===e.length?o.detailed[e.indexOf(i)]:void 0);if(a?.success&&a.data?.id){let e=this._getOrGenerateId(a.data.id);s.push({requestId:i.id,success:!0,data:{...a.data,id:e,folderId:a.data.folderId?this._getOrGenerateId(a.data.folderId):t||this._getOrGenerateId(this.rootPath)}})}else{let e=a?a.success?a.data?a.data.id?{message:n?n(`Unknown copy error`):`Unknown copy error`,code:`CopyNotAllowed`}:{message:n?n(`No ID in copied item data`):`No ID in copied item data`,code:`CopyNotAllowed`}:{message:n?n(`No data returned from copy operation`):`No data returned from copy operation`,code:`CopyNotAllowed`}:a.error||{message:n?n(`Copy operation failed`):`Copy operation failed`,code:`CopyNotAllowed`}:{message:n?n(`No detailed result from copy operation`):`No detailed result from copy operation`,code:`CopyNotAllowed`};s.push({requestId:i.id,success:!1,error:e})}}}else for(let t of e){let e=n?n(`No detailed results from copy operation`):`No detailed results from copy operation`;s.push({requestId:t.id,success:!1,error:{message:e,code:`CopyNotAllowed`}})}let c=s.every(e=>e.success),l=n?n(`Copy operation completed with errors`):`Copy operation completed with errors`;return{success:c,detailed:s,error:c?void 0:o.error||{message:l,code:`CopyNotAllowed`}}}async deleteItems(e,t){let{__:n}=this.i18n;if(typeof this._inner.deleteItems!=`function`)throw new r.Xa(n?n(`Delete items is not supported by inner storage`):`Delete items is not supported by inner storage`,`DeleteNotAllowed`);let i=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder),folderId:e.folderId?this.pathForId(e.folderId,!0):this.rootPath})),a=await this._inner.deleteItems(i,t),o=[];if(a.detailed&&a.detailed.length>0){let r=new Map;for(let t=0;t<a.detailed.length;t++){let n=a.detailed[t],i=n.requestId||(t<e.length?e[t].id:void 0);i&&r.set(i,n)}for(let i of e){let s=r.get(i.id)||(a.detailed.length===e.length?a.detailed[e.indexOf(i)]:void 0);if(s?.success){let e=this.pathForId(i.id,i.isFolder);if(t.permanent)this.recursivelyRemoveMappings(i.id,e);else if(this._updateIdMapping(i.id,this.trashPath+`/`+e+(i.isFolder?`/`:``)),i.isFolder){let t=this.pathForId(i.id,i.isFolder);this.remapCachedFolderContents(i.id,t,this.trashPath+`/`+e+(i.isFolder?`/`:``))}o.push({requestId:i.id,success:!0})}else{let e=n?n(`Delete operation failed`):`Delete operation failed`;o.push({requestId:i.id,success:!1,error:s?.error||{message:e,code:`DeleteNotAllowed`}})}}}else for(let r of e)if(a.success){let e=this.pathForId(r.id,r.isFolder);if(t.permanent)this.recursivelyRemoveMappings(r.id,e);else if(this._updateIdMapping(r.id,this.trashPath+`/`+e+(r.isFolder?`/`:``)),r.isFolder){let t=this.pathForId(r.id,r.isFolder);this.remapCachedFolderContents(r.id,t,this.trashPath+`/`+e+(r.isFolder?`/`:``))}o.push({requestId:r.id,success:!0})}else{let e=n?n(`Delete operation failed`):`Delete operation failed`;o.push({requestId:r.id,success:!1,error:a.error||{message:e,code:`DeleteNotAllowed`}})}let s=o.every(e=>e.success),c=n?n(`Some items failed to delete`):`Some items failed to delete`;return{success:s,detailed:o,error:s?void 0:a.error||{message:c,code:`DeleteNotAllowed`}}}remapCachedFolderContents(e,t,n){let r=t.replace(/\/+$/,``),i=n.replace(/\/+$/,``),a=[];for(let[e,t]of this._idToPath.entries()){let n=t.replace(/\/+$/,``);n!==r&&n.startsWith(r+`/`)&&a.push({id:e,oldPath:n})}for(let{id:e,oldPath:t}of a){let n=i+t.substring(r.length);this._updateIdMapping(e,n)}}recursivelyRemoveMappings(e,t){let n=t.replace(/\/+$/,``),r=[],i=[];for(let[e,t]of this._idToPath.entries()){let a=t.replace(/\/+$/,``);(a===n||a.startsWith(n+`/`))&&(r.push(e),i.push(a))}for(let e=0;e<r.length;e++)this._idToPath.delete(r[e]),this._pathToId.delete(i[e])}async copyItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.copyItem!=`function`)throw new r.Xa(n?n(`Copy item is not supported by inner storage`):`Copy item is not supported by inner storage`,`CopyNotAllowed`);let i=this.pathForId(e.id,e.isFolder),a=this.pathForId(t,!0),o=await this._inner.copyItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},a),s=this._getOrGenerateId(o.id),c=o.folderId?this._getOrGenerateId(o.folderId):t;return{...o,id:s,folderId:c}}async updateFile(e,t){let{__:n}=this.i18n;if(typeof this._inner.updateFile!=`function`)throw new r.Xa(n?n(`Update file is not supported by inner storage`):`Update file is not supported by inner storage`,`UnsupportedOperation`);let i=this.pathForId(e.id,!1),{...a}=await this._inner.updateFile({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t);return this._updateIdMapping(e.id,a.id),a.folderId&&(a={...a,folderId:this._getOrGenerateId(a.folderId)}),{...a,id:this._getOrGenerateId(a.id)}}async getFileData(e,t){let{__:n}=this.i18n,i=this.pathForId(e.id,!1);if(typeof this._inner.getFileData==`function`)return this._inner.getFileData({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t);let a=e.url||(typeof this.getUrl==`function`?await this.getUrl(e):void 0);if(!a)throw new r.Xa(n?n(`Cannot get file data: no url and no inner.getFileData`):`Cannot get file data: no url and no inner.getFileData`,`FileReadError`);return fetch(a,t?.forceReload?{cache:`no-store`}:void 0).then(e=>e.blob())}async cleanTrash(){let{__:e}=this.i18n;if(typeof this._inner.cleanTrash!=`function`)throw new r.Xa(e?e(`Clean trash is not supported by inner storage`):`Clean trash is not supported by inner storage`,`UnsupportedOperation`);return await this._inner.cleanTrash()}},u=``,d=class{map=new Map;static childrenViewKey(e,t){return`v${u}${e}${u}${t}`}static childrenCountKey(e){return`c${u}${e}`}getFreshError(e,t){let n=this.map.get(e);return n?t!==1/0&&Date.now()-n.updatedAt>t?(this.map.delete(e),null):n.error:null}setError(e,t){this.map.set(e,{error:t,updatedAt:Date.now()})}delete(e){this.map.delete(e)}clearChildrenViewErrorsForParent(e){let t=`v${u}${e}${u}`;for(let e of[...this.map.keys()])e.startsWith(t)&&this.map.delete(e)}clearAll(){this.map.clear()}},f=``,p=1800*1e3;function m(e){return e==null||e===``?f:e}function h(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)&&t>=0?t:1/0}function g(e){return!e||typeof e.search!=`string`?!1:e.search.trim().length>0}function _(e){if(!e)return null;let t=e.folderId;return t==null?null:String(t)}function v(e){return!!e&&e.isFolder}function y(){if(typeof globalThis?.crypto?.randomUUID==`function`)return globalThis.crypto.randomUUID();try{let e=globalThis.crypto||globalThis.msCrypto;if(e&&typeof e.getRandomValues==`function`){let t=new Uint8Array(16);e.getRandomValues(t);let n=``;for(let e=0;e<t.length;e++)n+=t[e].toString(16).padStart(2,`0`);return`id_${n}`}}catch{}return`id_fallback_${Date.now().toString(36)}_${Math.floor(Math.random()*(2**53-1)).toString(36).slice(0,8)}`}function b(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`path_folder_not_found`||t.data?.code===`path_folder_not_found`||t.status===404||t.data?.data?.status===404}function x(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24))>>>0;return t.toString(36)}function S(e){if(!e||typeof e!=`object`)return String(e??``);let t=e,n=[],r={},i=[`page`,`pageSize`,`sortBy`,`sortOrder`,`search`,`itemType`,`limit`];for(let e of Object.keys(t).sort()){let a=t[e];i.includes(e)?n.push(`${e}=${String(a??``)}`):r[e]=a}let a=Object.keys(r).length?JSON.stringify(r):``,o=n.join(`|`),s=a?x(a):``;return`${o}${s?`|${s}`:``}`}var C=class e{entities=new Map;childrenByParent=new Map;maxCacheSize=1e4;now(){return Date.now()}checkCacheSize(){if(this.entities.size>this.maxCacheSize){let e=Array.from(this.entities.entries()).sort((e,t)=>e[1].updatedAt-t[1].updatedAt),t=Math.floor(this.maxCacheSize*.1);for(let n=0;n<t&&n<e.length;n++){let[t,r]=e[n];this.deleteEntityById(t)}}}getEntity(e){return this.entities.get(e)?.value}getRecord(e){return this.entities.get(e)}getFileSystemItem(e){let t=this.getEntity(e);return t&&!v(t)?t:void 0}getFolder(e){let t=this.getEntity(e);return t&&v(t)?t:void 0}getChildrenIds(e,t={}){let n=m(e),r=this.childrenByParent.get(n);return r?t.onlyFileSystemItems?Array.from(r.files):t.onlyFolders?Array.from(r.folders):[...Array.from(r.folders),...Array.from(r.files)]:[]}searchByUrl(e){for(let t of this.entities.values())if(t.value.url===e)return t.value;return null}upsertEntity(e){let t=this.entities.get(e.id)??null,n=t?t.value:null,r=n?_(n):null,i=_(e),a=n?v(n):!1,o=v(e),s;if(n&&v(n)&&o){let t=n.childrenCount,r=e.childrenCount;t!==void 0&&r===void 0&&(s=t)}if(n&&(r!==i||a!==o)){let t=m(r),n=this.childrenByParent.get(t);n&&(a?n.folders.delete(e.id):n.files.delete(e.id),n.files.size===0&&n.folders.size===0&&this.childrenByParent.delete(t))}let c=e;s!==void 0&&(c={...e,childrenCount:s}),this.entities.set(e.id,{value:{...c},updatedAt:this.now()}),this.checkCacheSize();let l=m(i),u=this.childrenByParent.get(l);u||(u={files:new Set,folders:new Set},this.childrenByParent.set(l,u)),o?u.folders.add(e.id):u.files.add(e.id)}updateServerChildrenCount(e,t){if(e==null||t==null||Number.isNaN(t))return;let n=this.entities.get(e);if(!n||!v(n.value))return;let r={...n.value,childrenCount:t};this.entities.set(e,{value:r,updatedAt:this.now()})}deleteEntityById(e){let t=this.entities.get(e)??null;if(!t)return{entity:null,parentId:null};let n=t.value,r=_(n),i=m(r),a=this.childrenByParent.get(i);return a&&(v(n)?a.folders.delete(e):a.files.delete(e),a.files.size===0&&a.folders.size===0&&this.childrenByParent.delete(i)),this.entities.delete(e),{entity:{...n},parentId:r}}deleteFolderRecursive(e){let t=this.entities.get(e);if(!t||!v(t.value))return{deletedFolderRecords:[],deletedFileSystemItemRecords:[]};let n=[{id:e,parentId:_(t.value)}],r=[],i=[];for(;n.length;){let e=n.shift();r.push(e);let t=this.childrenByParent.get(m(e.id));if(t){for(let e of Array.from(t.folders)){let t=this.entities.get(e);t&&n.push({id:e,parentId:_(t.value)})}for(let e of Array.from(t.files))i.push(e)}}let a=[];for(let e of i){let t=this.entities.get(e);if(!t)continue;let n=t.value,r=m(_(n)),i=this.childrenByParent.get(r);i&&(i.files.delete(e),i.files.size===0&&i.folders.size===0&&this.childrenByParent.delete(r)),this.entities.delete(e),a.push({...n})}let o=[];for(let e=r.length-1;e>=0;e--){let{id:t,parentId:n}=r[e],i=this.entities.get(t);if(!i)continue;let a=i.value,s=m(a.id);this.childrenByParent.delete(s);let c=m(n),l=this.childrenByParent.get(c);l&&(l.folders.delete(t),l.files.size===0&&l.folders.size===0&&this.childrenByParent.delete(c)),this.entities.delete(t),o.push({...a})}return{deletedFolderRecords:o,deletedFileSystemItemRecords:a}}moveEntityById(e,t){let n=this.entities.get(e)??null;if(!n)return null;let r=n.value,i=m(_(r)),a=this.childrenByParent.get(i);a&&(v(r)?a.folders.delete(e):a.files.delete(e),a.files.size===0&&a.folders.size===0&&this.childrenByParent.delete(i));let o={...r,folderId:t};if(v(r)&&v(o)){let e=r.childrenCount;e!==void 0&&(o.childrenCount=e)}this.entities.set(e,{value:o,updatedAt:this.now()});let s=m(t),c=this.childrenByParent.get(s);return c||(c={files:new Set,folders:new Set},this.childrenByParent.set(s,c)),v(o)?c.folders.add(e):c.files.add(e),{...o}}copyFileSystemItem(e,t,n){let r=this.entities.get(e)??null;if(!r||v(r.value))return null;let i={...r.value,id:t,folderId:n};return this.upsertEntity(i),{...i}}copyFolderShallow(e,t,n){let r=this.entities.get(e)??null;if(!r||!v(r.value))return null;let i={...r.value,id:t,folderId:n};return this.upsertEntity(i),{...i}}isEntityStale(e,t){let n=this.entities.get(e)??null;return n?t===1/0?!1:this.now()-n.updatedAt>t:!0}touch(e,t){let n=this.entities.get(e);n&&(n.updatedAt=t??this.now())}getEntitiesByIds(e){return e.map(e=>this.entities.get(e)?.value??null)}searchByName(e,t){if(!e||e.trim()===``)return[];let n=t?.parentId,r=t?.recursive??!1,i=t?.itemType??`all`,a=t?.caseSensitive??!1,o=t?.limit??1/0,s=a?e.trim():e.trim().toLowerCase(),c=[],l=null;if(n!==void 0){l=new Set;let e=m(n);if(l.add(e),r){let t=[e],n=new Set;for(;t.length>0;){let e=t.shift();if(n.has(e))continue;n.add(e);let r=this.childrenByParent.get(e);if(r)for(let e of r.folders)l.add(e),t.push(e)}}}for(let[,e]of this.entities){if(c.length>=o)break;let t=e.value;if(l!==null){let e=m(_(t));if(!l.has(e))continue}if(i===`file`&&v(t)||i===`folder`&&!v(t))continue;let n=t.name??``;(a?n:n.toLowerCase()).includes(s)&&c.push({...t})}return c}toJSON(){return{entities:Array.from(this.entities.entries()),childrenByParent:Array.from(this.childrenByParent.entries()).map(([e,t])=>[e,{files:Array.from(t.files),folders:Array.from(t.folders)}])}}static fromJSON(t){let n=new e;for(let[e,r]of t.entities??[])n.entities.set(e,{value:r.value,updatedAt:r.updatedAt});for(let[e,r]of t.childrenByParent??[])n.childrenByParent.set(e,{files:new Set(r.files),folders:new Set(r.folders)});return n}},w=class e{views=new Map;strategy;ttl;errorTtl;entityTtl;failedRequests;serverChildrenCountHandler;childrenCountInvalidator;maxViewsPerParent=50;constructor(e={},t=p,n,r,i=new d){this.strategy={allowSortedInsert:e.allowSortedInsert??!0,allowSearchInsert:e.allowSearchInsert??!0,invalidateOnPaginationFull:e.invalidateOnPaginationFull??!0,preloadPagesBefore:e.preloadPagesBefore??0,preloadPagesAfter:e.preloadPagesAfter??1,comparator:e.comparator,filterMatch:e.filterMatch},this.ttl=t,this.errorTtl=n??t,this.entityTtl=r??t,this.failedRequests=i}setServerChildrenCountHandler(e){this.serverChildrenCountHandler=e}setChildrenCountInvalidator(e){this.childrenCountInvalidator=e}now(){return Date.now()}parentKey(e){return m(e??null)}isExpired(e){return e==null?!0:this.ttl===1/0?!1:this.now()-e>this.ttl}areEntitiesStale(e,t){return e?e.some(e=>!t.getEntity(e)||t.isEntityStale(e,this.entityTtl)):!0}isEntityTypeCompatible(e,t){return!!(!t||t===`all`||t===`file`&&!v(e)||t===`folder`&&v(e))}cleanupOldViews(e){if(e.size<=this.maxViewsPerParent)return;let t=Array.from(e.entries()).sort((e,t)=>(t[1].view.updatedAt||0)-(e[1].view.updatedAt||0));for(;e.size>this.maxViewsPerParent&&t.length>0;){let[n]=t.pop();e.delete(n)}}async getOrCreateChildren(e,t,n,r){let i=this.parentKey(e),a=S(t??{}),o=this.views.get(i);o||(o=new Map,this.views.set(i,o));let s=d.childrenViewKey(i,a),c=o.get(a);c||(c={params:t,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:null}},o.set(a,c),this.cleanupOldViews(o));let l=this.failedRequests.getFreshError(s,this.errorTtl);if(l!=null)throw l;if(c.view.value&&!this.isExpired(c.view.updatedAt)&&!this.areEntitiesStale(c.view.value,r)&&!c.view.meta?.stale){let e=c.view.value.map(e=>r.getEntity(e)).filter(Boolean),t=c.params?.itemType||`all`;return{items:e.filter(e=>this.isEntityTypeCompatible(e,t)),...c.view.meta??{}}}if(c.view.promise)return c.view.promise;let u=y();c.view.loadId=u;let f=(async()=>{try{let a=await n(e,t),o=g(t),l=o?{...a,total:void 0}:a,d=this.views.get(i)?.get(S(t));if(!d||d.view.loadId!==u){let e=Error(`StaleLoad`);throw e.name=`StaleLoad`,e}for(let e of l.items)r.upsertEntity(e);c.view.value=l.items.map(e=>e.id);let{items:f,...p}=l,m={...p};c.view.meta=m,c.view.meta.stale=!1,this.failedRequests.delete(s),c.view.updatedAt=this.now(),!o&&typeof m.total==`number`&&(this.serverChildrenCountHandler?this.serverChildrenCountHandler(e??null,m.total,r):r.updateServerChildrenCount(e,m.total));let _=this.strategy.preloadPagesAfter??0,v=this.strategy.preloadPagesBefore??0,y=h(t?.pageSize);if((_>0||v>0)&&Number.isFinite(y)){let i=e,a={...t},o=typeof m.totalPages==`number`?m.totalPages:1,s=t?.page??1,c=y,l=n,d=u;setTimeout(()=>{this.preloadPagesAsync(i,a,s,o,c,_,v,r,m,l,d)},0)}return l}catch(e){if(e?.name===`StaleLoad`)throw this.failedRequests.delete(s),c.view.value=void 0,c.view.updatedAt=this.now(),e;let t=e,n=t?.status??t?.data?.status,r=t?.code??t?.data?.code;if(n===404||r===`FileNotFound`||r===`FolderNotFound`||r===`path_folder_not_found`)return this.failedRequests.delete(s),c.view.value=[],c.view.meta={total:0,totalPages:0},c.view.updatedAt=this.now(),{items:[],total:0,totalPages:0};throw this.failedRequests.setError(s,e),c.view.value=void 0,c.view.updatedAt=this.now(),e}finally{c.view.promise=null}})();return c.view.promise=f,f}async preloadPagesAsync(e,t,n,r,i,a,o,s,c,l,u){try{let i=this.parentKey(e),c=this.views.get(i);if(!c)return;let d=c.get(S(t));if(!d||u!=null&&d.view.loadId!==u)return;let f=c.get(S(t));if(!f?.view.meta)return;let p=typeof f.view.meta.totalPages==`number`?f.view.meta.totalPages:1;if(p!==r)return;let m=async n=>{let r={...t,page:n};try{let a=await l(e,r),o=this.views.get(i);if(!o)return;let c=o.get(S(t));if(!c||u!=null&&c.view.loadId!==u||c.view.loadId!==u)return;for(let e of a.items)s.upsertEntity(e);let d=S(r),f=o.get(d);if(f||(f={params:r,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:c.view.loadId}},o.set(d,f),this.cleanupOldViews(o)),!f.view.value||this.isExpired(f.view.updatedAt)){f.view.value=a.items.map(e=>e.id);let{items:e,...t}=a;f.view.meta={...t,page:n,totalPages:p},f.view.updatedAt=this.now()}}catch{}};if(a>0&&n<p)for(let e=1;e<=Math.min(a,p-n);e++){let r=n+e,i=S({...t,page:r}),a=c.get(i);(!a?.view.value||this.isExpired(a.view.updatedAt))&&m(r)}if(o>0&&n>1)for(let e=1;e<=Math.min(o,n-1);e++){let r=n-e,i=S({...t,page:r}),a=c.get(i);(!a?.view.value||this.isExpired(a.view.updatedAt))&&m(r)}}catch{}}removeEmptyPageIfNeeded(e,t,n,r,i){if(t.view.value&&t.view.value.length===0&&n<r){let t=S({...i,page:n});e.delete(t)}}updateTotalPagesForAllViews(e,t){for(let[,n]of e)n.view.meta&&(n.view.meta.totalPages=t)}isParamsSame(e,t){let n=Object.keys(e??{}).filter(e=>e!==`page`).sort(),r=Object.keys(t??{}).filter(e=>e!==`page`).sort();if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++){let a=n[i];if(a!==r[i]||e[a]!==t[a])return!1}return!0}syncTotalsInSameViews(e,t){let n=t.view.meta;if(!n||typeof n.total!=`number`)return;let r=Number(n.total),i=h(t.params?.pageSize),a=Number.isFinite(i)&&i>0?Math.max(1,Math.ceil(r/i)):void 0;for(let[,n]of e)this.isParamsSame(n.params??{},t.params??{})&&(n.view.meta||(n.view.meta={}),n.view.meta.total=r,a!==void 0&&(n.view.meta.totalPages=a))}canSafelyModifySortedView(e){return!!(!e.sortBy&&!e.sortOrder||this.strategy.comparator)}cascadeShiftPages(e,t,n,r,i,a,o){let s=t,c=n,l=!1,u=0;for(;s.view.value&&s.view.value.length<r&&c<i&&u<100;){u++;let t=S({...o,page:c+1}),n=e.get(t);if(!n?.view.value||this.isExpired(n.view.updatedAt)){s.view.meta={...s.view.meta??{},stale:!0};break}let i=r-s.view.value.length,d=n.view.value.slice(0,i).filter(e=>a.getEntity(e));if(d.length===0){s.view.meta={...s.view.meta??{},stale:!0};break}if(s.view.value=[...s.view.value,...d],s.view.updatedAt=Date.now(),n.view.value=n.view.value.slice(d.length),n.view.updatedAt=Date.now(),n.view.value.length===0){let t=c+1,r=n.view.meta;if(t<(r&&typeof r.totalPages==`number`?r.totalPages:1)){let n=S({...o,page:t});e.delete(n),l=!0}break}s=n,c++}return(!s.view.value||s.view.value.length<r)&&c>=i&&(s.view.meta={...s.view.meta??{},stale:!0}),l}cascadeShiftToNextPage(e,t,n,r,i,a,o){if(!t.view.value||t.view.value.length<=r)return!1;if(n-(o.page||1)>=10)return t.view.meta={...t.view.meta??{},stale:!0},!1;let s={...o,page:n+1},c=S(s),l=e.get(c),u=!1;if(!l?.view.value||this.isExpired(l.view.updatedAt))if(n>=i){l={params:s,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:null}},e.set(c,l),this.cleanupOldViews(e);let r=t.view.meta;r&&(l.view.meta={...r,page:n+1}),u=!0}else return t.view.meta={...t.view.meta??{},stale:!0},!1;let d=t.view.value.slice(r).filter(e=>a.getEntity(e));if(d.length===0)return u&&e.delete(c),!1;t.view.value=t.view.value.slice(0,r),t.view.updatedAt=Date.now(),l.view.value=[...d,...l.view.value??[]],l.view.updatedAt=Date.now();let f=l.view.meta&&typeof l.view.meta.totalPages==`number`?l.view.meta.totalPages:i;if(!u&&this.cascadeShiftToNextPage(e,l,n+1,r,f,a,o))return!0;if(!l.view.value||l.view.value.length===0){let t=n+1,r=l.view.meta,i=r&&typeof r.totalPages==`number`?r.totalPages:1;this.removeEmptyPageIfNeeded(e,l,t,i,o)}return u}tryInsertSorted(e,t,n){let r=this.strategy.comparator;if(!r||!e.view.value)return!1;let i=e.params?.itemType||`all`;if(!this.isEntityTypeCompatible(t,i))return!1;let a=e.view.value.map(e=>n.getEntity(e));if(a.some(e=>!e))return!1;let o=0,s=a.length;for(;o<s;){let n=Math.floor((o+s)/2),i=r(t,a[n],e.params);if(typeof i!=`number`||Number.isNaN(i))return!1;i>=0?o=n+1:s=n}return e.view.value.includes(t.id)?(e.view.updatedAt=this.now(),!0):(e.view.value=[...e.view.value.slice(0,o),t.id,...e.view.value.slice(o)],e.view.updatedAt=this.now(),e.view.meta&&typeof e.view.meta.total==`number`&&(e.view.meta.total=Number(e.view.meta.total)+1),!0)}updateChildrenCountForOperation(e,t,n,r){let i=_(t);switch(e){case`delete`:this.adjustChildrenCount(r,i,-1),this.childrenCountInvalidator?.(i);break;case`insert`:case`copy`:this.adjustChildrenCount(r,i,1),this.childrenCountInvalidator?.(i);break;case`move`:this.adjustChildrenCount(r,n,-1),this.adjustChildrenCount(r,i,1),this.childrenCountInvalidator?.(n),this.childrenCountInvalidator?.(i);break}}adjustChildrenCount(e,t,n){if(!t)return;let r=e.getFolder(t);if(r&&typeof r.childrenCount==`number`){let i=Math.max(0,r.childrenCount+n);e.updateServerChildrenCount(t,i)}}smartInvalidateChildrenViews(e,t,n,r,i,a){if(!t)return;this.updateChildrenCountForOperation(n,t,i,r);let o=this.parentKey(e),s=this.views.get(o);if(s)for(let[,e]of s){let a=e.params??{},o=a?.page??1,c=h(a?.pageSize),l=Number.isFinite(c),u=!!(a?.sortBy||a?.sortOrder),d=!!a?.search,f=a?.itemType||`all`;if(this.isEntityTypeCompatible(t,f)){if(d&&this.strategy.filterMatch&&!this.strategy.filterMatch(t,e.params)){e.view.value?.includes(t.id)&&(e.view.value=e.view.value.filter(e=>e!==t.id),e.view.meta&&typeof e.view.meta.total==`number`&&(e.view.meta.total=Math.max(0,e.view.meta.total-1)),e.view.updatedAt=Date.now());continue}if(!e.view.value){e.view.meta&&(e.view.meta.stale=!0),e.view.loadId=y(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0);continue}if(e.view.value.includes(t.id),this.shouldInvalidateCompletely(e,n,t,u,l,o)){e.view.meta={...e.view.meta??{},stale:!0},e.view.loadId=y(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0);continue}switch(n){case`delete`:this.handleDelete(s,e,o,c,l,t,r);break;case`insert`:case`copy`:this.handleInsert(s,e,o,c,l,u,t,r);break;case`update`:this.handleUpdate(s,e,o,c,l,u,d,t,r);break;case`move`:this.handleMove(s,e,o,c,l,u,t,i,r);break}}}}shouldInvalidateCompletely(e,t,n,r,i,a){return!!(i&&a>1&&(t===`insert`||t===`delete`||t===`move`)||r&&!this.strategy.comparator&&(t===`insert`||t===`move`)||this.isExpired(e.view.updatedAt))}tryReinsertEntity(e,t,n,r,i){let a=e.params?.itemType||`all`;if(!this.isEntityTypeCompatible(t,a))return!1;if(this.strategy.comparator&&this.strategy.filterMatch){if(!this.strategy.filterMatch(t,e.params))return!1;if(this.tryInsertSorted(e,t,n))return!0}let o=e.params??{};return(o.sortBy||o.sortOrder)&&!this.canSafelyModifySortedView(o)?!1:!r||e.view.value.length<i?(e.view.value.push(t.id),!0):!1}handleDelete(e,t,n,r,i,a,o){let s=t.view.value.includes(a.id);if(s&&(t.view.value=t.view.value.filter(e=>e!==a.id)),t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}if(t.view.updatedAt=Date.now(),s&&i&&t.view.value.length<r&&o){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,o,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}handleInsert(e,t,n,r,i,a,o,s){if(!t.view.value.includes(o.id)){if(a&&this.strategy.allowSortedInsert&&this.strategy.comparator&&s){if(this.tryInsertSorted(t,o,s)&&t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}if(i&&t.view.value.length>r&&s){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftToNextPage(e,t,n,r,a,s,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=t.view.meta.totalPages+1;t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}}else if(!i||t.view.value.length<r){if(t.view.value.push(o.id),t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}t.view.updatedAt=Date.now()}else t.view.meta={...t.view.meta??{},stale:!0};t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}}handleUpdate(e,t,n,r,i,a,o,s,c){let l=t.view.value.includes(s.id),u=this.isEntityTypeCompatible(s,t.params?.itemType||`all`);if(l&&!u){if(t.view.value=t.view.value.filter(e=>e!==s.id),t.view.meta&&typeof t.view.meta.total==`number`&&(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}if(t.view.updatedAt=Date.now(),i&&t.view.value.length<r&&c){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,c,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(l&&(a||o)){if(t.view.value=t.view.value.filter(e=>e!==s.id),!this.tryReinsertEntity(t,s,c,i,r)){if(t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}if(i&&t.view.value.length<r&&c){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,c,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}}else if(t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}t.view.updatedAt=Date.now(),t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(l){t.view.updatedAt=Date.now(),t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(u&&!o){if(a&&this.strategy.allowSortedInsert&&this.strategy.comparator&&c){if(this.tryInsertSorted(t,s,c)&&t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}}else if(!i||t.view.value.length<r){if(t.view.value.push(s.id),t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}t.view.updatedAt=Date.now()}else t.view.meta={...t.view.meta??{},stale:!0};t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}}handleMove(e,t,n,r,i,a,o,s,c){if(t.view.value.includes(o.id)){if(t.view.value=t.view.value.filter(e=>e!==o.id),t.view.meta&&typeof t.view.meta.total==`number`&&(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}if(t.view.updatedAt=Date.now(),i&&t.view.value.length<r&&c){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,c,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}this.syncTotalsInSameViews(e,t)}t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}forceInvalidateChildrenViews(e){let t=this.parentKey(e??null);this.failedRequests.clearChildrenViewErrorsForParent(t);let n=this.views.get(t);if(n)for(let[,e]of n)e.view.value=void 0,e.view.meta=void 0,e.view.promise=null,e.view.updatedAt=0,e.view.loadId=y(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0)}getKnownTotal(e){let t=this.parentKey(e??null),n=this.views.get(t);if(!n)return;let r=null;for(let[,e]of n){let t=e.view.meta;t&&typeof t.total==`number`&&(!r||(e.view.updatedAt??0)>r.updatedAt)&&(r={total:Number(t.total),updatedAt:e.view.updatedAt??0})}return r?r.total:void 0}toJSON(){return{views:Array.from(this.views.entries()).map(([e,t])=>[e,Array.from(t.entries())]),ttl:this.ttl,errorTtl:this.errorTtl,entityTtl:this.entityTtl,strategy:{allowSortedInsert:this.strategy.allowSortedInsert,allowSearchInsert:this.strategy.allowSearchInsert,invalidateOnPaginationFull:this.strategy.invalidateOnPaginationFull,preloadPagesBefore:this.strategy.preloadPagesBefore,preloadPagesAfter:this.strategy.preloadPagesAfter}}}static fromJSON(t,n){let r=n?.ttl??t?.ttl??18e5,i=new e({},r,n?.errorTtl??t?.errorTtl??r,void 0,n?.failedRequests??new d);for(let[e,n]of t.views??[]){let t=new Map;for(let[e,r]of n){let n=r;n?.view&&`error`in n.view&&delete n.view.error,t.set(e,n)}i.views.set(e,t)}return i}},T=class e{entities;views;ttl;errorTtl;failedRequests;childrenCountPromises=new Map;invalidateChildrenCountCache(e){let t=m(e??``);this.childrenCountPromises.delete(t),this.failedRequests.delete(d.childrenCountKey(t))}constructor(e={},t=p,n){this.failedRequests=new d,this.ttl=t,this.errorTtl=n??t,this.entities=new C,this.views=new w(e,t,this.errorTtl,void 0,this.failedRequests),this.views.setServerChildrenCountHandler((e,t,n)=>{this.handleServerReportedChildrenCount(e,t,n??this.entities)}),this.views.setChildrenCountInvalidator(e=>{this.invalidateChildrenCountCache(e)})}getEntity(e){return this.entities.getEntity(e)??null}getFileSystemItem(e){return this.entities.getFileSystemItem(e)??null}getFolder(e){return this.entities.getFolder(e)??null}async getOrCreateChildren(e,t,n){return this.views.getOrCreateChildren(e,t,n,this.entities)}upsertEntity(e){let t=this.entities.getEntity(e.id),n=t?_(t):null,r=_(e),i=t?v(t):!1,a=v(e);if(this.entities.upsertEntity(e),t){if(n!==r||i!==a){this.views.smartInvalidateChildrenViews(n,t,`delete`,this.entities),this.views.smartInvalidateChildrenViews(r,e,`insert`,this.entities);return}this.views.smartInvalidateChildrenViews(r,e,`update`,this.entities,void 0,t)}else this.views.smartInvalidateChildrenViews(r,e,`insert`,this.entities)}isAncestor(e,t){let n=t,r=new Set;for(;n&&!r.has(n);){if(r.add(n),m(n)===m(e))return!0;let t=this.entities.getEntity(n);if(!t)break;n=_(t),n===null&&(n=f)}return!1}moveEntity(e,t){let n=this.entities.getEntity(e);if(!n||v(n)&&t!==null&&this.isAncestor(e,t))return null;let r=_(n),i=this.entities.moveEntityById(e,t);return i?(this.views.smartInvalidateChildrenViews(r,n,`delete`,this.entities),this.views.smartInvalidateChildrenViews(t,i,`insert`,this.entities),i):null}copyEntity(e,t,n,r){let i=this.entities.getEntity(e);if(!i)return null;let a=null;if(v(i)){let n=[e],i=[];for(;n.length;){let e=n.shift();i.push(e);let t=this.entities.getChildrenIds(e,{onlyFolders:!0});for(let e of t)n.push(e)}let o=new Map;for(let e of i)o.set(e,y());for(let n of i){let i=this.entities.getFolder(n),a=o.get(n),s=_(i),c=s===null?t:o.get(s)??null,l={...i,...n===e?r:void 0,id:a,folderId:(n===e?r?.folderId:void 0)??c};this.entities.upsertEntity(l)}for(let e of i){let t=o.get(e),n=this.entities.getChildrenIds(e,{onlyFileSystemItems:!0});for(let e of n){let n=this.entities.getFileSystemItem(e);if(!n)continue;let r=y(),i={...n,id:r,folderId:t};this.entities.upsertEntity(i)}}a=this.entities.getEntity(o.get(e))??null}else{let i=n??y();if(a=this.entities.copyFileSystemItem(e,i,t??null),a&&r){let e={...a,...r,id:i,folderId:r.folderId??t??null};this.entities.upsertEntity(e),a=e}}return a&&this.views.smartInvalidateChildrenViews(t,a,`copy`,this.entities),a}searchByUrl(e){return this.entities.searchByUrl(e)??null}deleteEntity(e){let t=this.entities.getEntity(e);if(!t)return null;if(v(t)){let{deletedFolderRecords:n,deletedFileSystemItemRecords:r}=this.entities.deleteFolderRecursive(e);for(let e of r)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of n)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of n)this.views.forceInvalidateChildrenViews(e.id);return t}else{let{entity:t,parentId:n}=this.entities.deleteEntityById(e);return t&&this.views.smartInvalidateChildrenViews(n,t,`delete`,this.entities),t}}deleteFolderRecursive(e){let{deletedFolderRecords:t,deletedFileSystemItemRecords:n}=this.entities.deleteFolderRecursive(e);for(let e of n)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of t)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of t)this.views.forceInvalidateChildrenViews(e.id);return{deletedFileSystemItemIds:n.map(e=>e.id),deletedFolderIds:t.map(e=>e.id)}}forceInvalidate(e){let t=this.entities.getEntity(e);if(!t)return;let n=new Set;if(v(t)){let t=[e];for(;t.length;){let e=t.pop();if(n.has(e))continue;n.add(e),this.views.forceInvalidateChildrenViews(e),this.invalidateChildrenCountCache(e);let r=this.entities.getChildrenIds(e,{onlyFolders:!0});for(let e of r)t.push(e)}}else{let e=t.folderId??null;this.views.forceInvalidateChildrenViews(e),this.invalidateChildrenCountCache(e)}}getChildrenIds(e){return this.entities.getChildrenIds(e)}searchByName(e,t){return this.entities.searchByName(e,t)}async getChildrenCount(e=``,t){let n=m(e),r=d.childrenCountKey(n),i=this.failedRequests.getFreshError(r,this.errorTtl);if(i!=null)return Promise.reject(i);let a=this.childrenCountPromises.get(n);if(a)return a;let o=(async()=>{try{let n=this.entities.getFolder(e);if(n&&typeof n.childrenCount==`number`)return this.failedRequests.delete(r),n.childrenCount;let i=this.views.getKnownTotal(e);if(typeof i==`number`)return n&&this.handleServerReportedChildrenCount(e,i,this.entities),this.failedRequests.delete(r),i;if(t){let n=await t(e);return this.entities.getFolder(e)&&this.handleServerReportedChildrenCount(e,n,this.entities),this.failedRequests.delete(r),n}return this.failedRequests.delete(r),this.entities.getChildrenIds(e).length}catch(e){if(this.childrenCountPromises.delete(n),b(e))return this.failedRequests.delete(r),0;throw this.failedRequests.setError(r,e),e}finally{this.childrenCountPromises.delete(n)}})();return this.childrenCountPromises.set(n,o),o}toJSON(){return{entities:this.entities.toJSON(),views:this.views.toJSON(),ttl:this.ttl,errorTtl:this.errorTtl}}static fromJSON(t,n){let r=t?.ttl??18e5,i=t?.errorTtl??r,a=new e(n??{},r,i),o=C.fromJSON(t?.entities??{}),s=w.fromJSON(t?.views??{},{failedRequests:a.failedRequests,ttl:r,errorTtl:i});return n&&(s.strategy={allowSortedInsert:n.allowSortedInsert??!0,allowSearchInsert:n.allowSearchInsert??!0,invalidateOnPaginationFull:n.invalidateOnPaginationFull??!0,preloadPagesBefore:n.preloadPagesBefore??0,preloadPagesAfter:n.preloadPagesAfter??1,comparator:n.comparator,filterMatch:n.filterMatch}),a.entities=o,a.views=s,s.setServerChildrenCountHandler((e,t,n)=>{a.handleServerReportedChildrenCount(e,t,n??o)}),s.setChildrenCountInvalidator(e=>{a.invalidateChildrenCountCache(e)}),a}handleServerReportedChildrenCount(e,t,n){this.checkAndResolveChildrenCountConflict(e,t,n),this.invalidateChildrenCountCache(e)}checkAndResolveChildrenCountConflict(e,t,n){if(!n||t===void 0)return;let r=e??null;if(!r){n.updateServerChildrenCount(r,t);return}let i=n.getFolder(r)?.childrenCount;i!==void 0&&i!==t&&this.views.forceInvalidateChildrenViews(r),n.updateServerChildrenCount(r,t)}},E=class{deletingIds=new Set;beginDeleting(e){for(let t of e)t&&this.deletingIds.add(t)}endDeleting(e){for(let t of e)t&&this.deletingIds.delete(t)}isDeleting(e){return!!e&&this.deletingIds.has(e)}},D=``,O=`Trash`,k=`Edited`,A=1e4,j=1e4,M=25,N=10;function P(e,t){let n=e??{},r=Array.isArray(n.detailed)?n.detailed.map(e=>({requestId:e.requestId??e.id,success:!!e.success,data:t(e.data),error:e.error})):void 0;return{success:!!n.success,error:n.error,detailed:r}}function F(e){return e==null?``:String(e)}function I(e){return{...e,name:F(e.name)}}function L(e){return(e??[]).map(I)}function R(e){return!e||typeof e!=`object`||!(`name`in e)?e:{...e,name:F(e.name)}}function z(e){return e?e.replaceAll(`\\`,`/`).split(`/`).filter(Boolean):[]}function B(e){let t=Object.getPrototypeOf(e);for(let n of Object.getOwnPropertyNames(t))n!==`constructor`&&typeof Object.getOwnPropertyDescriptor(t,n)?.value==`function`&&(e[n]=e[n].bind(e))}var V=class{_dataProvider;_options;_pathOptions;i18n;_cache;_rootId;_useSoftDelete;_enableTrash;_validateDuplicates;_blobFetchForceReloadOnceIds=new Set;_mutationRegistry=new E;async _findOrCreateFolderByPath(e){let{__:t}=this.i18n,n=z(e);if(n.length>N)throw new r.Xa(t(`Path depth exceeds maximum limit of %s`).replace(`%s`,String(N)),`ValidationError`);let i;for(let a of n){let{files:n}=await this.getFiles({folderId:i?.id||``,itemType:`folder`}),o=n.find(e=>e.name===a);if(o){if(!o.isFolder)throw new r.Xa(t(`Path component '%s' in '%s' is not a folder`).replace(`%s`,a).replace(`%s`,e),`ValidationError`);i={id:o.id,name:o.name,parentId:o.folderId}}else{if(typeof this._dataProvider.createFolder!=`function`)throw new r.Xa(t(`Create folder operation is not supported by data provider`),`UnsupportedOperation`);i=await this.createFolder({name:a,parentId:i?.id})}}return i}getTrashFolder(){return this._findOrCreateFolderByPath(this._pathOptions.trashPath||O)}getTempFolder(){return this._findOrCreateFolderByPath(this._pathOptions.tempPath||k)}constructor(e,t={},n,r=i.m){this._dataProvider=e,this._options=t,this._pathOptions=n,this.i18n=r,B(this),this._useSoftDelete=this._pathOptions.useSoftDelete,this._rootId=this._pathOptions.rootId||D,this._enableTrash=this._options.enableTrash===void 0?!0:this._options.enableTrash,this._validateDuplicates=this._dataProvider.validateDuplicates,this._cache=new T(t.cacheStrategy||{},t.cacheStrategy?.ttl,t.cacheStrategy?.errorTtl),this.setController({invalidateItemCache:e=>{this._cache.forceInvalidate(e)},getCachedItem:e=>this._cache.getEntity(e)}),typeof this._dataProvider.clearCache!=`function`&&(this.clearCache=void 0)}setController(e){typeof this._dataProvider.setController==`function`&&this._dataProvider.setController(e)}async clearCache(e){if(typeof this._dataProvider.clearCache!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Clear cache is not supported by data provider`),`UnsupportedOperation`)}this._cache.forceInvalidate(this._rootId),await this._dataProvider.clearCache(e)}markNextFileBlobFetchBypassHttpCache(e){this._blobFetchForceReloadOnceIds.add(this.normalizeId(e))}normalizeId(e){return!e||e===`root`||e===`folders`?this._rootId:e}_isDeletingId(e){return this._mutationRegistry.isDeleting(this.normalizeId(e))}_collectDeletingIds(e){let t=this.normalizeId(e),n=new Set([t]);if(!this._cache.getEntity(t)?.isFolder)return Array.from(n);let r=[t];for(;r.length>0;){let e=r.pop(),t=this._cache.getChildrenIds(e);for(let e of t)n.has(e)||(n.add(e),this._cache.getEntity(e)?.isFolder&&r.push(e))}return Array.from(n)}_emptyFilesResult(e,t){return{files:[],pagination:{...typeof e==`number`?{page:e}:{},...typeof t==`number`?{limit:t}:{},total:0,totalPages:1,hasNext:!1,hasPrev:!1}}}_validateName(e,t=!1){if(!e||e.trim().length===0){let e=t?`FolderInvalidName`:`FileInvalidName`,{__:n}=this.i18n;throw new r.Xa(n(t?`Folder name cannot be empty`:`File name cannot be empty`),e)}if(/[\/\\:*?"<>|]/.test(e)){let{__:n}=this.i18n,i=t?`FolderInvalidName`:`FileInvalidName`;throw new r.Xa(t?n(`Folder name contains invalid characters: %s`).replace(`%s`,e):n(`File name contains invalid characters: %s`).replace(`%s`,e),i)}}_validateTargetFolderType(e){let t=this.normalizeId(e);if(t===this._rootId)return;let n=this._cache.getEntity(t);if(n&&!n.isFolder){let{__:t}=this.i18n;throw new r.Xa(t(`Target item with id '%s' is not a folder`).replace(`%s`,e),`ValidationError`)}}_checkNameExistsInCache(e,t,n,r){let i=this.normalizeId(e),a=this._cache.getChildrenIds(i);for(let e of a){let i=this._cache.getEntity(e);if(i&&i.name===t&&!!i.isFolder===n&&(!r||i.id!==r))return!0}return!1}async _getUrl(e){if(e.url)return e.url;try{return typeof this._dataProvider?.getUrl==`function`&&this._dataProvider.getUrl(e)||``}catch{}return``}async _getThumbnailUrl(e){if(e.thumbnailUrl)return e.thumbnailUrl;try{return typeof this._dataProvider?.getThumbnailUrl==`function`&&this._dataProvider.getThumbnailUrl(e)||``}catch{}return``}_mapItem=async({childrenCount:e,...t})=>{let n=I(t);if(n.isFolder)return{...n,childCount:e,url:``,thumbnailUrl:``};let[r,i]=await Promise.all([this._getUrl(n),this._getThumbnailUrl(n)]);return{...n,childCount:0,url:r,thumbnailUrl:i}};_isAncestor(e,t){if(!t)return!1;let n=this.normalizeId(t),r=this.normalizeId(e);if(n===r)return!0;let i=this._cache.getEntity(n),a=new Set;for(;i&&i.folderId&&!a.has(i.id);){a.add(i.id);let e=this.normalizeId(i.folderId);if(e===r)return!0;if(i=this._cache.getEntity(e),!i||!i.isFolder)break}return!1}async getFile(e,t){return this._isDeletingId(e)?null:this._cache.searchByName(t,{parentId:this.normalizeId(e),caseSensitive:!0,recursive:!1,itemType:`file`})[0]||(await this.getFiles({folderId:e,itemType:`file`,search:t})).files[0]}async getFileById(e){let t=this.normalizeId(e);if(this._isDeletingId(t))return null;let n=this._cache.getFileSystemItem(t);if(n&&!n.isFolder)return await this._mapItem(n);if(!this._dataProvider.pathMode)return null;let r=await this._getFileByPathStyleId(t);if(r&&!r.isFolder){let e=I(r);return this._cache.upsertEntity(e),await this._mapItem(e)}return null}async _getFileByPathStyleId(e){let t=e.replace(/\\/g,`/`).replace(/^\/+/,``),n=t.lastIndexOf(`/`),r=n<0?``:t.slice(0,n),i=n<0?t:t.slice(n+1);return i?this.getFile(r,i):null}async getFileUrl(e,t){let n=await this.getFile(e,t);return await this._getUrl(n)||await this._getThumbnailUrl(n)||n.thumbnail}async getFiles({folderId:e,search:t,sortBy:n,sortOrder:r,page:i,limit:a,itemType:o=`all`,noFolder:s=!1}){s&&(e=(await this.getTempFolder())?.id);let c=this.normalizeId(e??this._rootId),l=this._options.enablePagination===!1,u=l?1:i,d=l?A:a,f=this._options.clientSideFilter,p=this._options.clientSideSorting,m=this._options.clientSidePaging,h=m?Math.max(1,i??1):void 0,g=m?typeof a==`number`&&Number.isFinite(a)&&a>0?a:M:void 0,_=this._emptyFilesResult(m?h:u,m?g:d);if(this._isDeletingId(c))return _;let v=this._options.unifiedCatalogFetch!==!1&&l&&(o===`folder`||o===`file`),y=v?`all`:o,b={folderId:c,itemType:y};f||(b.search=t),p||(b.sortBy=n??(y===`folder`?void 0:`date`),b.sortOrder=r??(y===`folder`?void 0:`desc`)),m||(b.page=u,b.limit=v?j:d);let x=v?j:m?void 0:d,S={folderId:c,itemType:y,search:f?void 0:t,sortBy:p?void 0:b.sortBy,sortOrder:p?void 0:b.sortOrder,page:m?void 0:u,pageSize:x},C;try{C=await this._cache.getOrCreateChildren(c,S,async(e,t)=>{let n=t.pageSize,r=n!=null&&Number.isFinite(Number(n))?Number(n):A,i=await this._dataProvider.getItems({...t,folderId:e,limit:r}),a=L(i.items);return m?{items:a,total:typeof i.pagination?.total==`number`?i.pagination.total:a.length}:{items:a,...i.pagination}})}catch(e){if(this._isDeletingId(c))return _;throw e}let w=C.items;if(v&&(o===`folder`?w=w.filter(e=>e.isFolder):o===`file`&&(w=w.filter(e=>!e.isFolder))),f){if(typeof this._options.clientSideFilter==`function`)w=this._options.clientSideFilter(w,t);else if(t){let e=t.toLowerCase();w=w.filter(t=>t.name?.toLowerCase().includes(e))}}p&&(w=typeof this._options.clientSideSorting==`function`?this._options.clientSideSorting(w,n,r):this._defaultClientSideSort(w,n,r));let T;T=m||f||v?w.length:C.total??w.length;let E=w;if(m)if(typeof this._options.clientSidePaging==`function`)E=this._options.clientSidePaging(w,h,g);else{let e=(h-1)*g,t=e+g;E=w.slice(e,t)}if(typeof this._dataProvider.getUrl==`function`||typeof this._dataProvider.getThumbnailUrl==`function`){let e=E.map(async e=>{if(e.isFolder)return e;let[t,n]=await Promise.all([e.url?Promise.resolve(e.url):typeof this._dataProvider.getUrl==`function`?this._dataProvider.getUrl(e):Promise.resolve(void 0),e.thumbnailUrl?Promise.resolve(e.thumbnailUrl):typeof this._dataProvider.getThumbnailUrl==`function`?this._dataProvider.getThumbnailUrl(e):Promise.resolve(void 0)]);return{...e,url:t,thumbnailUrl:n}});E=await Promise.all(e)}let D=m?{page:h,limit:g,total:T,totalPages:Math.max(1,Math.ceil(T/g)),hasNext:h*g<T,hasPrev:h>1}:{page:u,limit:d,total:T,...!m&&C.totalPages&&{totalPages:C.totalPages},...!m&&C.hasNextPage&&{hasNextPage:C.hasNextPage}};return{files:await Promise.all(E.map(this._mapItem)),pagination:D}}_defaultClientSideSort(e,t,n){return e.sort((e,r)=>{let i=0;switch(t){case`name`:i=(e.name||``).localeCompare(r.name||``);break;case`date`:i=new Date(e.date||0).getTime()-new Date(r.date||0).getTime();break;case`size`:i=(Number(e.size)||0)-(Number(r.size)||0);break;default:i=(e.name||``).localeCompare(r.name||``)}return n===`desc`?-i:i})}async getFileData(e,t){let n=this.normalizeId(typeof e==`string`?e:e.id),i=t;this._blobFetchForceReloadOnceIds.delete(n)&&(i={...t,forceReload:!0});let a=this._cache.getEntity(n)||(typeof e==`string`?{id:n,name:``,folderId:this._rootId,isFolder:!1}:{...e,childrenCount:e.childCount});if(typeof this._dataProvider.getFileData==`function`)return await this._dataProvider.getFileData(a,i);let{__:o}=this.i18n;if(!a.url&&typeof this._dataProvider.getUrl!=`function`)throw new r.Xa(o(`Cannot read file`),`FileReadError`);let s=a.url||(typeof this._dataProvider.getUrl==`function`?await this._dataProvider.getUrl(a):``);if(s)return(await r.ca(s,{config:this._pathOptions.resourceProxyConfig,standalone:this._pathOptions.isStandalone,intent:`downloadBlob`,init:i?.forceReload?{cache:`no-store`}:void 0})).blob();throw new r.Xa(o(`Unable to get file data`),`FileReadError`)}async findFileByUrl(e){let t=this._cache.searchByUrl(e);if(t)return t;if(typeof this._dataProvider.findFileByUrl==`function`)try{let t=await this._dataProvider.findFileByUrl(e);if(t){let e=I(t);return this._cache.upsertEntity(e),e}}catch{}return null}async getChildrenCount(e){if(!e)return 0;let t=this.normalizeId(e??this._rootId);return this._isDeletingId(t)?0:this._cache.getChildrenCount(t,async()=>{try{if(this._options.clientSidePaging){let e=await this.getFiles({folderId:t,itemType:`all`,page:1,limit:M});return e.pagination.total??e.files.length}let e=await this._dataProvider.getItems({folderId:t,limit:0,itemType:`all`});return e.pagination===void 0?this._options.enablePagination===!1?e.items.length:0:e.pagination.total||0}catch(e){if(this._isDeletingId(t)||this._isPathFolderNotFoundError(e))return 0;throw e}})}_isPathFolderNotFoundError(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`path_folder_not_found`||t.data?.code===`path_folder_not_found`||t.status===404||t.data?.data?.status===404}async _uploadFile(e){let t=this.normalizeId(e.folderId??this._rootId),{__:n}=this.i18n;if(typeof this._dataProvider.uploadFile!=`function`)throw new r.Xa(n(`Upload file operation is not supported by data provider`),`UnsupportedOperation`);if(this._validateName(e.name,!1),this._validateDuplicates&&this._checkNameExistsInCache(t,e.name,!1))throw new r.Xa(n(`File '%s' already exists in target folder`).replace(`%s`,e.name),`FileAlreadyExists`);let i=await this._dataProvider.uploadFile({...e,folderId:t}),a=I({name:e.name,size:e.size,...i,folderId:t});return this._cache.upsertEntity(a),a}async uploadFiles(e){let t=e.items.some(e=>e.noFolder)?await this.getTempFolder():null;e={...e,items:e.items?.map(e=>({...e,folderId:e.noFolder?t?.id:e.folderId}))};for(let t of e.items)t.folderId&&(e.folderId=t.folderId);let n=e.items||[],i=e.folderId??this._rootId,a=this.normalizeId(i);if(this._validateDuplicates){for(let e of n)if(e.name){this._validateName(e.name,!1);let t=this.normalizeId(e.folderId??a);if(this._checkNameExistsInCache(t,e.name,!1)){let{__:t}=this.i18n;throw new r.Xa(t(`File '%s' already exists in target folder`).replace(`%s`,e.name),`FileAlreadyExists`)}}}let o=this._cache.getEntity(a),s={detailed:Array(n.length),success:!0};if(typeof this._dataProvider.uploadFiles==`function`){let e=n.map(e=>({...e,folderId:this.normalizeId(e.folderId??a)}));if(s=P(await this._dataProvider.uploadFiles({folderId:a,items:e}),e=>{if(e)return{id:e.id,name:F(e.name),folderId:e.folderId}}),s.detailed&&s.detailed.length){for(let e=0;e<s.detailed.length;e++){let t=s.detailed[e];if(t&&t.success){let e=t.data,n=e?.id??t.requestId,r=I({...o,...e,folderId:e?.folderId??a});this._cache.upsertEntity(r),t.requestId=n}}s.success===void 0&&(s.success=!s.detailed.some(e=>!e.success))}else s.success=s.error?!1:!!s.success}else if(typeof this._dataProvider.uploadFile==`function`)s.detailed=await Promise.all(n.map(async e=>{let t=this.normalizeId(e.folderId??a);try{let n=await this._uploadFile({...e,folderId:t});return{requestId:n.id,data:n,success:!0}}catch(t){return{requestId:e?.id,success:!1,error:t}}})),s.success=!s.detailed.some(e=>!e.success);else throw new r.Xa(`Upload files is not supported by data provider`,`UnsupportedOperation`);if(s.success&&this._enableTrash)try{this._cache.forceInvalidate(a)}catch{}return s}async deleteFile(e){let t=this.normalizeId(e),n=[t];this._mutationRegistry.beginDeleting(n);try{if(this._useSoftDelete&&this._enableTrash){let e=await this.getTrashFolder();return await this.moveItem({itemId:t,targetFolderId:e.id,isFolder:!1})}return await this.hardDeleteItem(t)}finally{this._mutationRegistry.endDeleting(n)}}async deleteItems(e,t){let n=Array.from(new Set(e.flatMap(e=>this._collectDeletingIds(this.normalizeId(e)))));this._mutationRegistry.beginDeleting(n);try{if(this._useSoftDelete&&this._enableTrash&&t.permanent!==!0){let t=await this.getTrashFolder();return await this.moveItems(t.id,e)}return await this.hardDeleteItems(e,t)}finally{this._mutationRegistry.endDeleting(n)}}async hardDeleteItems(e,t){let n={success:!0,detailed:[]},i=t.permanent?null:await this.getTrashFolder();if(typeof this._dataProvider.deleteItems==`function`){if(n=P(await this._dataProvider.deleteItems(e.map(e=>this._cache.getEntity(e)),t),e=>e),n.success){let t=n.detailed||e.map(e=>({requestId:e,success:!0,error:void 0}));for(let e of t)e.success&&(i?this._cache.moveEntity(e.requestId,i.id):this._cache.deleteEntity(e.requestId))}}else typeof this._dataProvider.deleteItem==`function`&&(n.detailed=await Promise.all(e.map(async e=>{let n=this._cache.getEntity(e);if(!n){let{__:t}=this.i18n;return{requestId:e,success:!1,error:new r.Xa(t(`Item with id '%s' not found`).replace(`%s`,e),`FileNotFound`)}}try{return await this._dataProvider.deleteItem(n,t),i?this._cache.moveEntity(e,i.id):this._cache.deleteEntity(e),{requestId:e,success:!0}}catch(t){return{requestId:e,error:t,success:!1}}})),n.success=!n.detailed.some(e=>!e.success));if(n.success&&i)try{this._cache.forceInvalidate(i.id)}catch{}return n}async hardDeleteItem(e){let t=this._cache.getEntity(e);if(!t){let{__:t}=this.i18n;throw new r.Xa(t(`Item with id '%s' not found in cache`).replace(`%s`,e),`FileNotFound`)}if(typeof this._dataProvider.deleteItem!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Delete item operation is not supported by data provider`),`DeleteNotAllowed`)}if(await this._dataProvider.deleteItem(t,{permanent:!0}),this._cache.deleteEntity(e),this._enableTrash)try{let e=await this.getTrashFolder();e&&this._cache.forceInvalidate(e.id)}catch{}return!0}async cleanTrash(){let{__:e}=this.i18n;if(!this._enableTrash)throw new r.Xa(e(`Trash is not enabled`),`UnsupportedOperation`);if(typeof this._dataProvider.cleanTrash==`function`){let e=await this._dataProvider.cleanTrash();try{let e=await this.getTrashFolder();e&&this._cache.forceInvalidate(e.id)}catch{}return e}throw new r.Xa(e(`Clean trash is not supported by data provider`),`UnsupportedOperation`)}async createFolder({name:e,parentId:t,is_force_create:n}){let i=this.normalizeId(t??this._rootId);if(this._validateName(e,!0),this._validateDuplicates&&this._checkNameExistsInCache(i,e,!0)){let{__:t}=this.i18n;throw new r.Xa(t(`Folder '%s' already exists in parent folder`).replace(`%s`,e),`FolderAlreadyExists`)}let a=await this._dataProvider.createFolder(e,i,n),o=I({id:a.id,folderId:i,name:a.name,isFolder:!0,childrenCount:a.childrenCount});return this._cache.upsertEntity(o),{...a,name:o.name}}async deleteFolder(e){let t=this.normalizeId(e),n=this._collectDeletingIds(t);this._mutationRegistry.beginDeleting(n);try{if(this._useSoftDelete&&this._enableTrash)try{let e=await this.getTrashFolder();return await this.moveItem({itemId:t,targetFolderId:e.id,isFolder:!0})?(this._cache.deleteFolderRecursive(t),!0):!1}catch{return await this.hardDeleteItem(t)}return await this.hardDeleteItem(t)}finally{this._mutationRegistry.endDeleting(n)}}async renameFolder(e,t){let{__:n}=this.i18n;if(typeof this._dataProvider.renameItem!=`function`)throw new r.Xa(n(`Rename folder is not supported`),`RenameNotAllowed`);let i=this.normalizeId(e),a=this._cache.getEntity(i);if(!a)throw new r.Xa(n(`Folder with id '%s' not found in cache`).replace(`%s`,e),`FolderNotFound`);if(this._validateName(t,!0),this._validateDuplicates){let e=this.normalizeId(a.folderId);if(this._checkNameExistsInCache(e,t,!0,i))throw new r.Xa(n(`Folder '%s' already exists in parent folder`).replace(`%s`,t),`FolderAlreadyExists`)}let o=R(await this._dataProvider.renameItem(a,t));return this._cache.upsertEntity(I({...this._cache.getEntity(o.id),...o})),this._cache.getEntity(o.id)}async renameFile(e,t){let{__:n}=this.i18n;if(typeof this._dataProvider.renameItem!=`function`)throw new r.Xa(n(`Rename file is not supported`),`RenameNotAllowed`);let i=this._cache.getEntity(e);if(!i)throw new r.Xa(n(`File with id '%s' not found in cache`).replace(`%s`,e),`FileNotFound`);let a=this.normalizeId(e);if(this._validateName(t,!1),this._validateDuplicates){let e=this.normalizeId(i.folderId);if(this._checkNameExistsInCache(e,t,!1,a))throw new r.Xa(n(`File '%s' already exists in parent folder`).replace(`%s`,t),`FileAlreadyExists`)}let o=R(await this._dataProvider.renameItem(i,t));return o&&this._cache.upsertEntity(I({...this._cache.getEntity(a),...o})),this._cache.getEntity(a)}async moveItem({itemId:e,targetFolderId:t,isFolder:n}){if(typeof this._dataProvider.moveItem!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Move item operation is not supported by data provider`),`MoveNotAllowed`)}let i=this.normalizeId(t);this._validateTargetFolderType(t);let a=this._cache.getEntity(e);if(!a){let t=R(await this._dataProvider.moveItem({id:e,folderId:i,isFolder:n},i));if(t.id===e)this._cache.upsertEntity(I({...t,folderId:i}));else{try{this._cache.deleteEntity(e)}catch{}this._cache.upsertEntity(I({...t,folderId:i}))}return!0}let{__:o}=this.i18n;if(a.isFolder){if(e===i)throw new r.Xa(o(`Cannot move folder into itself`),`MoveIntoSelf`);if(this._isAncestor(e,i))throw new r.Xa(o(`Cannot move folder into its descendant`),`MoveIntoDescendant`)}if(this._validateDuplicates&&i!==this.normalizeId(a.folderId)&&a.name&&this._checkNameExistsInCache(i,a.name,!!a.isFolder,e)){let e=a.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${a.isFolder?`Folder`:`File`} '${a.name}' already exists in target folder`,e)}let s=R(await this._dataProvider.moveItem(a,i));if(s.id===e){let t=this._cache.moveEntity(e,i);return this._cache.upsertEntity(I({...t,...s})),!0}else{let t=this._cache.deleteEntity(e);return this._cache.upsertEntity(I({...t,...s,folderId:i})),!0}}async moveItems(e,t){let n=this.normalizeId(e);this._validateTargetFolderType(e);let i=t.map(e=>this._cache.getEntity(e));for(let e of i)if(e){if(e.isFolder){let{__:t}=this.i18n;if(e.id===n)throw new r.Xa(t(`Cannot move folder '%s' into itself`).replace(`%s`,e.name),`MoveIntoSelf`);if(this._isAncestor(e.id,n))throw new r.Xa(t(`Cannot move folder '%s' into its descendant`).replace(`%s`,e.name),`MoveIntoDescendant`)}if(this._validateDuplicates&&n!==this.normalizeId(e.folderId)&&e.name&&this._checkNameExistsInCache(n,e.name,!!e.isFolder,e.id)){let t=e.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${e.isFolder?`Folder`:`File`} '${e.name}' already exists in target folder`,t)}}let a={detailed:Array(i.length),success:!0};if(typeof this._dataProvider.moveItems==`function`)a=P(await this._dataProvider.moveItems(i,n),e=>e);else if(typeof this._dataProvider.moveItem==`function`)a.detailed=await Promise.all(t.map(async(e,t)=>{let r=i[t]||{id:e,folderId:null,isFolder:!1,name:e};try{return{requestId:e,data:R(await this._dataProvider.moveItem(r,n)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else throw new r.Xa(`Move items is not supported`,`MoveNotAllowed`);if(a.success){let e=a.detailed||t.map(e=>({requestId:e,success:!0,data:void 0}));for(let t of e)if(t.success)if(!t.data||t.data.id===t.requestId)this._cache.moveEntity(t.requestId,n),t.data&&this._cache.upsertEntity(I({...this._cache.getEntity(t.requestId),...t.data,folderId:n}));else{let e=this._cache.deleteEntity(t.requestId);this._cache.upsertEntity(I({...e,...t.data,folderId:n}))}return a}else{let{__:e}=this.i18n;return{success:!1,error:a.error||new r.Xa(e(`Move items failed`),`MoveNotAllowed`)}}}async copyItem({itemId:e,targetFolderId:t}){if(typeof this._dataProvider.copyItem!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Copy item is not supported`),`CopyNotAllowed`)}let n=this.normalizeId(t);this._validateTargetFolderType(t);let i=this._cache.getEntity(e);if(!i){let t=R(await this._dataProvider.copyItem({id:e,folderId:n},n));return this._cache.copyEntity(e,n,t.id),this._cache.upsertEntity(I({...t,folderId:n})),!0}if(this._validateDuplicates&&i.name){let t=n===this.normalizeId(i.folderId)?e:void 0;if(this._checkNameExistsInCache(n,i.name,!!i.isFolder,t)){let e=i.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${i.isFolder?`Folder`:`File`} '${i.name}' already exists in target folder`,e)}}let a=R(await this._dataProvider.copyItem(i,n));return this._cache.copyEntity(e,n,a.id,{...a,folderId:n})||this._cache.upsertEntity(I({...a,folderId:n})),!0}async copyItems(e,t){let n=this.normalizeId(e);this._validateTargetFolderType(e);let i=t.map(e=>typeof e==`string`?{id:e}:e),a=i.map(e=>e.id),o=a.map((e,t)=>{let n=this._cache.getEntity(e),r=i[t]?.newName;return n?r?{...n,name:r}:n:void 0});if(this._validateDuplicates)for(let e=0;e<o.length;e++){let t=o[e];if(t&&t.name){let i=n===this.normalizeId(t.folderId)?a[e]:void 0;if(this._checkNameExistsInCache(n,t.name,!!t.isFolder,i)){let e=t.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${t.isFolder?`Folder`:`File`} '${t.name}' already exists in target folder`,e)}}}let s={detailed:Array(o.length),success:!0};if(typeof this._dataProvider.copyItems==`function`)s=P(await this._dataProvider.copyItems(o,n),e=>e);else if(typeof this._dataProvider.copyItem==`function`)s.detailed=await Promise.all(a.map(async(e,t)=>{let r=o[t]||{id:e,folderId:null,isFolder:!1};try{return{requestId:e,data:R(await this._dataProvider.copyItem(r,n)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else{let{__:e}=this.i18n;throw new r.Xa(e(`Copy items is not supported`),`CopyNotAllowed`)}if(s.success&&s.detailed)for(let e=0,t=s.detailed.length;e<t;e++){let t=s.detailed[e];if(t.success&&t.data?.id){let e=t.data.folderId||n;!this._cache.copyEntity(t.requestId,e,t.data.id,{...t.data,folderId:e})&&t.data&&this._cache.upsertEntity(I({...t.data,folderId:e}))}}else if(!s.detailed)throw new r.Xa(`batchResult in copy method must have detailed results`,`ValidationError`);return s}async uploadFileByUrl(e){if(e.noFolder){let t=await this.getTempFolder();e={...e,folderId:t.id}}let t=this.normalizeId(e.folderId??this._rootId);try{let n=I({...await this._dataProvider.uploadFileByUrl(e.url,t,{eventSource:e.eventSource}),folderId:t});return this._cache.upsertEntity(n),n}catch(e){throw e}}async updateFile(e,t){let{__:n}=this.i18n;if(typeof this._dataProvider.updateFile!=`function`)throw new r.Xa(n(`Update file is not supported`),`UnsupportedOperation`);let i=this.normalizeId(e),a=this._cache.getEntity(i);if(!a)throw new r.Xa(n(`File with id '%s' not found in cache`).replace(`%s`,e),`FileNotFound`);if(t.name&&t.name!==a.name&&this._validateName(t.name,!1),this._validateDuplicates&&t.name&&t.name!==a.name){let e=this.normalizeId(a.folderId);if(this._checkNameExistsInCache(e,t.name,!1,i))throw new r.Xa(n(`File '%s' already exists in parent folder`).replace(`%s`,t.name),`FileAlreadyExists`)}let o=R(await this._dataProvider.updateFile(a,{...t}));return this._cache.upsertEntity(I({...this._cache.getEntity(i),...o,...t})),this._cache.getEntity(i)}};Object.defineProperty(t,"i",{enumerable:!0,get:function(){return a}}),Object.defineProperty(t,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(t,"r",{enumerable:!0,get:function(){return l}}),Object.defineProperty(t,"t",{enumerable:!0,get:function(){return V}})});
|
|
1
|
+
__emailmaker__.define(`static/core/771d97fd.js`,[`require`,`exports`,`module`,`static/core/d62f3e6a.js`,`static/core/f11f8091.js`],function(e,t,n){let r=e("./d62f3e6a.js"),i=e("./f11f8091.js");var a;(function(e){function t(e,t,n=(e,t)=>e===t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(!n(e[r],t[r]))return!1;return!0}e.isEqual=t;function n(e,t=e=>e){let n=new Set;return e.filter(e=>{let r=t(e);return n.has(r)?!1:(n.add(r),!0)})}e.unique=n;function r(e=[],t=[],n=(e,t)=>e===t){let r=[],i=[],a=[];for(let r of e){let e=t.find(e=>n(r,e));e?a.push({prev:r,next:e}):i.push(r)}for(let i of t)e.find(e=>n(i,e))||r.push(i);return{added:r,removed:i,exists:a}}e.diff=r})(a||={});var o=``,s=`Trash`,c=`Trash`,l=class{_inner;rootPath;trashId;trashPath;ensureFolderTrailingSlash;i18n;_pathToId=new Map;_idToPath=new Map;getUrl;getThumbnailUrl;validateDuplicates;constructor(e,t=o,n=c,r=s,a=!0,l=i.m){this._inner=e,this.rootPath=t,this.trashId=n,this.trashPath=r,this.ensureFolderTrailingSlash=a,this.i18n=l,this.validateDuplicates=this._inner.validateDuplicates,typeof e.getUrl==`function`&&(this.getUrl=t=>e.getUrl({...t,id:this.pathForId(t.id,!1),folderId:t.folderId?this.pathForId(t.folderId,!0):this.rootPath})),typeof e.getThumbnailUrl==`function`&&(this.getThumbnailUrl=t=>e.getThumbnailUrl({...t,id:this.pathForId(t.id,!1),folderId:t.folderId?this.pathForId(t.folderId,!0):this.rootPath})),typeof this._inner.deleteItems!=`function`&&(this.deleteItems=void 0),typeof this._inner.deleteItem!=`function`&&(this.deleteItem=void 0),typeof this._inner.moveItems==`function`?this.moveItem=void 0:this.moveItems=void 0,typeof this._inner.copyItems==`function`?this.copyItem=void 0:this.copyItems=void 0,typeof this._inner.uploadFiles==`function`?this.uploadFile=void 0:this.uploadFiles=void 0,typeof this._inner.clearCache!=`function`&&(this.clearCache=void 0),this._getOrGenerateId(this.rootPath)}setController(e){typeof this._inner.setController==`function`&&this._inner.setController({invalidateItemCache:t=>{let n=t.replace(/^\/+|\/+$/g,``),r=this._pathToId.get(n);r&&e.invalidateItemCache(r)},getCachedItem:t=>{let n=t.replace(/^\/+|\/+$/g,``),r=this._pathToId.get(n);if(r){let t=e.getCachedItem(r);if(t)return{...t,id:this.pathForId(t.id,t.isFolder),folderId:this.pathForId(t.folderId,t.isFolder)}}}})}clearCache(e){if(typeof this._inner.clearCache==`function`)return this._inner.clearCache(e)}_getOrGenerateId(e){if(e===this.rootPath)return;let t=e.replaceAll(/^\/+|\/+$/g,``);if(t===this.trashPath.replaceAll(/^\/+|\/+$/g,``))return this.trashId;if(this._pathToId.has(t))return this._pathToId.get(t);let n=r.$a();return this._pathToId.set(t,n),this._idToPath.set(n,t),n}pathForId(e,t,n){let{__:i}=this.i18n;if(e===``||e===void 0)return this.rootPath;if(e===this.trashId)return this.trashPath;let a=this._idToPath.get(e);if(!a){if(n)return`unknown folder ${e}`;throw new r.Xa(i?i(`Path for id '${e}' not found in mapping`):`Path for id '${e}' not found in mapping`,`FileNotFound`)}let o=0;for(;o<this.rootPath.length&&this.rootPath[o]===`/`;)o++;if(o){let e=0;for(;e<a.length&&a[e]===`/`;)e++;let t=a.slice(e);a=`/`.repeat(o)+t}return t&&this.ensureFolderTrailingSlash&&!a.endsWith(`/`)&&(a+=`/`),a}_updateIdMapping(e,t){let n=t.replace(/^\/+|\/+$/g,``),r=this._idToPath.get(e);r&&this._pathToId.delete(r),this._idToPath.set(e,n),this._pathToId.set(n,e)}async getItems(e){let t=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,n=await this._inner.getItems({...e,folderId:t}),r=n.items.map(e=>{let t=this._getOrGenerateId(e.id),n=e.folderId?this._getOrGenerateId(e.folderId):this._getOrGenerateId(this.rootPath);return{...e,id:t,folderId:n}});return{...n,items:r}}async createFolder(e,t,n){let r=t?this.pathForId(t,!0):this.rootPath,i=await this._inner.createFolder(e,r,n),a=this._getOrGenerateId(i.id),o=i.folderId?this._getOrGenerateId(i.folderId):this._getOrGenerateId(this.rootPath);return{...i,id:a,folderId:o}}async renameItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.renameItem!=`function`)throw new r.Xa(n?n(`Rename item is not supported by inner storage`):`Rename item is not supported by inner storage`,`RenameNotAllowed`);let i=this.pathForId(e.id,e.isFolder),a=i,{...o}=await this._inner.renameItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t);return this._updateIdMapping(e.id,o.id),e.isFolder&&this.remapCachedFolderContents(e.id,a,o.id),o.folderId&&(o={...o,folderId:this._getOrGenerateId(o.folderId)}),{...o,id:this._getOrGenerateId(o.id)}}async deleteItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.deleteItem!=`function`)throw new r.Xa(n?n(`Delete item is not supported by inner storage`):`Delete item is not supported by inner storage`,`DeleteNotAllowed`);let i=this.pathForId(e.id,e.isFolder);await this._inner.deleteItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t),this.recursivelyRemoveMappings(e.id,i)}async uploadFile(e){let{__:t}=this.i18n;if(typeof this._inner.uploadFile!=`function`)throw new r.Xa(t?t(`Upload file is not supported by inner storage`):`Upload file is not supported by inner storage`,`UnsupportedOperation`);let n=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,i=await this._inner.uploadFile({...e,folderId:n}),a=this._getOrGenerateId(i.id),o=i.folderId?this._getOrGenerateId(i.folderId):this._getOrGenerateId(this.rootPath);return{...i,id:a,folderId:o}}async uploadFiles(e){let t=e.folderId,n=e.items?.map(e=>e.folderId)??[],r=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,i={...e,folderId:r,items:e.items?.map(e=>({...e,folderId:e.folderId?this.pathForId(e.folderId,!0):r}))??[]},a=await this._inner.uploadFiles(i);return{...a,detailed:a.detailed?.map((e,r)=>{if(!e?.data)return e;let i=e.data.id?this._getOrGenerateId(e.data.id):void 0,a=e.data.folderId?this._getOrGenerateId(e.data.folderId):n[r]??t??this._getOrGenerateId(this.rootPath);return{...e,data:{...e.data,id:i,folderId:a}}})}}async findFileByUrl(e,t){let n=t?this.pathForId(t,!0):this.rootPath;if(typeof this._inner.findFileByUrl==`function`){let t=await this._inner.findFileByUrl(e,n);if(!t)return;let r=this._getOrGenerateId(t.id),i=t.folderId?this._getOrGenerateId(t.folderId):this._getOrGenerateId(this.rootPath);return{...t,id:r,folderId:i}}}async uploadFileByUrl(e,t,n){let r=t?this.pathForId(t,!0):this.rootPath,i=await this._inner.uploadFileByUrl(e,r,n),a=this._getOrGenerateId(i.id),o=i.folderId?this._getOrGenerateId(i.folderId):this._getOrGenerateId(this.rootPath);return{...i,id:a,folderId:o}}async moveItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.moveItem!=`function`)throw new r.Xa(n?n(`Move item is not supported by inner storage`):`Move item is not supported by inner storage`,`MoveNotAllowed`);let i=this.pathForId(e.id,e.isFolder),a=this.pathForId(t,!0),o=await this._inner.moveItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},a);this._updateIdMapping(e.id,o.id),e.isFolder&&this.remapCachedFolderContents(e.id,i,o.id);let s=this._getOrGenerateId(o.id),c=o.folderId?this._getOrGenerateId(o.folderId):t;return{...o,id:s,folderId:c}}async moveItems(e,t){let{__:n}=this.i18n;if(typeof this._inner.moveItems!=`function`)throw new r.Xa(n?n(`Move items is not supported by inner storage`):`Move items is not supported by inner storage`,`MoveNotAllowed`);let i=t?this.pathForId(t,!0):this.rootPath,a=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder),folderId:e.folderId?this.pathForId(e.folderId,!0):this.rootPath})),o=await this._inner.moveItems(a,i),s=[];if(o.detailed&&o.detailed.length>0){let r=new Map;for(let t=0;t<o.detailed.length;t++){let n=o.detailed[t],i=n.requestId||(t<e.length?e[t].id:void 0);i&&r.set(i,n)}for(let i of e){let a=r.get(i.id)||(o.detailed.length===e.length?o.detailed[e.indexOf(i)]:void 0);if(a?.success&&a.data){if(this._updateIdMapping(i.id,a.data.id),i.isFolder){let e=this.pathForId(i.id,i.isFolder);this.remapCachedFolderContents(i.id,e,a.data.id)}s.push({requestId:i.id,success:!0,data:{...a.data,id:this._getOrGenerateId(a.data.id),folderId:a.data.folderId?this._getOrGenerateId(a.data.folderId):t||this._getOrGenerateId(this.rootPath)}})}else{let e=n?n(`Move operation failed - no detailed result`):`Move operation failed - no detailed result`;s.push({requestId:i.id,success:!1,error:a?.error||{message:e,code:`MoveNotAllowed`}})}}}else for(let t of e){let e=n?n(`Move operation failed - no detailed results`):`Move operation failed - no detailed results`;s.push({requestId:t.id,success:!1,error:{message:e,code:`MoveNotAllowed`}})}return{success:o.success,detailed:s,error:o.error}}async copyItems(e,t){let{__:n}=this.i18n;if(typeof this._inner.copyItems!=`function`)throw new r.Xa(n?n(`Copy items is not supported by inner storage`):`Copy items is not supported by inner storage`,`CopyNotAllowed`);let i=t?this.pathForId(t,!0):this.rootPath,a=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder),folderId:e.folderId?this.pathForId(e.folderId,!0):this.rootPath})),o=await this._inner.copyItems(a,i),s=[];if(o.detailed&&o.detailed.length>0){let r=new Map;for(let t=0;t<o.detailed.length;t++){let n=o.detailed[t],i=n.requestId||(t<e.length?e[t].id:void 0);i&&r.set(i,n)}for(let i of e){let a=r.get(i.id)||(o.detailed.length===e.length?o.detailed[e.indexOf(i)]:void 0);if(a?.success&&a.data?.id){let e=this._getOrGenerateId(a.data.id);s.push({requestId:i.id,success:!0,data:{...a.data,id:e,folderId:a.data.folderId?this._getOrGenerateId(a.data.folderId):t||this._getOrGenerateId(this.rootPath)}})}else{let e=a?a.success?a.data?a.data.id?{message:n?n(`Unknown copy error`):`Unknown copy error`,code:`CopyNotAllowed`}:{message:n?n(`No ID in copied item data`):`No ID in copied item data`,code:`CopyNotAllowed`}:{message:n?n(`No data returned from copy operation`):`No data returned from copy operation`,code:`CopyNotAllowed`}:a.error||{message:n?n(`Copy operation failed`):`Copy operation failed`,code:`CopyNotAllowed`}:{message:n?n(`No detailed result from copy operation`):`No detailed result from copy operation`,code:`CopyNotAllowed`};s.push({requestId:i.id,success:!1,error:e})}}}else for(let t of e){let e=n?n(`No detailed results from copy operation`):`No detailed results from copy operation`;s.push({requestId:t.id,success:!1,error:{message:e,code:`CopyNotAllowed`}})}let c=s.every(e=>e.success),l=n?n(`Copy operation completed with errors`):`Copy operation completed with errors`;return{success:c,detailed:s,error:c?void 0:o.error||{message:l,code:`CopyNotAllowed`}}}async deleteItems(e,t){let{__:n}=this.i18n;if(typeof this._inner.deleteItems!=`function`)throw new r.Xa(n?n(`Delete items is not supported by inner storage`):`Delete items is not supported by inner storage`,`DeleteNotAllowed`);let i=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder),folderId:e.folderId?this.pathForId(e.folderId,!0):this.rootPath})),a=await this._inner.deleteItems(i,t),o=[];if(a.detailed&&a.detailed.length>0){let r=new Map;for(let t=0;t<a.detailed.length;t++){let n=a.detailed[t],i=n.requestId||(t<e.length?e[t].id:void 0);i&&r.set(i,n)}for(let i of e){let s=r.get(i.id)||(a.detailed.length===e.length?a.detailed[e.indexOf(i)]:void 0);if(s?.success){let e=this.pathForId(i.id,i.isFolder);if(t.permanent)this.recursivelyRemoveMappings(i.id,e);else if(this._updateIdMapping(i.id,this.trashPath+`/`+e+(i.isFolder?`/`:``)),i.isFolder){let t=this.pathForId(i.id,i.isFolder);this.remapCachedFolderContents(i.id,t,this.trashPath+`/`+e+(i.isFolder?`/`:``))}o.push({requestId:i.id,success:!0})}else{let e=n?n(`Delete operation failed`):`Delete operation failed`;o.push({requestId:i.id,success:!1,error:s?.error||{message:e,code:`DeleteNotAllowed`}})}}}else for(let r of e)if(a.success){let e=this.pathForId(r.id,r.isFolder);if(t.permanent)this.recursivelyRemoveMappings(r.id,e);else if(this._updateIdMapping(r.id,this.trashPath+`/`+e+(r.isFolder?`/`:``)),r.isFolder){let t=this.pathForId(r.id,r.isFolder);this.remapCachedFolderContents(r.id,t,this.trashPath+`/`+e+(r.isFolder?`/`:``))}o.push({requestId:r.id,success:!0})}else{let e=n?n(`Delete operation failed`):`Delete operation failed`;o.push({requestId:r.id,success:!1,error:a.error||{message:e,code:`DeleteNotAllowed`}})}let s=o.every(e=>e.success),c=n?n(`Some items failed to delete`):`Some items failed to delete`;return{success:s,detailed:o,error:s?void 0:a.error||{message:c,code:`DeleteNotAllowed`}}}remapCachedFolderContents(e,t,n){let r=t.replace(/\/+$/,``),i=n.replace(/\/+$/,``),a=[];for(let[e,t]of this._idToPath.entries()){let n=t.replace(/\/+$/,``);n!==r&&n.startsWith(r+`/`)&&a.push({id:e,oldPath:n})}for(let{id:e,oldPath:t}of a){let n=i+t.substring(r.length);this._updateIdMapping(e,n)}}recursivelyRemoveMappings(e,t){let n=t.replace(/\/+$/,``),r=[],i=[];for(let[e,t]of this._idToPath.entries()){let a=t.replace(/\/+$/,``);(a===n||a.startsWith(n+`/`))&&(r.push(e),i.push(a))}for(let e=0;e<r.length;e++)this._idToPath.delete(r[e]),this._pathToId.delete(i[e])}async copyItem(e,t){let{__:n}=this.i18n;if(typeof this._inner.copyItem!=`function`)throw new r.Xa(n?n(`Copy item is not supported by inner storage`):`Copy item is not supported by inner storage`,`CopyNotAllowed`);let i=this.pathForId(e.id,e.isFolder),a=this.pathForId(t,!0),o=await this._inner.copyItem({...e,id:i,folderId:this.pathForId(e.folderId,!0)},a),s=this._getOrGenerateId(o.id),c=o.folderId?this._getOrGenerateId(o.folderId):t;return{...o,id:s,folderId:c}}async updateFile(e,t){let{__:n}=this.i18n;if(typeof this._inner.updateFile!=`function`)throw new r.Xa(n?n(`Update file is not supported by inner storage`):`Update file is not supported by inner storage`,`UnsupportedOperation`);let i=this.pathForId(e.id,!1),{...a}=await this._inner.updateFile({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t);return this._updateIdMapping(e.id,a.id),a.folderId&&(a={...a,folderId:this._getOrGenerateId(a.folderId)}),{...a,id:this._getOrGenerateId(a.id)}}async getFileData(e,t){let{__:n}=this.i18n,i=this.pathForId(e.id,!1);if(typeof this._inner.getFileData==`function`)return this._inner.getFileData({...e,id:i,folderId:this.pathForId(e.folderId,!0)},t);let a=e.url||(typeof this.getUrl==`function`?await this.getUrl(e):void 0);if(!a)throw new r.Xa(n?n(`Cannot get file data: no url and no inner.getFileData`):`Cannot get file data: no url and no inner.getFileData`,`FileReadError`);return fetch(a,t?.forceReload?{cache:`no-store`}:void 0).then(e=>e.blob())}async cleanTrash(){let{__:e}=this.i18n;if(typeof this._inner.cleanTrash!=`function`)throw new r.Xa(e?e(`Clean trash is not supported by inner storage`):`Clean trash is not supported by inner storage`,`UnsupportedOperation`);return await this._inner.cleanTrash()}},u=``,d=class{map=new Map;static childrenViewKey(e,t){return`v${u}${e}${u}${t}`}static childrenCountKey(e){return`c${u}${e}`}getFreshError(e,t){let n=this.map.get(e);return n?t!==1/0&&Date.now()-n.updatedAt>t?(this.map.delete(e),null):n.error:null}setError(e,t){this.map.set(e,{error:t,updatedAt:Date.now()})}delete(e){this.map.delete(e)}clearChildrenViewErrorsForParent(e){let t=`v${u}${e}${u}`;for(let e of[...this.map.keys()])e.startsWith(t)&&this.map.delete(e)}clearAll(){this.map.clear()}},f=``,p=1800*1e3;function m(e){return e==null||e===``?f:e}function h(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)&&t>=0?t:1/0}function g(e){return!e||typeof e.search!=`string`?!1:e.search.trim().length>0}function _(e){if(!e)return null;let t=e.folderId;return t==null?null:String(t)}function v(e){return!!e&&e.isFolder}function y(){if(typeof globalThis?.crypto?.randomUUID==`function`)return globalThis.crypto.randomUUID();try{let e=globalThis.crypto||globalThis.msCrypto;if(e&&typeof e.getRandomValues==`function`){let t=new Uint8Array(16);e.getRandomValues(t);let n=``;for(let e=0;e<t.length;e++)n+=t[e].toString(16).padStart(2,`0`);return`id_${n}`}}catch{}return`id_fallback_${Date.now().toString(36)}_${Math.floor(Math.random()*(2**53-1)).toString(36).slice(0,8)}`}function b(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`path_folder_not_found`||t.data?.code===`path_folder_not_found`||t.status===404||t.data?.data?.status===404}function x(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24))>>>0;return t.toString(36)}function S(e){if(!e||typeof e!=`object`)return String(e??``);let t=e,n=[],r={},i=[`page`,`pageSize`,`sortBy`,`sortOrder`,`search`,`itemType`,`limit`];for(let e of Object.keys(t).sort()){let a=t[e];i.includes(e)?n.push(`${e}=${String(a??``)}`):r[e]=a}let a=Object.keys(r).length?JSON.stringify(r):``,o=n.join(`|`),s=a?x(a):``;return`${o}${s?`|${s}`:``}`}var C=class e{entities=new Map;childrenByParent=new Map;maxCacheSize=1e4;now(){return Date.now()}checkCacheSize(){if(this.entities.size>this.maxCacheSize){let e=Array.from(this.entities.entries()).sort((e,t)=>e[1].updatedAt-t[1].updatedAt),t=Math.floor(this.maxCacheSize*.1);for(let n=0;n<t&&n<e.length;n++){let[t,r]=e[n];this.deleteEntityById(t)}}}getEntity(e){return this.entities.get(e)?.value}getRecord(e){return this.entities.get(e)}getFileSystemItem(e){let t=this.getEntity(e);return t&&!v(t)?t:void 0}getFolder(e){let t=this.getEntity(e);return t&&v(t)?t:void 0}getChildrenIds(e,t={}){let n=m(e),r=this.childrenByParent.get(n);return r?t.onlyFileSystemItems?Array.from(r.files):t.onlyFolders?Array.from(r.folders):[...Array.from(r.folders),...Array.from(r.files)]:[]}searchByUrl(e){for(let t of this.entities.values())if(t.value.url===e)return t.value;return null}upsertEntity(e){let t=this.entities.get(e.id)??null,n=t?t.value:null,r=n?_(n):null,i=_(e),a=n?v(n):!1,o=v(e),s;if(n&&v(n)&&o){let t=n.childrenCount,r=e.childrenCount;t!==void 0&&r===void 0&&(s=t)}if(n&&(r!==i||a!==o)){let t=m(r),n=this.childrenByParent.get(t);n&&(a?n.folders.delete(e.id):n.files.delete(e.id),n.files.size===0&&n.folders.size===0&&this.childrenByParent.delete(t))}let c=e;s!==void 0&&(c={...e,childrenCount:s}),this.entities.set(e.id,{value:{...c},updatedAt:this.now()}),this.checkCacheSize();let l=m(i),u=this.childrenByParent.get(l);u||(u={files:new Set,folders:new Set},this.childrenByParent.set(l,u)),o?u.folders.add(e.id):u.files.add(e.id)}updateServerChildrenCount(e,t){if(e==null||t==null||Number.isNaN(t))return;let n=this.entities.get(e);if(!n||!v(n.value))return;let r={...n.value,childrenCount:t};this.entities.set(e,{value:r,updatedAt:this.now()})}deleteEntityById(e){let t=this.entities.get(e)??null;if(!t)return{entity:null,parentId:null};let n=t.value,r=_(n),i=m(r),a=this.childrenByParent.get(i);return a&&(v(n)?a.folders.delete(e):a.files.delete(e),a.files.size===0&&a.folders.size===0&&this.childrenByParent.delete(i)),this.entities.delete(e),{entity:{...n},parentId:r}}deleteFolderRecursive(e){let t=this.entities.get(e);if(!t||!v(t.value))return{deletedFolderRecords:[],deletedFileSystemItemRecords:[]};let n=[{id:e,parentId:_(t.value)}],r=[],i=[];for(;n.length;){let e=n.shift();r.push(e);let t=this.childrenByParent.get(m(e.id));if(t){for(let e of Array.from(t.folders)){let t=this.entities.get(e);t&&n.push({id:e,parentId:_(t.value)})}for(let e of Array.from(t.files))i.push(e)}}let a=[];for(let e of i){let t=this.entities.get(e);if(!t)continue;let n=t.value,r=m(_(n)),i=this.childrenByParent.get(r);i&&(i.files.delete(e),i.files.size===0&&i.folders.size===0&&this.childrenByParent.delete(r)),this.entities.delete(e),a.push({...n})}let o=[];for(let e=r.length-1;e>=0;e--){let{id:t,parentId:n}=r[e],i=this.entities.get(t);if(!i)continue;let a=i.value,s=m(a.id);this.childrenByParent.delete(s);let c=m(n),l=this.childrenByParent.get(c);l&&(l.folders.delete(t),l.files.size===0&&l.folders.size===0&&this.childrenByParent.delete(c)),this.entities.delete(t),o.push({...a})}return{deletedFolderRecords:o,deletedFileSystemItemRecords:a}}moveEntityById(e,t){let n=this.entities.get(e)??null;if(!n)return null;let r=n.value,i=m(_(r)),a=this.childrenByParent.get(i);a&&(v(r)?a.folders.delete(e):a.files.delete(e),a.files.size===0&&a.folders.size===0&&this.childrenByParent.delete(i));let o={...r,folderId:t};if(v(r)&&v(o)){let e=r.childrenCount;e!==void 0&&(o.childrenCount=e)}this.entities.set(e,{value:o,updatedAt:this.now()});let s=m(t),c=this.childrenByParent.get(s);return c||(c={files:new Set,folders:new Set},this.childrenByParent.set(s,c)),v(o)?c.folders.add(e):c.files.add(e),{...o}}copyFileSystemItem(e,t,n){let r=this.entities.get(e)??null;if(!r||v(r.value))return null;let i={...r.value,id:t,folderId:n};return this.upsertEntity(i),{...i}}copyFolderShallow(e,t,n){let r=this.entities.get(e)??null;if(!r||!v(r.value))return null;let i={...r.value,id:t,folderId:n};return this.upsertEntity(i),{...i}}isEntityStale(e,t){let n=this.entities.get(e)??null;return n?t===1/0?!1:this.now()-n.updatedAt>t:!0}touch(e,t){let n=this.entities.get(e);n&&(n.updatedAt=t??this.now())}getEntitiesByIds(e){return e.map(e=>this.entities.get(e)?.value??null)}searchByName(e,t){if(!e||e.trim()===``)return[];let n=t?.parentId,r=t?.recursive??!1,i=t?.itemType??`all`,a=t?.caseSensitive??!1,o=t?.limit??1/0,s=a?e.trim():e.trim().toLowerCase(),c=[],l=null;if(n!==void 0){l=new Set;let e=m(n);if(l.add(e),r){let t=[e],n=new Set;for(;t.length>0;){let e=t.shift();if(n.has(e))continue;n.add(e);let r=this.childrenByParent.get(e);if(r)for(let e of r.folders)l.add(e),t.push(e)}}}for(let[,e]of this.entities){if(c.length>=o)break;let t=e.value;if(l!==null){let e=m(_(t));if(!l.has(e))continue}if(i===`file`&&v(t)||i===`folder`&&!v(t))continue;let n=t.name??``;(a?n:n.toLowerCase()).includes(s)&&c.push({...t})}return c}toJSON(){return{entities:Array.from(this.entities.entries()),childrenByParent:Array.from(this.childrenByParent.entries()).map(([e,t])=>[e,{files:Array.from(t.files),folders:Array.from(t.folders)}])}}static fromJSON(t){let n=new e;for(let[e,r]of t.entities??[])n.entities.set(e,{value:r.value,updatedAt:r.updatedAt});for(let[e,r]of t.childrenByParent??[])n.childrenByParent.set(e,{files:new Set(r.files),folders:new Set(r.folders)});return n}},w=class e{views=new Map;strategy;ttl;errorTtl;entityTtl;failedRequests;serverChildrenCountHandler;childrenCountInvalidator;maxViewsPerParent=50;constructor(e={},t=p,n,r,i=new d){this.strategy={allowSortedInsert:e.allowSortedInsert??!0,allowSearchInsert:e.allowSearchInsert??!0,invalidateOnPaginationFull:e.invalidateOnPaginationFull??!0,preloadPagesBefore:e.preloadPagesBefore??0,preloadPagesAfter:e.preloadPagesAfter??1,comparator:e.comparator,filterMatch:e.filterMatch},this.ttl=t,this.errorTtl=n??t,this.entityTtl=r??t,this.failedRequests=i}setServerChildrenCountHandler(e){this.serverChildrenCountHandler=e}setChildrenCountInvalidator(e){this.childrenCountInvalidator=e}now(){return Date.now()}parentKey(e){return m(e??null)}isExpired(e){return e==null?!0:this.ttl===1/0?!1:this.now()-e>this.ttl}areEntitiesStale(e,t){return e?e.some(e=>!t.getEntity(e)||t.isEntityStale(e,this.entityTtl)):!0}isEntityTypeCompatible(e,t){return!!(!t||t===`all`||t===`file`&&!v(e)||t===`folder`&&v(e))}cleanupOldViews(e){if(e.size<=this.maxViewsPerParent)return;let t=Array.from(e.entries()).sort((e,t)=>(t[1].view.updatedAt||0)-(e[1].view.updatedAt||0));for(;e.size>this.maxViewsPerParent&&t.length>0;){let[n]=t.pop();e.delete(n)}}async getOrCreateChildren(e,t,n,r){let i=this.parentKey(e),a=S(t??{}),o=this.views.get(i);o||(o=new Map,this.views.set(i,o));let s=d.childrenViewKey(i,a),c=o.get(a);c||(c={params:t,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:null}},o.set(a,c),this.cleanupOldViews(o));let l=this.failedRequests.getFreshError(s,this.errorTtl);if(l!=null)throw l;if(c.view.value&&!this.isExpired(c.view.updatedAt)&&!this.areEntitiesStale(c.view.value,r)&&!c.view.meta?.stale){let e=c.view.value.map(e=>r.getEntity(e)).filter(Boolean),t=c.params?.itemType||`all`;return{items:e.filter(e=>this.isEntityTypeCompatible(e,t)),...c.view.meta??{}}}if(c.view.promise)return c.view.promise;let u=y();c.view.loadId=u;let f=(async()=>{try{let a=await n(e,t),o=g(t),l=o?{...a,total:void 0}:a,d=this.views.get(i)?.get(S(t));if(!d||d.view.loadId!==u){let e=Error(`StaleLoad`);throw e.name=`StaleLoad`,e}for(let e of l.items)r.upsertEntity(e);c.view.value=l.items.map(e=>e.id);let{items:f,...p}=l,m={...p};c.view.meta=m,c.view.meta.stale=!1,this.failedRequests.delete(s),c.view.updatedAt=this.now(),!o&&typeof m.total==`number`&&(this.serverChildrenCountHandler?this.serverChildrenCountHandler(e??null,m.total,r):r.updateServerChildrenCount(e,m.total));let _=this.strategy.preloadPagesAfter??0,v=this.strategy.preloadPagesBefore??0,y=h(t?.pageSize);if((_>0||v>0)&&Number.isFinite(y)){let i=e,a={...t},o=typeof m.totalPages==`number`?m.totalPages:1,s=t?.page??1,c=y,l=n,d=u;setTimeout(()=>{this.preloadPagesAsync(i,a,s,o,c,_,v,r,m,l,d)},0)}return l}catch(e){if(e?.name===`StaleLoad`)throw this.failedRequests.delete(s),c.view.value=void 0,c.view.updatedAt=this.now(),e;let t=e,n=t?.status??t?.data?.status,r=t?.code??t?.data?.code;if(n===404||r===`FileNotFound`||r===`FolderNotFound`||r===`path_folder_not_found`)return this.failedRequests.delete(s),c.view.value=[],c.view.meta={total:0,totalPages:0},c.view.updatedAt=this.now(),{items:[],total:0,totalPages:0};throw this.failedRequests.setError(s,e),c.view.value=void 0,c.view.updatedAt=this.now(),e}finally{c.view.promise=null}})();return c.view.promise=f,f}async preloadPagesAsync(e,t,n,r,i,a,o,s,c,l,u){try{let i=this.parentKey(e),c=this.views.get(i);if(!c)return;let d=c.get(S(t));if(!d||u!=null&&d.view.loadId!==u)return;let f=c.get(S(t));if(!f?.view.meta)return;let p=typeof f.view.meta.totalPages==`number`?f.view.meta.totalPages:1;if(p!==r)return;let m=async n=>{let r={...t,page:n};try{let a=await l(e,r),o=this.views.get(i);if(!o)return;let c=o.get(S(t));if(!c||u!=null&&c.view.loadId!==u||c.view.loadId!==u)return;for(let e of a.items)s.upsertEntity(e);let d=S(r),f=o.get(d);if(f||(f={params:r,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:c.view.loadId}},o.set(d,f),this.cleanupOldViews(o)),!f.view.value||this.isExpired(f.view.updatedAt)){f.view.value=a.items.map(e=>e.id);let{items:e,...t}=a;f.view.meta={...t,page:n,totalPages:p},f.view.updatedAt=this.now()}}catch{}};if(a>0&&n<p)for(let e=1;e<=Math.min(a,p-n);e++){let r=n+e,i=S({...t,page:r}),a=c.get(i);(!a?.view.value||this.isExpired(a.view.updatedAt))&&m(r)}if(o>0&&n>1)for(let e=1;e<=Math.min(o,n-1);e++){let r=n-e,i=S({...t,page:r}),a=c.get(i);(!a?.view.value||this.isExpired(a.view.updatedAt))&&m(r)}}catch{}}removeEmptyPageIfNeeded(e,t,n,r,i){if(t.view.value&&t.view.value.length===0&&n<r){let t=S({...i,page:n});e.delete(t)}}updateTotalPagesForAllViews(e,t){for(let[,n]of e)n.view.meta&&(n.view.meta.totalPages=t)}isParamsSame(e,t){let n=Object.keys(e??{}).filter(e=>e!==`page`).sort(),r=Object.keys(t??{}).filter(e=>e!==`page`).sort();if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++){let a=n[i];if(a!==r[i]||e[a]!==t[a])return!1}return!0}syncTotalsInSameViews(e,t){let n=t.view.meta;if(!n||typeof n.total!=`number`)return;let r=Number(n.total),i=h(t.params?.pageSize),a=Number.isFinite(i)&&i>0?Math.max(1,Math.ceil(r/i)):void 0;for(let[,n]of e)this.isParamsSame(n.params??{},t.params??{})&&(n.view.meta||(n.view.meta={}),n.view.meta.total=r,a!==void 0&&(n.view.meta.totalPages=a))}canSafelyModifySortedView(e){return!!(!e.sortBy&&!e.sortOrder||this.strategy.comparator)}cascadeShiftPages(e,t,n,r,i,a,o){let s=t,c=n,l=!1,u=0;for(;s.view.value&&s.view.value.length<r&&c<i&&u<100;){u++;let t=S({...o,page:c+1}),n=e.get(t);if(!n?.view.value||this.isExpired(n.view.updatedAt)){s.view.meta={...s.view.meta??{},stale:!0};break}let i=r-s.view.value.length,d=n.view.value.slice(0,i).filter(e=>a.getEntity(e));if(d.length===0){s.view.meta={...s.view.meta??{},stale:!0};break}if(s.view.value=[...s.view.value,...d],s.view.updatedAt=Date.now(),n.view.value=n.view.value.slice(d.length),n.view.updatedAt=Date.now(),n.view.value.length===0){let t=c+1,r=n.view.meta;if(t<(r&&typeof r.totalPages==`number`?r.totalPages:1)){let n=S({...o,page:t});e.delete(n),l=!0}break}s=n,c++}return(!s.view.value||s.view.value.length<r)&&c>=i&&(s.view.meta={...s.view.meta??{},stale:!0}),l}cascadeShiftToNextPage(e,t,n,r,i,a,o){if(!t.view.value||t.view.value.length<=r)return!1;if(n-(o.page||1)>=10)return t.view.meta={...t.view.meta??{},stale:!0},!1;let s={...o,page:n+1},c=S(s),l=e.get(c),u=!1;if(!l?.view.value||this.isExpired(l.view.updatedAt))if(n>=i){l={params:s,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:null}},e.set(c,l),this.cleanupOldViews(e);let r=t.view.meta;r&&(l.view.meta={...r,page:n+1}),u=!0}else return t.view.meta={...t.view.meta??{},stale:!0},!1;let d=t.view.value.slice(r).filter(e=>a.getEntity(e));if(d.length===0)return u&&e.delete(c),!1;t.view.value=t.view.value.slice(0,r),t.view.updatedAt=Date.now(),l.view.value=[...d,...l.view.value??[]],l.view.updatedAt=Date.now();let f=l.view.meta&&typeof l.view.meta.totalPages==`number`?l.view.meta.totalPages:i;if(!u&&this.cascadeShiftToNextPage(e,l,n+1,r,f,a,o))return!0;if(!l.view.value||l.view.value.length===0){let t=n+1,r=l.view.meta,i=r&&typeof r.totalPages==`number`?r.totalPages:1;this.removeEmptyPageIfNeeded(e,l,t,i,o)}return u}tryInsertSorted(e,t,n){let r=this.strategy.comparator;if(!r||!e.view.value)return!1;let i=e.params?.itemType||`all`;if(!this.isEntityTypeCompatible(t,i))return!1;let a=e.view.value.map(e=>n.getEntity(e));if(a.some(e=>!e))return!1;let o=0,s=a.length;for(;o<s;){let n=Math.floor((o+s)/2),i=r(t,a[n],e.params);if(typeof i!=`number`||Number.isNaN(i))return!1;i>=0?o=n+1:s=n}return e.view.value.includes(t.id)?(e.view.updatedAt=this.now(),!0):(e.view.value=[...e.view.value.slice(0,o),t.id,...e.view.value.slice(o)],e.view.updatedAt=this.now(),e.view.meta&&typeof e.view.meta.total==`number`&&(e.view.meta.total=Number(e.view.meta.total)+1),!0)}updateChildrenCountForOperation(e,t,n,r){let i=_(t);switch(e){case`delete`:this.adjustChildrenCount(r,i,-1),this.childrenCountInvalidator?.(i);break;case`insert`:case`copy`:this.adjustChildrenCount(r,i,1),this.childrenCountInvalidator?.(i);break;case`move`:this.adjustChildrenCount(r,n,-1),this.adjustChildrenCount(r,i,1),this.childrenCountInvalidator?.(n),this.childrenCountInvalidator?.(i);break}}adjustChildrenCount(e,t,n){if(!t)return;let r=e.getFolder(t);if(r&&typeof r.childrenCount==`number`){let i=Math.max(0,r.childrenCount+n);e.updateServerChildrenCount(t,i)}}smartInvalidateChildrenViews(e,t,n,r,i,a){if(!t)return;this.updateChildrenCountForOperation(n,t,i,r);let o=this.parentKey(e),s=this.views.get(o);if(s)for(let[,e]of s){let a=e.params??{},o=a?.page??1,c=h(a?.pageSize),l=Number.isFinite(c),u=!!(a?.sortBy||a?.sortOrder),d=!!a?.search,f=a?.itemType||`all`;if(this.isEntityTypeCompatible(t,f)){if(d&&this.strategy.filterMatch&&!this.strategy.filterMatch(t,e.params)){e.view.value?.includes(t.id)&&(e.view.value=e.view.value.filter(e=>e!==t.id),e.view.meta&&typeof e.view.meta.total==`number`&&(e.view.meta.total=Math.max(0,e.view.meta.total-1)),e.view.updatedAt=Date.now());continue}if(!e.view.value){e.view.meta&&(e.view.meta.stale=!0),e.view.loadId=y(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0);continue}if(e.view.value.includes(t.id),this.shouldInvalidateCompletely(e,n,t,u,l,o)){e.view.meta={...e.view.meta??{},stale:!0},e.view.loadId=y(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0);continue}switch(n){case`delete`:this.handleDelete(s,e,o,c,l,t,r);break;case`insert`:case`copy`:this.handleInsert(s,e,o,c,l,u,t,r);break;case`update`:this.handleUpdate(s,e,o,c,l,u,d,t,r);break;case`move`:this.handleMove(s,e,o,c,l,u,t,i,r);break}}}}shouldInvalidateCompletely(e,t,n,r,i,a){return!!(i&&a>1&&(t===`insert`||t===`delete`||t===`move`)||r&&!this.strategy.comparator&&(t===`insert`||t===`move`)||this.isExpired(e.view.updatedAt))}tryReinsertEntity(e,t,n,r,i){let a=e.params?.itemType||`all`;if(!this.isEntityTypeCompatible(t,a))return!1;if(this.strategy.comparator&&this.strategy.filterMatch){if(!this.strategy.filterMatch(t,e.params))return!1;if(this.tryInsertSorted(e,t,n))return!0}let o=e.params??{};return(o.sortBy||o.sortOrder)&&!this.canSafelyModifySortedView(o)?!1:!r||e.view.value.length<i?(e.view.value.push(t.id),!0):!1}handleDelete(e,t,n,r,i,a,o){let s=t.view.value.includes(a.id);if(s&&(t.view.value=t.view.value.filter(e=>e!==a.id)),t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}if(t.view.updatedAt=Date.now(),s&&i&&t.view.value.length<r&&o){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,o,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}handleInsert(e,t,n,r,i,a,o,s){if(!t.view.value.includes(o.id)){if(a&&this.strategy.allowSortedInsert&&this.strategy.comparator&&s){if(this.tryInsertSorted(t,o,s)&&t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}if(i&&t.view.value.length>r&&s){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftToNextPage(e,t,n,r,a,s,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=t.view.meta.totalPages+1;t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}}else if(!i||t.view.value.length<r){if(t.view.value.push(o.id),t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}t.view.updatedAt=Date.now()}else t.view.meta={...t.view.meta??{},stale:!0};t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}}handleUpdate(e,t,n,r,i,a,o,s,c){let l=t.view.value.includes(s.id),u=this.isEntityTypeCompatible(s,t.params?.itemType||`all`);if(l&&!u){if(t.view.value=t.view.value.filter(e=>e!==s.id),t.view.meta&&typeof t.view.meta.total==`number`&&(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}if(t.view.updatedAt=Date.now(),i&&t.view.value.length<r&&c){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,c,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(l&&(a||o)){if(t.view.value=t.view.value.filter(e=>e!==s.id),!this.tryReinsertEntity(t,s,c,i,r)){if(t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}if(i&&t.view.value.length<r&&c){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,c,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}}else if(t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}t.view.updatedAt=Date.now(),t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(l){t.view.updatedAt=Date.now(),t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(u&&!o){if(a&&this.strategy.allowSortedInsert&&this.strategy.comparator&&c){if(this.tryInsertSorted(t,s,c)&&t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}}else if(!i||t.view.value.length<r){if(t.view.value.push(s.id),t.view.meta&&typeof t.view.meta.total==`number`){if(t.view.meta.total+=1,i&&Number.isFinite(r)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}this.syncTotalsInSameViews(e,t)}t.view.updatedAt=Date.now()}else t.view.meta={...t.view.meta??{},stale:!0};t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}}handleMove(e,t,n,r,i,a,o,s,c){if(t.view.value.includes(o.id)){if(t.view.value=t.view.value.filter(e=>e!==o.id),t.view.meta&&typeof t.view.meta.total==`number`&&(t.view.meta.total=Math.max(0,t.view.meta.total-1),i&&Number.isFinite(r)&&typeof t.view.meta.total==`number`)){let e=r;e>0&&(t.view.meta.totalPages=Math.max(1,Math.ceil(t.view.meta.total/e)))}if(t.view.updatedAt=Date.now(),i&&t.view.value.length<r&&c){let i=t.view.meta,a=i&&typeof i.totalPages==`number`?i.totalPages:1;if(this.cascadeShiftPages(e,t,n,r,a,c,t.params??{})&&t.view.meta&&typeof t.view.meta.totalPages==`number`){let n=Math.max(1,t.view.meta.totalPages-1);t.view.meta.totalPages=n,this.updateTotalPagesForAllViews(e,n)}}this.syncTotalsInSameViews(e,t)}t.view.loadId=y(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)}forceInvalidateChildrenViews(e){let t=this.parentKey(e??null);this.failedRequests.clearChildrenViewErrorsForParent(t);let n=this.views.get(t);if(n)for(let[,e]of n)e.view.value=void 0,e.view.meta=void 0,e.view.promise=null,e.view.updatedAt=0,e.view.loadId=y(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0)}getKnownTotal(e){let t=this.parentKey(e??null),n=this.views.get(t);if(!n)return;let r=null;for(let[,e]of n){let t=e.view.meta;t&&typeof t.total==`number`&&(!r||(e.view.updatedAt??0)>r.updatedAt)&&(r={total:Number(t.total),updatedAt:e.view.updatedAt??0})}return r?r.total:void 0}toJSON(){return{views:Array.from(this.views.entries()).map(([e,t])=>[e,Array.from(t.entries())]),ttl:this.ttl,errorTtl:this.errorTtl,entityTtl:this.entityTtl,strategy:{allowSortedInsert:this.strategy.allowSortedInsert,allowSearchInsert:this.strategy.allowSearchInsert,invalidateOnPaginationFull:this.strategy.invalidateOnPaginationFull,preloadPagesBefore:this.strategy.preloadPagesBefore,preloadPagesAfter:this.strategy.preloadPagesAfter}}}static fromJSON(t,n){let r=n?.ttl??t?.ttl??18e5,i=new e({},r,n?.errorTtl??t?.errorTtl??r,void 0,n?.failedRequests??new d);for(let[e,n]of t.views??[]){let t=new Map;for(let[e,r]of n){let n=r;n?.view&&`error`in n.view&&delete n.view.error,t.set(e,n)}i.views.set(e,t)}return i}},T=class e{entities;views;ttl;errorTtl;failedRequests;childrenCountPromises=new Map;invalidateChildrenCountCache(e){let t=m(e??``);this.childrenCountPromises.delete(t),this.failedRequests.delete(d.childrenCountKey(t))}constructor(e={},t=p,n){this.failedRequests=new d,this.ttl=t,this.errorTtl=n??t,this.entities=new C,this.views=new w(e,t,this.errorTtl,void 0,this.failedRequests),this.views.setServerChildrenCountHandler((e,t,n)=>{this.handleServerReportedChildrenCount(e,t,n??this.entities)}),this.views.setChildrenCountInvalidator(e=>{this.invalidateChildrenCountCache(e)})}getEntity(e){return this.entities.getEntity(e)??null}getFileSystemItem(e){return this.entities.getFileSystemItem(e)??null}getFolder(e){return this.entities.getFolder(e)??null}async getOrCreateChildren(e,t,n){return this.views.getOrCreateChildren(e,t,n,this.entities)}upsertEntity(e){let t=this.entities.getEntity(e.id),n=t?_(t):null,r=_(e),i=t?v(t):!1,a=v(e);if(this.entities.upsertEntity(e),t){if(n!==r||i!==a){this.views.smartInvalidateChildrenViews(n,t,`delete`,this.entities),this.views.smartInvalidateChildrenViews(r,e,`insert`,this.entities);return}this.views.smartInvalidateChildrenViews(r,e,`update`,this.entities,void 0,t)}else this.views.smartInvalidateChildrenViews(r,e,`insert`,this.entities)}isAncestor(e,t){let n=t,r=new Set;for(;n&&!r.has(n);){if(r.add(n),m(n)===m(e))return!0;let t=this.entities.getEntity(n);if(!t)break;n=_(t),n===null&&(n=f)}return!1}moveEntity(e,t){let n=this.entities.getEntity(e);if(!n||v(n)&&t!==null&&this.isAncestor(e,t))return null;let r=_(n),i=this.entities.moveEntityById(e,t);return i?(this.views.smartInvalidateChildrenViews(r,n,`delete`,this.entities),this.views.smartInvalidateChildrenViews(t,i,`insert`,this.entities),i):null}copyEntity(e,t,n,r){let i=this.entities.getEntity(e);if(!i)return null;let a=null;if(v(i)){let n=[e],i=[];for(;n.length;){let e=n.shift();i.push(e);let t=this.entities.getChildrenIds(e,{onlyFolders:!0});for(let e of t)n.push(e)}let o=new Map;for(let e of i)o.set(e,y());for(let n of i){let i=this.entities.getFolder(n),a=o.get(n),s=_(i),c=s===null?t:o.get(s)??null,l={...i,...n===e?r:void 0,id:a,folderId:(n===e?r?.folderId:void 0)??c};this.entities.upsertEntity(l)}for(let e of i){let t=o.get(e),n=this.entities.getChildrenIds(e,{onlyFileSystemItems:!0});for(let e of n){let n=this.entities.getFileSystemItem(e);if(!n)continue;let r=y(),i={...n,id:r,folderId:t};this.entities.upsertEntity(i)}}a=this.entities.getEntity(o.get(e))??null}else{let i=n??y();if(a=this.entities.copyFileSystemItem(e,i,t??null),a&&r){let e={...a,...r,id:i,folderId:r.folderId??t??null};this.entities.upsertEntity(e),a=e}}return a&&this.views.smartInvalidateChildrenViews(t,a,`copy`,this.entities),a}searchByUrl(e){return this.entities.searchByUrl(e)??null}deleteEntity(e){let t=this.entities.getEntity(e);if(!t)return null;if(v(t)){let{deletedFolderRecords:n,deletedFileSystemItemRecords:r}=this.entities.deleteFolderRecursive(e);for(let e of r)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of n)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of n)this.views.forceInvalidateChildrenViews(e.id);return t}else{let{entity:t,parentId:n}=this.entities.deleteEntityById(e);return t&&this.views.smartInvalidateChildrenViews(n,t,`delete`,this.entities),t}}deleteFolderRecursive(e){let{deletedFolderRecords:t,deletedFileSystemItemRecords:n}=this.entities.deleteFolderRecursive(e);for(let e of n)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of t)this.views.smartInvalidateChildrenViews(e.folderId,e,`delete`,this.entities);for(let e of t)this.views.forceInvalidateChildrenViews(e.id);return{deletedFileSystemItemIds:n.map(e=>e.id),deletedFolderIds:t.map(e=>e.id)}}forceInvalidate(e){let t=this.entities.getEntity(e);if(!t)return;let n=new Set;if(v(t)){let t=[e];for(;t.length;){let e=t.pop();if(n.has(e))continue;n.add(e),this.views.forceInvalidateChildrenViews(e),this.invalidateChildrenCountCache(e);let r=this.entities.getChildrenIds(e,{onlyFolders:!0});for(let e of r)t.push(e)}}else{let e=t.folderId??null;this.views.forceInvalidateChildrenViews(e),this.invalidateChildrenCountCache(e)}}getChildrenIds(e){return this.entities.getChildrenIds(e)}searchByName(e,t){return this.entities.searchByName(e,t)}async getChildrenCount(e=``,t){let n=m(e),r=d.childrenCountKey(n),i=this.failedRequests.getFreshError(r,this.errorTtl);if(i!=null)return Promise.reject(i);let a=this.childrenCountPromises.get(n);if(a)return a;let o=(async()=>{try{let n=this.entities.getFolder(e);if(n&&typeof n.childrenCount==`number`)return this.failedRequests.delete(r),n.childrenCount;let i=this.views.getKnownTotal(e);if(typeof i==`number`)return n&&this.handleServerReportedChildrenCount(e,i,this.entities),this.failedRequests.delete(r),i;if(t){let n=await t(e);return this.entities.getFolder(e)&&this.handleServerReportedChildrenCount(e,n,this.entities),this.failedRequests.delete(r),n}return this.failedRequests.delete(r),this.entities.getChildrenIds(e).length}catch(e){if(this.childrenCountPromises.delete(n),b(e))return this.failedRequests.delete(r),0;throw this.failedRequests.setError(r,e),e}finally{this.childrenCountPromises.delete(n)}})();return this.childrenCountPromises.set(n,o),o}toJSON(){return{entities:this.entities.toJSON(),views:this.views.toJSON(),ttl:this.ttl,errorTtl:this.errorTtl}}static fromJSON(t,n){let r=t?.ttl??18e5,i=t?.errorTtl??r,a=new e(n??{},r,i),o=C.fromJSON(t?.entities??{}),s=w.fromJSON(t?.views??{},{failedRequests:a.failedRequests,ttl:r,errorTtl:i});return n&&(s.strategy={allowSortedInsert:n.allowSortedInsert??!0,allowSearchInsert:n.allowSearchInsert??!0,invalidateOnPaginationFull:n.invalidateOnPaginationFull??!0,preloadPagesBefore:n.preloadPagesBefore??0,preloadPagesAfter:n.preloadPagesAfter??1,comparator:n.comparator,filterMatch:n.filterMatch}),a.entities=o,a.views=s,s.setServerChildrenCountHandler((e,t,n)=>{a.handleServerReportedChildrenCount(e,t,n??o)}),s.setChildrenCountInvalidator(e=>{a.invalidateChildrenCountCache(e)}),a}handleServerReportedChildrenCount(e,t,n){this.checkAndResolveChildrenCountConflict(e,t,n),this.invalidateChildrenCountCache(e)}checkAndResolveChildrenCountConflict(e,t,n){if(!n||t===void 0)return;let r=e??null;if(!r){n.updateServerChildrenCount(r,t);return}let i=n.getFolder(r)?.childrenCount;i!==void 0&&i!==t&&this.views.forceInvalidateChildrenViews(r),n.updateServerChildrenCount(r,t)}},E=class{deletingIds=new Set;beginDeleting(e){for(let t of e)t&&this.deletingIds.add(t)}endDeleting(e){for(let t of e)t&&this.deletingIds.delete(t)}isDeleting(e){return!!e&&this.deletingIds.has(e)}},D=``,O=`Trash`,k=`Edited`,A=1e4,j=1e4,M=25,N=10;function P(e,t){let n=e??{},r=Array.isArray(n.detailed)?n.detailed.map(e=>({requestId:e.requestId??e.id,success:!!e.success,data:t(e.data),error:e.error})):void 0;return{success:!!n.success,error:n.error,detailed:r}}function F(e){return e==null?``:String(e)}function I(e){return{...e,name:F(e.name)}}function L(e){return(e??[]).map(I)}function R(e){return!e||typeof e!=`object`||!(`name`in e)?e:{...e,name:F(e.name)}}function z(e){return e?e.replaceAll(`\\`,`/`).split(`/`).filter(Boolean):[]}function B(e){let t=Object.getPrototypeOf(e);for(let n of Object.getOwnPropertyNames(t))n!==`constructor`&&typeof Object.getOwnPropertyDescriptor(t,n)?.value==`function`&&(e[n]=e[n].bind(e))}var V=class{_dataProvider;_options;_pathOptions;i18n;_cache;_rootId;_useSoftDelete;_enableTrash;_validateDuplicates;_blobFetchForceReloadOnceIds=new Set;_mutationRegistry=new E;async _findOrCreateFolderByPath(e){let{__:t}=this.i18n,n=z(e);if(n.length>N)throw new r.Xa(t(`Path depth exceeds maximum limit of %s`).replace(`%s`,String(N)),`ValidationError`);let i;for(let a of n){let{files:n}=await this.getFiles({folderId:i?.id||``,itemType:`folder`}),o=n.find(e=>e.name===a);if(o){if(!o.isFolder)throw new r.Xa(t(`Path component '%s' in '%s' is not a folder`).replace(`%s`,a).replace(`%s`,e),`ValidationError`);i={id:o.id,name:o.name,parentId:o.folderId}}else{if(typeof this._dataProvider.createFolder!=`function`)throw new r.Xa(t(`Create folder operation is not supported by data provider`),`UnsupportedOperation`);i=await this.createFolder({name:a,parentId:i?.id})}}return i}getTrashFolder(){return this._findOrCreateFolderByPath(this._pathOptions.trashPath||O)}getTempFolder(){return this._findOrCreateFolderByPath(this._pathOptions.tempPath||k)}constructor(e,t={},n,r=i.m){this._dataProvider=e,this._options=t,this._pathOptions=n,this.i18n=r,B(this),this._useSoftDelete=this._pathOptions.useSoftDelete,this._rootId=this._pathOptions.rootId||D,this._enableTrash=this._options.enableTrash===void 0?!0:this._options.enableTrash,this._validateDuplicates=this._dataProvider.validateDuplicates,this._cache=new T(t.cacheStrategy||{},t.cacheStrategy?.ttl,t.cacheStrategy?.errorTtl),this.setController({invalidateItemCache:e=>{this._cache.forceInvalidate(e)},getCachedItem:e=>this._cache.getEntity(e)}),typeof this._dataProvider.clearCache!=`function`&&(this.clearCache=void 0)}setController(e){typeof this._dataProvider.setController==`function`&&this._dataProvider.setController(e)}async clearCache(e){if(typeof this._dataProvider.clearCache!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Clear cache is not supported by data provider`),`UnsupportedOperation`)}this._cache.forceInvalidate(this._rootId),await this._dataProvider.clearCache(e)}markNextFileBlobFetchBypassHttpCache(e){this._blobFetchForceReloadOnceIds.add(this.normalizeId(e))}normalizeId(e){return!e||e===`root`||e===`folders`?this._rootId:e}_isDeletingId(e){return this._mutationRegistry.isDeleting(this.normalizeId(e))}_collectDeletingIds(e){let t=this.normalizeId(e),n=new Set([t]);if(!this._cache.getEntity(t)?.isFolder)return Array.from(n);let r=[t];for(;r.length>0;){let e=r.pop(),t=this._cache.getChildrenIds(e);for(let e of t)n.has(e)||(n.add(e),this._cache.getEntity(e)?.isFolder&&r.push(e))}return Array.from(n)}_emptyFilesResult(e,t){return{files:[],pagination:{...typeof e==`number`?{page:e}:{},...typeof t==`number`?{limit:t}:{},total:0,totalPages:1,hasNext:!1,hasPrev:!1}}}_validateName(e,t=!1){if(!e||e.trim().length===0){let e=t?`FolderInvalidName`:`FileInvalidName`,{__:n}=this.i18n;throw new r.Xa(n(t?`Folder name cannot be empty`:`File name cannot be empty`),e)}if(/[\/\\:*?"<>|]/.test(e)){let{__:n}=this.i18n,i=t?`FolderInvalidName`:`FileInvalidName`;throw new r.Xa(t?n(`Folder name contains invalid characters: %s`).replace(`%s`,e):n(`File name contains invalid characters: %s`).replace(`%s`,e),i)}}_validateTargetFolderType(e){let t=this.normalizeId(e);if(t===this._rootId)return;let n=this._cache.getEntity(t);if(n&&!n.isFolder){let{__:t}=this.i18n;throw new r.Xa(t(`Target item with id '%s' is not a folder`).replace(`%s`,e),`ValidationError`)}}_checkNameExistsInCache(e,t,n,r){let i=this.normalizeId(e),a=this._cache.getChildrenIds(i);for(let e of a){let i=this._cache.getEntity(e);if(i&&i.name===t&&!!i.isFolder===n&&(!r||i.id!==r))return!0}return!1}async _getUrl(e){if(e.url)return e.url;try{return typeof this._dataProvider?.getUrl==`function`&&this._dataProvider.getUrl(e)||``}catch{}return``}async _getThumbnailUrl(e){if(e.thumbnailUrl)return e.thumbnailUrl;try{return typeof this._dataProvider?.getThumbnailUrl==`function`&&this._dataProvider.getThumbnailUrl(e)||``}catch{}return``}_mapItem=async({childrenCount:e,...t})=>{let n=I(t);if(n.isFolder)return{...n,childCount:e,url:``,thumbnailUrl:``};let[r,i]=await Promise.all([this._getUrl(n),this._getThumbnailUrl(n)]);return{...n,childCount:0,url:r,thumbnailUrl:i}};_isAncestor(e,t){if(!t)return!1;let n=this.normalizeId(t),r=this.normalizeId(e);if(n===r)return!0;let i=this._cache.getEntity(n),a=new Set;for(;i&&i.folderId&&!a.has(i.id);){a.add(i.id);let e=this.normalizeId(i.folderId);if(e===r)return!0;if(i=this._cache.getEntity(e),!i||!i.isFolder)break}return!1}async getFile(e,t){return this._isDeletingId(e)?null:this._cache.searchByName(t,{parentId:this.normalizeId(e),caseSensitive:!0,recursive:!1,itemType:`file`})[0]||(await this.getFiles({folderId:e,itemType:`file`,search:t})).files[0]}async getFileById(e){let t=this.normalizeId(e);if(this._isDeletingId(t))return null;let n=this._cache.getFileSystemItem(t);if(n&&!n.isFolder)return await this._mapItem(n);if(!this._dataProvider.pathMode)return null;let r=await this._getFileByPathStyleId(t);if(r&&!r.isFolder){let e=I(r);return this._cache.upsertEntity(e),await this._mapItem(e)}return null}async _getFileByPathStyleId(e){let t=e.replace(/\\/g,`/`).replace(/^\/+/,``),n=t.lastIndexOf(`/`),r=n<0?``:t.slice(0,n),i=n<0?t:t.slice(n+1);return i?this.getFile(r,i):null}async getFileUrl(e,t){let n=await this.getFile(e,t);return await this._getUrl(n)||await this._getThumbnailUrl(n)||n.thumbnail}async getFiles({folderId:e,search:t,sortBy:n,sortOrder:r,page:i,limit:a,itemType:o=`all`,noFolder:s=!1}){s&&(e=(await this.getTempFolder())?.id);let c=this.normalizeId(e??this._rootId),l=this._options.enablePagination===!1,u=l?1:i,d=l?A:a,f=this._options.clientSideFilter,p=this._options.clientSideSorting,m=this._options.clientSidePaging,h=m?Math.max(1,i??1):void 0,g=m?typeof a==`number`&&Number.isFinite(a)&&a>0?a:M:void 0,_=this._emptyFilesResult(m?h:u,m?g:d);if(this._isDeletingId(c))return _;let v=this._options.unifiedCatalogFetch!==!1&&l&&(o===`folder`||o===`file`),y=v?`all`:o,b={folderId:c,itemType:y};f||(b.search=t),p||(b.sortBy=n??(y===`folder`?void 0:`date`),b.sortOrder=r??(y===`folder`?void 0:`desc`)),m||(b.page=u,b.limit=v?j:d);let x=v?j:m?void 0:d,S={folderId:c,itemType:y,search:f?void 0:t,sortBy:p?void 0:b.sortBy,sortOrder:p?void 0:b.sortOrder,page:m?void 0:u,pageSize:x},C;try{C=await this._cache.getOrCreateChildren(c,S,async(e,t)=>{let n=t.pageSize,r=n!=null&&Number.isFinite(Number(n))?Number(n):A,i=await this._dataProvider.getItems({...t,folderId:e,limit:r}),a=L(i.items);return m?{items:a,total:typeof i.pagination?.total==`number`?i.pagination.total:a.length}:{items:a,...i.pagination}})}catch(e){if(this._isDeletingId(c))return _;throw e}let w=C.items;if(v&&(o===`folder`?w=w.filter(e=>e.isFolder):o===`file`&&(w=w.filter(e=>!e.isFolder))),f){if(typeof this._options.clientSideFilter==`function`)w=this._options.clientSideFilter(w,t);else if(t){let e=t.toLowerCase();w=w.filter(t=>t.name?.toLowerCase().includes(e))}}p&&(w=typeof this._options.clientSideSorting==`function`?this._options.clientSideSorting(w,n,r):this._defaultClientSideSort(w,n,r));let T;T=m||f||v?w.length:C.total??w.length;let E=w;if(m)if(typeof this._options.clientSidePaging==`function`)E=this._options.clientSidePaging(w,h,g);else{let e=(h-1)*g,t=e+g;E=w.slice(e,t)}if(typeof this._dataProvider.getUrl==`function`||typeof this._dataProvider.getThumbnailUrl==`function`){let e=E.map(async e=>{if(e.isFolder)return e;let[t,n]=await Promise.all([e.url?Promise.resolve(e.url):typeof this._dataProvider.getUrl==`function`?this._dataProvider.getUrl(e):Promise.resolve(void 0),e.thumbnailUrl?Promise.resolve(e.thumbnailUrl):typeof this._dataProvider.getThumbnailUrl==`function`?this._dataProvider.getThumbnailUrl(e):Promise.resolve(void 0)]);return{...e,url:t,thumbnailUrl:n}});E=await Promise.all(e)}let D=m?{page:h,limit:g,total:T,totalPages:Math.max(1,Math.ceil(T/g)),hasNext:h*g<T,hasPrev:h>1}:{page:u,limit:d,total:T,...!m&&C.totalPages&&{totalPages:C.totalPages},...!m&&C.hasNextPage&&{hasNextPage:C.hasNextPage}};return{files:await Promise.all(E.map(this._mapItem)),pagination:D}}_defaultClientSideSort(e,t,n){return e.sort((e,r)=>{let i=0;switch(t){case`name`:i=(e.name||``).localeCompare(r.name||``);break;case`date`:i=new Date(e.date||0).getTime()-new Date(r.date||0).getTime();break;case`size`:i=(Number(e.size)||0)-(Number(r.size)||0);break;default:i=(e.name||``).localeCompare(r.name||``)}return n===`desc`?-i:i})}async getFileData(e,t){let n=this.normalizeId(typeof e==`string`?e:e.id),i=t;this._blobFetchForceReloadOnceIds.delete(n)&&(i={...t,forceReload:!0});let a=this._cache.getEntity(n)||(typeof e==`string`?{id:n,name:``,folderId:this._rootId,isFolder:!1}:{...e,childrenCount:e.childCount});if(typeof this._dataProvider.getFileData==`function`)return await this._dataProvider.getFileData(a,i);let{__:o}=this.i18n;if(!a.url&&typeof this._dataProvider.getUrl!=`function`)throw new r.Xa(o(`Cannot read file`),`FileReadError`);let s=a.url||(typeof this._dataProvider.getUrl==`function`?await this._dataProvider.getUrl(a):``);if(s)return(await r.ca(s,{config:this._pathOptions.resourceProxyConfig,standalone:this._pathOptions.isStandalone,intent:`downloadBlob`,init:i?.forceReload?{cache:`no-store`}:void 0})).blob();throw new r.Xa(o(`Unable to get file data`),`FileReadError`)}async findFileByUrl(e){let t=this._cache.searchByUrl(e);if(t)return t;if(typeof this._dataProvider.findFileByUrl==`function`)try{let t=await this._dataProvider.findFileByUrl(e);if(t){let e=I(t);return this._cache.upsertEntity(e),e}}catch{}return null}async getChildrenCount(e){if(!e)return 0;let t=this.normalizeId(e??this._rootId);return this._isDeletingId(t)?0:this._cache.getChildrenCount(t,async()=>{try{if(this._options.clientSidePaging){let e=await this.getFiles({folderId:t,itemType:`all`,page:1,limit:M});return e.pagination.total??e.files.length}let e=await this._dataProvider.getItems({folderId:t,limit:0,itemType:`all`});return e.pagination===void 0?this._options.enablePagination===!1?e.items.length:0:e.pagination.total||0}catch(e){if(this._isDeletingId(t)||this._isPathFolderNotFoundError(e))return 0;throw e}})}_isPathFolderNotFoundError(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`path_folder_not_found`||t.data?.code===`path_folder_not_found`||t.status===404||t.data?.data?.status===404}async _uploadFile(e){let t=this.normalizeId(e.folderId??this._rootId),{__:n}=this.i18n;if(typeof this._dataProvider.uploadFile!=`function`)throw new r.Xa(n(`Upload file operation is not supported by data provider`),`UnsupportedOperation`);if(this._validateName(e.name,!1),this._validateDuplicates&&this._checkNameExistsInCache(t,e.name,!1))throw new r.Xa(n(`File '%s' already exists in target folder`).replace(`%s`,e.name),`FileAlreadyExists`);let i=await this._dataProvider.uploadFile({...e,folderId:t}),a=I({name:e.name,size:e.size,...i,folderId:t});return this._cache.upsertEntity(a),a}async uploadFiles(e){let t=e.items.some(e=>e.noFolder)?await this.getTempFolder():null;e={...e,items:e.items?.map(e=>({...e,folderId:e.noFolder?t?.id:e.folderId}))};for(let t of e.items)t.folderId&&(e.folderId=t.folderId);let n=e.items||[],i=e.folderId??this._rootId,a=this.normalizeId(i);if(this._validateDuplicates){for(let e of n)if(e.name){this._validateName(e.name,!1);let t=this.normalizeId(e.folderId??a);if(this._checkNameExistsInCache(t,e.name,!1)){let{__:t}=this.i18n;throw new r.Xa(t(`File '%s' already exists in target folder`).replace(`%s`,e.name),`FileAlreadyExists`)}}}let o=this._cache.getEntity(a),s={detailed:Array(n.length),success:!0};if(typeof this._dataProvider.uploadFiles==`function`){let e=n.map(e=>({...e,folderId:this.normalizeId(e.folderId??a)}));if(s=P(await this._dataProvider.uploadFiles({folderId:a,items:e}),e=>{if(e)return{id:e.id,name:F(e.name),folderId:e.folderId}}),s.detailed&&s.detailed.length){for(let e=0;e<s.detailed.length;e++){let t=s.detailed[e];if(t&&t.success){let e=t.data,n=e?.id??t.requestId,r=I({...o,...e,folderId:e?.folderId??a});this._cache.upsertEntity(r),t.requestId=n}}s.success===void 0&&(s.success=!s.detailed.some(e=>!e.success))}else s.success=s.error?!1:!!s.success}else if(typeof this._dataProvider.uploadFile==`function`)s.detailed=await Promise.all(n.map(async e=>{let t=this.normalizeId(e.folderId??a);try{let n=await this._uploadFile({...e,folderId:t});return{requestId:n.id,data:n,success:!0}}catch(t){return{requestId:e?.id,success:!1,error:t}}})),s.success=!s.detailed.some(e=>!e.success);else throw new r.Xa(`Upload files is not supported by data provider`,`UnsupportedOperation`);if(s.success&&this._enableTrash)try{this._cache.forceInvalidate(a)}catch{}return s}async deleteFile(e){let t=this.normalizeId(e),n=[t];this._mutationRegistry.beginDeleting(n);try{if(this._useSoftDelete&&this._enableTrash){let e=await this.getTrashFolder();return await this.moveItem({itemId:t,targetFolderId:e.id,isFolder:!1})}return await this.hardDeleteItem(t)}finally{this._mutationRegistry.endDeleting(n)}}async deleteItems(e,t){let n=Array.from(new Set(e.flatMap(e=>this._collectDeletingIds(this.normalizeId(e)))));this._mutationRegistry.beginDeleting(n);try{if(this._useSoftDelete&&this._enableTrash&&t.permanent!==!0){let t=await this.getTrashFolder();return await this.moveItems(t.id,e)}return await this.hardDeleteItems(e,t)}finally{this._mutationRegistry.endDeleting(n)}}async hardDeleteItems(e,t){let n={success:!0,detailed:[]},i=t.permanent?null:await this.getTrashFolder();if(typeof this._dataProvider.deleteItems==`function`){if(n=P(await this._dataProvider.deleteItems(e.map(e=>this._cache.getEntity(e)),t),e=>e),n.success){let t=n.detailed||e.map(e=>({requestId:e,success:!0,error:void 0}));for(let e of t)e.success&&(i?this._cache.moveEntity(e.requestId,i.id):this._cache.deleteEntity(e.requestId))}}else typeof this._dataProvider.deleteItem==`function`&&(n.detailed=await Promise.all(e.map(async e=>{let n=this._cache.getEntity(e);if(!n){let{__:t}=this.i18n;return{requestId:e,success:!1,error:new r.Xa(t(`Item with id '%s' not found`).replace(`%s`,e),`FileNotFound`)}}try{return await this._dataProvider.deleteItem(n,t),i?this._cache.moveEntity(e,i.id):this._cache.deleteEntity(e),{requestId:e,success:!0}}catch(t){return{requestId:e,error:t,success:!1}}})),n.success=!n.detailed.some(e=>!e.success));if(n.success&&i)try{this._cache.forceInvalidate(i.id)}catch{}return n}async hardDeleteItem(e){let t=this._cache.getEntity(e);if(!t){let{__:t}=this.i18n;throw new r.Xa(t(`Item with id '%s' not found in cache`).replace(`%s`,e),`FileNotFound`)}if(typeof this._dataProvider.deleteItem!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Delete item operation is not supported by data provider`),`DeleteNotAllowed`)}if(await this._dataProvider.deleteItem(t,{permanent:!0}),this._cache.deleteEntity(e),this._enableTrash)try{let e=await this.getTrashFolder();e&&this._cache.forceInvalidate(e.id)}catch{}return!0}async cleanTrash(){let{__:e}=this.i18n;if(!this._enableTrash)throw new r.Xa(e(`Trash is not enabled`),`UnsupportedOperation`);if(typeof this._dataProvider.cleanTrash==`function`){let e=await this._dataProvider.cleanTrash();try{let e=await this.getTrashFolder();e&&this._cache.forceInvalidate(e.id)}catch{}return e}throw new r.Xa(e(`Clean trash is not supported by data provider`),`UnsupportedOperation`)}async createFolder({name:e,parentId:t,is_force_create:n}){let i=this.normalizeId(t??this._rootId);if(this._validateName(e,!0),this._validateDuplicates&&this._checkNameExistsInCache(i,e,!0)){let{__:t}=this.i18n;throw new r.Xa(t(`Folder '%s' already exists in parent folder`).replace(`%s`,e),`FolderAlreadyExists`)}let a=await this._dataProvider.createFolder(e,i,n),o=I({id:a.id,folderId:i,name:a.name,isFolder:!0,childrenCount:a.childrenCount});return this._cache.upsertEntity(o),{...a,name:o.name}}async deleteFolder(e){let t=this.normalizeId(e),n=this._collectDeletingIds(t);this._mutationRegistry.beginDeleting(n);try{if(this._useSoftDelete&&this._enableTrash)try{let e=await this.getTrashFolder();return await this.moveItem({itemId:t,targetFolderId:e.id,isFolder:!0})?(this._cache.deleteFolderRecursive(t),!0):!1}catch{return await this.hardDeleteItem(t)}return await this.hardDeleteItem(t)}finally{this._mutationRegistry.endDeleting(n)}}async renameFolder(e,t){let{__:n}=this.i18n;if(typeof this._dataProvider.renameItem!=`function`)throw new r.Xa(n(`Rename folder is not supported`),`RenameNotAllowed`);let i=this.normalizeId(e),a=this._cache.getEntity(i);if(!a)throw new r.Xa(n(`Folder with id '%s' not found in cache`).replace(`%s`,e),`FolderNotFound`);if(this._validateName(t,!0),this._validateDuplicates){let e=this.normalizeId(a.folderId);if(this._checkNameExistsInCache(e,t,!0,i))throw new r.Xa(n(`Folder '%s' already exists in parent folder`).replace(`%s`,t),`FolderAlreadyExists`)}let o=R(await this._dataProvider.renameItem(a,t));return this._cache.upsertEntity(I({...this._cache.getEntity(o.id),...o})),this._cache.getEntity(o.id)}async renameFile(e,t){let{__:n}=this.i18n;if(typeof this._dataProvider.renameItem!=`function`)throw new r.Xa(n(`Rename file is not supported`),`RenameNotAllowed`);let i=this._cache.getEntity(e);if(!i)throw new r.Xa(n(`File with id '%s' not found in cache`).replace(`%s`,e),`FileNotFound`);let a=this.normalizeId(e);if(this._validateName(t,!1),this._validateDuplicates){let e=this.normalizeId(i.folderId);if(this._checkNameExistsInCache(e,t,!1,a))throw new r.Xa(n(`File '%s' already exists in parent folder`).replace(`%s`,t),`FileAlreadyExists`)}let o=R(await this._dataProvider.renameItem(i,t));return o&&this._cache.upsertEntity(I({...this._cache.getEntity(a),...o})),this._cache.getEntity(a)}async moveItem({itemId:e,targetFolderId:t,isFolder:n}){if(typeof this._dataProvider.moveItem!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Move item operation is not supported by data provider`),`MoveNotAllowed`)}let i=this.normalizeId(t);this._validateTargetFolderType(t);let a=this._cache.getEntity(e);if(!a){let t=R(await this._dataProvider.moveItem({id:e,folderId:i,isFolder:n},i));if(t.id===e)this._cache.upsertEntity(I({...t,folderId:i}));else{try{this._cache.deleteEntity(e)}catch{}this._cache.upsertEntity(I({...t,folderId:i}))}return!0}let{__:o}=this.i18n;if(a.isFolder){if(e===i)throw new r.Xa(o(`Cannot move folder into itself`),`MoveIntoSelf`);if(this._isAncestor(e,i))throw new r.Xa(o(`Cannot move folder into its descendant`),`MoveIntoDescendant`)}if(this._validateDuplicates&&i!==this.normalizeId(a.folderId)&&a.name&&this._checkNameExistsInCache(i,a.name,!!a.isFolder,e)){let e=a.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${a.isFolder?`Folder`:`File`} '${a.name}' already exists in target folder`,e)}let s=R(await this._dataProvider.moveItem(a,i));if(s.id===e){let t=this._cache.moveEntity(e,i);return this._cache.upsertEntity(I({...t,...s})),!0}else{let t=this._cache.deleteEntity(e);return this._cache.upsertEntity(I({...t,...s,folderId:i})),!0}}async moveItems(e,t){let n=this.normalizeId(e);this._validateTargetFolderType(e);let i=t.map(e=>this._cache.getEntity(e));for(let e of i)if(e){if(e.isFolder){let{__:t}=this.i18n;if(e.id===n)throw new r.Xa(t(`Cannot move folder '%s' into itself`).replace(`%s`,e.name),`MoveIntoSelf`);if(this._isAncestor(e.id,n))throw new r.Xa(t(`Cannot move folder '%s' into its descendant`).replace(`%s`,e.name),`MoveIntoDescendant`)}if(this._validateDuplicates&&n!==this.normalizeId(e.folderId)&&e.name&&this._checkNameExistsInCache(n,e.name,!!e.isFolder,e.id)){let t=e.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${e.isFolder?`Folder`:`File`} '${e.name}' already exists in target folder`,t)}}let a={detailed:Array(i.length),success:!0};if(typeof this._dataProvider.moveItems==`function`)a=P(await this._dataProvider.moveItems(i,n),e=>e);else if(typeof this._dataProvider.moveItem==`function`)a.detailed=await Promise.all(t.map(async(e,t)=>{let r=i[t]||{id:e,folderId:null,isFolder:!1,name:e};try{return{requestId:e,data:R(await this._dataProvider.moveItem(r,n)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else throw new r.Xa(`Move items is not supported`,`MoveNotAllowed`);if(a.success){let e=a.detailed||t.map(e=>({requestId:e,success:!0,data:void 0}));for(let t of e)if(t.success)if(!t.data||t.data.id===t.requestId)this._cache.moveEntity(t.requestId,n),t.data&&this._cache.upsertEntity(I({...this._cache.getEntity(t.requestId),...t.data,folderId:n}));else{let e=this._cache.deleteEntity(t.requestId);this._cache.upsertEntity(I({...e,...t.data,folderId:n}))}return a}else{let{__:e}=this.i18n;return{success:!1,error:a.error||new r.Xa(e(`Move items failed`),`MoveNotAllowed`)}}}async copyItem({itemId:e,targetFolderId:t}){if(typeof this._dataProvider.copyItem!=`function`){let{__:e}=this.i18n;throw new r.Xa(e(`Copy item is not supported`),`CopyNotAllowed`)}let n=this.normalizeId(t);this._validateTargetFolderType(t);let i=this._cache.getEntity(e);if(!i){let t=R(await this._dataProvider.copyItem({id:e,folderId:n},n));return this._cache.copyEntity(e,n,t.id),this._cache.upsertEntity(I({...t,folderId:n})),!0}if(this._validateDuplicates&&i.name){let t=n===this.normalizeId(i.folderId)?e:void 0;if(this._checkNameExistsInCache(n,i.name,!!i.isFolder,t)){let e=i.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${i.isFolder?`Folder`:`File`} '${i.name}' already exists in target folder`,e)}}let a=R(await this._dataProvider.copyItem(i,n));return this._cache.copyEntity(e,n,a.id,{...a,folderId:n})||this._cache.upsertEntity(I({...a,folderId:n})),!0}async copyItems(e,t){let n=this.normalizeId(e);this._validateTargetFolderType(e);let i=t.map(e=>typeof e==`string`?{id:e}:e),a=i.map(e=>e.id),o=a.map((e,t)=>{let n=this._cache.getEntity(e),r=i[t]?.newName;return n?r?{...n,name:r}:n:void 0});if(this._validateDuplicates)for(let e=0;e<o.length;e++){let t=o[e];if(t&&t.name){let i=n===this.normalizeId(t.folderId)?a[e]:void 0;if(this._checkNameExistsInCache(n,t.name,!!t.isFolder,i)){let e=t.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new r.Xa(`${t.isFolder?`Folder`:`File`} '${t.name}' already exists in target folder`,e)}}}let s={detailed:Array(o.length),success:!0};if(typeof this._dataProvider.copyItems==`function`)s=P(await this._dataProvider.copyItems(o,n),e=>e);else if(typeof this._dataProvider.copyItem==`function`)s.detailed=await Promise.all(a.map(async(e,t)=>{let r=o[t]||{id:e,folderId:null,isFolder:!1};try{return{requestId:e,data:R(await this._dataProvider.copyItem(r,n)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else{let{__:e}=this.i18n;throw new r.Xa(e(`Copy items is not supported`),`CopyNotAllowed`)}if(s.success&&s.detailed)for(let e=0,t=s.detailed.length;e<t;e++){let t=s.detailed[e];if(t.success&&t.data?.id){let e=t.data.folderId||n;!this._cache.copyEntity(t.requestId,e,t.data.id,{...t.data,folderId:e})&&t.data&&this._cache.upsertEntity(I({...t.data,folderId:e}))}}else if(!s.detailed)throw new r.Xa(`batchResult in copy method must have detailed results`,`ValidationError`);return s}async uploadFileByUrl(e){if(e.noFolder){let t=await this.getTempFolder();e={...e,folderId:t.id}}let t=this.normalizeId(e.folderId??this._rootId);try{let n=I({...await this._dataProvider.uploadFileByUrl(e.url,t,{eventSource:e.eventSource}),folderId:t});return this._cache.upsertEntity(n),n}catch(e){throw e}}async updateFile(e,t){let{__:n}=this.i18n;if(typeof this._dataProvider.updateFile!=`function`)throw new r.Xa(n(`Update file is not supported`),`UnsupportedOperation`);let i=this.normalizeId(e),a=this._cache.getEntity(i);if(!a)throw new r.Xa(n(`File with id '%s' not found in cache`).replace(`%s`,e),`FileNotFound`);if(t.name&&t.name!==a.name&&this._validateName(t.name,!1),this._validateDuplicates&&t.name&&t.name!==a.name){let e=this.normalizeId(a.folderId);if(this._checkNameExistsInCache(e,t.name,!1,i))throw new r.Xa(n(`File '%s' already exists in parent folder`).replace(`%s`,t.name),`FileAlreadyExists`)}let o=R(await this._dataProvider.updateFile(a,{...t}));return this._cache.upsertEntity(I({...this._cache.getEntity(i),...o,...t})),this._cache.getEntity(i)}};Object.defineProperty(t,"i",{enumerable:!0,get:function(){return a}}),Object.defineProperty(t,"n",{enumerable:!0,get:function(){return p}}),Object.defineProperty(t,"r",{enumerable:!0,get:function(){return l}}),Object.defineProperty(t,"t",{enumerable:!0,get:function(){return V}})});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
__emailmaker__.define(`static/core/7a60accf.js`,[`require`,`exports`,`module`,`static/core/5cdb0560.js`],function(e,t,n){let r=e("./5cdb0560.js");function i(e){return e!=null&&Object.prototype.hasOwnProperty.call(e,`meta`)}function a(e,t){return i(e)?e.meta:t}var o=r.vr({invalidateEmailId:null,editorThemeColor:`light`,isSettingsDisabled:!1,emailAutosaveTimestamps:{},settings:{backgroundColor:``,backgroundImage:[{type:`url`,value:``}],backgroundPositionX:``,backgroundPositionY:``,backgroundRepeat:``,textStrong:!1,textItalic:!1,textUnderline:!1},elementSettings:{},searchFilters:{},emailCommonStyles:``,saveTime:null,mobileViewActive:{shutdown:!0,styles:!0},email:{id:void 0,is_inited:!1,isNew:!1,subject:void 0,preheader:void 0,description:``,html:``,project:void 0,project_author:``,project_title:``,tags:[],utm_parameters:{utm_source:``,utm_medium:``,utm_campaign:``,utm_term:``,utm_content:``},parent_email:null,common_styles:`{}`,title:null,emailtags:[],group:[],isAmp:!1},emailIsEdit:!1,isCodeMode:!1,codeModeDirection:void 0,emailViewType:void 0,changeKey:null,problemsList:[],activeProblemRange:null,emailGroups:{},parentGroupOfProject:null,projectGroups:[],isNeedUpdateAppearance:!1,isNeedUpdateContentAppearance:!1}),s=`emailSlice`,c=r.Hr({name:s,initialState:o,reducers:{setEditorThemeColor:(e,t)=>{e.editorThemeColor=t.payload},setEmailFromHistory:(e,{payload:t})=>{if(!t)return;let n=e.email,r=t?.preheader===void 0,i=t?.subject===void 0,o=a(t,n.meta);e.email={...n,html:t?.html,preheader:r?n.preheader:t?.preheader,subject:i?n.subject:t?.subject,common_styles:typeof t?.common_styles==`string`&&t?.common_styles.startsWith(`{`)?t?.common_styles:n.common_styles||`{}`,...o===void 0?{}:{meta:o}},e.isNeedUpdateAppearance=!0,e.isNeedUpdateContentAppearance=!0},setEmailSettings:(e,{payload:t})=>{Object.assign(e,{...e,settings:{...t},isSettingsDisabled:!1})},setEmailSettingsDisable:(e,t)=>{e.isSettingsDisabled=t.payload},setElementSettings:(e,{payload:t})=>{e.elementSettings=t},setSearchFilters:(e,t)=>{e.searchFilters=t.payload},updateSearchFilters:(e,t)=>{e.searchFilters={...e.searchFilters,...t.payload}},setEmailHTML:(e,t)=>{e.email.html=t.payload},setEmailSubject:(e,t)=>{(e.email.title===e.email.subject||!e.email.subject&&!e.email.title)&&(e.email.title=t.payload),e.email.subject=t.payload},setEmailPreheader:(e,t)=>{e.email.preheader=t.payload},resetEmailSlice:e=>{let t=e.emailAutosaveTimestamps;return{...o,emailAutosaveTimestamps:t}},setEmailTitle:(e,t)=>{e.email.title=t.payload},setEmailMeta:(e,t)=>{if(t.payload===void 0){delete e.email.meta;return}e.email.meta={...e.email.meta??{},...t.payload}},setIsInited:(e,t)=>{e.email.is_inited=t.payload},setEmailIsAmp:(e,t)=>{e.email.isAmp=t.payload},setProblemsList:(e,t)=>{e.problemsList=t.payload},setActiveProblemRange:(e,t)=>{e.activeProblemRange=t.payload},setIsNeedUpdateContentAppearance:(e,t)=>{e.isNeedUpdateContentAppearance=t.payload},setIsNeedUpdateAppearance:(e,t)=>{e.isNeedUpdateAppearance=t.payload},setEmailGroups:(e,{payload:t})=>{let n=Object.keys(t)[0],r=e.emailGroups,i=e.parentGroupOfProject,a=e.projectGroups,o={};i&&a.length&&(t[n]?.forEach(e=>{let t=a.find(e=>e.id===+n),r=t?.children.find(t=>t.id===+e);r?(o.hasOwnProperty(t.id)||(o[t.id]=[]),o[t.id].push({label:r.name,value:r.id})):(o.hasOwnProperty(n)||(o[n]=[]),o[n].push({label:e,value:null}))}),t[n].length===0&&(o[n]=[])),e.emailGroups={...r,...o}}},extraReducers:e=>{e.addMatcher(e=>e.type===`emailsApi/queries/queryResultPatched`,(e,t)=>{let n=t.payload.queryCacheKey.match(/\("([0-9]+)"\)/),r=t.payload?.patches[0];r?.path?.[0]&&(e.email[r?.path[0]]=r.value),n?.[1]&&(e.invalidateEmailId=n[1]),e.emailIsEdit=!0}),e.addMatcher(e=>e.type===`emailsApi/invalidateTags`,(e,t)=>{if(t.payload[0].id===+e.invalidateEmailId)return o}),e.addMatcher(r.Wt.endpoints.editEmail.matchFulfilled,(e,{payload:t})=>{e.invalidateEmailId=null;let n=a(t,e.email.meta);e.email={...e.email,...t,renderGuid:e.email.renderGuid,...n===void 0?{}:{meta:n}}}),e.addMatcher(r.Wt.endpoints.autoSaveEmail.matchFulfilled,(e,t)=>{e.email.id?.toString()===t.payload.parent?.toString()&&(e.email.html=t.payload.html,t.payload.modified&&(e.email.modified=t.payload.modified,e.emailAutosaveTimestamps[t.payload.parent]=t.payload.modified))}),e.addMatcher(r.Wt.endpoints.getEmail.matchFulfilled,(e,{payload:t})=>{let n=e.email,r=a(t,t.id===n?.id?n.meta:void 0),i=n?.id!=null&&n.id===t.id&&n.is_inited===!0&&t.modified!==void 0&&n.modified===t.modified;e.email={...o.email,...t,...i?{renderGuid:n.renderGuid,html:n.html}:{},is_inited:t.is_inited||(t.id===n?.id?n?.is_inited:o.email.is_inited),common_styles:typeof t?.common_styles==`string`&&t?.common_styles.startsWith(`{`)?t?.common_styles:`{}`,...r===void 0?{}:{meta:r}},e.emailIsEdit=!1}),e.addMatcher(r.Et.endpoints.getGroups.matchFulfilled,(e,{meta:t,payload:n})=>{let r=e.email.group,i=t.arg.originalArgs.parent,a=n;i&&(e.parentGroupOfProject=i,e.projectGroups=a);let o={};i&&r.length&&a.length&&r?.forEach(e=>{a?.forEach(t=>{let n=t.children.find(t=>t.id===e);n&&(o.hasOwnProperty(t.id)||(o[t.id]=[]),o[t.id].push({label:n.name,value:n.id}))})}),e.emailGroups=o}),e.addMatcher(r.zt.endpoints.getProject.matchFulfilled,(e,{meta:t,payload:n})=>{e.parentGroupOfProject=n.group?.[0]||null})}}),{setEditorThemeColor:l,setEmailSettings:u,setElementSettings:d,setEmailSettingsDisable:ee,setSearchFilters:te,updateSearchFilters:ne,setEmailSubject:re,setEmailPreheader:f,setEmailHTML:p,resetEmailSlice:m,setEmailTitle:h,setEmailFromHistory:g,setEmailMeta:_,setIsInited:v,setEmailIsAmp:y,setProblemsList:b,setActiveProblemRange:x,setEmailGroups:S,setIsNeedUpdateAppearance:C,setIsNeedUpdateContentAppearance:w}=c.actions,T=e=>e[s].isNeedUpdateContentAppearance,E=e=>e[s].email,D=e=>e[s].settings,O=e=>e[s].emailGroups,k=e=>e[s].problemsList,A=e=>e[s].searchFilters,j=e=>e[s].projectGroups,M=e=>e[s].emailAutosaveTimestamps,N=e=>e[s].elementSettings,P=e=>e[s].editorThemeColor,F=e=>e[s].invalidateEmailId,ie=e=>e[s].isSettingsDisabled,I=e=>e[s].activeProblemRange,L=e=>e[s].isNeedUpdateAppearance,R=r.vr({invalidateBlockId:null,isCodeMode:!1,codeModeDirection:`right`,editorThemeColor:`light`,isSettingsDisabled:!1,settings:{width:``},elementSettings:{},searchFilters:{},block:{id:void 0,isNew:!1,subject:``,description:``,html:``,project:void 0,project_title:``,project_author:void 0,tags:[],type:`Other`,title:null,isAmp:!1},monacoDidMount:!1}),z=`blockSlice`,B=r.Hr({name:z,initialState:R,reducers:{switchCodeMode:e=>{e.isCodeMode=!e.isCodeMode},setEditorThemeColor:(e,t)=>{e.editorThemeColor=t.payload},setBlockSettings:(e,t)=>{Object.assign(e,{...e,settings:t.payload,isSettingsDisabled:!1})},setBlockSettingsDisable:(e,t)=>{e.isSettingsDisabled=t.payload},setElementSettings:(e,t)=>{e.elementSettings=t.payload},setSearchFilters:(e,t)=>{e.searchFilters=t.payload},setBlockHtml:(e,t)=>{e.block.html=t.payload},resetBlockSlice:()=>R,setBlockIsAmp:(e,t)=>{e.block.isAmp=t.payload}},extraReducers:e=>{e.addMatcher(e=>e.type===`blocksApi/queries/queryResultPatched`,(e,t)=>{let n=t.payload.queryCacheKey.match(/\(([0-9]+)\)/),r=t.payload?.patches[0];if(r?.path?.[0]&&(e.block[r?.path[0]]=r.value),n?.[1]&&(e.invalidateBlockId=n[1]),t.payload.queryCacheKey.startsWith(`getBlock`)){let n=t.payload?.patches[0];n?.path?.[0]&&(e.block[n?.path[0]]=n.value)}}),e.addMatcher(e=>e.type===`blocksApi/invalidateTags`,(e,t)=>{if(t.payload[0].id===+e.invalidateBlockId)return{...R,isCodeMode:e?.isCodeMode,codeModeDirection:e.codeModeDirection}}),e.addMatcher(r.er.endpoints.editBlock.matchFulfilled,(e,{payload:t})=>{e.invalidateBlockId=null,e.block={...e.block,...t,renderGuid:e.block.renderGuid}}),e.addMatcher(r.er.endpoints.autoSaveBlock.matchFulfilled,(e,t)=>{e?.block.id?.toString()===t.payload.id?.toString()&&(e.block.html=t.payload.html)}),e.addMatcher(r.er.endpoints.getBlock.matchFulfilled,(e,{payload:t})=>{e.block={...R.block,...t}})}}),{switchCodeMode:ae,setEditorThemeColor:V,setBlockSettings:H,setElementSettings:U,setBlockSettingsDisable:W,setSearchFilters:G,setBlockHtml:oe,resetBlockSlice:K,setBlockIsAmp:se}=B.actions,q=e=>e[z].block,J=e=>e[z].isCodeMode,Y=e=>e[z].settings,ce=e=>e[z].searchFilters,le=e=>e[z].elementSettings,X=e=>e[z].editorThemeColor,ue=e=>e[z].isSettingsDisabled,Z=r.vr({isCollapsed:!0,isMonacoFocusing:!1}),Q=`defaultModePanesSlice`,$=r.Hr({name:Q,initialState:Z,reducers:{setMonacoFocusing:(e,t)=>{e.isMonacoFocusing=t.payload},resetPanes:()=>Z}}),{resetPanes:de,setMonacoFocusing:fe}=$.actions,pe=e=>e[Q].isMonacoFocusing;Object.defineProperty(t,"$",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(t,"A",{enumerable:!0,get:function(){return L}}),Object.defineProperty(t,"B",{enumerable:!0,get:function(){return p}}),Object.defineProperty(t,"C",{enumerable:!0,get:function(){return N}}),Object.defineProperty(t,"D",{enumerable:!0,get:function(){return O}}),Object.defineProperty(t,"E",{enumerable:!0,get:function(){return A}}),Object.defineProperty(t,"F",{enumerable:!0,get:function(){return x}}),Object.defineProperty(t,"G",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(t,"H",{enumerable:!0,get:function(){return _}}),Object.defineProperty(t,"I",{enumerable:!0,get:function(){return l}}),Object.defineProperty(t,"J",{enumerable:!0,get:function(){return v}}),Object.defineProperty(t,"K",{enumerable:!0,get:function(){return re}}),Object.defineProperty(t,"L",{enumerable:!0,get:function(){return d}}),Object.defineProperty(t,"M",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(t,"N",{enumerable:!0,get:function(){return k}}),Object.defineProperty(t,"O",{enumerable:!0,get:function(){return D}}),Object.defineProperty(t,"P",{enumerable:!0,get:function(){return j}}),Object.defineProperty(t,"Q",{enumerable:!0,get:function(){return te}}),Object.defineProperty(t,"R",{enumerable:!0,get:function(){return g}}),Object.defineProperty(t,"S",{enumerable:!0,get:function(){return P}}),Object.defineProperty(t,"T",{enumerable:!0,get:function(){return M}}),Object.defineProperty(t,"U",{enumerable:!0,get:function(){return f}}),Object.defineProperty(t,"V",{enumerable:!0,get:function(){return y}}),Object.defineProperty(t,"W",{enumerable:!0,get:function(){return u}}),Object.defineProperty(t,"X",{enumerable:!0,get:function(){return w}}),Object.defineProperty(t,"Y",{enumerable:!0,get:function(){return C}}),Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return b}}),Object.defineProperty(t,"_",{enumerable:!0,get:function(){return U}}),Object.defineProperty(t,"a",{enumerable:!0,get:function(){return B}}),Object.defineProperty(t,"b",{enumerable:!0,get:function(){return m}}),Object.defineProperty(t,"c",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(t,"d",{enumerable:!0,get:function(){return le}}),Object.defineProperty(t,"f",{enumerable:!0,get:function(){return J}}),Object.defineProperty(t,"g",{enumerable:!0,get:function(){return V}}),Object.defineProperty(t,"h",{enumerable:!0,get:function(){return W}}),Object.defineProperty(t,"i",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(t,"j",{enumerable:!0,get:function(){return T}}),Object.defineProperty(t,"k",{enumerable:!0,get:function(){return F}}),Object.defineProperty(t,"l",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(t,"m",{enumerable:!0,get:function(){return H}}),Object.defineProperty(t,"n",{enumerable:!0,get:function(){return de}}),Object.defineProperty(t,"o",{enumerable:!0,get:function(){return K}}),Object.defineProperty(t,"p",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(t,"q",{enumerable:!0,get:function(){return h}}),Object.defineProperty(t,"r",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(t,"s",{enumerable:!0,get:function(){return q}}),Object.defineProperty(t,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(t,"u",{enumerable:!0,get:function(){return X}}),Object.defineProperty(t,"v",{enumerable:!0,get:function(){return G}}),Object.defineProperty(t,"w",{enumerable:!0,get:function(){return E}}),Object.defineProperty(t,"x",{enumerable:!0,get:function(){return I}}),Object.defineProperty(t,"y",{enumerable:!0,get:function(){return c}}),Object.defineProperty(t,"z",{enumerable:!0,get:function(){return S}})});
|
|
1
|
+
__emailmaker__.define(`static/core/925dcb4a.js`,[`require`,`exports`,`module`,`static/core/d62f3e6a.js`],function(e,t,n){let r=e("./d62f3e6a.js");function i(e){return e!=null&&Object.prototype.hasOwnProperty.call(e,`meta`)}function a(e,t){return i(e)?e.meta:t}var o=r.vr({invalidateEmailId:null,editorThemeColor:`light`,isSettingsDisabled:!1,emailAutosaveTimestamps:{},settings:{backgroundColor:``,backgroundImage:[{type:`url`,value:``}],backgroundPositionX:``,backgroundPositionY:``,backgroundRepeat:``,textStrong:!1,textItalic:!1,textUnderline:!1},elementSettings:{},searchFilters:{},emailCommonStyles:``,saveTime:null,mobileViewActive:{shutdown:!0,styles:!0},email:{id:void 0,is_inited:!1,isNew:!1,subject:void 0,preheader:void 0,description:``,html:``,project:void 0,project_author:``,project_title:``,tags:[],utm_parameters:{utm_source:``,utm_medium:``,utm_campaign:``,utm_term:``,utm_content:``},parent_email:null,common_styles:`{}`,title:null,emailtags:[],group:[],isAmp:!1},emailIsEdit:!1,isCodeMode:!1,codeModeDirection:void 0,emailViewType:void 0,changeKey:null,problemsList:[],activeProblemRange:null,emailGroups:{},parentGroupOfProject:null,projectGroups:[],isNeedUpdateAppearance:!1,isNeedUpdateContentAppearance:!1}),s=`emailSlice`,c=r.Hr({name:s,initialState:o,reducers:{setEditorThemeColor:(e,t)=>{e.editorThemeColor=t.payload},setEmailFromHistory:(e,{payload:t})=>{if(!t)return;let n=e.email,r=t?.preheader===void 0,i=t?.subject===void 0,o=a(t,n.meta);e.email={...n,html:t?.html,preheader:r?n.preheader:t?.preheader,subject:i?n.subject:t?.subject,common_styles:typeof t?.common_styles==`string`&&t?.common_styles.startsWith(`{`)?t?.common_styles:n.common_styles||`{}`,...o===void 0?{}:{meta:o}},e.isNeedUpdateAppearance=!0,e.isNeedUpdateContentAppearance=!0},setEmailSettings:(e,{payload:t})=>{Object.assign(e,{...e,settings:{...t},isSettingsDisabled:!1})},setEmailSettingsDisable:(e,t)=>{e.isSettingsDisabled=t.payload},setElementSettings:(e,{payload:t})=>{e.elementSettings=t},setSearchFilters:(e,t)=>{e.searchFilters=t.payload},updateSearchFilters:(e,t)=>{e.searchFilters={...e.searchFilters,...t.payload}},setEmailHTML:(e,t)=>{e.email.html=t.payload},setEmailSubject:(e,t)=>{(e.email.title===e.email.subject||!e.email.subject&&!e.email.title)&&(e.email.title=t.payload),e.email.subject=t.payload},setEmailPreheader:(e,t)=>{e.email.preheader=t.payload},resetEmailSlice:e=>{let t=e.emailAutosaveTimestamps;return{...o,emailAutosaveTimestamps:t}},setEmailTitle:(e,t)=>{e.email.title=t.payload},setEmailMeta:(e,t)=>{if(t.payload===void 0){delete e.email.meta;return}e.email.meta={...e.email.meta??{},...t.payload}},setIsInited:(e,t)=>{e.email.is_inited=t.payload},setEmailIsAmp:(e,t)=>{e.email.isAmp=t.payload},setProblemsList:(e,t)=>{e.problemsList=t.payload},setActiveProblemRange:(e,t)=>{e.activeProblemRange=t.payload},setIsNeedUpdateContentAppearance:(e,t)=>{e.isNeedUpdateContentAppearance=t.payload},setIsNeedUpdateAppearance:(e,t)=>{e.isNeedUpdateAppearance=t.payload},setEmailGroups:(e,{payload:t})=>{let n=Object.keys(t)[0],r=e.emailGroups,i=e.parentGroupOfProject,a=e.projectGroups,o={};i&&a.length&&(t[n]?.forEach(e=>{let t=a.find(e=>e.id===+n),r=t?.children.find(t=>t.id===+e);r?(o.hasOwnProperty(t.id)||(o[t.id]=[]),o[t.id].push({label:r.name,value:r.id})):(o.hasOwnProperty(n)||(o[n]=[]),o[n].push({label:e,value:null}))}),t[n].length===0&&(o[n]=[])),e.emailGroups={...r,...o}}},extraReducers:e=>{e.addMatcher(e=>e.type===`emailsApi/queries/queryResultPatched`,(e,t)=>{let n=t.payload.queryCacheKey.match(/\("([0-9]+)"\)/),r=t.payload?.patches[0];r?.path?.[0]&&(e.email[r?.path[0]]=r.value),n?.[1]&&(e.invalidateEmailId=n[1]),e.emailIsEdit=!0}),e.addMatcher(e=>e.type===`emailsApi/invalidateTags`,(e,t)=>{if(t.payload[0].id===+e.invalidateEmailId)return o}),e.addMatcher(r.Wt.endpoints.editEmail.matchFulfilled,(e,{payload:t})=>{e.invalidateEmailId=null;let n=a(t,e.email.meta);e.email={...e.email,...t,renderGuid:e.email.renderGuid,...n===void 0?{}:{meta:n}}}),e.addMatcher(r.Wt.endpoints.autoSaveEmail.matchFulfilled,(e,t)=>{e.email.id?.toString()===t.payload.parent?.toString()&&(e.email.html=t.payload.html,t.payload.modified&&(e.email.modified=t.payload.modified,e.emailAutosaveTimestamps[t.payload.parent]=t.payload.modified))}),e.addMatcher(r.Wt.endpoints.getEmail.matchFulfilled,(e,{payload:t})=>{let n=e.email,r=a(t,t.id===n?.id?n.meta:void 0),i=n?.id!=null&&n.id===t.id&&n.is_inited===!0&&t.modified!==void 0&&n.modified===t.modified;e.email={...o.email,...t,...i?{renderGuid:n.renderGuid,html:n.html}:{},is_inited:t.is_inited||(t.id===n?.id?n?.is_inited:o.email.is_inited),common_styles:typeof t?.common_styles==`string`&&t?.common_styles.startsWith(`{`)?t?.common_styles:`{}`,...r===void 0?{}:{meta:r}},e.emailIsEdit=!1}),e.addMatcher(r.Et.endpoints.getGroups.matchFulfilled,(e,{meta:t,payload:n})=>{let r=e.email.group,i=t.arg.originalArgs.parent,a=n;i&&(e.parentGroupOfProject=i,e.projectGroups=a);let o={};i&&r.length&&a.length&&r?.forEach(e=>{a?.forEach(t=>{let n=t.children.find(t=>t.id===e);n&&(o.hasOwnProperty(t.id)||(o[t.id]=[]),o[t.id].push({label:n.name,value:n.id}))})}),e.emailGroups=o}),e.addMatcher(r.zt.endpoints.getProject.matchFulfilled,(e,{meta:t,payload:n})=>{e.parentGroupOfProject=n.group?.[0]||null})}}),{setEditorThemeColor:l,setEmailSettings:u,setElementSettings:d,setEmailSettingsDisable:ee,setSearchFilters:te,updateSearchFilters:ne,setEmailSubject:re,setEmailPreheader:f,setEmailHTML:p,resetEmailSlice:m,setEmailTitle:h,setEmailFromHistory:g,setEmailMeta:_,setIsInited:v,setEmailIsAmp:y,setProblemsList:b,setActiveProblemRange:x,setEmailGroups:S,setIsNeedUpdateAppearance:C,setIsNeedUpdateContentAppearance:w}=c.actions,T=e=>e[s].isNeedUpdateContentAppearance,E=e=>e[s].email,D=e=>e[s].settings,O=e=>e[s].emailGroups,k=e=>e[s].problemsList,A=e=>e[s].searchFilters,j=e=>e[s].projectGroups,M=e=>e[s].emailAutosaveTimestamps,N=e=>e[s].elementSettings,P=e=>e[s].editorThemeColor,F=e=>e[s].invalidateEmailId,ie=e=>e[s].isSettingsDisabled,I=e=>e[s].activeProblemRange,L=e=>e[s].isNeedUpdateAppearance,R=r.vr({invalidateBlockId:null,isCodeMode:!1,codeModeDirection:`right`,editorThemeColor:`light`,isSettingsDisabled:!1,settings:{width:``},elementSettings:{},searchFilters:{},block:{id:void 0,isNew:!1,subject:``,description:``,html:``,project:void 0,project_title:``,project_author:void 0,tags:[],type:`Other`,title:null,isAmp:!1},monacoDidMount:!1}),z=`blockSlice`,B=r.Hr({name:z,initialState:R,reducers:{switchCodeMode:e=>{e.isCodeMode=!e.isCodeMode},setEditorThemeColor:(e,t)=>{e.editorThemeColor=t.payload},setBlockSettings:(e,t)=>{Object.assign(e,{...e,settings:t.payload,isSettingsDisabled:!1})},setBlockSettingsDisable:(e,t)=>{e.isSettingsDisabled=t.payload},setElementSettings:(e,t)=>{e.elementSettings=t.payload},setSearchFilters:(e,t)=>{e.searchFilters=t.payload},setBlockHtml:(e,t)=>{e.block.html=t.payload},resetBlockSlice:()=>R,setBlockIsAmp:(e,t)=>{e.block.isAmp=t.payload}},extraReducers:e=>{e.addMatcher(e=>e.type===`blocksApi/queries/queryResultPatched`,(e,t)=>{let n=t.payload.queryCacheKey.match(/\(([0-9]+)\)/),r=t.payload?.patches[0];if(r?.path?.[0]&&(e.block[r?.path[0]]=r.value),n?.[1]&&(e.invalidateBlockId=n[1]),t.payload.queryCacheKey.startsWith(`getBlock`)){let n=t.payload?.patches[0];n?.path?.[0]&&(e.block[n?.path[0]]=n.value)}}),e.addMatcher(e=>e.type===`blocksApi/invalidateTags`,(e,t)=>{if(t.payload[0].id===+e.invalidateBlockId)return{...R,isCodeMode:e?.isCodeMode,codeModeDirection:e.codeModeDirection}}),e.addMatcher(r.er.endpoints.editBlock.matchFulfilled,(e,{payload:t})=>{e.invalidateBlockId=null,e.block={...e.block,...t,renderGuid:e.block.renderGuid}}),e.addMatcher(r.er.endpoints.autoSaveBlock.matchFulfilled,(e,t)=>{e?.block.id?.toString()===t.payload.id?.toString()&&(e.block.html=t.payload.html)}),e.addMatcher(r.er.endpoints.getBlock.matchFulfilled,(e,{payload:t})=>{e.block={...R.block,...t}})}}),{switchCodeMode:ae,setEditorThemeColor:V,setBlockSettings:H,setElementSettings:U,setBlockSettingsDisable:W,setSearchFilters:G,setBlockHtml:oe,resetBlockSlice:K,setBlockIsAmp:se}=B.actions,q=e=>e[z].block,J=e=>e[z].isCodeMode,Y=e=>e[z].settings,ce=e=>e[z].searchFilters,le=e=>e[z].elementSettings,X=e=>e[z].editorThemeColor,ue=e=>e[z].isSettingsDisabled,Z=r.vr({isCollapsed:!0,isMonacoFocusing:!1}),Q=`defaultModePanesSlice`,$=r.Hr({name:Q,initialState:Z,reducers:{setMonacoFocusing:(e,t)=>{e.isMonacoFocusing=t.payload},resetPanes:()=>Z}}),{resetPanes:de,setMonacoFocusing:fe}=$.actions,pe=e=>e[Q].isMonacoFocusing;Object.defineProperty(t,"$",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(t,"A",{enumerable:!0,get:function(){return L}}),Object.defineProperty(t,"B",{enumerable:!0,get:function(){return p}}),Object.defineProperty(t,"C",{enumerable:!0,get:function(){return N}}),Object.defineProperty(t,"D",{enumerable:!0,get:function(){return O}}),Object.defineProperty(t,"E",{enumerable:!0,get:function(){return A}}),Object.defineProperty(t,"F",{enumerable:!0,get:function(){return x}}),Object.defineProperty(t,"G",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(t,"H",{enumerable:!0,get:function(){return _}}),Object.defineProperty(t,"I",{enumerable:!0,get:function(){return l}}),Object.defineProperty(t,"J",{enumerable:!0,get:function(){return v}}),Object.defineProperty(t,"K",{enumerable:!0,get:function(){return re}}),Object.defineProperty(t,"L",{enumerable:!0,get:function(){return d}}),Object.defineProperty(t,"M",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(t,"N",{enumerable:!0,get:function(){return k}}),Object.defineProperty(t,"O",{enumerable:!0,get:function(){return D}}),Object.defineProperty(t,"P",{enumerable:!0,get:function(){return j}}),Object.defineProperty(t,"Q",{enumerable:!0,get:function(){return te}}),Object.defineProperty(t,"R",{enumerable:!0,get:function(){return g}}),Object.defineProperty(t,"S",{enumerable:!0,get:function(){return P}}),Object.defineProperty(t,"T",{enumerable:!0,get:function(){return M}}),Object.defineProperty(t,"U",{enumerable:!0,get:function(){return f}}),Object.defineProperty(t,"V",{enumerable:!0,get:function(){return y}}),Object.defineProperty(t,"W",{enumerable:!0,get:function(){return u}}),Object.defineProperty(t,"X",{enumerable:!0,get:function(){return w}}),Object.defineProperty(t,"Y",{enumerable:!0,get:function(){return C}}),Object.defineProperty(t,"Z",{enumerable:!0,get:function(){return b}}),Object.defineProperty(t,"_",{enumerable:!0,get:function(){return U}}),Object.defineProperty(t,"a",{enumerable:!0,get:function(){return B}}),Object.defineProperty(t,"b",{enumerable:!0,get:function(){return m}}),Object.defineProperty(t,"c",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(t,"d",{enumerable:!0,get:function(){return le}}),Object.defineProperty(t,"f",{enumerable:!0,get:function(){return J}}),Object.defineProperty(t,"g",{enumerable:!0,get:function(){return V}}),Object.defineProperty(t,"h",{enumerable:!0,get:function(){return W}}),Object.defineProperty(t,"i",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(t,"j",{enumerable:!0,get:function(){return T}}),Object.defineProperty(t,"k",{enumerable:!0,get:function(){return F}}),Object.defineProperty(t,"l",{enumerable:!0,get:function(){return Y}}),Object.defineProperty(t,"m",{enumerable:!0,get:function(){return H}}),Object.defineProperty(t,"n",{enumerable:!0,get:function(){return de}}),Object.defineProperty(t,"o",{enumerable:!0,get:function(){return K}}),Object.defineProperty(t,"p",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(t,"q",{enumerable:!0,get:function(){return h}}),Object.defineProperty(t,"r",{enumerable:!0,get:function(){return pe}}),Object.defineProperty(t,"s",{enumerable:!0,get:function(){return q}}),Object.defineProperty(t,"t",{enumerable:!0,get:function(){return $}}),Object.defineProperty(t,"u",{enumerable:!0,get:function(){return X}}),Object.defineProperty(t,"v",{enumerable:!0,get:function(){return G}}),Object.defineProperty(t,"w",{enumerable:!0,get:function(){return E}}),Object.defineProperty(t,"x",{enumerable:!0,get:function(){return I}}),Object.defineProperty(t,"y",{enumerable:!0,get:function(){return c}}),Object.defineProperty(t,"z",{enumerable:!0,get:function(){return S}})});
|