@emailmaker/filemanager 1.1.84 → 1.1.85-dev.10
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/.build-meta.json +1 -1
- package/adapters/DataSourceProxyBase.d.ts +1 -1
- package/adapters/PathAwareStorageAdapter.d.ts +1 -1
- package/assets/icon-sets/lucide.json +6275 -0
- package/assets/icon-sets/tabler.json +19336 -0
- package/assets/image-editor/.gitkeep +0 -0
- package/components/FileModals/FileModals.d.ts +1 -1
- package/components/FilerobotEditor/FilerobotEditor.d.ts +11 -0
- package/components/FilerobotEditor/index.d.ts +4 -0
- package/components/ImageIcons/iconSets.d.ts +36 -0
- package/components/ImageIcons/iconStockSearch.d.ts +3 -1
- package/core.d.ts +1 -1
- package/core.esm.js +239 -255
- package/core.js +1 -1
- package/file-manager-FilerobotEditor.js +330 -0
- package/file-manager-IconsTab.js +2046 -0
- package/{file-manager-ImageCodeGenerator-BGvqvt7G.js → file-manager-ImageCodeGenerator.js} +117 -117
- package/{file-manager-JsBarcode-CyaffT5b.js → file-manager-JsBarcode.js} +30 -30
- package/{file-manager-browser-DDyRNDQk.js → file-manager-browser.js} +8 -8
- package/{file-manager-hooks-DQggJnuP.js → file-manager-hooks-fhltHD9p.js} +3105 -2967
- package/file-manager-imageEditorTranslations-rRWZAwnp.js +41 -0
- package/{file-manager-rolldown-runtime-DAVfCfog.js → file-manager-rolldown-runtime-DawGUBAG.js} +2 -2
- package/{file-manager-useMediaListEngine-ChZpHgET.js → file-manager-urls-BpPtVuK4.js} +139 -119
- package/file-manager.css +1 -1
- package/file-manager.d.ts +11 -11
- package/file-manager.esm.js +2406 -2329
- package/file-manager.js +12 -12
- package/helpers/__tests__/imageEditorTranslations.test.d.ts +1 -0
- package/helpers/imageEditorTranslations.d.ts +5 -0
- package/hooks/core/files/useFilesAPI.d.ts +1 -1
- package/hooks/core/useFiles.d.ts +1 -1
- package/hooks/index.d.ts +1 -1
- package/hooks/useFilerobotEditor.d.ts +16 -0
- package/index.d.ts +6 -5
- package/notification.d.ts +1 -1
- package/package.json +4 -2
- package/types/storage.d.ts +1 -1
- package/types.d.ts +13 -6
- package/utils/blankImage.d.ts +10 -0
- package/utils/blankImage.test.d.ts +1 -0
- package/utils/dedupeUploadNamesOnClient.d.ts +1 -1
- package/utils/fileFormatUtils.d.ts +2 -2
- package/utils/{pixieEditorConfig.d.ts → filerobotEditorConfig.d.ts} +5 -5
- package/utils/filerobotEditorConfig.test.d.ts +1 -0
- package/utils/generateId.d.ts +5 -0
- package/utils/imageCompression.d.ts +5 -0
- package/utils/imageCompression.editedImage.test.d.ts +1 -0
- package/utils/jsonDataProvider.d.ts +1 -1
- package/utils/libraryTabRequest.d.ts +7 -0
- package/utils/libraryTabRequest.test.d.ts +1 -0
- package/assets/image-editor/fonts/BebasNeueBold.woff2 +0 -0
- package/assets/image-editor/fonts/BebasNeueBook.woff2 +0 -0
- package/assets/image-editor/fonts/BebasNeueLight.woff2 +0 -0
- package/assets/image-editor/fonts/BebasNeueRegular.woff2 +0 -0
- package/assets/image-editor/fonts/Lato-Black.woff2 +0 -0
- package/assets/image-editor/fonts/Lato-Bold.woff2 +0 -0
- package/assets/image-editor/fonts/Lato-Light.woff2 +0 -0
- package/assets/image-editor/fonts/Lato-Regular.woff2 +0 -0
- package/assets/image-editor/fonts/Lobster.woff2 +0 -0
- package/assets/image-editor/fonts/Montserrat-Black.woff2 +0 -0
- package/assets/image-editor/fonts/Montserrat-Bold.woff2 +0 -0
- package/assets/image-editor/fonts/Montserrat-Light.woff2 +0 -0
- package/assets/image-editor/fonts/Montserrat-Regular.woff2 +0 -0
- package/assets/image-editor/fonts/Roboto-Black.woff2 +0 -0
- package/assets/image-editor/fonts/Roboto-Bold.woff2 +0 -0
- package/assets/image-editor/fonts/Roboto-Light.woff2 +0 -0
- package/assets/image-editor/fonts/Roboto-Regular.woff2 +0 -0
- package/assets/image-editor/fonts/Rubik-Black.woff2 +0 -0
- package/assets/image-editor/fonts/Rubik-Bold.woff2 +0 -0
- package/assets/image-editor/fonts/Rubik-Light.woff2 +0 -0
- package/assets/image-editor/fonts/Rubik-Regular.woff2 +0 -0
- package/assets/image-editor/fonts/caveat-v23-cyrillic_latin-regular.woff2 +0 -0
- package/assets/image-editor/fonts/commissioner-v24-cyrillic_latin-regular.woff2 +0 -0
- package/assets/image-editor/fonts/fira-sans-v11-latin-ext_latin_cyrillic-regular.woff2 +0 -0
- package/assets/image-editor/fonts/inter-v20-cyrillic_latin-regular.woff2 +0 -0
- package/assets/image-editor/fonts/oswald-v57-cyrillic_latin-regular.woff2 +0 -0
- package/assets/image-editor/fonts/pacifico-v23-cyrillic_latin-regular.woff2 +0 -0
- package/assets/image-editor/fonts/playfair-display-v40-cyrillic_latin-regular.woff2 +0 -0
- package/assets/image-editor/images/brushes/black/circle.png +0 -0
- package/assets/image-editor/images/brushes/black/diamond.png +0 -0
- package/assets/image-editor/images/brushes/black/hline.png +0 -0
- package/assets/image-editor/images/brushes/black/pencil.png +0 -0
- package/assets/image-editor/images/brushes/black/spray.png +0 -0
- package/assets/image-editor/images/brushes/black/square.png +0 -0
- package/assets/image-editor/images/brushes/black/vline.png +0 -0
- package/assets/image-editor/images/brushes/white/circle.png +0 -0
- package/assets/image-editor/images/brushes/white/diamond.png +0 -0
- package/assets/image-editor/images/brushes/white/hline.png +0 -0
- package/assets/image-editor/images/brushes/white/pencil.png +0 -0
- package/assets/image-editor/images/brushes/white/spray.png +0 -0
- package/assets/image-editor/images/brushes/white/square.png +0 -0
- package/assets/image-editor/images/brushes/white/vline.png +0 -0
- package/assets/image-editor/images/empty-canvas-bg.png +0 -0
- package/assets/image-editor/images/filter/blackWhite.jpg +0 -0
- package/assets/image-editor/images/filter/blendColor.jpg +0 -0
- package/assets/image-editor/images/filter/blur.jpg +0 -0
- package/assets/image-editor/images/filter/brightness.jpg +0 -0
- package/assets/image-editor/images/filter/brownie.jpg +0 -0
- package/assets/image-editor/images/filter/emboss.jpg +0 -0
- package/assets/image-editor/images/filter/gamma.jpg +0 -0
- package/assets/image-editor/images/filter/grayscale.jpg +0 -0
- package/assets/image-editor/images/filter/invert.jpg +0 -0
- package/assets/image-editor/images/filter/kodachrome.jpg +0 -0
- package/assets/image-editor/images/filter/noise.jpg +0 -0
- package/assets/image-editor/images/filter/original.jpg +0 -0
- package/assets/image-editor/images/filter/pixelate.jpg +0 -0
- package/assets/image-editor/images/filter/polaroid.jpg +0 -0
- package/assets/image-editor/images/filter/removeColor.jpg +0 -0
- package/assets/image-editor/images/filter/sepia.jpg +0 -0
- package/assets/image-editor/images/filter/sharpen.jpg +0 -0
- package/assets/image-editor/images/filter/technicolor.jpg +0 -0
- package/assets/image-editor/images/filter/vintage.jpg +0 -0
- package/assets/image-editor/images/frames/art1/bottom.png +0 -0
- package/assets/image-editor/images/frames/art1/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/art1/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/art1/left.png +0 -0
- package/assets/image-editor/images/frames/art1/right.png +0 -0
- package/assets/image-editor/images/frames/art1/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/art1/top.png +0 -0
- package/assets/image-editor/images/frames/art1/topLeft.png +0 -0
- package/assets/image-editor/images/frames/art1/topRight.png +0 -0
- package/assets/image-editor/images/frames/art2/bottom.png +0 -0
- package/assets/image-editor/images/frames/art2/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/art2/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/art2/left.png +0 -0
- package/assets/image-editor/images/frames/art2/right.png +0 -0
- package/assets/image-editor/images/frames/art2/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/art2/top.png +0 -0
- package/assets/image-editor/images/frames/art2/topLeft.png +0 -0
- package/assets/image-editor/images/frames/art2/topRight.png +0 -0
- package/assets/image-editor/images/frames/basic/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/ebony/bottom.png +0 -0
- package/assets/image-editor/images/frames/ebony/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/ebony/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/ebony/left.png +0 -0
- package/assets/image-editor/images/frames/ebony/right.png +0 -0
- package/assets/image-editor/images/frames/ebony/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/ebony/top.png +0 -0
- package/assets/image-editor/images/frames/ebony/topLeft.png +0 -0
- package/assets/image-editor/images/frames/ebony/topRight.png +0 -0
- package/assets/image-editor/images/frames/grunge1/bottom.png +0 -0
- package/assets/image-editor/images/frames/grunge1/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/grunge1/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/grunge1/left.png +0 -0
- package/assets/image-editor/images/frames/grunge1/right.png +0 -0
- package/assets/image-editor/images/frames/grunge1/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/grunge1/top.png +0 -0
- package/assets/image-editor/images/frames/grunge1/topLeft.png +0 -0
- package/assets/image-editor/images/frames/grunge1/topRight.png +0 -0
- package/assets/image-editor/images/frames/grunge2/bottom.png +0 -0
- package/assets/image-editor/images/frames/grunge2/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/grunge2/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/grunge2/left.png +0 -0
- package/assets/image-editor/images/frames/grunge2/right.png +0 -0
- package/assets/image-editor/images/frames/grunge2/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/grunge2/top.png +0 -0
- package/assets/image-editor/images/frames/grunge2/topLeft.png +0 -0
- package/assets/image-editor/images/frames/grunge2/topRight.png +0 -0
- package/assets/image-editor/images/frames/oak/bottom.png +0 -0
- package/assets/image-editor/images/frames/oak/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/oak/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/oak/left.png +0 -0
- package/assets/image-editor/images/frames/oak/right.png +0 -0
- package/assets/image-editor/images/frames/oak/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/oak/top.png +0 -0
- package/assets/image-editor/images/frames/oak/topLeft.png +0 -0
- package/assets/image-editor/images/frames/oak/topRight.png +0 -0
- package/assets/image-editor/images/frames/pine/bottom.png +0 -0
- package/assets/image-editor/images/frames/pine/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/pine/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/pine/left.png +0 -0
- package/assets/image-editor/images/frames/pine/right.png +0 -0
- package/assets/image-editor/images/frames/pine/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/pine/top.png +0 -0
- package/assets/image-editor/images/frames/pine/topLeft.png +0 -0
- package/assets/image-editor/images/frames/pine/topRight.png +0 -0
- package/assets/image-editor/images/frames/rainbow/bottom.png +0 -0
- package/assets/image-editor/images/frames/rainbow/bottomLeft.png +0 -0
- package/assets/image-editor/images/frames/rainbow/bottomRight.png +0 -0
- package/assets/image-editor/images/frames/rainbow/left.png +0 -0
- package/assets/image-editor/images/frames/rainbow/right.png +0 -0
- package/assets/image-editor/images/frames/rainbow/thumbnail.png +0 -0
- package/assets/image-editor/images/frames/rainbow/top.png +0 -0
- package/assets/image-editor/images/frames/rainbow/topLeft.png +0 -0
- package/assets/image-editor/images/frames/rainbow/topRight.png +0 -0
- package/assets/image-editor/images/gradients/0.png +0 -0
- package/assets/image-editor/images/gradients/1.png +0 -0
- package/assets/image-editor/images/gradients/10.png +0 -0
- package/assets/image-editor/images/gradients/11.png +0 -0
- package/assets/image-editor/images/gradients/12.png +0 -0
- package/assets/image-editor/images/gradients/2.png +0 -0
- package/assets/image-editor/images/gradients/3.png +0 -0
- package/assets/image-editor/images/gradients/4.png +0 -0
- package/assets/image-editor/images/gradients/5.png +0 -0
- package/assets/image-editor/images/gradients/6.png +0 -0
- package/assets/image-editor/images/gradients/7.png +0 -0
- package/assets/image-editor/images/gradients/8.png +0 -0
- package/assets/image-editor/images/gradients/9.png +0 -0
- package/assets/image-editor/images/samples/large_sample.jpg +0 -0
- package/assets/image-editor/images/samples/sample1.jpg +0 -0
- package/assets/image-editor/images/samples/sample1_thumbnail.jpg +0 -0
- package/assets/image-editor/images/samples/sample2.jpg +0 -0
- package/assets/image-editor/images/samples/sample2_thumbnail.jpg +0 -0
- package/assets/image-editor/images/samples/sample3.jpg +0 -0
- package/assets/image-editor/images/samples/sample3_thumbnail.jpg +0 -0
- package/assets/image-editor/images/samples/sample4.json +0 -871
- package/assets/image-editor/images/samples/sample4_preview.jpg +0 -0
- package/assets/image-editor/images/stickers/beach/0.svg +0 -25
- package/assets/image-editor/images/stickers/beach/1.svg +0 -14
- package/assets/image-editor/images/stickers/beach/10.svg +0 -34
- package/assets/image-editor/images/stickers/beach/11.svg +0 -27
- package/assets/image-editor/images/stickers/beach/12.svg +0 -10
- package/assets/image-editor/images/stickers/beach/13.svg +0 -25
- package/assets/image-editor/images/stickers/beach/14.svg +0 -16
- package/assets/image-editor/images/stickers/beach/15.svg +0 -14
- package/assets/image-editor/images/stickers/beach/16.svg +0 -44
- package/assets/image-editor/images/stickers/beach/17.svg +0 -35
- package/assets/image-editor/images/stickers/beach/18.svg +0 -32
- package/assets/image-editor/images/stickers/beach/19.svg +0 -23
- package/assets/image-editor/images/stickers/beach/2.svg +0 -14
- package/assets/image-editor/images/stickers/beach/20.svg +0 -24
- package/assets/image-editor/images/stickers/beach/21.svg +0 -11
- package/assets/image-editor/images/stickers/beach/3.svg +0 -26
- package/assets/image-editor/images/stickers/beach/4.svg +0 -25
- package/assets/image-editor/images/stickers/beach/5.svg +0 -22
- package/assets/image-editor/images/stickers/beach/6.svg +0 -20
- package/assets/image-editor/images/stickers/beach/7.svg +0 -32
- package/assets/image-editor/images/stickers/beach/8.svg +0 -28
- package/assets/image-editor/images/stickers/beach/9.svg +0 -18
- package/assets/image-editor/images/stickers/bubbles/0.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/1.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/10.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/100.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/101.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/102.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/103.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/105.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/11.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/12.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/13.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/14.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/15.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/16.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/17.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/18.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/19.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/2.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/20.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/21.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/22.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/23.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/24.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/25.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/26.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/27.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/28.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/29.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/3.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/30.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/31.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/32.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/33.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/34.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/35.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/36.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/37.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/38.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/39.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/4.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/40.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/41.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/42.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/43.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/44.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/45.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/46.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/47.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/48.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/49.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/5.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/50.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/51.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/52.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/53.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/54.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/55.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/56.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/57.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/58.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/59.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/6.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/60.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/61.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/62.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/63.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/64.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/65.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/66.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/67.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/68.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/69.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/7.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/70.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/71.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/72.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/73.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/74.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/75.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/76.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/77.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/78.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/79.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/8.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/80.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/81.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/82.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/83.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/84.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/85.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/86.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/87.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/88.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/89.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/9.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/90.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/91.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/92.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/93.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/94.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/95.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/96.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/97.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/98.png +0 -0
- package/assets/image-editor/images/stickers/bubbles/99.png +0 -0
- package/assets/image-editor/images/stickers/categories/beach.svg +0 -18
- package/assets/image-editor/images/stickers/categories/clouds.svg +0 -15
- package/assets/image-editor/images/stickers/categories/doodles.svg +0 -13
- package/assets/image-editor/images/stickers/categories/emoticon.svg +0 -10
- package/assets/image-editor/images/stickers/categories/landmark.svg +0 -20
- package/assets/image-editor/images/stickers/categories/speech-bubble.svg +0 -6
- package/assets/image-editor/images/stickers/categories/star.svg +0 -6
- package/assets/image-editor/images/stickers/categories/transportation.svg +0 -18
- package/assets/image-editor/images/stickers/clouds/0.png +0 -0
- package/assets/image-editor/images/stickers/clouds/1.png +0 -0
- package/assets/image-editor/images/stickers/clouds/10.png +0 -0
- package/assets/image-editor/images/stickers/clouds/11.png +0 -0
- package/assets/image-editor/images/stickers/clouds/12.png +0 -0
- package/assets/image-editor/images/stickers/clouds/13.png +0 -0
- package/assets/image-editor/images/stickers/clouds/14.png +0 -0
- package/assets/image-editor/images/stickers/clouds/2.png +0 -0
- package/assets/image-editor/images/stickers/clouds/3.png +0 -0
- package/assets/image-editor/images/stickers/clouds/4.png +0 -0
- package/assets/image-editor/images/stickers/clouds/5.png +0 -0
- package/assets/image-editor/images/stickers/clouds/6.png +0 -0
- package/assets/image-editor/images/stickers/clouds/7.png +0 -0
- package/assets/image-editor/images/stickers/clouds/8.png +0 -0
- package/assets/image-editor/images/stickers/clouds/9.png +0 -0
- package/assets/image-editor/images/stickers/doodles/0.svg +0 -201
- package/assets/image-editor/images/stickers/doodles/1.svg +0 -255
- package/assets/image-editor/images/stickers/doodles/10.svg +0 -160
- package/assets/image-editor/images/stickers/doodles/11.svg +0 -393
- package/assets/image-editor/images/stickers/doodles/12.svg +0 -293
- package/assets/image-editor/images/stickers/doodles/13.svg +0 -251
- package/assets/image-editor/images/stickers/doodles/14.svg +0 -370
- package/assets/image-editor/images/stickers/doodles/15.svg +0 -194
- package/assets/image-editor/images/stickers/doodles/16.svg +0 -383
- package/assets/image-editor/images/stickers/doodles/17.svg +0 -346
- package/assets/image-editor/images/stickers/doodles/18.svg +0 -286
- package/assets/image-editor/images/stickers/doodles/19.svg +0 -241
- package/assets/image-editor/images/stickers/doodles/2.svg +0 -227
- package/assets/image-editor/images/stickers/doodles/20.svg +0 -330
- package/assets/image-editor/images/stickers/doodles/21.svg +0 -200
- package/assets/image-editor/images/stickers/doodles/22.svg +0 -308
- package/assets/image-editor/images/stickers/doodles/23.svg +0 -518
- package/assets/image-editor/images/stickers/doodles/24.svg +0 -207
- package/assets/image-editor/images/stickers/doodles/25.svg +0 -260
- package/assets/image-editor/images/stickers/doodles/26.svg +0 -380
- package/assets/image-editor/images/stickers/doodles/27.svg +0 -222
- package/assets/image-editor/images/stickers/doodles/28.svg +0 -164
- package/assets/image-editor/images/stickers/doodles/29.svg +0 -271
- package/assets/image-editor/images/stickers/doodles/3.svg +0 -272
- package/assets/image-editor/images/stickers/doodles/30.svg +0 -283
- package/assets/image-editor/images/stickers/doodles/31.svg +0 -257
- package/assets/image-editor/images/stickers/doodles/32.svg +0 -276
- package/assets/image-editor/images/stickers/doodles/33.svg +0 -198
- package/assets/image-editor/images/stickers/doodles/34.svg +0 -314
- package/assets/image-editor/images/stickers/doodles/35.svg +0 -236
- package/assets/image-editor/images/stickers/doodles/36.svg +0 -273
- package/assets/image-editor/images/stickers/doodles/37.svg +0 -284
- package/assets/image-editor/images/stickers/doodles/38.svg +0 -167
- package/assets/image-editor/images/stickers/doodles/39.svg +0 -381
- package/assets/image-editor/images/stickers/doodles/4.svg +0 -216
- package/assets/image-editor/images/stickers/doodles/40.svg +0 -198
- package/assets/image-editor/images/stickers/doodles/41.svg +0 -259
- package/assets/image-editor/images/stickers/doodles/42.svg +0 -371
- package/assets/image-editor/images/stickers/doodles/43.svg +0 -198
- package/assets/image-editor/images/stickers/doodles/44.svg +0 -174
- package/assets/image-editor/images/stickers/doodles/45.svg +0 -178
- package/assets/image-editor/images/stickers/doodles/46.svg +0 -211
- package/assets/image-editor/images/stickers/doodles/47.svg +0 -195
- package/assets/image-editor/images/stickers/doodles/48.svg +0 -293
- package/assets/image-editor/images/stickers/doodles/49.svg +0 -191
- package/assets/image-editor/images/stickers/doodles/5.svg +0 -179
- package/assets/image-editor/images/stickers/doodles/50.svg +0 -323
- package/assets/image-editor/images/stickers/doodles/51.svg +0 -308
- package/assets/image-editor/images/stickers/doodles/52.svg +0 -162
- package/assets/image-editor/images/stickers/doodles/53.svg +0 -263
- package/assets/image-editor/images/stickers/doodles/54.svg +0 -175
- package/assets/image-editor/images/stickers/doodles/55.svg +0 -177
- package/assets/image-editor/images/stickers/doodles/56.svg +0 -160
- package/assets/image-editor/images/stickers/doodles/57.svg +0 -115
- package/assets/image-editor/images/stickers/doodles/58.svg +0 -327
- package/assets/image-editor/images/stickers/doodles/59.svg +0 -197
- package/assets/image-editor/images/stickers/doodles/6.svg +0 -388
- package/assets/image-editor/images/stickers/doodles/60.svg +0 -414
- package/assets/image-editor/images/stickers/doodles/61.svg +0 -287
- package/assets/image-editor/images/stickers/doodles/62.svg +0 -193
- package/assets/image-editor/images/stickers/doodles/63.svg +0 -329
- package/assets/image-editor/images/stickers/doodles/64.svg +0 -150
- package/assets/image-editor/images/stickers/doodles/65.svg +0 -275
- package/assets/image-editor/images/stickers/doodles/66.svg +0 -174
- package/assets/image-editor/images/stickers/doodles/67.svg +0 -343
- package/assets/image-editor/images/stickers/doodles/68.svg +0 -242
- package/assets/image-editor/images/stickers/doodles/69.svg +0 -160
- package/assets/image-editor/images/stickers/doodles/7.svg +0 -194
- package/assets/image-editor/images/stickers/doodles/70.svg +0 -365
- package/assets/image-editor/images/stickers/doodles/71.svg +0 -454
- package/assets/image-editor/images/stickers/doodles/72.svg +0 -162
- package/assets/image-editor/images/stickers/doodles/73.svg +0 -393
- package/assets/image-editor/images/stickers/doodles/74.svg +0 -206
- package/assets/image-editor/images/stickers/doodles/75.svg +0 -275
- package/assets/image-editor/images/stickers/doodles/76.svg +0 -350
- package/assets/image-editor/images/stickers/doodles/77.svg +0 -323
- package/assets/image-editor/images/stickers/doodles/78.svg +0 -316
- package/assets/image-editor/images/stickers/doodles/79.svg +0 -503
- package/assets/image-editor/images/stickers/doodles/8.svg +0 -185
- package/assets/image-editor/images/stickers/doodles/80.svg +0 -235
- package/assets/image-editor/images/stickers/doodles/81.svg +0 -184
- package/assets/image-editor/images/stickers/doodles/82.svg +0 -246
- package/assets/image-editor/images/stickers/doodles/83.svg +0 -125
- package/assets/image-editor/images/stickers/doodles/84.svg +0 -168
- package/assets/image-editor/images/stickers/doodles/85.svg +0 -138
- package/assets/image-editor/images/stickers/doodles/86.svg +0 -223
- package/assets/image-editor/images/stickers/doodles/87.svg +0 -475
- package/assets/image-editor/images/stickers/doodles/88.svg +0 -172
- package/assets/image-editor/images/stickers/doodles/89.svg +0 -199
- package/assets/image-editor/images/stickers/doodles/9.svg +0 -368
- package/assets/image-editor/images/stickers/doodles/90.svg +0 -298
- package/assets/image-editor/images/stickers/doodles/91.svg +0 -176
- package/assets/image-editor/images/stickers/doodles/92.svg +0 -152
- package/assets/image-editor/images/stickers/doodles/93.svg +0 -206
- package/assets/image-editor/images/stickers/doodles/94.svg +0 -202
- package/assets/image-editor/images/stickers/doodles/95.svg +0 -114
- package/assets/image-editor/images/stickers/doodles/96.svg +0 -149
- package/assets/image-editor/images/stickers/doodles/97.svg +0 -197
- package/assets/image-editor/images/stickers/doodles/98.svg +0 -397
- package/assets/image-editor/images/stickers/doodles/99.svg +0 -502
- package/assets/image-editor/images/stickers/emoticons/afro-1.svg +0 -122
- package/assets/image-editor/images/stickers/emoticons/afro.svg +0 -85
- package/assets/image-editor/images/stickers/emoticons/agent.svg +0 -114
- package/assets/image-editor/images/stickers/emoticons/alien-1.svg +0 -60
- package/assets/image-editor/images/stickers/emoticons/alien.svg +0 -64
- package/assets/image-editor/images/stickers/emoticons/angel.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/angry-1.svg +0 -83
- package/assets/image-editor/images/stickers/emoticons/angry-2.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/angry-3.svg +0 -45
- package/assets/image-editor/images/stickers/emoticons/angry-4.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/angry-5.svg +0 -62
- package/assets/image-editor/images/stickers/emoticons/angry.svg +0 -78
- package/assets/image-editor/images/stickers/emoticons/arguing.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/arrogant.svg +0 -98
- package/assets/image-editor/images/stickers/emoticons/asian-1.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/asian.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/avatar.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/baby-1.svg +0 -51
- package/assets/image-editor/images/stickers/emoticons/baby-2.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/baby.svg +0 -66
- package/assets/image-editor/images/stickers/emoticons/bully.svg +0 -68
- package/assets/image-editor/images/stickers/emoticons/burglar.svg +0 -75
- package/assets/image-editor/images/stickers/emoticons/businessman.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/cheeky-1.svg +0 -83
- package/assets/image-editor/images/stickers/emoticons/cheeky.svg +0 -73
- package/assets/image-editor/images/stickers/emoticons/clown.svg +0 -75
- package/assets/image-editor/images/stickers/emoticons/confused-1.svg +0 -74
- package/assets/image-editor/images/stickers/emoticons/confused-2.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/confused-3.svg +0 -45
- package/assets/image-editor/images/stickers/emoticons/confused.svg +0 -66
- package/assets/image-editor/images/stickers/emoticons/creepy.svg +0 -60
- package/assets/image-editor/images/stickers/emoticons/crying-1.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/crying-2.svg +0 -83
- package/assets/image-editor/images/stickers/emoticons/crying-3.svg +0 -53
- package/assets/image-editor/images/stickers/emoticons/crying.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/dazed-1.svg +0 -63
- package/assets/image-editor/images/stickers/emoticons/dazed-2.svg +0 -51
- package/assets/image-editor/images/stickers/emoticons/dazed-3.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/dazed.svg +0 -56
- package/assets/image-editor/images/stickers/emoticons/dead-1.svg +0 -61
- package/assets/image-editor/images/stickers/emoticons/dead-2.svg +0 -80
- package/assets/image-editor/images/stickers/emoticons/dead-3.svg +0 -66
- package/assets/image-editor/images/stickers/emoticons/dead-4.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/dead-5.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/dead-6.svg +0 -53
- package/assets/image-editor/images/stickers/emoticons/dead.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/desperate-1.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/desperate.svg +0 -75
- package/assets/image-editor/images/stickers/emoticons/detective.svg +0 -75
- package/assets/image-editor/images/stickers/emoticons/dissapointment.svg +0 -70
- package/assets/image-editor/images/stickers/emoticons/doctor.svg +0 -61
- package/assets/image-editor/images/stickers/emoticons/drunk.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/dumb.svg +0 -50
- package/assets/image-editor/images/stickers/emoticons/emo-1.svg +0 -104
- package/assets/image-editor/images/stickers/emoticons/emo-2.svg +0 -111
- package/assets/image-editor/images/stickers/emoticons/emo.svg +0 -56
- package/assets/image-editor/images/stickers/emoticons/emoticon.svg +0 -84
- package/assets/image-editor/images/stickers/emoticons/evil.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/faint-1.svg +0 -75
- package/assets/image-editor/images/stickers/emoticons/faint.svg +0 -84
- package/assets/image-editor/images/stickers/emoticons/flirt-1.svg +0 -81
- package/assets/image-editor/images/stickers/emoticons/flirt-2.svg +0 -68
- package/assets/image-editor/images/stickers/emoticons/flirt.svg +0 -71
- package/assets/image-editor/images/stickers/emoticons/flirty.svg +0 -60
- package/assets/image-editor/images/stickers/emoticons/gangster.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/geek-1.svg +0 -76
- package/assets/image-editor/images/stickers/emoticons/geek.svg +0 -69
- package/assets/image-editor/images/stickers/emoticons/gentleman-1.svg +0 -82
- package/assets/image-editor/images/stickers/emoticons/gentleman-2.svg +0 -58
- package/assets/image-editor/images/stickers/emoticons/gentleman-3.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/gentleman-4.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/gentleman.svg +0 -57
- package/assets/image-editor/images/stickers/emoticons/ginger.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/girl-1.svg +0 -70
- package/assets/image-editor/images/stickers/emoticons/girl.svg +0 -73
- package/assets/image-editor/images/stickers/emoticons/goofy-1.svg +0 -46
- package/assets/image-editor/images/stickers/emoticons/goofy-2.svg +0 -79
- package/assets/image-editor/images/stickers/emoticons/goofy-3.svg +0 -79
- package/assets/image-editor/images/stickers/emoticons/goofy-4.svg +0 -46
- package/assets/image-editor/images/stickers/emoticons/goofy.svg +0 -79
- package/assets/image-editor/images/stickers/emoticons/grubby-1.svg +0 -114
- package/assets/image-editor/images/stickers/emoticons/grubby.svg +0 -165
- package/assets/image-editor/images/stickers/emoticons/happy-1.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/happy-10.svg +0 -62
- package/assets/image-editor/images/stickers/emoticons/happy-11.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/happy-12.svg +0 -53
- package/assets/image-editor/images/stickers/emoticons/happy-13.svg +0 -58
- package/assets/image-editor/images/stickers/emoticons/happy-14.svg +0 -62
- package/assets/image-editor/images/stickers/emoticons/happy-15.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/happy-16.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/happy-2.svg +0 -71
- package/assets/image-editor/images/stickers/emoticons/happy-3.svg +0 -74
- package/assets/image-editor/images/stickers/emoticons/happy-4.svg +0 -77
- package/assets/image-editor/images/stickers/emoticons/happy-5.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/happy-6.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/happy-7.svg +0 -58
- package/assets/image-editor/images/stickers/emoticons/happy-8.svg +0 -42
- package/assets/image-editor/images/stickers/emoticons/happy-9.svg +0 -45
- package/assets/image-editor/images/stickers/emoticons/happy.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/harry-potter.svg +0 -68
- package/assets/image-editor/images/stickers/emoticons/heisenberg.svg +0 -80
- package/assets/image-editor/images/stickers/emoticons/hipster-1.svg +0 -118
- package/assets/image-editor/images/stickers/emoticons/hipster-2.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/hipster.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/in-love-1.svg +0 -62
- package/assets/image-editor/images/stickers/emoticons/in-love-2.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/in-love-3.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/in-love-4.svg +0 -50
- package/assets/image-editor/images/stickers/emoticons/in-love-5.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/in-love-6.svg +0 -53
- package/assets/image-editor/images/stickers/emoticons/in-love.svg +0 -57
- package/assets/image-editor/images/stickers/emoticons/japan.svg +0 -79
- package/assets/image-editor/images/stickers/emoticons/jew.svg +0 -83
- package/assets/image-editor/images/stickers/emoticons/joyful-1.svg +0 -72
- package/assets/image-editor/images/stickers/emoticons/joyful-2.svg +0 -45
- package/assets/image-editor/images/stickers/emoticons/joyful.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/kiss-1.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/kiss-2.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/kiss-3.svg +0 -53
- package/assets/image-editor/images/stickers/emoticons/kiss-4.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/kiss.svg +0 -67
- package/assets/image-editor/images/stickers/emoticons/laughing-1.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/laughing-2.svg +0 -57
- package/assets/image-editor/images/stickers/emoticons/laughing-3.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/laughing.svg +0 -56
- package/assets/image-editor/images/stickers/emoticons/listening.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/love.svg +0 -74
- package/assets/image-editor/images/stickers/emoticons/manly.svg +0 -75
- package/assets/image-editor/images/stickers/emoticons/miserly-1.svg +0 -90
- package/assets/image-editor/images/stickers/emoticons/miserly.svg +0 -82
- package/assets/image-editor/images/stickers/emoticons/nerd-1.svg +0 -88
- package/assets/image-editor/images/stickers/emoticons/nerd-2.svg +0 -73
- package/assets/image-editor/images/stickers/emoticons/nerd-3.svg +0 -60
- package/assets/image-editor/images/stickers/emoticons/nerd-4.svg +0 -70
- package/assets/image-editor/images/stickers/emoticons/nerd.svg +0 -88
- package/assets/image-editor/images/stickers/emoticons/ninja.svg +0 -51
- package/assets/image-editor/images/stickers/emoticons/pirate-1.svg +0 -92
- package/assets/image-editor/images/stickers/emoticons/pirate-2.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/pirate.svg +0 -286
- package/assets/image-editor/images/stickers/emoticons/punk-1.svg +0 -134
- package/assets/image-editor/images/stickers/emoticons/punk-2.svg +0 -153
- package/assets/image-editor/images/stickers/emoticons/punk.svg +0 -82
- package/assets/image-editor/images/stickers/emoticons/rapper.svg +0 -51
- package/assets/image-editor/images/stickers/emoticons/relieved.svg +0 -56
- package/assets/image-editor/images/stickers/emoticons/rich-1.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/rich-2.svg +0 -93
- package/assets/image-editor/images/stickers/emoticons/rich.svg +0 -88
- package/assets/image-editor/images/stickers/emoticons/rockstar.svg +0 -177
- package/assets/image-editor/images/stickers/emoticons/sad-1.svg +0 -43
- package/assets/image-editor/images/stickers/emoticons/sad-2.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/sad-3.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/sad-4.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/sad-5.svg +0 -45
- package/assets/image-editor/images/stickers/emoticons/sad-6.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/sad.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/scared-1.svg +0 -79
- package/assets/image-editor/images/stickers/emoticons/scared-2.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/scared-3.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/scared.svg +0 -45
- package/assets/image-editor/images/stickers/emoticons/sceptic-1.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/sceptic-2.svg +0 -80
- package/assets/image-editor/images/stickers/emoticons/sceptic-3.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/sceptic-4.svg +0 -46
- package/assets/image-editor/images/stickers/emoticons/sceptic-5.svg +0 -43
- package/assets/image-editor/images/stickers/emoticons/sceptic-6.svg +0 -42
- package/assets/image-editor/images/stickers/emoticons/sceptic-7.svg +0 -50
- package/assets/image-editor/images/stickers/emoticons/sceptic.svg +0 -44
- package/assets/image-editor/images/stickers/emoticons/secret.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/shocked-1.svg +0 -67
- package/assets/image-editor/images/stickers/emoticons/shocked-2.svg +0 -44
- package/assets/image-editor/images/stickers/emoticons/shocked-3.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/shocked.svg +0 -46
- package/assets/image-editor/images/stickers/emoticons/sick-1.svg +0 -55
- package/assets/image-editor/images/stickers/emoticons/sick-2.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/sick-3.svg +0 -49
- package/assets/image-editor/images/stickers/emoticons/sick-4.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/sick.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/silent.svg +0 -43
- package/assets/image-editor/images/stickers/emoticons/skeleton.svg +0 -64
- package/assets/image-editor/images/stickers/emoticons/smile.svg +0 -43
- package/assets/image-editor/images/stickers/emoticons/smiling-1.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/smiling.svg +0 -75
- package/assets/image-editor/images/stickers/emoticons/smoked.svg +0 -131
- package/assets/image-editor/images/stickers/emoticons/smug-1.svg +0 -74
- package/assets/image-editor/images/stickers/emoticons/smug-2.svg +0 -82
- package/assets/image-editor/images/stickers/emoticons/smug-3.svg +0 -71
- package/assets/image-editor/images/stickers/emoticons/smug-4.svg +0 -50
- package/assets/image-editor/images/stickers/emoticons/smug-5.svg +0 -64
- package/assets/image-editor/images/stickers/emoticons/smug-6.svg +0 -82
- package/assets/image-editor/images/stickers/emoticons/smug.svg +0 -96
- package/assets/image-editor/images/stickers/emoticons/sporty.svg +0 -68
- package/assets/image-editor/images/stickers/emoticons/stunned.svg +0 -72
- package/assets/image-editor/images/stickers/emoticons/superhero-1.svg +0 -60
- package/assets/image-editor/images/stickers/emoticons/superhero-2.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/superhero-3.svg +0 -48
- package/assets/image-editor/images/stickers/emoticons/superhero-4.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/superhero.svg +0 -45
- package/assets/image-editor/images/stickers/emoticons/surprised-1.svg +0 -47
- package/assets/image-editor/images/stickers/emoticons/surprised.svg +0 -58
- package/assets/image-editor/images/stickers/emoticons/thinking.svg +0 -43
- package/assets/image-editor/images/stickers/emoticons/tired-1.svg +0 -78
- package/assets/image-editor/images/stickers/emoticons/tired-2.svg +0 -65
- package/assets/image-editor/images/stickers/emoticons/tired-3.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/tired.svg +0 -83
- package/assets/image-editor/images/stickers/emoticons/tough-1.svg +0 -65
- package/assets/image-editor/images/stickers/emoticons/tough.svg +0 -158
- package/assets/image-editor/images/stickers/emoticons/trendy.svg +0 -57
- package/assets/image-editor/images/stickers/emoticons/vampire-1.svg +0 -56
- package/assets/image-editor/images/stickers/emoticons/vampire.svg +0 -59
- package/assets/image-editor/images/stickers/emoticons/wink-1.svg +0 -54
- package/assets/image-editor/images/stickers/emoticons/wink-2.svg +0 -64
- package/assets/image-editor/images/stickers/emoticons/wink.svg +0 -73
- package/assets/image-editor/images/stickers/emoticons/winking-1.svg +0 -52
- package/assets/image-editor/images/stickers/emoticons/winking.svg +0 -43
- package/assets/image-editor/images/stickers/emoticons/yawning-1.svg +0 -62
- package/assets/image-editor/images/stickers/emoticons/yawning-2.svg +0 -51
- package/assets/image-editor/images/stickers/emoticons/yawning-3.svg +0 -51
- package/assets/image-editor/images/stickers/emoticons/yawning.svg +0 -73
- package/assets/image-editor/images/stickers/emoticons/yelling.svg +0 -80
- package/assets/image-editor/images/stickers/emoticons/zombie.svg +0 -65
- package/assets/image-editor/images/stickers/landmarks/0.svg +0 -38
- package/assets/image-editor/images/stickers/landmarks/1.svg +0 -46
- package/assets/image-editor/images/stickers/landmarks/10.svg +0 -18
- package/assets/image-editor/images/stickers/landmarks/11.svg +0 -81
- package/assets/image-editor/images/stickers/landmarks/12.svg +0 -77
- package/assets/image-editor/images/stickers/landmarks/13.svg +0 -42
- package/assets/image-editor/images/stickers/landmarks/14.svg +0 -78
- package/assets/image-editor/images/stickers/landmarks/15.svg +0 -84
- package/assets/image-editor/images/stickers/landmarks/16.svg +0 -87
- package/assets/image-editor/images/stickers/landmarks/17.svg +0 -60
- package/assets/image-editor/images/stickers/landmarks/18.svg +0 -30
- package/assets/image-editor/images/stickers/landmarks/19.svg +0 -36
- package/assets/image-editor/images/stickers/landmarks/2.svg +0 -28
- package/assets/image-editor/images/stickers/landmarks/20.svg +0 -137
- package/assets/image-editor/images/stickers/landmarks/21.svg +0 -63
- package/assets/image-editor/images/stickers/landmarks/22.svg +0 -26
- package/assets/image-editor/images/stickers/landmarks/23.svg +0 -52
- package/assets/image-editor/images/stickers/landmarks/24.svg +0 -56
- package/assets/image-editor/images/stickers/landmarks/25.svg +0 -40
- package/assets/image-editor/images/stickers/landmarks/26.svg +0 -34
- package/assets/image-editor/images/stickers/landmarks/27.svg +0 -32
- package/assets/image-editor/images/stickers/landmarks/28.svg +0 -19
- package/assets/image-editor/images/stickers/landmarks/29.svg +0 -23
- package/assets/image-editor/images/stickers/landmarks/3.svg +0 -36
- package/assets/image-editor/images/stickers/landmarks/30.svg +0 -36
- package/assets/image-editor/images/stickers/landmarks/31.svg +0 -27
- package/assets/image-editor/images/stickers/landmarks/32.svg +0 -25
- package/assets/image-editor/images/stickers/landmarks/33.svg +0 -29
- package/assets/image-editor/images/stickers/landmarks/34.svg +0 -72
- package/assets/image-editor/images/stickers/landmarks/35.svg +0 -18
- package/assets/image-editor/images/stickers/landmarks/36.svg +0 -45
- package/assets/image-editor/images/stickers/landmarks/37.svg +0 -46
- package/assets/image-editor/images/stickers/landmarks/38.svg +0 -44
- package/assets/image-editor/images/stickers/landmarks/39.svg +0 -23
- package/assets/image-editor/images/stickers/landmarks/4.svg +0 -33
- package/assets/image-editor/images/stickers/landmarks/40.svg +0 -25
- package/assets/image-editor/images/stickers/landmarks/41.svg +0 -69
- package/assets/image-editor/images/stickers/landmarks/42.svg +0 -75
- package/assets/image-editor/images/stickers/landmarks/43.svg +0 -44
- package/assets/image-editor/images/stickers/landmarks/44.svg +0 -65
- package/assets/image-editor/images/stickers/landmarks/45.svg +0 -19
- package/assets/image-editor/images/stickers/landmarks/46.svg +0 -47
- package/assets/image-editor/images/stickers/landmarks/47.svg +0 -544
- package/assets/image-editor/images/stickers/landmarks/48.svg +0 -162
- package/assets/image-editor/images/stickers/landmarks/49.svg +0 -70
- package/assets/image-editor/images/stickers/landmarks/5.svg +0 -36
- package/assets/image-editor/images/stickers/landmarks/50.svg +0 -52
- package/assets/image-editor/images/stickers/landmarks/51.svg +0 -110
- package/assets/image-editor/images/stickers/landmarks/52.svg +0 -41
- package/assets/image-editor/images/stickers/landmarks/53.svg +0 -74
- package/assets/image-editor/images/stickers/landmarks/54.svg +0 -36
- package/assets/image-editor/images/stickers/landmarks/55.svg +0 -84
- package/assets/image-editor/images/stickers/landmarks/56.svg +0 -93
- package/assets/image-editor/images/stickers/landmarks/57.svg +0 -67
- package/assets/image-editor/images/stickers/landmarks/58.svg +0 -101
- package/assets/image-editor/images/stickers/landmarks/59.svg +0 -47
- package/assets/image-editor/images/stickers/landmarks/6.svg +0 -59
- package/assets/image-editor/images/stickers/landmarks/60.svg +0 -134
- package/assets/image-editor/images/stickers/landmarks/61.svg +0 -79
- package/assets/image-editor/images/stickers/landmarks/62.svg +0 -43
- package/assets/image-editor/images/stickers/landmarks/63.svg +0 -83
- package/assets/image-editor/images/stickers/landmarks/64.svg +0 -99
- package/assets/image-editor/images/stickers/landmarks/65.svg +0 -79
- package/assets/image-editor/images/stickers/landmarks/66.svg +0 -37
- package/assets/image-editor/images/stickers/landmarks/67.svg +0 -82
- package/assets/image-editor/images/stickers/landmarks/68.svg +0 -216
- package/assets/image-editor/images/stickers/landmarks/69.svg +0 -17
- package/assets/image-editor/images/stickers/landmarks/7.svg +0 -16
- package/assets/image-editor/images/stickers/landmarks/70.svg +0 -45
- package/assets/image-editor/images/stickers/landmarks/71.svg +0 -37
- package/assets/image-editor/images/stickers/landmarks/72.svg +0 -28
- package/assets/image-editor/images/stickers/landmarks/73.svg +0 -25
- package/assets/image-editor/images/stickers/landmarks/74.svg +0 -23
- package/assets/image-editor/images/stickers/landmarks/75.svg +0 -88
- package/assets/image-editor/images/stickers/landmarks/76.svg +0 -25
- package/assets/image-editor/images/stickers/landmarks/77.svg +0 -23
- package/assets/image-editor/images/stickers/landmarks/78.svg +0 -63
- package/assets/image-editor/images/stickers/landmarks/79.svg +0 -25
- package/assets/image-editor/images/stickers/landmarks/8.svg +0 -52
- package/assets/image-editor/images/stickers/landmarks/80.svg +0 -29
- package/assets/image-editor/images/stickers/landmarks/81.svg +0 -44
- package/assets/image-editor/images/stickers/landmarks/82.svg +0 -83
- package/assets/image-editor/images/stickers/landmarks/83.svg +0 -65
- package/assets/image-editor/images/stickers/landmarks/84.svg +0 -31
- package/assets/image-editor/images/stickers/landmarks/85.svg +0 -30
- package/assets/image-editor/images/stickers/landmarks/86.svg +0 -26
- package/assets/image-editor/images/stickers/landmarks/87.svg +0 -132
- package/assets/image-editor/images/stickers/landmarks/88.svg +0 -93
- package/assets/image-editor/images/stickers/landmarks/89.svg +0 -91
- package/assets/image-editor/images/stickers/landmarks/9.svg +0 -70
- package/assets/image-editor/images/stickers/landmarks/90.svg +0 -65
- package/assets/image-editor/images/stickers/landmarks/91.svg +0 -36
- package/assets/image-editor/images/stickers/landmarks/92.svg +0 -66
- package/assets/image-editor/images/stickers/landmarks/93.svg +0 -65
- package/assets/image-editor/images/stickers/landmarks/94.svg +0 -28
- package/assets/image-editor/images/stickers/landmarks/95.svg +0 -31
- package/assets/image-editor/images/stickers/landmarks/96.svg +0 -25
- package/assets/image-editor/images/stickers/landmarks/97.svg +0 -31
- package/assets/image-editor/images/stickers/landmarks/98.svg +0 -52
- package/assets/image-editor/images/stickers/landmarks/99.svg +0 -56
- package/assets/image-editor/images/stickers/stars/0.png +0 -0
- package/assets/image-editor/images/stickers/stars/1.png +0 -0
- package/assets/image-editor/images/stickers/stars/2.png +0 -0
- package/assets/image-editor/images/stickers/stars/3.png +0 -0
- package/assets/image-editor/images/stickers/stars/4.png +0 -0
- package/assets/image-editor/images/stickers/stars/5.png +0 -0
- package/assets/image-editor/images/stickers/transportation/0.svg +0 -26
- package/assets/image-editor/images/stickers/transportation/1.svg +0 -10
- package/assets/image-editor/images/stickers/transportation/10.svg +0 -16
- package/assets/image-editor/images/stickers/transportation/11.svg +0 -30
- package/assets/image-editor/images/stickers/transportation/12.svg +0 -22
- package/assets/image-editor/images/stickers/transportation/13.svg +0 -24
- package/assets/image-editor/images/stickers/transportation/14.svg +0 -19
- package/assets/image-editor/images/stickers/transportation/15.svg +0 -23
- package/assets/image-editor/images/stickers/transportation/16.svg +0 -25
- package/assets/image-editor/images/stickers/transportation/17.svg +0 -34
- package/assets/image-editor/images/stickers/transportation/18.svg +0 -29
- package/assets/image-editor/images/stickers/transportation/19.svg +0 -24
- package/assets/image-editor/images/stickers/transportation/2.svg +0 -27
- package/assets/image-editor/images/stickers/transportation/20.svg +0 -25
- package/assets/image-editor/images/stickers/transportation/21.svg +0 -22
- package/assets/image-editor/images/stickers/transportation/3.svg +0 -18
- package/assets/image-editor/images/stickers/transportation/4.svg +0 -24
- package/assets/image-editor/images/stickers/transportation/5.svg +0 -15
- package/assets/image-editor/images/stickers/transportation/6.svg +0 -25
- package/assets/image-editor/images/stickers/transportation/7.svg +0 -17
- package/assets/image-editor/images/stickers/transportation/8.svg +0 -28
- package/assets/image-editor/images/stickers/transportation/9.svg +0 -23
- package/assets/image-editor/images/textures/0.png +0 -0
- package/assets/image-editor/images/textures/1.png +0 -0
- package/assets/image-editor/images/textures/10.png +0 -0
- package/assets/image-editor/images/textures/11.png +0 -0
- package/assets/image-editor/images/textures/12.png +0 -0
- package/assets/image-editor/images/textures/13.png +0 -0
- package/assets/image-editor/images/textures/14.png +0 -0
- package/assets/image-editor/images/textures/15.png +0 -0
- package/assets/image-editor/images/textures/16.png +0 -0
- package/assets/image-editor/images/textures/17.png +0 -0
- package/assets/image-editor/images/textures/18.png +0 -0
- package/assets/image-editor/images/textures/19.png +0 -0
- package/assets/image-editor/images/textures/2.png +0 -0
- package/assets/image-editor/images/textures/20.png +0 -0
- package/assets/image-editor/images/textures/21.png +0 -0
- package/assets/image-editor/images/textures/22.png +0 -0
- package/assets/image-editor/images/textures/23.png +0 -0
- package/assets/image-editor/images/textures/24.png +0 -0
- package/assets/image-editor/images/textures/25.png +0 -0
- package/assets/image-editor/images/textures/26.png +0 -0
- package/assets/image-editor/images/textures/27.png +0 -0
- package/assets/image-editor/images/textures/28.png +0 -0
- package/assets/image-editor/images/textures/3.png +0 -0
- package/assets/image-editor/images/textures/4.png +0 -0
- package/assets/image-editor/images/textures/5.png +0 -0
- package/assets/image-editor/images/textures/6.png +0 -0
- package/assets/image-editor/images/textures/7.png +0 -0
- package/assets/image-editor/images/textures/8.png +0 -0
- package/assets/image-editor/images/textures/9.png +0 -0
- package/components/PixieEditor/PixieController.d.ts +0 -40
- package/components/PixieEditor/PixieEditor.d.ts +0 -11
- package/components/PixieEditor/backgroundColor.d.ts +0 -2
- package/components/PixieEditor/index.d.ts +0 -4
- package/file-manager-IconsTab-DUvutF2N.js +0 -2434
- package/file-manager-PixieEditor-D-Cv1Ieh.js +0 -597
- package/file-manager-urls-DN9gaYil.js +0 -37
- package/hooks/usePixieEditor.d.ts +0 -16
- package/test-pixie-loading.html +0 -108
- /package/{utils/pixieEditorConfig.test.d.ts → components/ImageIcons/iconSets.test.d.ts} +0 -0
package/core.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.fileManagerCore={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=class e extends Error{constructor(t,n,r,i){super(t),this.code=n,this.status=r,this.details=i,this.name=`FileManagerApiError`,Error.captureStackTrace&&Error.captureStackTrace(this,e)}};function n(e,t=`BackendError`){switch(e){case 400:return`ValidationError`;case 401:return`AuthenticationFailed`;case 403:return`AuthorizationFailed`;case 404:return`FileNotFound`;case 413:return`PayloadTooLarge`;case 415:return`UnsupportedMediaType`;case 429:return`RateLimitExceeded`;case 500:return`BackendError`;case 503:return`ServiceUnavailable`;case 504:return`Timeout`;default:return t}}function r(e,t){return e?t?`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`:e:t}function i(e){let t=typeof __webpack_public_path__<`u`?__webpack_public_path__:``;if(e&&/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(e))return e;let n=r(t,e||``);return n&&!n.startsWith(`/`)&&!/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(n)&&(n=`/`+n),n}function a(e,t){if(/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(t))return t;let n=r(i(e),t||``);return n&&!n.startsWith(`/`)&&!/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(n)?`/`+n:n}var o=``,s=class{constructor(){this.map=new Map}static childrenViewKey(e,t){return`v${o}${e}${o}${t}`}static childrenCountKey(e){return`c${o}${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${o}${e}${o}`;for(let e of[...this.map.keys()])e.startsWith(t)&&this.map.delete(e)}clearAll(){this.map.clear()}},c=class{constructor(){this.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)}};function l(e){return{sortBy:e?.sortBy??`name`,sortOrder:e?.sortOrder==null?e?.sortBy!=null&&e.sortBy!==``?`desc`:`asc`:e.sortOrder===`desc`?`desc`:`asc`}}function u(e,t,n){let{sortBy:r,sortOrder:i}=l(n),a=0;switch(r){case`name`:a=(e.name||``).localeCompare(t.name||``);break;case`date`:a=new Date(e.date||0).getTime()-new Date(t.date||0).getTime();break;case`size`:a=(Number(e.size)||0)-(Number(t.size)||0);break;case`type`:a=(e.extension||e.type||``).toLowerCase().localeCompare((t.extension||t.type||``).toLowerCase());break;default:a=(e.name||``).localeCompare(t.name||``)}return i===`desc`?-a:a}function d(e){return e!=null&&String(e).trim()!==``}function f(e,t){let{sortBy:n}=l(t);switch(n){case`date`:return d(e.date)?!Number.isNaN(new Date(e.date).getTime()):!1;case`size`:return e.size!=null&&Number.isFinite(Number(e.size));case`type`:return d(e.extension)||d(e.type);default:return d(e.name)}}function p(e,t){let n=typeof t?.search==`string`?t.search.trim():``;if(!n)return!0;let r=n.toLowerCase();return(e.name?.toLowerCase().includes(r)??!1)||(e.type?.toLowerCase().includes(r)??!1)||(e.extension?.toLowerCase().includes(r)??!1)}var m=u,h=p,g=f;function _(e={}){return{...e,comparator:e.comparator??m,filterMatch:e.filterMatch??h,hasSortValue:e.hasSortValue??g}}var v=`Trash`;function y(e){return e.replace(/\\/g,`/`).replace(/^\/+|\/+$/g,``)}function b(e,t,n=v){let r=y(e);if(!r)return[];let i=[e,r];if(r===y(t)){i.push(t);let e=y(t);e===`Trash`||e.toLowerCase()===`trash`?i.push(n,v,v.toLowerCase()):n!==`Trash`&&y(n)!==e&&i.push(n)}return Array.from(new Set(i.map(y).filter(Boolean)))}function x(e){let t=new Map;for(let[n,r]of Object.entries(e))r.id&&t.set(y(n),r);return e=>{let n=t.get(y(e));if(n)return{id:n.id,name:n.name??n.id,folderId:n.folderId??null,isFolder:!0}}}var S=/^(utm_[a-z0-9_]+|fbclid|gclid|igshid|mc_cid|mc_eid)$/i;function C(e){try{return decodeURIComponent(e.replace(/\+/g,` `))}catch{return e}}function w(e){let t=new URL(e.trim());t.hash=``,t.hostname=t.hostname.toLowerCase(),(t.protocol===`https:`&&t.port===`443`||t.protocol===`http:`&&t.port===`80`)&&(t.port=``);let n=(t.search.startsWith(`?`)?t.search.slice(1):t.search).split(`&`).filter(Boolean).map(e=>{let t=e.indexOf(`=`),n=t===-1?e:e.slice(0,t),r=t===-1?``:e.slice(t+1);return{pair:e,key:C(n),value:C(r)}}).filter(({key:e})=>!S.test(e)).sort((e,t)=>{let n=e.key.localeCompare(t.key);return n===0?e.value.localeCompare(t.value):n});return t.search=n.length?`?${n.map(({pair:e})=>e).join(`&`)}`:``,t.toString()}function T(e){try{return w(e)}catch{return e.trim()}}var E=``,D=1800*1e3;function O(e){return e==null||e===``?E:e}function k(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)&&t>=0?t:1/0}function A(e){return!e||typeof e.search!=`string`?!1:e.search.trim().length>0}function j(e){if(!e)return null;let t=e.folderId;return t==null?null:String(t)}function M(e){return!!e&&!!e.isFolder}function N(){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 P(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`path_folder_not_found`||t.code===`folder_not_found`||t.code===`FolderNotFound`||t.data?.code===`path_folder_not_found`||t.data?.code===`folder_not_found`||t.status===404||t.data?.data?.status===404}function F(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 I(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?F(a):``;return`${o}${s?`|${s}`:``}`}var L=class e{constructor(){this.entities=new Map,this.childrenByParent=new Map,this.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&&!M(t)?t:void 0}getFolder(e){let t=this.getEntity(e);return t&&M(t)?t:void 0}getChildrenIds(e,t={}){let n=O(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){let t=T(e);for(let n of this.entities.values()){let r=n.value.url;if(r&&(r===e||T(r)===t))return n.value}return null}upsertEntity(e){let t=this.entities.get(e.id)??null,n=t?t.value:null,r=n?j(n):null,i=j(e),a=n?M(n):!1,o=M(e),s;if(n&&M(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=O(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=O(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||!M(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=j(n),i=O(r),a=this.childrenByParent.get(i);return a&&(M(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||!M(t.value))return{deletedFolderRecords:[],deletedFileSystemItemRecords:[]};let n=[{id:e,parentId:j(t.value)}],r=[],i=[];for(;n.length;){let e=n.shift();r.push(e);let t=this.childrenByParent.get(O(e.id));if(t){for(let e of Array.from(t.folders)){let t=this.entities.get(e);t&&n.push({id:e,parentId:j(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=O(j(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=O(a.id);this.childrenByParent.delete(s);let c=O(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=O(j(r)),a=this.childrenByParent.get(i);a&&(M(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(M(r)&&M(o)){let e=r.childrenCount;e!==void 0&&(o.childrenCount=e)}this.entities.set(e,{value:o,updatedAt:this.now()});let s=O(t),c=this.childrenByParent.get(s);return c||(c={files:new Set,folders:new Set},this.childrenByParent.set(s,c)),M(o)?c.folders.add(e):c.files.add(e),{...o}}copyFileSystemItem(e,t,n){let r=this.entities.get(e)??null;if(!r||M(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||!M(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&&this.now()-n.updatedAt>t}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=O(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=O(j(t));if(!l.has(e))continue}if(i===`file`&&M(t)||i===`folder`&&!M(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}},R=class e{constructor(e={},t=D,n,r,i=new s,a=P){this.views=new Map,this.maxViewsPerParent=50;let o=_(e);this.strategy={allowSortedInsert:o.allowSortedInsert??!0,allowSearchInsert:o.allowSearchInsert??!0,invalidateOnPaginationFull:o.invalidateOnPaginationFull??!0,preloadPagesBefore:o.preloadPagesBefore??0,preloadPagesAfter:o.preloadPagesAfter??1,comparator:o.comparator,filterMatch:o.filterMatch,hasSortValue:o.hasSortValue},this.ttl=t,this.errorTtl=n??t,this.entityTtl=r??t,this.failedRequests=i,this.isFolderNotFoundError=a}setServerChildrenCountHandler(e){this.serverChildrenCountHandler=e}setChildrenCountInvalidator(e){this.childrenCountInvalidator=e}now(){return Date.now()}parentKey(e){return O(e??null)}isExpired(e){return e==null||this.ttl!==1/0&&this.now()-e>this.ttl}areEntitiesStale(e,t){return!e||e.some(e=>!t.getEntity(e)||t.isEntityStale(e,this.entityTtl))}isEntityTypeCompatible(e,t){return!!(!t||t===`all`||t===`file`&&!M(e)||t===`folder`&&M(e))}markViewStaleForReload(e){e.view.meta={...e.view.meta??{},stale:!0},e.view.updatedAt=this.now(),e.view.loadId=N(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0)}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=I(t??{}),o=this.views.get(i);o||(o=new Map,this.views.set(i,o));let c=s.childrenViewKey(i,a),l=o.get(a);l||(l={params:t,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:null}},o.set(a,l),this.cleanupOldViews(o));let u=this.failedRequests.getFreshError(c,this.errorTtl);if(u!=null)throw u;if(l.view.value&&!this.isExpired(l.view.updatedAt)&&!this.areEntitiesStale(l.view.value,r)&&!l.view.meta?.stale){let e=l.view.value.map(e=>r.getEntity(e)).filter(Boolean),t=l.params?.itemType||`all`;return{items:e.filter(e=>this.isEntityTypeCompatible(e,t)),...l.view.meta??{}}}if(l.view.promise)return l.view.promise;let d=N();l.view.loadId=d;let f=(async()=>{try{let a=await n(e,t),o=A(t),s=o?{...a,total:void 0}:a,u=this.views.get(i)?.get(I(t));if(!u||u.view.loadId!==d){let e=Error(`StaleLoad`);throw e.name=`StaleLoad`,e}for(let e of s.items)r.upsertEntity(e);l.view.value=s.items.map(e=>e.id);let{items:f,...p}=s,m={...p};l.view.meta=m,l.view.meta&&(l.view.meta.stale=!1),this.failedRequests.delete(c),l.view.updatedAt=this.now(),!o&&typeof m.total==`number`&&(this.serverChildrenCountHandler?this.serverChildrenCountHandler(e??null,m.total,r):r.updateServerChildrenCount(e,m.total));let h=this.strategy.preloadPagesAfter??0,g=this.strategy.preloadPagesBefore??0,_=k(t?.pageSize);if((h>0||g>0)&&Number.isFinite(_)){let i=e,a={...t},o=typeof m.totalPages==`number`?m.totalPages:1,s=t?.page??1,c=_,l=n,u=d;setTimeout(()=>{this.preloadPagesAsync(i,a,s,o,c,h,g,r,m,l,u)},0)}return s}catch(e){if(e?.name===`StaleLoad`)throw this.failedRequests.delete(c),l.view.value=void 0,l.view.updatedAt=this.now(),e;if(this.isFolderNotFoundError(e))return this.failedRequests.delete(c),l.view.value=[],l.view.meta={total:0,totalPages:0},l.view.updatedAt=this.now(),{items:[],total:0,totalPages:0};throw this.failedRequests.setError(c,e),l.view.value=void 0,l.view.updatedAt=this.now(),e}finally{l.view.promise=null}})();return l.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(I(t));if(!d||u!=null&&d.view.loadId!==u)return;let f=c.get(I(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(I(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=I(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(e){console.debug(`Preload failed silently:`,e)}};if(a>0&&n<p)for(let e=1;e<=Math.min(a,p-n);e++){let r=n+e,i=I({...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=I({...t,page:r}),a=c.get(i);(!a?.view.value||this.isExpired(a.view.updatedAt))&&m(r)}}catch(e){console.debug(`Preload process failed:`,e)}}removeEmptyPageIfNeeded(e,t,n,r,i){if(t.view.value&&t.view.value.length===0&&n<r){let t=I({...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=k(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))}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=I({...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=I({...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=I(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}canCompareInSortedView(e,t){let n=e.params??{};return!n.sortBy&&!n.sortOrder||!this.strategy.hasSortValue||this.strategy.hasSortValue(t,e.params)}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)||!this.canCompareInSortedView(e,t))return!1;let a=e.view.value.map(e=>n.getEntity(e));if(a.some(e=>!e))return!1;if(a.length===0){let n=e.params??{};if(n.sortBy||n.sortOrder){let n=r(t,t,e.params);if(typeof n!=`number`||Number.isNaN(n))return!1}return e.view.value.includes(t.id)?(e.view.updatedAt=this.now(),!0):(e.view.value=[t.id],e.view.updatedAt=this.now(),!0)}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(),!0)}updateChildrenCountForOperation(e,t,n,r){let i=j(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??null,-1),this.adjustChildrenCount(r,i,1),this.childrenCountInvalidator?.(n??null),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=k(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)),this.markViewStaleForReload(e));continue}if(!e.view.value){e.view.meta&&(e.view.meta.stale=!0),e.view.loadId=N(),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)){this.markViewStaleForReload(e);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`)||this.isExpired(e.view.updatedAt))}tryReinsertEntity(e,t,n,r,i){let a=e.params?.itemType||`all`;if(!this.isEntityTypeCompatible(t,a))return!1;let o=e.params??{};return this.strategy.filterMatch(t,o)?this.tryInsertSorted(e,t,n)?!0:o.sortBy||o.sortOrder?!1:!r||e.view.value.length<i?(e.view.value.push(t.id),!0):!1:!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=N(),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)){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)}if(t.view.updatedAt=Date.now(),i&&(t.view.value?.length??0)>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 this.markViewStaleForReload(t);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 this.markViewStaleForReload(t);t.view.loadId=N(),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=N(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(l&&(a||o)){t.view.value=t.view.value.filter(e=>e!==s.id),this.tryReinsertEntity(t,s,c,i,r)?(t.view.updatedAt=Date.now(),t.view.loadId=N(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)):this.markViewStaleForReload(t);return}if(l){t.view.updatedAt=Date.now(),t.view.loadId=N(),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)){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()}else this.markViewStaleForReload(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 this.markViewStaleForReload(t);t.view.loadId=N(),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=N(),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=N(),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=n?.errorTtl??t?.errorTtl??r,a=n?.failedRequests??new s,o=new e({},r,i,void 0,a,n?.isFolderNotFoundError);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)}o.views.set(e,t)}return o}},z=class e{invalidateChildrenCountCache(e){let t=O(e??``);this.childrenCountPromises.delete(t),this.failedRequests.delete(s.childrenCountKey(t))}constructor(e={},t=D,n,r){this.childrenCountPromises=new Map,this.isFolderNotFoundError=r?.isFolderNotFoundError??P,this.failedRequests=new s,this.ttl=r?.ttl??t,this.errorTtl=r?.errorTtl??n??this.ttl,this.entities=new L,this.views=new R(e,this.ttl,this.errorTtl,void 0,this.failedRequests,this.isFolderNotFoundError),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?j(t):null,r=j(e),i=t?M(t):!1,a=M(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),O(n)===O(e))return!0;let t=this.entities.getEntity(n);if(!t)break;n=j(t),n===null&&(n=E)}return!1}moveEntity(e,t){let n=this.entities.getEntity(e);if(!n||M(n)&&t!==null&&this.isAncestor(e,t))return null;let r=j(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(M(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,N());for(let n of i){let i=this.entities.getFolder(n),a=o.get(n),s=j(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=N(),i={...n,id:r,folderId:t};this.entities.upsertEntity(i)}}a=this.entities.getEntity(o.get(e))??null}else{let i=n??N();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(M(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){this.views.forceInvalidateChildrenViews(e??null),this.invalidateChildrenCountCache(e);return}let n=new Set;if(M(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)}}invalidateListingViews(e){this.views.forceInvalidateChildrenViews(e??null)}getChildrenIds(e){return this.entities.getChildrenIds(e)}searchByName(e,t){return this.entities.searchByName(e,t)}async getChildrenCount(e=``,t){let n=O(e),r=s.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),this.isFolderNotFoundError(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,r){let i=r?.ttl??t?.ttl??18e5,a=r?.errorTtl??t?.errorTtl??i,o=new e(n??{},i,a,r),s=L.fromJSON(t?.entities??{}),c=R.fromJSON(t?.views??{},{failedRequests:o.failedRequests,ttl:i,errorTtl:a,isFolderNotFoundError:r?.isFolderNotFoundError});if(n){let e=_(n);c.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}}return o.entities=s,o.views=c,c.setServerChildrenCountHandler((e,t,n)=>{o.handleServerReportedChildrenCount(e,t,n??s)}),c.setChildrenCountInvalidator(e=>{o.invalidateChildrenCountCache(e)}),o}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&&(console.warn(`Conflict: folder "${r}" has childrenCount=${i} but server says total=${t}`),this.views.forceInvalidateChildrenViews(r)),n.updateServerChildrenCount(r,t)}},ee=``,te=`Trash`,ne=`Edited`,B=1e4,V=1e4,H=25,U=10;function W(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 G(e){return e==null?``:String(e)}function K(e){return{...e,name:G(e.name)}}function q(e){return(e??[]).map(K)}function J(e){return!e||typeof e!=`object`||!(`name`in e)?e:{...e,name:G(e.name)}}function re(e){return e?e.replaceAll(`\\`,`/`).split(`/`).filter(Boolean):[]}for(var ie=class{_getTrashPath(){return this._pathOptions.trashPath||te}_getPathLookupCandidates(e){return b(e,this._getTrashPath(),v)}_folderFromResolvedPath(e,n){if(e.isFolder!==!0)throw new t(e.isFolder===!1?`Path '%s' resolves to a file, not a folder`.replace(`%s`,n):`Path '%s' resolved to an item that is not marked as a folder`.replace(`%s`,n),`ValidationError`);if(!e.id)throw new t(`Path '%s' resolved to a folder without id`.replace(`%s`,n),`ValidationError`);let r={id:e.id,name:e.name||e.id,parentId:e.folderId};return this._cache.upsertEntity(K({id:r.id,name:r.name,folderId:r.parentId??null,isFolder:!0})),r}async _resolveFolderByPath(e){if(typeof this._dataProvider.findItemByPath==`function`)for(let t of this._getPathLookupCandidates(e)){let e=await this._dataProvider.findItemByPath(t);if(e)return this._folderFromResolvedPath(e,t)}}async _findOrCreateFolderByPath(e){let n=re(e);if(n.length>U)throw new t(`Path depth exceeds maximum limit of %s`.replace(`%s`,String(U)),`ValidationError`);let r=await this._resolveFolderByPath(e);if(r)return r;let i;for(let r of n){let{files:n}=await this.getFiles({folderId:i?.id||``,itemType:`folder`}),a=n.find(e=>e.name===r);if(a){if(!a.isFolder)throw new t(`Path component '%s' in '%s' is not a folder`.replace(`%s`,r).replace(`%s`,e),`ValidationError`);i={id:a.id,name:a.name,parentId:a.folderId}}else{if(typeof this._dataProvider.createFolder!=`function`)throw new t(`Create folder operation is not supported by data provider`,`UnsupportedOperation`);i=await this.createFolder({name:r,parentId:i?.id})}}return i}async getTrashFolder(){let e=await this._findOrCreateFolderByPath(this._getTrashPath());if(!e)throw new t(`Trash folder path '%s' could not be resolved`.replace(`%s`,this._getTrashPath()),`FolderNotFound`);return e}async getTempFolder(){let e=this._pathOptions.tempPath??ne;if(e)try{return await this._findOrCreateFolderByPath(e)}catch(e){if(e instanceof t&&e.code===`ValidationError`)throw e;console.warn(`getTempFolder: temp folder unavailable, falling back to root`,e);return}}constructor(e,t={},n,r={}){this._dataProvider=e,this._options=t,this._pathOptions=n,this._blobFetchForceReloadOnceIds=new Set,this._mutationRegistry=new c,this._mapItem=async({childrenCount:e,...t})=>{let n=K(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}},this._config=r,this._useSoftDelete=this._pathOptions.useSoftDelete,this._rootId=this._pathOptions.rootId||ee,this._enableTrash=this._options.enableTrash===void 0||this._options.enableTrash,this._validateDuplicates=this._dataProvider.validateDuplicates,this._cache=new z(t.cacheStrategy||{},t.cacheStrategy?.ttl,t.cacheStrategy?.errorTtl),this.setController({invalidateItemCache:e=>{this._cache.forceInvalidate(e)},getCachedItem:e=>this._cache.getEntity(e)});let i=Object.getPrototypeOf(this);for(let e of Object.getOwnPropertyNames(i)){let t=Object.getOwnPropertyDescriptor(i,e);e!==`constructor`&&typeof t?.value==`function`&&(this[e]=t.value.bind(this))}}setController(e){typeof this._dataProvider.setController==`function`&&this._dataProvider.setController(e)}async clearCache(e){let t=e??this._rootId;this._cache.forceInvalidate(t),this._cache.invalidateListingViews(t),typeof this._dataProvider.clearCache==`function`&&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,n=!1){if(!e||e.trim().length===0)throw new t(n?`Folder name cannot be empty`:`File name cannot be empty`,n?`FolderInvalidName`:`FileInvalidName`);if(/[/\\:*?"<>|]/.test(e)){let r=n?`FolderInvalidName`:`FileInvalidName`;throw new t(n?`Folder name contains invalid characters: %s`.replace(`%s`,e):`File name contains invalid characters: %s`.replace(`%s`,e),r)}}_validateTargetFolderType(e){let n=this.normalizeId(e);if(n===this._rootId)return;let r=this._cache.getEntity(n);if(r&&!r.isFolder)throw new 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){if(e.url)return e.url;try{return typeof this._dataProvider?.getUrl==`function`&&this._dataProvider.getUrl(e)||void 0}catch(e){console.log(e)}}}async _getThumbnailUrl(e){if(e){if(e.thumbnailUrl)return e.thumbnailUrl;try{return typeof this._dataProvider?.getThumbnailUrl==`function`&&this._dataProvider.getThumbnailUrl(e)||void 0}catch(e){console.log(e)}}}_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=K(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);if(n)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?B: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:H: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?V:d);let x=v?V: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):B,i=await this._dataProvider.getItems({...t,folderId:e,limit:r}),a=q(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)=>u(e,r,{sortBy:t,sortOrder:n}))}async getFileData(e,n){let r=this.normalizeId(typeof e==`string`?e:e.id),i=n;this._blobFetchForceReloadOnceIds.delete(r)&&(i={...n,forceReload:!0});let a=this._cache.getEntity(r)||(typeof e==`string`?{id:r,name:``,folderId:this._rootId,isFolder:!1}:{...e,childrenCount:e.childCount});if(typeof this._dataProvider.getFileData==`function`)return await this._dataProvider.getFileData(a,i);if(!a.url&&typeof this._dataProvider.getUrl!=`function`)throw new t(`Cannot read file`,`FileReadError`);let o=a.url||(typeof this._dataProvider.getUrl==`function`?await this._dataProvider.getUrl(a):``);if(o)return(await(this._config.fetchWithProxy??fetch)(o,i?.forceReload?{cache:`no-store`}:void 0)).blob();throw new t(`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=K(t);return this._cache.upsertEntity(e),e}}catch(e){console.log(e)}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:H});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 n=this.normalizeId(e.folderId??this._rootId);if(typeof this._dataProvider.uploadFile!=`function`)throw new t(`Upload file operation is not supported by data provider`,`UnsupportedOperation`);if(this._validateName(e.name,!1),this._validateDuplicates&&this._checkNameExistsInCache(n,e.name,!1))throw new t(`File '%s' already exists in target folder`.replace(`%s`,e.name),`FileAlreadyExists`);let r=await this._dataProvider.uploadFile({...e,folderId:n}),i=K({name:e.name,size:e.size,...r,folderId:r.folderId??n});return this._cache.upsertEntity(i),i}async uploadFiles(e){let n=e.items.some(e=>e.noFolder)?await this.getTempFolder():null;e={...e,items:e.items?.map(e=>({...e,folderId:e.noFolder?n?.id:e.folderId}))};for(let t of e.items)t.folderId&&(e.folderId=t.folderId);let r=e.items||[],i=e.folderId??this._rootId,a=this.normalizeId(i);if(this._validateDuplicates){for(let e of r)if(e.name){this._validateName(e.name,!1);let n=this.normalizeId(e.folderId??a);if(this._checkNameExistsInCache(n,e.name,!1))throw new t(`File '%s' already exists in target folder`.replace(`%s`,e.name),`FileAlreadyExists`)}}let o={detailed:Array(r.length),success:!0};if(typeof this._dataProvider.uploadFiles==`function`){let e=r.map(e=>({...e,folderId:this.normalizeId(e.folderId??a)})),t=await this._dataProvider.uploadFiles({folderId:a,items:e});o=W(t,e=>{if(e)return{id:e.id,name:G(e.name),folderId:e.folderId,url:e.url,thumbnailUrl:e.thumbnailUrl,thumbnail:e.thumbnail}});let n=t?.detailed;if(o.detailed&&o.detailed.length){for(let e=0;e<o.detailed.length;e++){let t=o.detailed[e];if(t&&t.success){let r=t.data,i=r?.id??t.requestId,o=n?.[e]?.data,s=K({...o,...r,id:i,folderId:r?.folderId??o?.folderId??a,isFolder:!1});this._cache.upsertEntity(s),t.requestId=i}}o.success===void 0&&(o.success=!o.detailed.some(e=>!e.success))}else o.success=!o.error&&!!o.success}else if(typeof this._dataProvider.uploadFile==`function`)o.detailed=await Promise.all(r.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}}})),o.success=!o.detailed.some(e=>!e.success);else throw new t(`Upload files is not supported by data provider`,`UnsupportedOperation`);if(o.success&&this._enableTrash)try{this._cache.forceInvalidate(a)}catch{}return o}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,n){let r={success:!0,detailed:[]},i=n.permanent?null:await this.getTrashFolder();if(typeof this._dataProvider.deleteItems==`function`){if(r=W(await this._dataProvider.deleteItems(e.map(e=>this._cache.getEntity(e)),n),e=>e),r.success){let t=r.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`&&(r.detailed=await Promise.all(e.map(async e=>{let r=this._cache.getEntity(e);if(!r)return{requestId:e,success:!1,error:new t(`Item with id '%s' not found`.replace(`%s`,e),`FileNotFound`)};try{return await this._dataProvider.deleteItem(r,n),i?this._cache.moveEntity(e,i.id):this._cache.deleteEntity(e),{requestId:e,success:!0}}catch(t){return{requestId:e,error:t,success:!1}}})),r.success=!r.detailed.some(e=>!e.success));if(r.success&&i)try{this._cache.forceInvalidate(i.id)}catch{}return r}async hardDeleteItem(e){let n=this._cache.getEntity(e);if(!n)throw new t(`Item with id '%s' not found in cache`.replace(`%s`,e),`FileNotFound`);if(typeof this._dataProvider.deleteItem!=`function`)throw new t(`Delete item operation is not supported by data provider`,`DeleteNotAllowed`);if(await this._dataProvider.deleteItem(n,{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(){if(!this._enableTrash)throw new t(`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 t(`Clean trash is not supported by data provider`,`UnsupportedOperation`)}async createFolder({name:e,parentId:n,is_force_create:r}){let i=this.normalizeId(n??this._rootId);if(this._validateName(e,!0),this._validateDuplicates&&this._checkNameExistsInCache(i,e,!0))throw new t(`Folder '%s' already exists in parent folder`.replace(`%s`,e),`FolderAlreadyExists`);let a=await this._dataProvider.createFolder(e,i,r),o=K({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(e){return console.error(`Error moving folder to trash:`,e),await this.hardDeleteItem(t)}return await this.hardDeleteItem(t)}finally{this._mutationRegistry.endDeleting(n)}}async renameFolder(e,n){if(typeof this._dataProvider.renameItem!=`function`)throw new t(`Rename folder is not supported`,`RenameNotAllowed`);let r=this.normalizeId(e),i=this._cache.getEntity(r);if(!i)throw new t(`Folder with id '%s' not found in cache`.replace(`%s`,e),`FolderNotFound`);if(this._validateName(n,!0),this._validateDuplicates){let e=this.normalizeId(i.folderId);if(this._checkNameExistsInCache(e,n,!0,r))throw new t(`Folder '%s' already exists in parent folder`.replace(`%s`,n),`FolderAlreadyExists`)}let a=J(await this._dataProvider.renameItem(i,n));return this._cache.upsertEntity(K({...this._cache.getEntity(a.id),...a})),this._cache.getEntity(a.id)}async renameFile(e,n){if(typeof this._dataProvider.renameItem!=`function`)throw new t(`Rename file is not supported`,`RenameNotAllowed`);let r=this._cache.getEntity(e);if(!r)throw new t(`File with id '%s' not found in cache`.replace(`%s`,e),`FileNotFound`);let i=this.normalizeId(e);if(this._validateName(n,!1),this._validateDuplicates){let e=this.normalizeId(r.folderId);if(this._checkNameExistsInCache(e,n,!1,i))throw new t(`File '%s' already exists in parent folder`.replace(`%s`,n),`FileAlreadyExists`)}let a=J(await this._dataProvider.renameItem(r,n));return a&&this._cache.upsertEntity(K({...this._cache.getEntity(i),...a})),this._cache.getEntity(i)}async moveItem({itemId:e,targetFolderId:n,isFolder:r}){if(typeof this._dataProvider.moveItem!=`function`)throw new t(`Move item operation is not supported by data provider`,`MoveNotAllowed`);let i=this.normalizeId(n);this._validateTargetFolderType(n);let a=this._cache.getEntity(e);if(!a){let t=J(await this._dataProvider.moveItem({id:e,folderId:i,isFolder:r},i));if(t.id===e)this._cache.upsertEntity(K({...t,folderId:i}));else{try{this._cache.deleteEntity(e)}catch{}this._cache.upsertEntity(K({...t,folderId:i}))}return!0}if(a.isFolder){if(e===i)throw new t(`Cannot move folder into itself`,`MoveIntoSelf`);if(this._isAncestor(e,i))throw new t(`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 t(`${a.isFolder?`Folder`:`File`} '${a.name}' already exists in target folder`,e)}let o=J(await this._dataProvider.moveItem(a,i));if(o.id===e){let t=this._cache.moveEntity(e,i);return this._cache.upsertEntity(K({...t,...o})),!0}else{let t=this._cache.deleteEntity(e);return this._cache.upsertEntity(K({...t,...o,folderId:i})),!0}}async moveItems(e,n){let r=this.normalizeId(e);this._validateTargetFolderType(e);let i=n.map(e=>this._cache.getEntity(e));for(let e of i)if(e){if(e.isFolder){if(e.id===r)throw new t(`Cannot move folder '%s' into itself`.replace(`%s`,e.name),`MoveIntoSelf`);if(this._isAncestor(e.id,r))throw new t(`Cannot move folder '%s' into its descendant`.replace(`%s`,e.name),`MoveIntoDescendant`)}if(this._validateDuplicates&&r!==this.normalizeId(e.folderId)&&e.name&&this._checkNameExistsInCache(r,e.name,!!e.isFolder,e.id)){let n=e.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new t(`${e.isFolder?`Folder`:`File`} '${e.name}' already exists in target folder`,n)}}let a={detailed:Array(i.length),success:!0};if(typeof this._dataProvider.moveItems==`function`)a=W(await this._dataProvider.moveItems(i,r),e=>e);else if(typeof this._dataProvider.moveItem==`function`)a.detailed=await Promise.all(n.map(async(e,t)=>{let n=i[t]||{id:e,folderId:null,isFolder:!1,name:e};try{return{requestId:e,data:J(await this._dataProvider.moveItem(n,r)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else throw new t(`Move items is not supported`,`MoveNotAllowed`);if(a.success){let e=a.detailed||n.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,r),t.data&&this._cache.upsertEntity(K({...this._cache.getEntity(t.requestId),...t.data,folderId:r}));else{let e=this._cache.deleteEntity(t.requestId);this._cache.upsertEntity(K({...e,...t.data,folderId:r}))}return a}else return{success:!1,error:a.error||new t(`Move items failed`,`MoveNotAllowed`)}}async copyItem({itemId:e,targetFolderId:n}){if(typeof this._dataProvider.copyItem!=`function`)throw new t(`Copy item is not supported`,`CopyNotAllowed`);let r=this.normalizeId(n);this._validateTargetFolderType(n);let i=this._cache.getEntity(e);if(!i){let t=J(await this._dataProvider.copyItem({id:e,folderId:r},r));return this._cache.copyEntity(e,r,t.id),this._cache.upsertEntity(K({...t,folderId:r})),!0}if(this._validateDuplicates&&i.name){let n=r===this.normalizeId(i.folderId)?e:void 0;if(this._checkNameExistsInCache(r,i.name,!!i.isFolder,n)){let e=i.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new t(`${i.isFolder?`Folder`:`File`} '${i.name}' already exists in target folder`,e)}}let a=J(await this._dataProvider.copyItem(i,r));return this._cache.copyEntity(e,r,a.id,{...a,folderId:r})||this._cache.upsertEntity(K({...a,folderId:r})),!0}async copyItems(e,n){let r=this.normalizeId(e);this._validateTargetFolderType(e);let i=n.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 n=o[e];if(n&&n.name){let i=r===this.normalizeId(n.folderId)?a[e]:void 0;if(this._checkNameExistsInCache(r,n.name,!!n.isFolder,i)){let e=n.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new t(`${n.isFolder?`Folder`:`File`} '${n.name}' already exists in target folder`,e)}}}let s={detailed:Array(o.length),success:!0};if(typeof this._dataProvider.copyItems==`function`)s=W(await this._dataProvider.copyItems(o,r),e=>e);else if(typeof this._dataProvider.copyItem==`function`)s.detailed=await Promise.all(a.map(async(e,t)=>{let n=o[t]||{id:e,folderId:null,isFolder:!1};try{return{requestId:e,data:J(await this._dataProvider.copyItem(n,r)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else throw new t(`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)if(t.data?.id){let e=t.data.folderId||r;!this._cache.copyEntity(t.requestId,e,t.data.id,{...t.data,folderId:e})&&t.data&&this._cache.upsertEntity(K({...t.data,folderId:e}))}else console.error(`batchResult in copy method must have ids`)}else if(!s.detailed)throw new t(`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=K({...await this._dataProvider.uploadFileByUrl(e.url,t,{eventSource:e.eventSource}),folderId:t});return this._cache.upsertEntity(n),n}catch(e){throw console.error(`uploadFileByUrl error:`,e),e}}async updateFile(e,n){if(typeof this._dataProvider.updateFile!=`function`)throw new t(`Update file is not supported`,`UnsupportedOperation`);let r=this.normalizeId(e),i=this._cache.getEntity(r);if(!i)throw new t(`File with id '%s' not found in cache`.replace(`%s`,e),`FileNotFound`);if(n.name&&n.name!==i.name&&this._validateName(n.name,!1),this._validateDuplicates&&n.name&&n.name!==i.name){let e=this.normalizeId(i.folderId);if(this._checkNameExistsInCache(e,n.name,!1,r))throw new t(`File '%s' already exists in parent folder`.replace(`%s`,n.name),`FileAlreadyExists`)}let a=J(await this._dataProvider.updateFile(i,{...n}));return this._cache.upsertEntity(K({...this._cache.getEntity(r),...a,...n})),this._cache.getEntity(r)}},Y=[],X=0;X<256;++X)Y.push((X+256).toString(16).slice(1));function ae(e,t=0){return(Y[e[t+0]]+Y[e[t+1]]+Y[e[t+2]]+Y[e[t+3]]+`-`+Y[e[t+4]]+Y[e[t+5]]+`-`+Y[e[t+6]]+Y[e[t+7]]+`-`+Y[e[t+8]]+Y[e[t+9]]+`-`+Y[e[t+10]]+Y[e[t+11]]+Y[e[t+12]]+Y[e[t+13]]+Y[e[t+14]]+Y[e[t+15]]).toLowerCase()}var Z,oe=new Uint8Array(16);function se(){if(!Z&&(Z=typeof crypto<`u`&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Z))throw Error(`crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported`);return Z(oe)}var Q={randomUUID:typeof crypto<`u`&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function ce(e,t,n){if(Q.randomUUID&&!t&&!e)return Q.randomUUID();e||={};var r=e.random||(e.rng||se)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){n||=0;for(var i=0;i<16;++i)t[n+i]=r[i];return t}return ae(r)}var le=``,ue=`Trash`,de=class{constructor(e,t=le,n=v,r=ue,i=!0){this._inner=e,this.rootPath=t,this.trashId=n,this.trashPath=r,this.ensureFolderTrailingSlash=i,this._pathToId=new Map,this._idToPath=new Map,this.validateDuplicates=this._inner.validateDuplicates??!1,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}));let a=this;typeof this._inner.deleteItems!=`function`&&(a.deleteItems=void 0),typeof this._inner.deleteItem!=`function`&&(a.deleteItem=void 0),typeof this._inner.moveItems==`function`?a.moveItem=void 0:a.moveItems=void 0,typeof this._inner.copyItems==`function`?a.copyItem=void 0:a.copyItems=void 0,typeof this._inner.uploadFiles==`function`?a.uploadFile=void 0:a.uploadFiles=void 0,typeof this._inner.clearCache!=`function`&&(a.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??!1),folderId:this.pathForId(t.folderId??``,t.isFolder??!1)}}}})}clearCache(e){if(typeof this._inner.clearCache==`function`)return this._inner.clearCache(e)}findItemByPath(e){if(typeof this._inner.findItemByPath!=`function`)return;let t=(e,t,n)=>{if(!e)return;if(e.isFolder!==!0)return e;let r=y(y(n)===y(this.trashPath)?this.trashPath:t),i=e.folderId!=null&&e.folderId!==``?y(e.folderId):this.rootPath;return{...e,id:this._getOrGenerateId(r),name:e.name,folderId:i===y(this.rootPath)?this.rootPath||``:this._getOrGenerateId(i),isFolder:!0}},n=b(e,this.trashPath,this.trashId);return(async()=>{for(let r of n){let n=await Promise.resolve(this._inner.findItemByPath(r)),i=t(n,r,e);if(i)return i}})()}_getOrGenerateId(e){if(e===this.rootPath)return``;let t=y(e);if(t===y(this.trashPath))return this.trashId;if(this._pathToId.has(t))return this._pathToId.get(t);let n=ce();return this._pathToId.set(t,n),this._idToPath.set(n,t),n}pathForId(e,n,r){if(e===``||e===void 0)return this.rootPath;if(e===this.trashId)return this.trashPath;let i=this._idToPath.get(e);if(!i){if(r)return`unknown folder ${e}`;throw new t(`Path for id '${e}' not found in mapping`,`FileNotFound`)}let a=0;for(;a<this.rootPath.length&&this.rootPath[a]===`/`;)a++;if(a){let e=0;for(;e<i.length&&i[e]===`/`;)e++;let t=i.slice(e);i=`/`.repeat(a)+t}return n&&this.ensureFolderTrailingSlash&&!i.endsWith(`/`)&&(i+=`/`),i}_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,n){if(typeof this._inner.renameItem!=`function`)throw new t(`Rename item is not supported by inner storage`,`RenameNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1),i=r,{...a}=await this._inner.renameItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n);return this._updateIdMapping(e.id,a.id),e.isFolder&&this.remapCachedFolderContents(e.id,i,a.id),a.folderId&&(a={...a,folderId:this._getOrGenerateId(a.folderId)}),{...a,id:this._getOrGenerateId(a.id)}}async deleteItem(e,n){if(typeof this._inner.deleteItem!=`function`)throw new t(`Delete item is not supported by inner storage`,`DeleteNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1);await this._inner.deleteItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n),this.recursivelyRemoveMappings(e.id,r)}async uploadFile(e){if(typeof this._inner.uploadFile!=`function`)throw new t(`Upload file is not supported by inner storage`,`UnsupportedOperation`);let n=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,r=await this._inner.uploadFile({...e,folderId:n}),i=this._getOrGenerateId(r.id),a=r.folderId?this._getOrGenerateId(r.folderId):this._getOrGenerateId(this.rootPath);return{...r,id:i,folderId:a}}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):``,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,n){if(typeof this._inner.moveItem!=`function`)throw new t(`Move item is not supported by inner storage`,`MoveNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1),i=n?this.pathForId(n,!0):this.rootPath,a=await this._inner.moveItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},i);this._updateIdMapping(e.id,a.id),e.isFolder&&this.remapCachedFolderContents(e.id,r,a.id);let o=this._getOrGenerateId(a.id),s=a.folderId?this._getOrGenerateId(a.folderId):n;return{...a,id:o,folderId:s}}async moveItems(e,n){if(typeof this._inner.moveItems!=`function`)throw new t(`Move items is not supported by inner storage`,`MoveNotAllowed`);let r=n?this.pathForId(n,!0):this.rootPath,i=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder??!1),folderId:e.folderId?this.pathForId(e.folderId??``,!0):this.rootPath})),a=await this._inner.moveItems(i,r),o=[];if(a.detailed&&a.detailed.length>0){let t=new Map;for(let n=0;n<a.detailed.length;n++){let r=a.detailed[n],i=r.requestId||(n<e.length?e[n].id:void 0);i&&t.set(i,r)}for(let r of e){let i=t.get(r.id)||(a.detailed.length===e.length?a.detailed[e.indexOf(r)]:void 0);if(i?.success&&i.data){if(this._updateIdMapping(r.id,i.data.id),r.isFolder){let e=this.pathForId(r.id,r.isFolder??!1);this.remapCachedFolderContents(r.id,e,i.data.id)}o.push({requestId:r.id,success:!0,data:{...i.data,id:this._getOrGenerateId(i.data.id),folderId:i.data.folderId?this._getOrGenerateId(i.data.folderId):n||this._getOrGenerateId(this.rootPath)}})}else o.push({requestId:r.id,success:!1,error:i?.error||{message:`Move operation failed - no detailed result`,code:`MoveNotAllowed`}})}}else for(let t of e)o.push({requestId:t.id,success:!1,error:{message:`Move operation failed - no detailed results`,code:`MoveNotAllowed`}});return{success:a.success,detailed:o,error:a.error}}async copyItems(e,n){if(typeof this._inner.copyItems!=`function`)throw new t(`Copy items is not supported by inner storage`,`CopyNotAllowed`);let r=n?this.pathForId(n,!0):this.rootPath,i=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder??!1),folderId:e.folderId?this.pathForId(e.folderId??``,!0):this.rootPath})),a=await this._inner.copyItems(i,r),o=[];if(a.detailed&&a.detailed.length>0){let t=new Map;for(let n=0;n<a.detailed.length;n++){let r=a.detailed[n],i=r.requestId||(n<e.length?e[n].id:void 0);i&&t.set(i,r)}for(let r of e){let i=t.get(r.id)||(a.detailed.length===e.length?a.detailed[e.indexOf(r)]:void 0);if(i?.success&&i.data?.id){let e=this._getOrGenerateId(i.data.id);o.push({requestId:r.id,success:!0,data:{...i.data,id:e,folderId:i.data.folderId?this._getOrGenerateId(i.data.folderId):n||this._getOrGenerateId(this.rootPath)}})}else{let e=i?i.success?i.data?i.data.id?{message:`Unknown copy error`,code:`CopyNotAllowed`}:{message:`No ID in copied item data`,code:`CopyNotAllowed`}:{message:`No data returned from copy operation`,code:`CopyNotAllowed`}:i.error||{message:`Copy operation failed`,code:`CopyNotAllowed`}:{message:`No detailed result from copy operation`,code:`CopyNotAllowed`};o.push({requestId:r.id,success:!1,error:e})}}}else for(let t of e)o.push({requestId:t.id,success:!1,error:{message:`No detailed results from copy operation`,code:`CopyNotAllowed`}});let s=o.every(e=>e.success);return{success:s,detailed:o,error:s?void 0:a.error||{message:`Copy operation completed with errors`,code:`CopyNotAllowed`}}}async deleteItems(e,n){if(typeof this._inner.deleteItems!=`function`)throw new t(`Delete items is not supported by inner storage`,`DeleteNotAllowed`);let r=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder??!1),folderId:e.folderId?this.pathForId(e.folderId??``,!0):this.rootPath})),i=await this._inner.deleteItems(r,n),a=[];if(i.detailed&&i.detailed.length>0){let t=new Map;for(let n=0;n<i.detailed.length;n++){let r=i.detailed[n],a=r.requestId||(n<e.length?e[n].id:void 0);a&&t.set(a,r)}for(let r of e){let o=t.get(r.id)||(i.detailed.length===e.length?i.detailed[e.indexOf(r)]:void 0);if(o?.success){let e=this.pathForId(r.id,r.isFolder??!1);if(n.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??!1);this.remapCachedFolderContents(r.id,t,this.trashPath+`/`+e+(r.isFolder?`/`:``))}a.push({requestId:r.id,success:!0})}else a.push({requestId:r.id,success:!1,error:o?.error||{message:`Delete operation failed`,code:`DeleteNotAllowed`}})}}else for(let t of e)if(i.success){let e=this.pathForId(t.id,t.isFolder??!1);if(n.permanent)this.recursivelyRemoveMappings(t.id,e);else if(this._updateIdMapping(t.id,this.trashPath+`/`+e+(t.isFolder?`/`:``)),t.isFolder){let n=this.pathForId(t.id,t.isFolder??!1);this.remapCachedFolderContents(t.id,n,this.trashPath+`/`+e+(t.isFolder?`/`:``))}a.push({requestId:t.id,success:!0})}else a.push({requestId:t.id,success:!1,error:i.error||{message:`Delete operation failed`,code:`DeleteNotAllowed`}});let o=a.every(e=>e.success);return{success:o,detailed:a,error:o?void 0:i.error||{message:`Some items failed to delete`,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,n){if(typeof this._inner.copyItem!=`function`)throw new t(`Copy item is not supported by inner storage`,`CopyNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1),i=n?this.pathForId(n,!0):this.rootPath,a=await this._inner.copyItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},i),o=this._getOrGenerateId(a.id),s=a.folderId?this._getOrGenerateId(a.folderId):n??``;return{...a,id:o,folderId:s}}async updateFile(e,n){if(typeof this._inner.updateFile!=`function`)throw new t(`Update file is not supported by inner storage`,`UnsupportedOperation`);let r=this.pathForId(e.id,!1),{...i}=await this._inner.updateFile({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n);return this._updateIdMapping(e.id,i.id),i.folderId&&(i={...i,folderId:this._getOrGenerateId(i.folderId)}),{...i,id:this._getOrGenerateId(i.id)}}async getFileData(e,n){let r=this.pathForId(e.id,!1);if(typeof this._inner.getFileData==`function`)return this._inner.getFileData({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n);let i=e.url||(typeof this.getUrl==`function`?await this.getUrl(e):void 0);if(!i)throw new t(`Cannot get file data: no url and no inner.getFileData`,`FileReadError`);return fetch(i,n?.forceReload?{cache:`no-store`}:void 0).then(e=>e.blob())}async cleanTrash(){if(typeof this._inner.cleanTrash!=`function`)throw new t(`Clean trash is not supported by inner storage`,`UnsupportedOperation`);return await this._inner.cleanTrash()}};function fe(e){return typeof e!=`object`||!e?!1:`name`in e&&e.name===`DirectResourceFetchError`?!(`final`in e)||e.final!==!1:`final`in e&&e.final===!0}function $(e){if(fe(e)||e instanceof t)throw e}async function pe(e,t,n,r,i){let{fetchWithProxy:a,handleFileProxy:o,handleProxyUrl:s}=t,c={mode:`cors`,...i?.fetchInit},l;if(o)try{let t=await Promise.resolve(o(e));if(t)return r(t)}catch(e){$(e),l=e,console.warn(`handleFileProxy failed, falling back to next strategy`,e)}if(s)try{let t=await Promise.resolve(s(e));if(t&&t!==e)return r(await n(t))}catch(e){$(e),l=e,console.warn(`handleProxyUrl fetch failed, falling back to next strategy`,e)}if(a)try{let t=await Promise.resolve(a(e,c,{intent:`downloadBlob`}));if(!t.ok)throw Error(`HTTP ${t.status}`);return r(await t.blob())}catch(e){$(e),l=e,console.warn(`fetchWithProxy failed`,e)}if(!a)try{return r(await n(e))}catch(e){$(e),l=e}throw l instanceof Error?l:Error(`Failed to download file from the URL`)}e.DEFAULT_FILE_MANAGER_CACHE_TTL_MS=D,e.DataSourceProxyBase=ie,e.FailedRequestCache=s,e.FileManagerApiError=t,e.MutationRegistry=c,e.PathAwareStorageAdapter=de,e.TRASH_FOLDER_ID=v,e.TreeCache=z,e.ViewCacheManager=R,e.buildAssetsPath=a,e.compareFileSystemItems=u,e.createSystemFolderByPathResolver=x,e.defaultChildrenViewFilterMatch=h,e.defaultFileSystemItemComparator=m,e.defaultHasSortValue=g,e.defaultIsFolderNotFoundError=P,e.fetchRemoteImageBlobByUrl=pe,e.getAssetsBase=i,e.getTrashFolderLookupCandidates=b,e.hasComparableSortValue=f,e.joinUrls=r,e.mapHttpStatusToErrorCode=n,e.matchesChildrenViewFilter=p,e.normalizeSystemFolderPath=y,e.resolveSortParams=l,e.resolveViewStrategyOptions=_});
|
|
1
|
+
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports):typeof define==`function`&&define.amd?define([`exports`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.fileManagerCore={}))})(this,function(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var t=class e extends Error{constructor(t,n,r,i){super(t),this.code=n,this.status=r,this.details=i,this.name=`FileManagerApiError`,Error.captureStackTrace&&Error.captureStackTrace(this,e)}};function n(e,t=`BackendError`){switch(e){case 400:return`ValidationError`;case 401:return`AuthenticationFailed`;case 403:return`AuthorizationFailed`;case 404:return`FileNotFound`;case 413:return`PayloadTooLarge`;case 415:return`UnsupportedMediaType`;case 429:return`RateLimitExceeded`;case 500:return`BackendError`;case 503:return`ServiceUnavailable`;case 504:return`Timeout`;default:return t}}function r(e,t){return e?t?`${e.replace(/\/+$/,``)}/${t.replace(/^\/+/,``)}`:e:t}function i(e){let t=typeof __webpack_public_path__<`u`?__webpack_public_path__:``;if(e&&/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(e))return e;let n=r(t,e||``);return n&&!n.startsWith(`/`)&&!/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(n)&&(n=`/`+n),n}function a(e,t){if(/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(t))return t;let n=r(i(e),t||``);return n&&!n.startsWith(`/`)&&!/^[a-zA-Z][a-zA-Z\d+\-.]*?:/.test(n)?`/`+n:n}var o=``,s=class{constructor(){this.map=new Map}static childrenViewKey(e,t){return`v${o}${e}${o}${t}`}static childrenCountKey(e){return`c${o}${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${o}${e}${o}`;for(let e of[...this.map.keys()])e.startsWith(t)&&this.map.delete(e)}clearAll(){this.map.clear()}},c=class{constructor(){this.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)}};function l(e){return{sortBy:e?.sortBy??`name`,sortOrder:e?.sortOrder==null?e?.sortBy!=null&&e.sortBy!==``?`desc`:`asc`:e.sortOrder===`desc`?`desc`:`asc`}}function u(e,t,n){let{sortBy:r,sortOrder:i}=l(n),a=0;switch(r){case`name`:a=(e.name||``).localeCompare(t.name||``);break;case`date`:a=new Date(e.date||0).getTime()-new Date(t.date||0).getTime();break;case`size`:a=(Number(e.size)||0)-(Number(t.size)||0);break;case`type`:a=(e.extension||e.type||``).toLowerCase().localeCompare((t.extension||t.type||``).toLowerCase());break;default:a=(e.name||``).localeCompare(t.name||``)}return i===`desc`?-a:a}function d(e){return e!=null&&String(e).trim()!==``}function f(e,t){let{sortBy:n}=l(t);switch(n){case`date`:return d(e.date)?!Number.isNaN(new Date(e.date).getTime()):!1;case`size`:return e.size!=null&&Number.isFinite(Number(e.size));case`type`:return d(e.extension)||d(e.type);default:return d(e.name)}}function p(e,t){let n=typeof t?.search==`string`?t.search.trim():``;if(!n)return!0;let r=n.toLowerCase();return(e.name?.toLowerCase().includes(r)??!1)||(e.type?.toLowerCase().includes(r)??!1)||(e.extension?.toLowerCase().includes(r)??!1)}var m=u,h=p,g=f;function _(e={}){return{...e,comparator:e.comparator??m,filterMatch:e.filterMatch??h,hasSortValue:e.hasSortValue??g}}var v=`Trash`;function y(e){return e.replace(/\\/g,`/`).replace(/^\/+|\/+$/g,``)}function b(e,t,n=v){let r=y(e);if(!r)return[];let i=[e,r];if(r===y(t)){i.push(t);let e=y(t);e===`Trash`||e.toLowerCase()===`trash`?i.push(n,v,v.toLowerCase()):n!==`Trash`&&y(n)!==e&&i.push(n)}return Array.from(new Set(i.map(y).filter(Boolean)))}function x(e){let t=new Map;for(let[n,r]of Object.entries(e))r.id&&t.set(y(n),r);return e=>{let n=t.get(y(e));if(n)return{id:n.id,name:n.name??n.id,folderId:n.folderId??null,isFolder:!0}}}function S(){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)}`}var C=/^(utm_[a-z0-9_]+|fbclid|gclid|igshid|mc_cid|mc_eid)$/i;function w(e){try{return decodeURIComponent(e.replace(/\+/g,` `))}catch{return e}}function T(e){let t=new URL(e.trim());t.hash=``,t.hostname=t.hostname.toLowerCase(),(t.protocol===`https:`&&t.port===`443`||t.protocol===`http:`&&t.port===`80`)&&(t.port=``);let n=(t.search.startsWith(`?`)?t.search.slice(1):t.search).split(`&`).filter(Boolean).map(e=>{let t=e.indexOf(`=`),n=t===-1?e:e.slice(0,t),r=t===-1?``:e.slice(t+1);return{pair:e,key:w(n),value:w(r)}}).filter(({key:e})=>!C.test(e)).sort((e,t)=>{let n=e.key.localeCompare(t.key);return n===0?e.value.localeCompare(t.value):n});return t.search=n.length?`?${n.map(({pair:e})=>e).join(`&`)}`:``,t.toString()}function E(e){try{return T(e)}catch{return e.trim()}}var D=``,O=18e5;function k(e){return e==null||e===``?D:e}function A(e){if(e==null)return 1/0;let t=Number(e);return Number.isFinite(t)&&t>=0?t:1/0}function j(e){return!e||typeof e.search!=`string`?!1:e.search.trim().length>0}function M(e){if(!e)return null;let t=e.folderId;return t==null?null:String(t)}function N(e){return!!e&&!!e.isFolder}function P(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`path_folder_not_found`||t.code===`folder_not_found`||t.code===`FolderNotFound`||t.data?.code===`path_folder_not_found`||t.data?.code===`folder_not_found`||t.status===404||t.data?.data?.status===404}function F(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 I(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?F(a):``;return`${o}${s?`|${s}`:``}`}var L=class e{constructor(){this.entities=new Map,this.childrenByParent=new Map,this.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&&!N(t)?t:void 0}getFolder(e){let t=this.getEntity(e);return t&&N(t)?t:void 0}getChildrenIds(e,t={}){let n=k(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){let t=E(e);for(let n of this.entities.values()){let r=n.value.url;if(r&&(r===e||E(r)===t))return n.value}return null}upsertEntity(e){let t=this.entities.get(e.id)??null,n=t?t.value:null,r=n?M(n):null,i=M(e),a=n?N(n):!1,o=N(e),s;if(n&&N(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=k(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=k(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||!N(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=M(n),i=k(r),a=this.childrenByParent.get(i);return a&&(N(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||!N(t.value))return{deletedFolderRecords:[],deletedFileSystemItemRecords:[]};let n=[{id:e,parentId:M(t.value)}],r=[],i=[];for(;n.length;){let e=n.shift();r.push(e);let t=this.childrenByParent.get(k(e.id));if(t){for(let e of Array.from(t.folders)){let t=this.entities.get(e);t&&n.push({id:e,parentId:M(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=k(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=k(a.id);this.childrenByParent.delete(s);let c=k(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=k(M(r)),a=this.childrenByParent.get(i);a&&(N(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(N(r)&&N(o)){let e=r.childrenCount;e!==void 0&&(o.childrenCount=e)}this.entities.set(e,{value:o,updatedAt:this.now()});let s=k(t),c=this.childrenByParent.get(s);return c||(c={files:new Set,folders:new Set},this.childrenByParent.set(s,c)),N(o)?c.folders.add(e):c.files.add(e),{...o}}copyFileSystemItem(e,t,n){let r=this.entities.get(e)??null;if(!r||N(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||!N(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&&this.now()-n.updatedAt>t}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=k(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=k(M(t));if(!l.has(e))continue}if(i===`file`&&N(t)||i===`folder`&&!N(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}},R=class e{constructor(e={},t=O,n,r,i=new s,a=P){this.views=new Map,this.maxViewsPerParent=50;let o=_(e);this.strategy={allowSortedInsert:o.allowSortedInsert??!0,allowSearchInsert:o.allowSearchInsert??!0,invalidateOnPaginationFull:o.invalidateOnPaginationFull??!0,preloadPagesBefore:o.preloadPagesBefore??0,preloadPagesAfter:o.preloadPagesAfter??1,comparator:o.comparator,filterMatch:o.filterMatch,hasSortValue:o.hasSortValue},this.ttl=t,this.errorTtl=n??t,this.entityTtl=r??t,this.failedRequests=i,this.isFolderNotFoundError=a}setServerChildrenCountHandler(e){this.serverChildrenCountHandler=e}setChildrenCountInvalidator(e){this.childrenCountInvalidator=e}now(){return Date.now()}parentKey(e){return k(e??null)}isExpired(e){return e==null||this.ttl!==1/0&&this.now()-e>this.ttl}areEntitiesStale(e,t){return!e||e.some(e=>!t.getEntity(e)||t.isEntityStale(e,this.entityTtl))}isEntityTypeCompatible(e,t){return!!(!t||t===`all`||t===`file`&&!N(e)||t===`folder`&&N(e))}markViewStaleForReload(e){e.view.meta={...e.view.meta??{},stale:!0},e.view.updatedAt=this.now(),e.view.loadId=S(),e.view.abortController&&(e.view.abortController.abort(),e.view.abortController=void 0)}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=I(t??{}),o=this.views.get(i);o||(o=new Map,this.views.set(i,o));let c=s.childrenViewKey(i,a),l=o.get(a);l||(l={params:t,view:{promise:null,value:void 0,meta:void 0,updatedAt:0,loadId:null}},o.set(a,l),this.cleanupOldViews(o));let u=this.failedRequests.getFreshError(c,this.errorTtl);if(u!=null)throw u;if(l.view.value&&!this.isExpired(l.view.updatedAt)&&!this.areEntitiesStale(l.view.value,r)&&!l.view.meta?.stale){let e=l.view.value.map(e=>r.getEntity(e)).filter(Boolean),t=l.params?.itemType||`all`;return{items:e.filter(e=>this.isEntityTypeCompatible(e,t)),...l.view.meta??{}}}if(l.view.promise)return l.view.promise;let d=S();l.view.loadId=d;let f=(async()=>{try{let a=await n(e,t),o=j(t),s=o?{...a,total:void 0}:a,u=this.views.get(i)?.get(I(t));if(!u||u.view.loadId!==d){let e=Error(`StaleLoad`);throw e.name=`StaleLoad`,e}for(let e of s.items)r.upsertEntity(e);l.view.value=s.items.map(e=>e.id);let{items:f,...p}=s,m={...p};l.view.meta=m,l.view.meta&&(l.view.meta.stale=!1),this.failedRequests.delete(c),l.view.updatedAt=this.now(),!o&&typeof m.total==`number`&&(this.serverChildrenCountHandler?this.serverChildrenCountHandler(e??null,m.total,r):r.updateServerChildrenCount(e,m.total));let h=this.strategy.preloadPagesAfter??0,g=this.strategy.preloadPagesBefore??0,_=A(t?.pageSize);if((h>0||g>0)&&Number.isFinite(_)){let i=e,a={...t},o=typeof m.totalPages==`number`?m.totalPages:1,s=t?.page??1,c=_,l=n,u=d;setTimeout(()=>{this.preloadPagesAsync(i,a,s,o,c,h,g,r,m,l,u)},0)}return s}catch(e){if(e?.name===`StaleLoad`)throw this.failedRequests.delete(c),l.view.value=void 0,l.view.updatedAt=this.now(),e;if(this.isFolderNotFoundError(e))return this.failedRequests.delete(c),l.view.value=[],l.view.meta={total:0,totalPages:0},l.view.updatedAt=this.now(),{items:[],total:0,totalPages:0};throw this.failedRequests.setError(c,e),l.view.value=void 0,l.view.updatedAt=this.now(),e}finally{l.view.promise=null}})();return l.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(I(t));if(!d||u!=null&&d.view.loadId!==u)return;let f=c.get(I(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(I(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=I(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(e){console.debug(`Preload failed silently:`,e)}};if(a>0&&n<p)for(let e=1;e<=Math.min(a,p-n);e++){let r=n+e,i=I({...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=I({...t,page:r}),a=c.get(i);(!a?.view.value||this.isExpired(a.view.updatedAt))&&m(r)}}catch(e){console.debug(`Preload process failed:`,e)}}removeEmptyPageIfNeeded(e,t,n,r,i){if(t.view.value&&t.view.value.length===0&&n<r){let t=I({...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=A(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))}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=I({...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=I({...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=I(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}canCompareInSortedView(e,t){let n=e.params??{};return!n.sortBy&&!n.sortOrder||!this.strategy.hasSortValue||this.strategy.hasSortValue(t,e.params)}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)||!this.canCompareInSortedView(e,t))return!1;let a=e.view.value.map(e=>n.getEntity(e));if(a.some(e=>!e))return!1;if(a.length===0){let n=e.params??{};if(n.sortBy||n.sortOrder){let n=r(t,t,e.params);if(typeof n!=`number`||Number.isNaN(n))return!1}return e.view.value.includes(t.id)?(e.view.updatedAt=this.now(),!0):(e.view.value=[t.id],e.view.updatedAt=this.now(),!0)}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(),!0)}updateChildrenCountForOperation(e,t,n,r){let i=M(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??null,-1),this.adjustChildrenCount(r,i,1),this.childrenCountInvalidator?.(n??null),this.childrenCountInvalidator?.(i)}}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=A(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)),this.markViewStaleForReload(e));continue}if(!e.view.value){e.view.meta&&(e.view.meta.stale=!0),e.view.loadId=S(),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)){this.markViewStaleForReload(e);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)}}}}shouldInvalidateCompletely(e,t,n,r,i,a){return!!(i&&a>1&&(t===`insert`||t===`delete`||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;let o=e.params??{};return this.strategy.filterMatch(t,o)?this.tryInsertSorted(e,t,n)?!0:o.sortBy||o.sortOrder?!1:!r||e.view.value.length<i?(e.view.value.push(t.id),!0):!1:!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=S(),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)){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)}if(t.view.updatedAt=Date.now(),i&&(t.view.value?.length??0)>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 this.markViewStaleForReload(t)}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 this.markViewStaleForReload(t);t.view.loadId=S(),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=S(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0);return}if(l&&(a||o)){t.view.value=t.view.value.filter(e=>e!==s.id),this.tryReinsertEntity(t,s,c,i,r)?(t.view.updatedAt=Date.now(),t.view.loadId=S(),t.view.abortController&&(t.view.abortController.abort(),t.view.abortController=void 0)):this.markViewStaleForReload(t);return}if(l){t.view.updatedAt=Date.now(),t.view.loadId=S(),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)){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()}else this.markViewStaleForReload(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 this.markViewStaleForReload(t);t.view.loadId=S(),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=S(),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=S(),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=n?.errorTtl??t?.errorTtl??r,a=n?.failedRequests??new s,o=new e({},r,i,void 0,a,n?.isFolderNotFoundError);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)}o.views.set(e,t)}return o}},z=class e{invalidateChildrenCountCache(e){let t=k(e??``);this.childrenCountPromises.delete(t),this.failedRequests.delete(s.childrenCountKey(t))}constructor(e={},t=O,n,r){this.childrenCountPromises=new Map,this.isFolderNotFoundError=r?.isFolderNotFoundError??P,this.failedRequests=new s,this.ttl=r?.ttl??t,this.errorTtl=r?.errorTtl??n??this.ttl,this.entities=new L,this.views=new R(e,this.ttl,this.errorTtl,void 0,this.failedRequests,this.isFolderNotFoundError),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?M(t):null,r=M(e),i=t?N(t):!1,a=N(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),k(n)===k(e))return!0;let t=this.entities.getEntity(n);if(!t)break;n=M(t),n===null&&(n=D)}return!1}moveEntity(e,t){let n=this.entities.getEntity(e);if(!n||N(n)&&t!==null&&this.isAncestor(e,t))return null;let r=M(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(N(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,S());for(let n of i){let i=this.entities.getFolder(n),a=o.get(n),s=M(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=S(),i={...n,id:r,folderId:t};this.entities.upsertEntity(i)}}a=this.entities.getEntity(o.get(e))??null}else{let i=n??S();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(N(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}{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){this.views.forceInvalidateChildrenViews(e??null),this.invalidateChildrenCountCache(e);return}let n=new Set;if(N(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)}}invalidateListingViews(e){this.views.forceInvalidateChildrenViews(e??null)}getChildrenIds(e){return this.entities.getChildrenIds(e)}searchByName(e,t){return this.entities.searchByName(e,t)}async getChildrenCount(e=``,t){let n=k(e),r=s.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),this.isFolderNotFoundError(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,r){let i=r?.ttl??t?.ttl??18e5,a=r?.errorTtl??t?.errorTtl??i,o=new e(n??{},i,a,r),s=L.fromJSON(t?.entities??{}),c=R.fromJSON(t?.views??{},{failedRequests:o.failedRequests,ttl:i,errorTtl:a,isFolderNotFoundError:r?.isFolderNotFoundError});if(n){let e=_(n);c.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}}return o.entities=s,o.views=c,c.setServerChildrenCountHandler((e,t,n)=>{o.handleServerReportedChildrenCount(e,t,n??s)}),c.setChildrenCountInvalidator(e=>{o.invalidateChildrenCountCache(e)}),o}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&&(console.warn(`Conflict: folder "${r}" has childrenCount=${i} but server says total=${t}`),this.views.forceInvalidateChildrenViews(r)),n.updateServerChildrenCount(r,t)}},B=``,V=`Trash`,ee=`Edited`,H=1e4,U=1e4,W=25,G=10;function K(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 q(e){return e==null?``:String(e)}function J(e){return{...e,name:q(e.name)}}function Y(e){return(e??[]).map(J)}function X(e){return!e||typeof e!=`object`||!(`name`in e)?e:{...e,name:q(e.name)}}function Z(e){return e?e.replaceAll(`\\`,`/`).split(`/`).filter(Boolean):[]}var Q=class{_getTrashPath(){return this._pathOptions.trashPath||V}_getPathLookupCandidates(e){return b(e,this._getTrashPath(),v)}_folderFromResolvedPath(e,n){if(e.isFolder!==!0)throw new t(e.isFolder===!1?`Path '%s' resolves to a file, not a folder`.replace(`%s`,n):`Path '%s' resolved to an item that is not marked as a folder`.replace(`%s`,n),`ValidationError`);if(!e.id)throw new t(`Path '%s' resolved to a folder without id`.replace(`%s`,n),`ValidationError`);let r={id:e.id,name:e.name||e.id,parentId:e.folderId};return this._cache.upsertEntity(J({id:r.id,name:r.name,folderId:r.parentId??null,isFolder:!0})),r}async _resolveFolderByPath(e){if(typeof this._dataProvider.findItemByPath==`function`)for(let t of this._getPathLookupCandidates(e)){let e=await this._dataProvider.findItemByPath(t);if(e)return this._folderFromResolvedPath(e,t)}}async _findOrCreateFolderByPath(e){let n=Z(e);if(n.length>G)throw new t(`Path depth exceeds maximum limit of %s`.replace(`%s`,String(G)),`ValidationError`);let r=await this._resolveFolderByPath(e);if(r)return r;let i;for(let r of n){let{files:n}=await this.getFiles({folderId:i?.id||``,itemType:`folder`}),a=n.find(e=>e.name===r);if(a){if(!a.isFolder)throw new t(`Path component '%s' in '%s' is not a folder`.replace(`%s`,r).replace(`%s`,e),`ValidationError`);i={id:a.id,name:a.name,parentId:a.folderId}}else{if(typeof this._dataProvider.createFolder!=`function`)throw new t(`Create folder operation is not supported by data provider`,`UnsupportedOperation`);i=await this.createFolder({name:r,parentId:i?.id})}}return i}async getTrashFolder(){let e=await this._findOrCreateFolderByPath(this._getTrashPath());if(!e)throw new t(`Trash folder path '%s' could not be resolved`.replace(`%s`,this._getTrashPath()),`FolderNotFound`);return e}async getTempFolder(){let e=this._pathOptions.tempPath??ee;if(e)try{return await this._findOrCreateFolderByPath(e)}catch(e){if(e instanceof t&&e.code===`ValidationError`)throw e;console.warn(`getTempFolder: temp folder unavailable, falling back to root`,e);return}}constructor(e,t={},n,r={}){this._dataProvider=e,this._options=t,this._pathOptions=n,this._blobFetchForceReloadOnceIds=new Set,this._mutationRegistry=new c,this._mapItem=async({childrenCount:e,...t})=>{let n=J(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}},this._config=r,this._useSoftDelete=this._pathOptions.useSoftDelete,this._rootId=this._pathOptions.rootId||B,this._enableTrash=this._options.enableTrash===void 0||this._options.enableTrash,this._validateDuplicates=this._dataProvider.validateDuplicates,this._cache=new z(t.cacheStrategy||{},t.cacheStrategy?.ttl,t.cacheStrategy?.errorTtl),this.setController({invalidateItemCache:e=>{this._cache.forceInvalidate(e)},getCachedItem:e=>this._cache.getEntity(e)});let i=Object.getPrototypeOf(this);for(let e of Object.getOwnPropertyNames(i)){let t=Object.getOwnPropertyDescriptor(i,e);e!==`constructor`&&typeof t?.value==`function`&&(this[e]=t.value.bind(this))}}setController(e){typeof this._dataProvider.setController==`function`&&this._dataProvider.setController(e)}async clearCache(e){let t=e??this._rootId;this._cache.forceInvalidate(t),this._cache.invalidateListingViews(t),typeof this._dataProvider.clearCache==`function`&&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,n=!1){if(!e||e.trim().length===0)throw new t(n?`Folder name cannot be empty`:`File name cannot be empty`,n?`FolderInvalidName`:`FileInvalidName`);if(/[/\\:*?"<>|]/.test(e)){let r=n?`FolderInvalidName`:`FileInvalidName`;throw new t(n?`Folder name contains invalid characters: %s`.replace(`%s`,e):`File name contains invalid characters: %s`.replace(`%s`,e),r)}}_validateTargetFolderType(e){let n=this.normalizeId(e);if(n===this._rootId)return;let r=this._cache.getEntity(n);if(r&&!r.isFolder)throw new 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){if(e.url)return e.url;try{return typeof this._dataProvider?.getUrl==`function`&&this._dataProvider.getUrl(e)||void 0}catch(e){console.log(e)}}}async _getThumbnailUrl(e){if(e){if(e.thumbnailUrl)return e.thumbnailUrl;try{return typeof this._dataProvider?.getThumbnailUrl==`function`&&this._dataProvider.getThumbnailUrl(e)||void 0}catch(e){console.log(e)}}}_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=J(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);if(n)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?H: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:W: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?U:d);let x=v?U: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):H,i=await this._dataProvider.getItems({...t,folderId:e,limit:r}),a=Y(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)=>u(e,r,{sortBy:t,sortOrder:n}))}async getFileData(e,n){let r=this.normalizeId(typeof e==`string`?e:e.id),i=n;this._blobFetchForceReloadOnceIds.delete(r)&&(i={...n,forceReload:!0});let a=this._cache.getEntity(r)||(typeof e==`string`?{id:r,name:``,folderId:this._rootId,isFolder:!1}:{...e,childrenCount:e.childCount});if(typeof this._dataProvider.getFileData==`function`)return await this._dataProvider.getFileData(a,i);if(!a.url&&typeof this._dataProvider.getUrl!=`function`)throw new t(`Cannot read file`,`FileReadError`);let o=a.url||(typeof this._dataProvider.getUrl==`function`?await this._dataProvider.getUrl(a):``);if(o)return(await(this._config.fetchWithProxy??fetch)(o,i?.forceReload?{cache:`no-store`}:void 0)).blob();throw new t(`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=J(t);return this._cache.upsertEntity(e),e}}catch(e){console.log(e)}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:W});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 n=this.normalizeId(e.folderId??this._rootId);if(typeof this._dataProvider.uploadFile!=`function`)throw new t(`Upload file operation is not supported by data provider`,`UnsupportedOperation`);if(this._validateName(e.name,!1),this._validateDuplicates&&this._checkNameExistsInCache(n,e.name,!1))throw new t(`File '%s' already exists in target folder`.replace(`%s`,e.name),`FileAlreadyExists`);let r=await this._dataProvider.uploadFile({...e,folderId:n}),i=J({name:e.name,size:e.size,...r,folderId:r.folderId??n});return this._cache.upsertEntity(i),i}async uploadFiles(e){let n=e.items.some(e=>e.noFolder)?await this.getTempFolder():null;e={...e,items:e.items?.map(e=>({...e,folderId:e.noFolder?n?.id:e.folderId}))};for(let t of e.items)t.folderId&&(e.folderId=t.folderId);let r=e.items||[],i=e.folderId??this._rootId,a=this.normalizeId(i);if(this._validateDuplicates){for(let e of r)if(e.name){this._validateName(e.name,!1);let n=this.normalizeId(e.folderId??a);if(this._checkNameExistsInCache(n,e.name,!1))throw new t(`File '%s' already exists in target folder`.replace(`%s`,e.name),`FileAlreadyExists`)}}let o={detailed:Array(r.length),success:!0};if(typeof this._dataProvider.uploadFiles==`function`){let e=r.map(e=>({...e,folderId:this.normalizeId(e.folderId??a)})),t=await this._dataProvider.uploadFiles({folderId:a,items:e});o=K(t,e=>{if(e)return{id:e.id,name:q(e.name),folderId:e.folderId,url:e.url,thumbnailUrl:e.thumbnailUrl,thumbnail:e.thumbnail}});let n=t?.detailed;if(o.detailed&&o.detailed.length){for(let e=0;e<o.detailed.length;e++){let t=o.detailed[e];if(t&&t.success){let r=t.data,i=r?.id??t.requestId,o=n?.[e]?.data,s=J({...o,...r,id:i,folderId:r?.folderId??o?.folderId??a,isFolder:!1});this._cache.upsertEntity(s),t.requestId=i}}o.success===void 0&&(o.success=!o.detailed.some(e=>!e.success))}else o.success=!o.error&&!!o.success}else if(typeof this._dataProvider.uploadFile==`function`)o.detailed=await Promise.all(r.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}}})),o.success=!o.detailed.some(e=>!e.success);else throw new t(`Upload files is not supported by data provider`,`UnsupportedOperation`);if(o.success&&this._enableTrash)try{this._cache.forceInvalidate(a)}catch{}return o}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,n){let r={success:!0,detailed:[]},i=n.permanent?null:await this.getTrashFolder();if(typeof this._dataProvider.deleteItems==`function`){if(r=K(await this._dataProvider.deleteItems(e.map(e=>this._cache.getEntity(e)),n),e=>e),r.success){let t=r.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`&&(r.detailed=await Promise.all(e.map(async e=>{let r=this._cache.getEntity(e);if(!r)return{requestId:e,success:!1,error:new t(`Item with id '%s' not found`.replace(`%s`,e),`FileNotFound`)};try{return await this._dataProvider.deleteItem(r,n),i?this._cache.moveEntity(e,i.id):this._cache.deleteEntity(e),{requestId:e,success:!0}}catch(t){return{requestId:e,error:t,success:!1}}})),r.success=!r.detailed.some(e=>!e.success));if(r.success&&i)try{this._cache.forceInvalidate(i.id)}catch{}return r}async hardDeleteItem(e){let n=this._cache.getEntity(e);if(!n)throw new t(`Item with id '%s' not found in cache`.replace(`%s`,e),`FileNotFound`);if(typeof this._dataProvider.deleteItem!=`function`)throw new t(`Delete item operation is not supported by data provider`,`DeleteNotAllowed`);if(await this._dataProvider.deleteItem(n,{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(){if(!this._enableTrash)throw new t(`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 t(`Clean trash is not supported by data provider`,`UnsupportedOperation`)}async createFolder({name:e,parentId:n,is_force_create:r}){let i=this.normalizeId(n??this._rootId);if(this._validateName(e,!0),this._validateDuplicates&&this._checkNameExistsInCache(i,e,!0))throw new t(`Folder '%s' already exists in parent folder`.replace(`%s`,e),`FolderAlreadyExists`);let a=await this._dataProvider.createFolder(e,i,r),o=J({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(e){return console.error(`Error moving folder to trash:`,e),await this.hardDeleteItem(t)}return await this.hardDeleteItem(t)}finally{this._mutationRegistry.endDeleting(n)}}async renameFolder(e,n){if(typeof this._dataProvider.renameItem!=`function`)throw new t(`Rename folder is not supported`,`RenameNotAllowed`);let r=this.normalizeId(e),i=this._cache.getEntity(r);if(!i)throw new t(`Folder with id '%s' not found in cache`.replace(`%s`,e),`FolderNotFound`);if(this._validateName(n,!0),this._validateDuplicates){let e=this.normalizeId(i.folderId);if(this._checkNameExistsInCache(e,n,!0,r))throw new t(`Folder '%s' already exists in parent folder`.replace(`%s`,n),`FolderAlreadyExists`)}let a=X(await this._dataProvider.renameItem(i,n));return this._cache.upsertEntity(J({...this._cache.getEntity(a.id),...a})),this._cache.getEntity(a.id)}async renameFile(e,n){if(typeof this._dataProvider.renameItem!=`function`)throw new t(`Rename file is not supported`,`RenameNotAllowed`);let r=this._cache.getEntity(e);if(!r)throw new t(`File with id '%s' not found in cache`.replace(`%s`,e),`FileNotFound`);let i=this.normalizeId(e);if(this._validateName(n,!1),this._validateDuplicates){let e=this.normalizeId(r.folderId);if(this._checkNameExistsInCache(e,n,!1,i))throw new t(`File '%s' already exists in parent folder`.replace(`%s`,n),`FileAlreadyExists`)}let a=X(await this._dataProvider.renameItem(r,n));return a&&this._cache.upsertEntity(J({...this._cache.getEntity(i),...a})),this._cache.getEntity(i)}async moveItem({itemId:e,targetFolderId:n,isFolder:r}){if(typeof this._dataProvider.moveItem!=`function`)throw new t(`Move item operation is not supported by data provider`,`MoveNotAllowed`);let i=this.normalizeId(n);this._validateTargetFolderType(n);let a=this._cache.getEntity(e);if(!a){let t=X(await this._dataProvider.moveItem({id:e,folderId:i,isFolder:r},i));if(t.id===e)this._cache.upsertEntity(J({...t,folderId:i}));else{try{this._cache.deleteEntity(e)}catch{}this._cache.upsertEntity(J({...t,folderId:i}))}return!0}if(a.isFolder){if(e===i)throw new t(`Cannot move folder into itself`,`MoveIntoSelf`);if(this._isAncestor(e,i))throw new t(`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 t(`${a.isFolder?`Folder`:`File`} '${a.name}' already exists in target folder`,e)}let o=X(await this._dataProvider.moveItem(a,i));if(o.id===e){let t=this._cache.moveEntity(e,i);return this._cache.upsertEntity(J({...t,...o})),!0}{let t=this._cache.deleteEntity(e);return this._cache.upsertEntity(J({...t,...o,folderId:i})),!0}}async moveItems(e,n){let r=this.normalizeId(e);this._validateTargetFolderType(e);let i=n.map(e=>this._cache.getEntity(e));for(let e of i)if(e){if(e.isFolder){if(e.id===r)throw new t(`Cannot move folder '%s' into itself`.replace(`%s`,e.name),`MoveIntoSelf`);if(this._isAncestor(e.id,r))throw new t(`Cannot move folder '%s' into its descendant`.replace(`%s`,e.name),`MoveIntoDescendant`)}if(this._validateDuplicates&&r!==this.normalizeId(e.folderId)&&e.name&&this._checkNameExistsInCache(r,e.name,!!e.isFolder,e.id)){let n=e.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new t(`${e.isFolder?`Folder`:`File`} '${e.name}' already exists in target folder`,n)}}let a={detailed:Array(i.length),success:!0};if(typeof this._dataProvider.moveItems==`function`)a=K(await this._dataProvider.moveItems(i,r),e=>e);else if(typeof this._dataProvider.moveItem==`function`)a.detailed=await Promise.all(n.map(async(e,t)=>{let n=i[t]||{id:e,folderId:null,isFolder:!1,name:e};try{return{requestId:e,data:X(await this._dataProvider.moveItem(n,r)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else throw new t(`Move items is not supported`,`MoveNotAllowed`);if(a.success){let e=a.detailed||n.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,r),t.data&&this._cache.upsertEntity(J({...this._cache.getEntity(t.requestId),...t.data,folderId:r}));else{let e=this._cache.deleteEntity(t.requestId);this._cache.upsertEntity(J({...e,...t.data,folderId:r}))}}return a}return{success:!1,error:a.error||new t(`Move items failed`,`MoveNotAllowed`)}}async copyItem({itemId:e,targetFolderId:n}){if(typeof this._dataProvider.copyItem!=`function`)throw new t(`Copy item is not supported`,`CopyNotAllowed`);let r=this.normalizeId(n);this._validateTargetFolderType(n);let i=this._cache.getEntity(e);if(!i){let t=X(await this._dataProvider.copyItem({id:e,folderId:r},r));return this._cache.copyEntity(e,r,t.id),this._cache.upsertEntity(J({...t,folderId:r})),!0}if(this._validateDuplicates&&i.name){let n=r===this.normalizeId(i.folderId)?e:void 0;if(this._checkNameExistsInCache(r,i.name,!!i.isFolder,n)){let e=i.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new t(`${i.isFolder?`Folder`:`File`} '${i.name}' already exists in target folder`,e)}}let a=X(await this._dataProvider.copyItem(i,r));return this._cache.copyEntity(e,r,a.id,{...a,folderId:r})||this._cache.upsertEntity(J({...a,folderId:r})),!0}async copyItems(e,n){let r=this.normalizeId(e);this._validateTargetFolderType(e);let i=n.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 n=o[e];if(n&&n.name){let i=r===this.normalizeId(n.folderId)?a[e]:void 0;if(this._checkNameExistsInCache(r,n.name,!!n.isFolder,i)){let e=n.isFolder?`FolderAlreadyExists`:`FileAlreadyExists`;throw new t(`${n.isFolder?`Folder`:`File`} '${n.name}' already exists in target folder`,e)}}}let s={detailed:Array(o.length),success:!0};if(typeof this._dataProvider.copyItems==`function`)s=K(await this._dataProvider.copyItems(o,r),e=>e);else if(typeof this._dataProvider.copyItem==`function`)s.detailed=await Promise.all(a.map(async(e,t)=>{let n=o[t]||{id:e,folderId:null,isFolder:!1};try{return{requestId:e,data:X(await this._dataProvider.copyItem(n,r)),success:!0}}catch(t){return{requestId:e,success:!1,error:t}}}));else throw new t(`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){if(t.data?.id){let e=t.data.folderId||r;!this._cache.copyEntity(t.requestId,e,t.data.id,{...t.data,folderId:e})&&t.data&&this._cache.upsertEntity(J({...t.data,folderId:e}))}else console.error(`batchResult in copy method must have ids`)}}else if(!s.detailed)throw new t(`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=J({...await this._dataProvider.uploadFileByUrl(e.url,t,{eventSource:e.eventSource}),folderId:t});return this._cache.upsertEntity(n),n}catch(e){throw console.error(`uploadFileByUrl error:`,e),e}}async updateFile(e,n){if(typeof this._dataProvider.updateFile!=`function`)throw new t(`Update file is not supported`,`UnsupportedOperation`);let r=this.normalizeId(e),i=this._cache.getEntity(r);if(!i)throw new t(`File with id '%s' not found in cache`.replace(`%s`,e),`FileNotFound`);if(n.name&&n.name!==i.name&&this._validateName(n.name,!1),this._validateDuplicates&&n.name&&n.name!==i.name){let e=this.normalizeId(i.folderId);if(this._checkNameExistsInCache(e,n.name,!1,r))throw new t(`File '%s' already exists in parent folder`.replace(`%s`,n.name),`FileAlreadyExists`)}let a=X(await this._dataProvider.updateFile(i,{...n}));return this._cache.upsertEntity(J({...this._cache.getEntity(r),...a,...n})),this._cache.getEntity(r)}},te=``,ne=`Trash`,re=class{constructor(e,t=te,n=v,r=ne,i=!0){this._inner=e,this.rootPath=t,this.trashId=n,this.trashPath=r,this.ensureFolderTrailingSlash=i,this._pathToId=new Map,this._idToPath=new Map,this.validateDuplicates=this._inner.validateDuplicates??!1,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}));let a=this;typeof this._inner.deleteItems!=`function`&&(a.deleteItems=void 0),typeof this._inner.deleteItem!=`function`&&(a.deleteItem=void 0),typeof this._inner.moveItems==`function`?a.moveItem=void 0:a.moveItems=void 0,typeof this._inner.copyItems==`function`?a.copyItem=void 0:a.copyItems=void 0,typeof this._inner.uploadFiles==`function`?a.uploadFile=void 0:a.uploadFiles=void 0,typeof this._inner.clearCache!=`function`&&(a.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??!1),folderId:this.pathForId(t.folderId??``,t.isFolder??!1)}}}})}clearCache(e){if(typeof this._inner.clearCache==`function`)return this._inner.clearCache(e)}findItemByPath(e){if(typeof this._inner.findItemByPath!=`function`)return;let t=(e,t,n)=>{if(!e)return;if(e.isFolder!==!0)return e;let r=y(y(n)===y(this.trashPath)?this.trashPath:t),i=e.folderId!=null&&e.folderId!==``?y(e.folderId):this.rootPath;return{...e,id:this._getOrGenerateId(r),name:e.name,folderId:i===y(this.rootPath)?this.rootPath||``:this._getOrGenerateId(i),isFolder:!0}},n=b(e,this.trashPath,this.trashId);return(async()=>{for(let r of n){let n=await Promise.resolve(this._inner.findItemByPath(r)),i=t(n,r,e);if(i)return i}})()}_getOrGenerateId(e){if(e===this.rootPath)return``;let t=y(e);if(t===y(this.trashPath))return this.trashId;if(this._pathToId.has(t))return this._pathToId.get(t);let n=S();return this._pathToId.set(t,n),this._idToPath.set(n,t),n}pathForId(e,n,r){if(e===``||e===void 0)return this.rootPath;if(e===this.trashId)return this.trashPath;let i=this._idToPath.get(e);if(!i){if(r)return`unknown folder ${e}`;throw new t(`Path for id '${e}' not found in mapping`,`FileNotFound`)}let a=0;for(;a<this.rootPath.length&&this.rootPath[a]===`/`;)a++;if(a){let e=0;for(;e<i.length&&i[e]===`/`;)e++;let t=i.slice(e);i=`/`.repeat(a)+t}return n&&this.ensureFolderTrailingSlash&&!i.endsWith(`/`)&&(i+=`/`),i}_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,n){if(typeof this._inner.renameItem!=`function`)throw new t(`Rename item is not supported by inner storage`,`RenameNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1),i=r,{...a}=await this._inner.renameItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n);return this._updateIdMapping(e.id,a.id),e.isFolder&&this.remapCachedFolderContents(e.id,i,a.id),a.folderId&&(a={...a,folderId:this._getOrGenerateId(a.folderId)}),{...a,id:this._getOrGenerateId(a.id)}}async deleteItem(e,n){if(typeof this._inner.deleteItem!=`function`)throw new t(`Delete item is not supported by inner storage`,`DeleteNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1);await this._inner.deleteItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n),this.recursivelyRemoveMappings(e.id,r)}async uploadFile(e){if(typeof this._inner.uploadFile!=`function`)throw new t(`Upload file is not supported by inner storage`,`UnsupportedOperation`);let n=e.folderId?this.pathForId(e.folderId,!0):this.rootPath,r=await this._inner.uploadFile({...e,folderId:n}),i=this._getOrGenerateId(r.id),a=r.folderId?this._getOrGenerateId(r.folderId):this._getOrGenerateId(this.rootPath);return{...r,id:i,folderId:a}}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):``,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,n){if(typeof this._inner.moveItem!=`function`)throw new t(`Move item is not supported by inner storage`,`MoveNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1),i=n?this.pathForId(n,!0):this.rootPath,a=await this._inner.moveItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},i);this._updateIdMapping(e.id,a.id),e.isFolder&&this.remapCachedFolderContents(e.id,r,a.id);let o=this._getOrGenerateId(a.id),s=a.folderId?this._getOrGenerateId(a.folderId):n;return{...a,id:o,folderId:s}}async moveItems(e,n){if(typeof this._inner.moveItems!=`function`)throw new t(`Move items is not supported by inner storage`,`MoveNotAllowed`);let r=n?this.pathForId(n,!0):this.rootPath,i=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder??!1),folderId:e.folderId?this.pathForId(e.folderId??``,!0):this.rootPath})),a=await this._inner.moveItems(i,r),o=[];if(a.detailed&&a.detailed.length>0){let t=new Map;for(let n=0;n<a.detailed.length;n++){let r=a.detailed[n],i=r.requestId||(n<e.length?e[n].id:void 0);i&&t.set(i,r)}for(let r of e){let i=t.get(r.id)||(a.detailed.length===e.length?a.detailed[e.indexOf(r)]:void 0);if(i?.success&&i.data){if(this._updateIdMapping(r.id,i.data.id),r.isFolder){let e=this.pathForId(r.id,r.isFolder??!1);this.remapCachedFolderContents(r.id,e,i.data.id)}o.push({requestId:r.id,success:!0,data:{...i.data,id:this._getOrGenerateId(i.data.id),folderId:i.data.folderId?this._getOrGenerateId(i.data.folderId):n||this._getOrGenerateId(this.rootPath)}})}else o.push({requestId:r.id,success:!1,error:i?.error||{message:`Move operation failed - no detailed result`,code:`MoveNotAllowed`}})}}else for(let t of e)o.push({requestId:t.id,success:!1,error:{message:`Move operation failed - no detailed results`,code:`MoveNotAllowed`}});return{success:a.success,detailed:o,error:a.error}}async copyItems(e,n){if(typeof this._inner.copyItems!=`function`)throw new t(`Copy items is not supported by inner storage`,`CopyNotAllowed`);let r=n?this.pathForId(n,!0):this.rootPath,i=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder??!1),folderId:e.folderId?this.pathForId(e.folderId??``,!0):this.rootPath})),a=await this._inner.copyItems(i,r),o=[];if(a.detailed&&a.detailed.length>0){let t=new Map;for(let n=0;n<a.detailed.length;n++){let r=a.detailed[n],i=r.requestId||(n<e.length?e[n].id:void 0);i&&t.set(i,r)}for(let r of e){let i=t.get(r.id)||(a.detailed.length===e.length?a.detailed[e.indexOf(r)]:void 0);if(i?.success&&i.data?.id){let e=this._getOrGenerateId(i.data.id);o.push({requestId:r.id,success:!0,data:{...i.data,id:e,folderId:i.data.folderId?this._getOrGenerateId(i.data.folderId):n||this._getOrGenerateId(this.rootPath)}})}else{let e=i?i.success?i.data?i.data.id?{message:`Unknown copy error`,code:`CopyNotAllowed`}:{message:`No ID in copied item data`,code:`CopyNotAllowed`}:{message:`No data returned from copy operation`,code:`CopyNotAllowed`}:i.error||{message:`Copy operation failed`,code:`CopyNotAllowed`}:{message:`No detailed result from copy operation`,code:`CopyNotAllowed`};o.push({requestId:r.id,success:!1,error:e})}}}else for(let t of e)o.push({requestId:t.id,success:!1,error:{message:`No detailed results from copy operation`,code:`CopyNotAllowed`}});let s=o.every(e=>e.success);return{success:s,detailed:o,error:s?void 0:a.error||{message:`Copy operation completed with errors`,code:`CopyNotAllowed`}}}async deleteItems(e,n){if(typeof this._inner.deleteItems!=`function`)throw new t(`Delete items is not supported by inner storage`,`DeleteNotAllowed`);let r=e.map(e=>({...e,id:this.pathForId(e.id,e.isFolder??!1),folderId:e.folderId?this.pathForId(e.folderId??``,!0):this.rootPath})),i=await this._inner.deleteItems(r,n),a=[];if(i.detailed&&i.detailed.length>0){let t=new Map;for(let n=0;n<i.detailed.length;n++){let r=i.detailed[n],a=r.requestId||(n<e.length?e[n].id:void 0);a&&t.set(a,r)}for(let r of e){let o=t.get(r.id)||(i.detailed.length===e.length?i.detailed[e.indexOf(r)]:void 0);if(o?.success){let e=this.pathForId(r.id,r.isFolder??!1);if(n.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??!1);this.remapCachedFolderContents(r.id,t,this.trashPath+`/`+e+(r.isFolder?`/`:``))}a.push({requestId:r.id,success:!0})}else a.push({requestId:r.id,success:!1,error:o?.error||{message:`Delete operation failed`,code:`DeleteNotAllowed`}})}}else for(let t of e)if(i.success){let e=this.pathForId(t.id,t.isFolder??!1);if(n.permanent)this.recursivelyRemoveMappings(t.id,e);else if(this._updateIdMapping(t.id,this.trashPath+`/`+e+(t.isFolder?`/`:``)),t.isFolder){let n=this.pathForId(t.id,t.isFolder??!1);this.remapCachedFolderContents(t.id,n,this.trashPath+`/`+e+(t.isFolder?`/`:``))}a.push({requestId:t.id,success:!0})}else a.push({requestId:t.id,success:!1,error:i.error||{message:`Delete operation failed`,code:`DeleteNotAllowed`}});let o=a.every(e=>e.success);return{success:o,detailed:a,error:o?void 0:i.error||{message:`Some items failed to delete`,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,n){if(typeof this._inner.copyItem!=`function`)throw new t(`Copy item is not supported by inner storage`,`CopyNotAllowed`);let r=this.pathForId(e.id,e.isFolder??!1),i=n?this.pathForId(n,!0):this.rootPath,a=await this._inner.copyItem({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},i),o=this._getOrGenerateId(a.id),s=a.folderId?this._getOrGenerateId(a.folderId):n??``;return{...a,id:o,folderId:s}}async updateFile(e,n){if(typeof this._inner.updateFile!=`function`)throw new t(`Update file is not supported by inner storage`,`UnsupportedOperation`);let r=this.pathForId(e.id,!1),{...i}=await this._inner.updateFile({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n);return this._updateIdMapping(e.id,i.id),i.folderId&&(i={...i,folderId:this._getOrGenerateId(i.folderId)}),{...i,id:this._getOrGenerateId(i.id)}}async getFileData(e,n){let r=this.pathForId(e.id,!1);if(typeof this._inner.getFileData==`function`)return this._inner.getFileData({...e,id:r,folderId:this.pathForId(e.folderId??``,!0)},n);let i=e.url||(typeof this.getUrl==`function`?await this.getUrl(e):void 0);if(!i)throw new t(`Cannot get file data: no url and no inner.getFileData`,`FileReadError`);return fetch(i,n?.forceReload?{cache:`no-store`}:void 0).then(e=>e.blob())}async cleanTrash(){if(typeof this._inner.cleanTrash!=`function`)throw new t(`Clean trash is not supported by inner storage`,`UnsupportedOperation`);return await this._inner.cleanTrash()}};function ie(e){return typeof e!=`object`||!e?!1:`name`in e&&e.name===`DirectResourceFetchError`?!(`final`in e)||e.final!==!1:`final`in e&&e.final===!0}function $(e){if(ie(e)||e instanceof t)throw e}async function ae(e,t,n,r,i){let{fetchWithProxy:a,handleFileProxy:o,handleProxyUrl:s}=t,c={mode:`cors`,...i?.fetchInit},l;if(o)try{let t=await Promise.resolve(o(e));if(t)return r(t)}catch(e){$(e),l=e,console.warn(`handleFileProxy failed, falling back to next strategy`,e)}if(s)try{let t=await Promise.resolve(s(e));if(t&&t!==e)return r(await n(t))}catch(e){$(e),l=e,console.warn(`handleProxyUrl fetch failed, falling back to next strategy`,e)}if(a)try{let t=await Promise.resolve(a(e,c,{intent:`downloadBlob`}));if(!t.ok)throw Error(`HTTP ${t.status}`);return r(await t.blob())}catch(e){$(e),l=e,console.warn(`fetchWithProxy failed`,e)}if(!a)try{return r(await n(e))}catch(e){$(e),l=e}throw l instanceof Error?l:Error(`Failed to download file from the URL`)}e.DEFAULT_FILE_MANAGER_CACHE_TTL_MS=O,e.DataSourceProxyBase=Q,e.FailedRequestCache=s,e.FileManagerApiError=t,e.MutationRegistry=c,e.PathAwareStorageAdapter=re,e.TRASH_FOLDER_ID=v,e.TreeCache=z,e.ViewCacheManager=R,e.buildAssetsPath=a,e.compareFileSystemItems=u,e.createSystemFolderByPathResolver=x,e.defaultChildrenViewFilterMatch=h,e.defaultFileSystemItemComparator=m,e.defaultHasSortValue=g,e.defaultIsFolderNotFoundError=P,e.fetchRemoteImageBlobByUrl=ae,e.getAssetsBase=i,e.getTrashFolderLookupCandidates=b,e.hasComparableSortValue=f,e.joinUrls=r,e.mapHttpStatusToErrorCode=n,e.matchesChildrenViewFilter=p,e.normalizeSystemFolderPath=y,e.resolveSortParams=l,e.resolveViewStrategyOptions=_});
|
|
2
2
|
//# sourceMappingURL=core.js.map
|