@startdownnotez404/ui 1.0.0 → 1.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -0
- package/dist/AutocompleteField-ZKNU2IRR.mjs +181 -0
- package/dist/AutocompleteField-ZKNU2IRR.mjs.map +1 -0
- package/dist/AvatarField-SAODT3CZ.mjs +275 -0
- package/dist/AvatarField-SAODT3CZ.mjs.map +1 -0
- package/dist/CodeEditor-JF55ZNVD.mjs +34 -0
- package/dist/CodeEditor-JF55ZNVD.mjs.map +1 -0
- package/dist/DateField-ZYMZFHL4.mjs +82 -0
- package/dist/DateField-ZYMZFHL4.mjs.map +1 -0
- package/dist/DateTimeField-TPTJ7YIZ.mjs +65 -0
- package/dist/DateTimeField-TPTJ7YIZ.mjs.map +1 -0
- package/dist/FileUploadField-NTMWBJER.mjs +78 -0
- package/dist/FileUploadField-NTMWBJER.mjs.map +1 -0
- package/dist/JSONEditorField-TMRWGXVR.mjs +64 -0
- package/dist/JSONEditorField-TMRWGXVR.mjs.map +1 -0
- package/dist/PopperMenu-LJ36RPBW.mjs +416 -0
- package/dist/PopperMenu-LJ36RPBW.mjs.map +1 -0
- package/dist/TelField-LOGRVZ4I.mjs +88 -0
- package/dist/TelField-LOGRVZ4I.mjs.map +1 -0
- package/dist/alert.d.mts +202 -0
- package/dist/alert.d.ts +202 -0
- package/dist/alert.js +784 -0
- package/dist/alert.js.map +1 -0
- package/dist/alert.mjs +47 -0
- package/dist/alert.mjs.map +1 -0
- package/dist/appBar.d.mts +21 -0
- package/dist/appBar.d.ts +21 -0
- package/dist/appBar.js +64 -0
- package/dist/appBar.js.map +1 -0
- package/dist/appBar.mjs +12 -0
- package/dist/appBar.mjs.map +1 -0
- package/dist/autocomplete.d.mts +121 -0
- package/dist/autocomplete.d.ts +121 -0
- package/dist/autocomplete.js +2052 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/autocomplete.mjs +21 -0
- package/dist/autocomplete.mjs.map +1 -0
- package/dist/avatar.d.mts +253 -0
- package/dist/avatar.d.ts +253 -0
- package/dist/avatar.js +992 -0
- package/dist/avatar.js.map +1 -0
- package/dist/avatar.mjs +41 -0
- package/dist/avatar.mjs.map +1 -0
- package/dist/badge.d.mts +123 -0
- package/dist/badge.d.ts +123 -0
- package/dist/badge.js +151 -0
- package/dist/badge.js.map +1 -0
- package/dist/badge.mjs +10 -0
- package/dist/badge.mjs.map +1 -0
- package/dist/box.d.mts +36 -0
- package/dist/box.d.ts +36 -0
- package/dist/box.js +199 -0
- package/dist/box.js.map +1 -0
- package/dist/box.mjs +14 -0
- package/dist/box.mjs.map +1 -0
- package/dist/button.d.mts +230 -52
- package/dist/button.d.ts +230 -52
- package/dist/button.js +392 -60
- package/dist/button.js.map +1 -1
- package/dist/button.mjs +14 -8
- package/dist/card.d.mts +47 -0
- package/dist/card.d.ts +47 -0
- package/dist/card.js +135 -0
- package/dist/card.js.map +1 -0
- package/dist/card.mjs +24 -0
- package/dist/card.mjs.map +1 -0
- package/dist/chart.d.mts +40 -0
- package/dist/chart.d.ts +40 -0
- package/dist/chart.js +1234 -0
- package/dist/chart.js.map +1 -0
- package/dist/chart.mjs +10 -0
- package/dist/chart.mjs.map +1 -0
- package/dist/checkbox.d.mts +62 -0
- package/dist/checkbox.d.ts +62 -0
- package/dist/checkbox.js +299 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/checkbox.mjs +14 -0
- package/dist/checkbox.mjs.map +1 -0
- package/dist/chip.d.mts +96 -0
- package/dist/chip.d.ts +96 -0
- package/dist/chip.js +112 -0
- package/dist/chip.js.map +1 -0
- package/dist/chip.mjs +10 -0
- package/dist/chip.mjs.map +1 -0
- package/dist/chunk-24XDGNJ6.mjs +1450 -0
- package/dist/chunk-24XDGNJ6.mjs.map +1 -0
- package/dist/chunk-27KYFU7R.mjs +30 -0
- package/dist/chunk-27KYFU7R.mjs.map +1 -0
- package/dist/chunk-2FFLT5VP.mjs +7 -0
- package/dist/chunk-2FFLT5VP.mjs.map +1 -0
- package/dist/chunk-2ZZJTBTE.mjs +148 -0
- package/dist/chunk-2ZZJTBTE.mjs.map +1 -0
- package/dist/chunk-3DQINB57.mjs +15 -0
- package/dist/chunk-3DQINB57.mjs.map +1 -0
- package/dist/chunk-3VUAM2GY.mjs +52 -0
- package/dist/chunk-3VUAM2GY.mjs.map +1 -0
- package/dist/chunk-4Q54P737.mjs +19 -0
- package/dist/chunk-4Q54P737.mjs.map +1 -0
- package/dist/chunk-4RPFRNXG.mjs +62 -0
- package/dist/chunk-4RPFRNXG.mjs.map +1 -0
- package/dist/chunk-56TI2ZBT.mjs +114 -0
- package/dist/chunk-56TI2ZBT.mjs.map +1 -0
- package/dist/chunk-6REEQBJI.mjs +62 -0
- package/dist/chunk-6REEQBJI.mjs.map +1 -0
- package/dist/chunk-AAH2O24U.mjs +325 -0
- package/dist/chunk-AAH2O24U.mjs.map +1 -0
- package/dist/chunk-B7DAB22K.mjs +16 -0
- package/dist/chunk-B7DAB22K.mjs.map +1 -0
- package/dist/chunk-BGB7JHIU.mjs +222 -0
- package/dist/chunk-BGB7JHIU.mjs.map +1 -0
- package/dist/chunk-CRYIEYZZ.mjs +756 -0
- package/dist/chunk-CRYIEYZZ.mjs.map +1 -0
- package/dist/chunk-CWFWRZWU.mjs +23 -0
- package/dist/chunk-CWFWRZWU.mjs.map +1 -0
- package/dist/chunk-DELCADNF.mjs +1926 -0
- package/dist/chunk-DELCADNF.mjs.map +1 -0
- package/dist/chunk-E3I2VDHZ.mjs +292 -0
- package/dist/chunk-E3I2VDHZ.mjs.map +1 -0
- package/dist/chunk-EEH7HACG.mjs +249 -0
- package/dist/chunk-EEH7HACG.mjs.map +1 -0
- package/dist/chunk-EKPULYPU.mjs +497 -0
- package/dist/chunk-EKPULYPU.mjs.map +1 -0
- package/dist/chunk-EW4DTFH3.mjs +69 -0
- package/dist/chunk-EW4DTFH3.mjs.map +1 -0
- package/dist/chunk-FJ6ZGZIA.mjs +43 -0
- package/dist/chunk-FJ6ZGZIA.mjs.map +1 -0
- package/dist/chunk-HE7MY3RT.mjs +23 -0
- package/dist/chunk-HE7MY3RT.mjs.map +1 -0
- package/dist/chunk-HR3A4H4E.mjs +1289 -0
- package/dist/chunk-HR3A4H4E.mjs.map +1 -0
- package/dist/chunk-I5JWS4Z7.mjs +91 -0
- package/dist/chunk-I5JWS4Z7.mjs.map +1 -0
- package/dist/chunk-IN3O4R7Q.mjs +932 -0
- package/dist/chunk-IN3O4R7Q.mjs.map +1 -0
- package/dist/chunk-JIU5GVM7.mjs +414 -0
- package/dist/chunk-JIU5GVM7.mjs.map +1 -0
- package/dist/chunk-JWANK42G.mjs +170 -0
- package/dist/chunk-JWANK42G.mjs.map +1 -0
- package/dist/chunk-MDAUF7IL.mjs +9 -0
- package/dist/chunk-MDAUF7IL.mjs.map +1 -0
- package/dist/chunk-MI64T62E.mjs +26 -0
- package/dist/chunk-MI64T62E.mjs.map +1 -0
- package/dist/chunk-NJYNJLT7.mjs +172 -0
- package/dist/chunk-NJYNJLT7.mjs.map +1 -0
- package/dist/chunk-NLBDBJ3R.mjs +97 -0
- package/dist/chunk-NLBDBJ3R.mjs.map +1 -0
- package/dist/chunk-OGNGPI3M.mjs +333 -0
- package/dist/chunk-OGNGPI3M.mjs.map +1 -0
- package/dist/chunk-OJV6V7YZ.mjs +552 -0
- package/dist/chunk-OJV6V7YZ.mjs.map +1 -0
- package/dist/chunk-ONQMRE2G.mjs +26 -0
- package/dist/chunk-ONQMRE2G.mjs.map +1 -0
- package/dist/chunk-OP6LKXPA.mjs +75 -0
- package/dist/chunk-OP6LKXPA.mjs.map +1 -0
- package/dist/chunk-QFF3HTHL.mjs +14 -0
- package/dist/chunk-QFF3HTHL.mjs.map +1 -0
- package/dist/chunk-QKGCW37O.mjs +1175 -0
- package/dist/chunk-QKGCW37O.mjs.map +1 -0
- package/dist/chunk-R5MKQN6D.mjs +227 -0
- package/dist/chunk-R5MKQN6D.mjs.map +1 -0
- package/dist/chunk-RXBQ7KXF.mjs +652 -0
- package/dist/chunk-RXBQ7KXF.mjs.map +1 -0
- package/dist/chunk-S6EZVRZC.mjs +161 -0
- package/dist/chunk-S6EZVRZC.mjs.map +1 -0
- package/dist/chunk-SGCUDWO3.mjs +396 -0
- package/dist/chunk-SGCUDWO3.mjs.map +1 -0
- package/dist/chunk-SRWPHN2N.mjs +188 -0
- package/dist/chunk-SRWPHN2N.mjs.map +1 -0
- package/dist/chunk-T34IULP5.mjs +242 -0
- package/dist/chunk-T34IULP5.mjs.map +1 -0
- package/dist/chunk-T4X375IG.mjs +100 -0
- package/dist/chunk-T4X375IG.mjs.map +1 -0
- package/dist/chunk-T6AMRENK.mjs +376 -0
- package/dist/chunk-T6AMRENK.mjs.map +1 -0
- package/dist/chunk-TDRA5EZI.mjs +325 -0
- package/dist/chunk-TDRA5EZI.mjs.map +1 -0
- package/dist/chunk-UDREPVEY.mjs +356 -0
- package/dist/chunk-UDREPVEY.mjs.map +1 -0
- package/dist/chunk-UGMRJMFZ.mjs +172 -0
- package/dist/chunk-UGMRJMFZ.mjs.map +1 -0
- package/dist/chunk-UMJ5SCIQ.mjs +438 -0
- package/dist/chunk-UMJ5SCIQ.mjs.map +1 -0
- package/dist/chunk-UTVSYS6S.mjs +270 -0
- package/dist/chunk-UTVSYS6S.mjs.map +1 -0
- package/dist/chunk-V26V2S3W.mjs +197 -0
- package/dist/chunk-V26V2S3W.mjs.map +1 -0
- package/dist/chunk-VYD3PDBB.mjs +38 -0
- package/dist/chunk-VYD3PDBB.mjs.map +1 -0
- package/dist/chunk-WYYP3Y34.mjs +55 -0
- package/dist/chunk-WYYP3Y34.mjs.map +1 -0
- package/dist/chunk-XIMFP6RB.mjs +161 -0
- package/dist/chunk-XIMFP6RB.mjs.map +1 -0
- package/dist/chunk-XJ2SXC2Q.mjs +558 -0
- package/dist/chunk-XJ2SXC2Q.mjs.map +1 -0
- package/dist/chunk-Y74ALKBL.mjs +565 -0
- package/dist/chunk-Y74ALKBL.mjs.map +1 -0
- package/dist/chunk-ZG3NQI77.mjs +353 -0
- package/dist/chunk-ZG3NQI77.mjs.map +1 -0
- package/dist/chunk-ZVFYOXDE.mjs +297 -0
- package/dist/chunk-ZVFYOXDE.mjs.map +1 -0
- package/dist/collapse.d.mts +10 -0
- package/dist/collapse.d.ts +10 -0
- package/dist/collapse.js +53 -0
- package/dist/collapse.js.map +1 -0
- package/dist/collapse.mjs +10 -0
- package/dist/collapse.mjs.map +1 -0
- package/dist/datePicker.d.mts +133 -0
- package/dist/datePicker.d.ts +133 -0
- package/dist/datePicker.js +482 -0
- package/dist/datePicker.js.map +1 -0
- package/dist/datePicker.mjs +29 -0
- package/dist/datePicker.mjs.map +1 -0
- package/dist/displayFile.d.mts +95 -0
- package/dist/displayFile.d.ts +95 -0
- package/dist/displayFile.js +357 -0
- package/dist/displayFile.js.map +1 -0
- package/dist/displayFile.mjs +19 -0
- package/dist/displayFile.mjs.map +1 -0
- package/dist/divider.d.mts +9 -0
- package/dist/divider.d.ts +9 -0
- package/dist/divider.js +52 -0
- package/dist/divider.js.map +1 -0
- package/dist/divider.mjs +10 -0
- package/dist/divider.mjs.map +1 -0
- package/dist/fileUploader.d.mts +86 -0
- package/dist/fileUploader.d.ts +86 -0
- package/dist/fileUploader.js +722 -0
- package/dist/fileUploader.js.map +1 -0
- package/dist/fileUploader.mjs +16 -0
- package/dist/fileUploader.mjs.map +1 -0
- package/dist/flowMap.d.mts +353 -0
- package/dist/flowMap.d.ts +353 -0
- package/dist/flowMap.js +94806 -0
- package/dist/flowMap.js.map +1 -0
- package/dist/flowMap.mjs +94585 -0
- package/dist/flowMap.mjs.map +1 -0
- package/dist/form.d.mts +84 -0
- package/dist/form.d.ts +84 -0
- package/dist/form.js +144 -0
- package/dist/form.js.map +1 -0
- package/dist/form.mjs +24 -0
- package/dist/form.mjs.map +1 -0
- package/dist/icons.d.mts +160 -0
- package/dist/icons.d.ts +160 -0
- package/dist/icons.js +540 -0
- package/dist/icons.js.map +1 -0
- package/dist/icons.mjs +306 -0
- package/dist/icons.mjs.map +1 -0
- package/dist/image.d.mts +49 -0
- package/dist/image.d.ts +49 -0
- package/dist/image.js +1348 -0
- package/dist/image.js.map +1 -0
- package/dist/image.mjs +19 -0
- package/dist/image.mjs.map +1 -0
- package/dist/index.d.ts +46 -0
- package/dist/index.js +20198 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +912 -0
- package/dist/index.mjs.map +1 -0
- package/dist/input.d.mts +195 -0
- package/dist/input.d.ts +195 -0
- package/dist/input.js +1101 -0
- package/dist/input.js.map +1 -0
- package/dist/input.mjs +32 -0
- package/dist/input.mjs.map +1 -0
- package/dist/jsonEditor.d.mts +13 -0
- package/dist/jsonEditor.d.ts +13 -0
- package/dist/jsonEditor.js +247 -0
- package/dist/jsonEditor.js.map +1 -0
- package/dist/jsonEditor.mjs +9 -0
- package/dist/jsonEditor.mjs.map +1 -0
- package/dist/list.d.mts +83 -0
- package/dist/list.d.ts +83 -0
- package/dist/list.js +564 -0
- package/dist/list.js.map +1 -0
- package/dist/list.mjs +39 -0
- package/dist/list.mjs.map +1 -0
- package/dist/loading.d.mts +48 -0
- package/dist/loading.d.ts +48 -0
- package/dist/loading.js +383 -0
- package/dist/loading.js.map +1 -0
- package/dist/loading.mjs +23 -0
- package/dist/loading.mjs.map +1 -0
- package/dist/markdown.d.mts +14 -0
- package/dist/markdown.d.ts +14 -0
- package/dist/markdown.js +25927 -0
- package/dist/markdown.js.map +1 -0
- package/dist/markdown.mjs +25623 -0
- package/dist/markdown.mjs.map +1 -0
- package/dist/menu.d.mts +368 -0
- package/dist/menu.d.ts +368 -0
- package/dist/menu.js +1571 -0
- package/dist/menu.js.map +1 -0
- package/dist/menu.mjs +43 -0
- package/dist/menu.mjs.map +1 -0
- package/dist/modal.d.mts +90 -0
- package/dist/modal.d.ts +90 -0
- package/dist/modal.js +883 -0
- package/dist/modal.js.map +1 -0
- package/dist/modal.mjs +25 -0
- package/dist/modal.mjs.map +1 -0
- package/dist/overlay.d.mts +2 -0
- package/dist/overlay.d.ts +2 -0
- package/dist/overlay.js +46 -0
- package/dist/overlay.js.map +1 -0
- package/dist/overlay.mjs +10 -0
- package/dist/overlay.mjs.map +1 -0
- package/dist/paper.d.mts +38 -0
- package/dist/paper.d.ts +38 -0
- package/dist/paper.js +90 -0
- package/dist/paper.js.map +1 -0
- package/dist/paper.mjs +12 -0
- package/dist/paper.mjs.map +1 -0
- package/dist/patterns.d.mts +133 -0
- package/dist/patterns.d.ts +133 -0
- package/dist/patterns.js +483 -0
- package/dist/patterns.js.map +1 -0
- package/dist/patterns.mjs +46 -0
- package/dist/patterns.mjs.map +1 -0
- package/dist/process.d.mts +125 -0
- package/dist/process.d.ts +125 -0
- package/dist/process.js +1471 -0
- package/dist/process.js.map +1 -0
- package/dist/process.mjs +30 -0
- package/dist/process.mjs.map +1 -0
- package/dist/progress.d.mts +44 -0
- package/dist/progress.d.ts +44 -0
- package/dist/progress.js +94 -0
- package/dist/progress.js.map +1 -0
- package/dist/progress.mjs +14 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/resizablePanel.d.mts +297 -0
- package/dist/resizablePanel.d.ts +297 -0
- package/dist/resizablePanel.js +122 -0
- package/dist/resizablePanel.js.map +1 -0
- package/dist/resizablePanel.mjs +22 -0
- package/dist/resizablePanel.mjs.map +1 -0
- package/dist/scrollToLoad.d.mts +41 -0
- package/dist/scrollToLoad.d.ts +41 -0
- package/dist/scrollToLoad.js +256 -0
- package/dist/scrollToLoad.js.map +1 -0
- package/dist/scrollToLoad.mjs +16 -0
- package/dist/scrollToLoad.mjs.map +1 -0
- package/dist/select.d.mts +50 -0
- package/dist/select.d.ts +50 -0
- package/dist/select.js +426 -0
- package/dist/select.js.map +1 -0
- package/dist/select.mjs +24 -0
- package/dist/select.mjs.map +1 -0
- package/dist/skeleton.d.mts +13 -0
- package/dist/skeleton.d.ts +13 -0
- package/dist/skeleton.js +68 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/skeleton.mjs +11 -0
- package/dist/skeleton.mjs.map +1 -0
- package/dist/slider.d.mts +65 -0
- package/dist/slider.d.ts +65 -0
- package/dist/slider.js +106 -0
- package/dist/slider.js.map +1 -0
- package/dist/slider.mjs +10 -0
- package/dist/slider.mjs.map +1 -0
- package/dist/stepper.d.mts +98 -0
- package/dist/stepper.d.ts +98 -0
- package/dist/stepper.js +313 -0
- package/dist/stepper.js.map +1 -0
- package/dist/stepper.mjs +38 -0
- package/dist/stepper.mjs.map +1 -0
- package/dist/switch.d.mts +151 -0
- package/dist/switch.d.ts +151 -0
- package/dist/switch.js +289 -0
- package/dist/switch.js.map +1 -0
- package/dist/switch.mjs +17 -0
- package/dist/switch.mjs.map +1 -0
- package/dist/tab.d.mts +182 -0
- package/dist/tab.d.ts +182 -0
- package/dist/tab.js +1418 -0
- package/dist/tab.js.map +1 -0
- package/dist/tab.mjs +34 -0
- package/dist/tab.mjs.map +1 -0
- package/dist/table.d.mts +720 -0
- package/dist/table.d.ts +720 -0
- package/dist/table.js +10882 -0
- package/dist/table.js.map +1 -0
- package/dist/table.mjs +63 -0
- package/dist/table.mjs.map +1 -0
- package/dist/theme.d.mts +30 -4
- package/dist/theme.d.ts +30 -4
- package/dist/theme.js +3210 -170
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +52 -230
- package/dist/theme.mjs.map +1 -1
- package/dist/timeline.d.mts +30 -0
- package/dist/timeline.d.ts +30 -0
- package/dist/timeline.js +273 -0
- package/dist/timeline.js.map +1 -0
- package/dist/timeline.mjs +14 -0
- package/dist/timeline.mjs.map +1 -0
- package/dist/toggleButtonGroup.d.mts +125 -0
- package/dist/toggleButtonGroup.d.ts +125 -0
- package/dist/toggleButtonGroup.js +190 -0
- package/dist/toggleButtonGroup.js.map +1 -0
- package/dist/toggleButtonGroup.mjs +15 -0
- package/dist/toggleButtonGroup.mjs.map +1 -0
- package/dist/tooltip.d.mts +13 -0
- package/dist/tooltip.d.ts +13 -0
- package/dist/tooltip.js +56 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/tooltip.mjs +10 -0
- package/dist/tooltip.mjs.map +1 -0
- package/dist/typography.d.mts +21 -23
- package/dist/typography.d.ts +21 -23
- package/dist/typography.js +37 -63
- package/dist/typography.js.map +1 -1
- package/dist/typography.mjs +2 -1
- package/dist/useForm.d.mts +588 -0
- package/dist/useForm.d.ts +588 -0
- package/dist/useForm.js +8743 -0
- package/dist/useForm.js.map +1 -0
- package/dist/useForm.mjs +45 -0
- package/dist/useForm.mjs.map +1 -0
- package/dist/useSearch.d.mts +126 -0
- package/dist/useSearch.d.ts +126 -0
- package/dist/useSearch.js +1125 -0
- package/dist/useSearch.js.map +1 -0
- package/dist/useSearch.mjs +42 -0
- package/dist/useSearch.mjs.map +1 -0
- package/dist/variablesRenderer.d.mts +45 -0
- package/dist/variablesRenderer.d.ts +45 -0
- package/dist/variablesRenderer.js +511 -0
- package/dist/variablesRenderer.js.map +1 -0
- package/dist/variablesRenderer.mjs +21 -0
- package/dist/variablesRenderer.mjs.map +1 -0
- package/package.json +109 -15
- package/dist/chunk-PKADXEAD.mjs +0 -116
- package/dist/chunk-PKADXEAD.mjs.map +0 -1
- package/dist/chunk-YGBJCPUS.mjs +0 -88
- package/dist/chunk-YGBJCPUS.mjs.map +0 -1
- package/dist/theme.css +0 -44
- package/dist/theme.css.map +0 -1
package/dist/image.js
ADDED
|
@@ -0,0 +1,1348 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
|
|
30
|
+
// src/components/elemental/Image/index.ts
|
|
31
|
+
var Image_exports = {};
|
|
32
|
+
__export(Image_exports, {
|
|
33
|
+
Cropper: () => Cropper_default,
|
|
34
|
+
MuiImageList: () => MuiImageList_default
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(Image_exports);
|
|
37
|
+
|
|
38
|
+
// src/components/elemental/Image/src/MuiImageList/MuiImageList.tsx
|
|
39
|
+
var import_ImageList = __toESM(require("@mui/material/ImageList"));
|
|
40
|
+
var import_ImageListItem = __toESM(require("@mui/material/ImageListItem"));
|
|
41
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
42
|
+
var MuiImageList = ({ imageList, cols = 3, rowHeight = 164, width = "100%", height = "auto" }) => {
|
|
43
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ImageList.default, { sx: { width, height }, cols, rowHeight, children: imageList.map((item) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_ImageListItem.default, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
44
|
+
"img",
|
|
45
|
+
{
|
|
46
|
+
src: `${item.url}?w=${rowHeight * 2}&h=${rowHeight * 2}&fit=crop&auto=format`,
|
|
47
|
+
alt: item.title ?? "",
|
|
48
|
+
loading: "lazy",
|
|
49
|
+
width: rowHeight,
|
|
50
|
+
height: rowHeight,
|
|
51
|
+
style: { objectFit: "cover" }
|
|
52
|
+
}
|
|
53
|
+
) }, item.id)) });
|
|
54
|
+
};
|
|
55
|
+
var MuiImageList_default = MuiImageList;
|
|
56
|
+
|
|
57
|
+
// src/components/elemental/Image/src/Cropper/Cropper.tsx
|
|
58
|
+
var import_ReactCrop = require("react-image-crop/dist/ReactCrop.css");
|
|
59
|
+
|
|
60
|
+
// src/_utils/_func/sx.ts
|
|
61
|
+
function flattenSx(part) {
|
|
62
|
+
if (part == null || typeof part === "boolean") {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
if (Array.isArray(part)) {
|
|
66
|
+
return part.flatMap(flattenSx);
|
|
67
|
+
}
|
|
68
|
+
if (typeof part === "function" || typeof part === "object") {
|
|
69
|
+
return [part];
|
|
70
|
+
}
|
|
71
|
+
return [];
|
|
72
|
+
}
|
|
73
|
+
function mergeSx(...parts) {
|
|
74
|
+
const list = parts.flatMap(flattenSx);
|
|
75
|
+
if (list.length === 0) {
|
|
76
|
+
return void 0;
|
|
77
|
+
}
|
|
78
|
+
if (list.length === 1) {
|
|
79
|
+
return list[0];
|
|
80
|
+
}
|
|
81
|
+
return list;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// src/components/elemental/Box/src/index.ts
|
|
85
|
+
var import_Box = __toESM(require("@mui/material/Box"));
|
|
86
|
+
var import_Stack = __toESM(require("@mui/material/Stack"));
|
|
87
|
+
var import_Grid = __toESM(require("@mui/material/Grid"));
|
|
88
|
+
|
|
89
|
+
// src/components/elemental/Image/src/Cropper/theme.ts
|
|
90
|
+
var cropperRootSx = {
|
|
91
|
+
"--image-border-radius": "var(--mui-shape-borderRadius)",
|
|
92
|
+
"--image-border": "2px solid var(--mui-palette-secondary-main)",
|
|
93
|
+
// react-image-crop selection theming
|
|
94
|
+
"--rc-border-color": "var(--mui-palette-border-1)",
|
|
95
|
+
"--rc-focus-color": "var(--mui-palette-primary-main)",
|
|
96
|
+
"--rc-drag-handle-bg-colour": "var(--mui-palette-focus-1)",
|
|
97
|
+
"& .ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection)": {
|
|
98
|
+
"--animated-dash-light-color": "var(--mui-palette-border-1)",
|
|
99
|
+
"--animated-dash-dark-color": "var(--mui-palette-grey-300)",
|
|
100
|
+
backgroundImage: `
|
|
101
|
+
linear-gradient(to right,var(--animated-dash-light-color) 50%,var(--animated-dash-dark-color) 50%),
|
|
102
|
+
linear-gradient(to right,var(--animated-dash-light-color) 50%,var(--animated-dash-dark-color) 50%),
|
|
103
|
+
linear-gradient(to bottom,var(--animated-dash-light-color) 50%,var(--animated-dash-dark-color) 50%),
|
|
104
|
+
linear-gradient(to bottom,var(--animated-dash-light-color) 50%,var(--animated-dash-dark-color) 50%)`
|
|
105
|
+
},
|
|
106
|
+
[`& .ReactCrop__rule-of-thirds-vt:before,
|
|
107
|
+
.ReactCrop__rule-of-thirds-vt:after,
|
|
108
|
+
.ReactCrop__rule-of-thirds-hz:before,
|
|
109
|
+
.ReactCrop__rule-of-thirds-hz:after`]: {
|
|
110
|
+
background: "#fff6"
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
// src/components/elemental/Image/src/Cropper/layout/CropperLayout.tsx
|
|
115
|
+
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
116
|
+
function CropperLayout({
|
|
117
|
+
left,
|
|
118
|
+
right,
|
|
119
|
+
leftFooter,
|
|
120
|
+
footer
|
|
121
|
+
}) {
|
|
122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_Box.default, { sx: mergeSx({ display: "flex", flexDirection: "column", gap: 2, height: "100%" }, cropperRootSx), children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
|
|
123
|
+
import_Box.default,
|
|
124
|
+
{
|
|
125
|
+
sx: {
|
|
126
|
+
// stack children vertically on small screens, switch to two‑column grid at md
|
|
127
|
+
display: { xs: "table-row-group", md: "grid" },
|
|
128
|
+
flexDirection: { xs: "column", md: void 0 },
|
|
129
|
+
gridTemplateColumns: { xs: "1fr", md: "1fr 280px" },
|
|
130
|
+
gap: 2,
|
|
131
|
+
alignItems: "start",
|
|
132
|
+
minHeight: 0,
|
|
133
|
+
flex: "1 1 auto",
|
|
134
|
+
overflow: "auto"
|
|
135
|
+
},
|
|
136
|
+
children: [
|
|
137
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_Box.default, { sx: { display: "flex", flexDirection: "column", justifyContent: "space-between", minHeight: 0, height: "100%", alignItems: "center", width: "-webkit-fill-available" }, children: [
|
|
138
|
+
left,
|
|
139
|
+
leftFooter
|
|
140
|
+
] }),
|
|
141
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_Box.default, { sx: { display: "flex", flexDirection: "column", justifyContent: "space-between", minHeight: 0, height: "100%" }, children: [
|
|
142
|
+
right,
|
|
143
|
+
footer
|
|
144
|
+
] })
|
|
145
|
+
]
|
|
146
|
+
}
|
|
147
|
+
) });
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// src/components/elemental/Image/src/Cropper/sections/CropperSourceSection.tsx
|
|
151
|
+
var import_react_image_crop = __toESM(require("react-image-crop"));
|
|
152
|
+
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
153
|
+
function CropperSourceSection({
|
|
154
|
+
activeBlobUrl,
|
|
155
|
+
crop,
|
|
156
|
+
setCrop,
|
|
157
|
+
setCompletedCrop,
|
|
158
|
+
circularCrop,
|
|
159
|
+
defaultRatio,
|
|
160
|
+
resizeCropEnabled,
|
|
161
|
+
rotate,
|
|
162
|
+
scale,
|
|
163
|
+
imageRef,
|
|
164
|
+
onImageLoad
|
|
165
|
+
}) {
|
|
166
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
167
|
+
import_Box.default,
|
|
168
|
+
{
|
|
169
|
+
sx: {
|
|
170
|
+
minHeight: 0,
|
|
171
|
+
overflow: "hidden",
|
|
172
|
+
display: "flex",
|
|
173
|
+
alignItems: "center",
|
|
174
|
+
justifyContent: "center",
|
|
175
|
+
"& .ReactCrop": {
|
|
176
|
+
borderRadius: "var(--image-border-radius)",
|
|
177
|
+
border: "var(--image-border)"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
children: !!activeBlobUrl && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
181
|
+
import_react_image_crop.default,
|
|
182
|
+
{
|
|
183
|
+
crop,
|
|
184
|
+
onChange: (nextCrop) => setCrop(nextCrop),
|
|
185
|
+
onComplete: (nextCrop) => setCompletedCrop(nextCrop),
|
|
186
|
+
circularCrop,
|
|
187
|
+
aspect: defaultRatio,
|
|
188
|
+
keepSelection: true,
|
|
189
|
+
ruleOfThirds: true,
|
|
190
|
+
disabled: !resizeCropEnabled,
|
|
191
|
+
style: { maxWidth: "100%", maxHeight: 420, overflow: "hidden" },
|
|
192
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
193
|
+
"img",
|
|
194
|
+
{
|
|
195
|
+
ref: imageRef,
|
|
196
|
+
alt: "Crop source",
|
|
197
|
+
src: activeBlobUrl,
|
|
198
|
+
style: {
|
|
199
|
+
display: "block",
|
|
200
|
+
width: "100%",
|
|
201
|
+
maxWidth: "100%",
|
|
202
|
+
maxHeight: 420,
|
|
203
|
+
objectFit: "contain",
|
|
204
|
+
transform: `rotate(${rotate}deg) scale(${scale})`,
|
|
205
|
+
transformOrigin: "center center"
|
|
206
|
+
},
|
|
207
|
+
onLoad: onImageLoad
|
|
208
|
+
}
|
|
209
|
+
)
|
|
210
|
+
}
|
|
211
|
+
)
|
|
212
|
+
}
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// src/components/elemental/Slider/src/Slider/index.ts
|
|
217
|
+
var import_Slider = __toESM(require("@mui/material/Slider"));
|
|
218
|
+
|
|
219
|
+
// src/components/elemental/Typography/src/Typography.ts
|
|
220
|
+
var import_Typography = __toESM(require("@mui/material/Typography"));
|
|
221
|
+
|
|
222
|
+
// src/components/elemental/Image/src/Cropper/sections/CropperControlsSection.tsx
|
|
223
|
+
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
224
|
+
var scaleMarks = [
|
|
225
|
+
{ value: 0.5, label: "0.5x" },
|
|
226
|
+
{ value: 1, label: "1x" },
|
|
227
|
+
{ value: 1.5, label: "1.5x" },
|
|
228
|
+
{ value: 2, label: "2x" },
|
|
229
|
+
{ value: 2.5, label: "2.5x" },
|
|
230
|
+
{ value: 3, label: "3x" }
|
|
231
|
+
];
|
|
232
|
+
var rotationMarks = [
|
|
233
|
+
{ value: -180, label: "-180\xB0" },
|
|
234
|
+
{ value: -90, label: "-90\xB0" },
|
|
235
|
+
{ value: 0, label: "0\xB0" },
|
|
236
|
+
{ value: 90, label: "90\xB0" },
|
|
237
|
+
{ value: 180, label: "180\xB0" }
|
|
238
|
+
];
|
|
239
|
+
function CropperControlsSection({
|
|
240
|
+
PreviewRenderer,
|
|
241
|
+
canvasRef,
|
|
242
|
+
rotate,
|
|
243
|
+
setRotate,
|
|
244
|
+
scale,
|
|
245
|
+
setScale
|
|
246
|
+
}) {
|
|
247
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_Stack.default, { spacing: 2, sx: { minWidth: 0, px: 2 }, children: [
|
|
248
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(import_Box.default, { display: "flex", justifyContent: "center", children: PreviewRenderer ? /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(PreviewRenderer, { ref: canvasRef }) : /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
249
|
+
"canvas",
|
|
250
|
+
{
|
|
251
|
+
ref: canvasRef,
|
|
252
|
+
style: {
|
|
253
|
+
width: "100%",
|
|
254
|
+
maxWidth: 260,
|
|
255
|
+
border: "var(--image-border)",
|
|
256
|
+
borderRadius: "var(--image-border-radius)"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
) }),
|
|
260
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_Box.default, { children: [
|
|
261
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_Typography.default, { variant: "body2", sx: { mb: 1 }, children: [
|
|
262
|
+
"Rotation (",
|
|
263
|
+
rotate,
|
|
264
|
+
"\xB0)"
|
|
265
|
+
] }),
|
|
266
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
267
|
+
import_Slider.default,
|
|
268
|
+
{
|
|
269
|
+
min: -180,
|
|
270
|
+
max: 180,
|
|
271
|
+
step: 1,
|
|
272
|
+
marks: rotationMarks,
|
|
273
|
+
value: rotate,
|
|
274
|
+
onChange: (_, value) => setRotate(Array.isArray(value) ? value[0] : value)
|
|
275
|
+
}
|
|
276
|
+
)
|
|
277
|
+
] }),
|
|
278
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_Box.default, { children: [
|
|
279
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(import_Typography.default, { variant: "body2", sx: { mb: 1 }, children: [
|
|
280
|
+
"Resize scale (",
|
|
281
|
+
scale.toFixed(2),
|
|
282
|
+
"x)"
|
|
283
|
+
] }),
|
|
284
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
285
|
+
import_Slider.default,
|
|
286
|
+
{
|
|
287
|
+
min: 0.5,
|
|
288
|
+
max: 3,
|
|
289
|
+
step: 0.05,
|
|
290
|
+
marks: scaleMarks,
|
|
291
|
+
value: scale,
|
|
292
|
+
onChange: (_, value) => setScale(Array.isArray(value) ? value[0] : value)
|
|
293
|
+
}
|
|
294
|
+
)
|
|
295
|
+
] })
|
|
296
|
+
] });
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
// src/components/elemental/Button/src/Button/Button.tsx
|
|
300
|
+
var import_Button = __toESM(require("@mui/material/Button"));
|
|
301
|
+
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
302
|
+
function Button(p) {
|
|
303
|
+
const { children, slotProps, ...rest } = p;
|
|
304
|
+
const { sx, ...boxRest } = slotProps?.innerBox ?? {};
|
|
305
|
+
return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_Button.default, { ...rest, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
306
|
+
import_Box.default,
|
|
307
|
+
{
|
|
308
|
+
...boxRest,
|
|
309
|
+
sx: mergeSx(
|
|
310
|
+
{
|
|
311
|
+
textOverflow: "ellipsis",
|
|
312
|
+
overflow: "hidden",
|
|
313
|
+
whiteSpace: "pre"
|
|
314
|
+
},
|
|
315
|
+
sx
|
|
316
|
+
),
|
|
317
|
+
children
|
|
318
|
+
}
|
|
319
|
+
) });
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
// src/components/elemental/Button/src/IconButton/IconButton.tsx
|
|
323
|
+
var import_react = require("react");
|
|
324
|
+
var import_IconButton = __toESM(require("@mui/material/IconButton"));
|
|
325
|
+
|
|
326
|
+
// src/components/elemental/Tooltip/src/Tooltip/index.ts
|
|
327
|
+
var import_Tooltip = __toESM(require("@mui/material/Tooltip"));
|
|
328
|
+
|
|
329
|
+
// src/components/elemental/Button/src/IconButton/IconButton.tsx
|
|
330
|
+
var import_jsx_runtime6 = require("react/jsx-runtime");
|
|
331
|
+
var IconButton = (0, import_react.forwardRef)(({
|
|
332
|
+
title = "",
|
|
333
|
+
children,
|
|
334
|
+
color,
|
|
335
|
+
size,
|
|
336
|
+
slotProps,
|
|
337
|
+
selected,
|
|
338
|
+
className,
|
|
339
|
+
...props
|
|
340
|
+
}, ref) => {
|
|
341
|
+
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
342
|
+
import_Tooltip.default,
|
|
343
|
+
{
|
|
344
|
+
title,
|
|
345
|
+
slotProps: {
|
|
346
|
+
popper: {
|
|
347
|
+
sx: {
|
|
348
|
+
textTransform: "capitalize"
|
|
349
|
+
}
|
|
350
|
+
},
|
|
351
|
+
...slotProps?.tooltip
|
|
352
|
+
},
|
|
353
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_Box.default, { component: "span", sx: { width: "fit-content" }, children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
354
|
+
import_IconButton.default,
|
|
355
|
+
{
|
|
356
|
+
ref,
|
|
357
|
+
color,
|
|
358
|
+
size,
|
|
359
|
+
className: [className, selected ? "Mui-selected" : ""].filter(Boolean).join(" "),
|
|
360
|
+
...props,
|
|
361
|
+
children
|
|
362
|
+
}
|
|
363
|
+
) })
|
|
364
|
+
}
|
|
365
|
+
);
|
|
366
|
+
});
|
|
367
|
+
var IconButton_default = IconButton;
|
|
368
|
+
|
|
369
|
+
// src/components/Icons/MuiIcon/index.ts
|
|
370
|
+
var import_ArrowRightAlt = __toESM(require("@mui/icons-material/ArrowRightAlt"));
|
|
371
|
+
var import_DescriptionOutlined = __toESM(require("@mui/icons-material/DescriptionOutlined"));
|
|
372
|
+
var import_Description = __toESM(require("@mui/icons-material/Description"));
|
|
373
|
+
var import_PictureAsPdf = __toESM(require("@mui/icons-material/PictureAsPdf"));
|
|
374
|
+
var import_AudioFile = __toESM(require("@mui/icons-material/AudioFile"));
|
|
375
|
+
var import_VideoFile = __toESM(require("@mui/icons-material/VideoFile"));
|
|
376
|
+
var import_TableChart = __toESM(require("@mui/icons-material/TableChart"));
|
|
377
|
+
var import_FolderZip = __toESM(require("@mui/icons-material/FolderZip"));
|
|
378
|
+
var import_InsertDriveFile = __toESM(require("@mui/icons-material/InsertDriveFile"));
|
|
379
|
+
var import_ImageOutlined = __toESM(require("@mui/icons-material/ImageOutlined"));
|
|
380
|
+
var import_LayersOutlined = __toESM(require("@mui/icons-material/LayersOutlined"));
|
|
381
|
+
var import_TextFormat = __toESM(require("@mui/icons-material/TextFormat"));
|
|
382
|
+
var import_Remove = __toESM(require("@mui/icons-material/Remove"));
|
|
383
|
+
var import_PostAdd = __toESM(require("@mui/icons-material/PostAdd"));
|
|
384
|
+
var import_ErrorOutline = __toESM(require("@mui/icons-material/ErrorOutline"));
|
|
385
|
+
var import_QuestionMarkOutlined = __toESM(require("@mui/icons-material/QuestionMarkOutlined"));
|
|
386
|
+
var import_MeetingRoomOutlined = __toESM(require("@mui/icons-material/MeetingRoomOutlined"));
|
|
387
|
+
var import_PlaylistRemove = __toESM(require("@mui/icons-material/PlaylistRemove"));
|
|
388
|
+
var import_ChecklistRtl = __toESM(require("@mui/icons-material/ChecklistRtl"));
|
|
389
|
+
var import_HideImageOutlined = __toESM(require("@mui/icons-material/HideImageOutlined"));
|
|
390
|
+
var import_RemoveRedEyeTwoTone = __toESM(require("@mui/icons-material/RemoveRedEyeTwoTone"));
|
|
391
|
+
var import_PhotoSizeSelectLarge = __toESM(require("@mui/icons-material/PhotoSizeSelectLarge"));
|
|
392
|
+
var import_LockPersonOutlined = __toESM(require("@mui/icons-material/LockPersonOutlined"));
|
|
393
|
+
var import_Person = __toESM(require("@mui/icons-material/Person"));
|
|
394
|
+
var import_InsertEmoticon = __toESM(require("@mui/icons-material/InsertEmoticon"));
|
|
395
|
+
var import_RemoveDoneOutlined = __toESM(require("@mui/icons-material/RemoveDoneOutlined"));
|
|
396
|
+
var import_Tag = __toESM(require("@mui/icons-material/Tag"));
|
|
397
|
+
var import_Audiotrack = __toESM(require("@mui/icons-material/Audiotrack"));
|
|
398
|
+
var import_Videocam = __toESM(require("@mui/icons-material/Videocam"));
|
|
399
|
+
var import_Code = __toESM(require("@mui/icons-material/Code"));
|
|
400
|
+
var import_Equalizer = __toESM(require("@mui/icons-material/Equalizer"));
|
|
401
|
+
var import_PivotTableChart = __toESM(require("@mui/icons-material/PivotTableChart"));
|
|
402
|
+
var import_Search = __toESM(require("@mui/icons-material/Search"));
|
|
403
|
+
var import_DataObject = __toESM(require("@mui/icons-material/DataObject"));
|
|
404
|
+
var import_SortByAlpha = __toESM(require("@mui/icons-material/SortByAlpha"));
|
|
405
|
+
var import_ThumbUp = __toESM(require("@mui/icons-material/ThumbUp"));
|
|
406
|
+
var import_AttachMoneyOutlined = __toESM(require("@mui/icons-material/AttachMoneyOutlined"));
|
|
407
|
+
var import_Storage = __toESM(require("@mui/icons-material/Storage"));
|
|
408
|
+
var import_WorkspacePremium = __toESM(require("@mui/icons-material/WorkspacePremium"));
|
|
409
|
+
var import_Numbers = __toESM(require("@mui/icons-material/Numbers"));
|
|
410
|
+
var import_Functions = __toESM(require("@mui/icons-material/Functions"));
|
|
411
|
+
var import_Lightbulb = __toESM(require("@mui/icons-material/Lightbulb"));
|
|
412
|
+
var import_CropRotate = __toESM(require("@mui/icons-material/CropRotate"));
|
|
413
|
+
var import_PhotoSizeSelectLarge2 = __toESM(require("@mui/icons-material/PhotoSizeSelectLarge"));
|
|
414
|
+
var import_CollectionsBookmark = __toESM(require("@mui/icons-material/CollectionsBookmark"));
|
|
415
|
+
var import_Schedule = __toESM(require("@mui/icons-material/Schedule"));
|
|
416
|
+
var import_Style = __toESM(require("@mui/icons-material/Style"));
|
|
417
|
+
var import_Crop169 = __toESM(require("@mui/icons-material/Crop169"));
|
|
418
|
+
var import_CropSquare = __toESM(require("@mui/icons-material/CropSquare"));
|
|
419
|
+
var import_GraphicEqRounded = __toESM(require("@mui/icons-material/GraphicEqRounded"));
|
|
420
|
+
var import_MemoryRounded = __toESM(require("@mui/icons-material/MemoryRounded"));
|
|
421
|
+
var import_AddCircleOutlineRounded = __toESM(require("@mui/icons-material/AddCircleOutlineRounded"));
|
|
422
|
+
var import_Add = __toESM(require("@mui/icons-material/Add"));
|
|
423
|
+
var import_Close = __toESM(require("@mui/icons-material/Close"));
|
|
424
|
+
var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
|
|
425
|
+
var import_Autorenew = __toESM(require("@mui/icons-material/Autorenew"));
|
|
426
|
+
var import_CheckCircle = __toESM(require("@mui/icons-material/CheckCircle"));
|
|
427
|
+
var import_Menu = __toESM(require("@mui/icons-material/Menu"));
|
|
428
|
+
var import_MoreVert = __toESM(require("@mui/icons-material/MoreVert"));
|
|
429
|
+
var import_MoreHoriz = __toESM(require("@mui/icons-material/MoreHoriz"));
|
|
430
|
+
var import_ContentCopy = __toESM(require("@mui/icons-material/ContentCopy"));
|
|
431
|
+
var import_ContentPaste = __toESM(require("@mui/icons-material/ContentPaste"));
|
|
432
|
+
var import_Cloud = __toESM(require("@mui/icons-material/Cloud"));
|
|
433
|
+
var import_DownloadOutlined = __toESM(require("@mui/icons-material/DownloadOutlined"));
|
|
434
|
+
var import_DownloadDoneOutlined = __toESM(require("@mui/icons-material/DownloadDoneOutlined"));
|
|
435
|
+
var import_StarBorderOutlined = __toESM(require("@mui/icons-material/StarBorderOutlined"));
|
|
436
|
+
var import_DeleteForever = __toESM(require("@mui/icons-material/DeleteForever"));
|
|
437
|
+
var import_LayersClear = __toESM(require("@mui/icons-material/LayersClear"));
|
|
438
|
+
var import_Check = __toESM(require("@mui/icons-material/Check"));
|
|
439
|
+
var import_DoneAll = __toESM(require("@mui/icons-material/DoneAll"));
|
|
440
|
+
var import_PowerSettingsNew = __toESM(require("@mui/icons-material/PowerSettingsNew"));
|
|
441
|
+
var import_Send = __toESM(require("@mui/icons-material/Send"));
|
|
442
|
+
var import_ZoomInMap = __toESM(require("@mui/icons-material/ZoomInMap"));
|
|
443
|
+
var import_ZoomOutMap = __toESM(require("@mui/icons-material/ZoomOutMap"));
|
|
444
|
+
var import_HomeRepairService = __toESM(require("@mui/icons-material/HomeRepairService"));
|
|
445
|
+
var import_Construction = __toESM(require("@mui/icons-material/Construction"));
|
|
446
|
+
var import_Help = __toESM(require("@mui/icons-material/Help"));
|
|
447
|
+
var import_EmojiFlags = __toESM(require("@mui/icons-material/EmojiFlags"));
|
|
448
|
+
var import_Edit = __toESM(require("@mui/icons-material/Edit"));
|
|
449
|
+
var import_ForkRight = __toESM(require("@mui/icons-material/ForkRight"));
|
|
450
|
+
var import_Settings = __toESM(require("@mui/icons-material/Settings"));
|
|
451
|
+
var import_Restore = __toESM(require("@mui/icons-material/Restore"));
|
|
452
|
+
var import_EditNote = __toESM(require("@mui/icons-material/EditNote"));
|
|
453
|
+
var import_HomeOutlined = __toESM(require("@mui/icons-material/HomeOutlined"));
|
|
454
|
+
var import_ExitToAppOutlined = __toESM(require("@mui/icons-material/ExitToAppOutlined"));
|
|
455
|
+
var import_WbSunnyOutlined = __toESM(require("@mui/icons-material/WbSunnyOutlined"));
|
|
456
|
+
var import_DarkModeOutlined = __toESM(require("@mui/icons-material/DarkModeOutlined"));
|
|
457
|
+
var import_AttachFileOutlined = __toESM(require("@mui/icons-material/AttachFileOutlined"));
|
|
458
|
+
var import_NoteAdd = __toESM(require("@mui/icons-material/NoteAdd"));
|
|
459
|
+
var import_CloudUpload = __toESM(require("@mui/icons-material/CloudUpload"));
|
|
460
|
+
var import_KeyboardDoubleArrowRight = __toESM(require("@mui/icons-material/KeyboardDoubleArrowRight"));
|
|
461
|
+
var import_KeyboardDoubleArrowLeft = __toESM(require("@mui/icons-material/KeyboardDoubleArrowLeft"));
|
|
462
|
+
var import_KeyboardDoubleArrowRightRounded = __toESM(require("@mui/icons-material/KeyboardDoubleArrowRightRounded"));
|
|
463
|
+
var import_FitScreen = __toESM(require("@mui/icons-material/FitScreen"));
|
|
464
|
+
var import_Fullscreen = __toESM(require("@mui/icons-material/Fullscreen"));
|
|
465
|
+
var import_Biotech = __toESM(require("@mui/icons-material/Biotech"));
|
|
466
|
+
var import_Share = __toESM(require("@mui/icons-material/Share"));
|
|
467
|
+
var import_FilterAlt = __toESM(require("@mui/icons-material/FilterAlt"));
|
|
468
|
+
var import_Sync = __toESM(require("@mui/icons-material/Sync"));
|
|
469
|
+
var import_PlayArrow = __toESM(require("@mui/icons-material/PlayArrow"));
|
|
470
|
+
var import_PauseOutlined = __toESM(require("@mui/icons-material/PauseOutlined"));
|
|
471
|
+
var import_Casino = __toESM(require("@mui/icons-material/Casino"));
|
|
472
|
+
var import_Paid = __toESM(require("@mui/icons-material/Paid"));
|
|
473
|
+
var import_Save = __toESM(require("@mui/icons-material/Save"));
|
|
474
|
+
var import_StopRounded = __toESM(require("@mui/icons-material/StopRounded"));
|
|
475
|
+
var import_Replay = __toESM(require("@mui/icons-material/Replay"));
|
|
476
|
+
var import_AccountTree = __toESM(require("@mui/icons-material/AccountTree"));
|
|
477
|
+
var import_Close2 = __toESM(require("@mui/icons-material/Close"));
|
|
478
|
+
var import_KeyboardArrowDown = __toESM(require("@mui/icons-material/KeyboardArrowDown"));
|
|
479
|
+
var import_KeyboardArrowRight = __toESM(require("@mui/icons-material/KeyboardArrowRight"));
|
|
480
|
+
var import_SearchRounded = __toESM(require("@mui/icons-material/SearchRounded"));
|
|
481
|
+
var import_CloseRounded = __toESM(require("@mui/icons-material/CloseRounded"));
|
|
482
|
+
var import_SortByAlphaRounded = __toESM(require("@mui/icons-material/SortByAlphaRounded"));
|
|
483
|
+
var import_FilterAltOutlined = __toESM(require("@mui/icons-material/FilterAltOutlined"));
|
|
484
|
+
var import_InboxOutlined = __toESM(require("@mui/icons-material/InboxOutlined"));
|
|
485
|
+
var import_SearchOff = __toESM(require("@mui/icons-material/SearchOff"));
|
|
486
|
+
var import_ClearRounded = __toESM(require("@mui/icons-material/ClearRounded"));
|
|
487
|
+
var import_ArrowDropDownRounded = __toESM(require("@mui/icons-material/ArrowDropDownRounded"));
|
|
488
|
+
var import_AccountBox = __toESM(require("@mui/icons-material/AccountBox"));
|
|
489
|
+
var import_Logout = __toESM(require("@mui/icons-material/Logout"));
|
|
490
|
+
var import_Login = __toESM(require("@mui/icons-material/Login"));
|
|
491
|
+
var import_Dashboard = __toESM(require("@mui/icons-material/Dashboard"));
|
|
492
|
+
var import_AccountTreeOutlined = __toESM(require("@mui/icons-material/AccountTreeOutlined"));
|
|
493
|
+
var import_HelpOutline = __toESM(require("@mui/icons-material/HelpOutline"));
|
|
494
|
+
var import_NavigateBefore = __toESM(require("@mui/icons-material/NavigateBefore"));
|
|
495
|
+
var import_NavigateNext = __toESM(require("@mui/icons-material/NavigateNext"));
|
|
496
|
+
var import_Person2 = __toESM(require("@mui/icons-material/Person"));
|
|
497
|
+
var import_CalendarToday = __toESM(require("@mui/icons-material/CalendarToday"));
|
|
498
|
+
var import_QuestionAnswerOutlined = __toESM(require("@mui/icons-material/QuestionAnswerOutlined"));
|
|
499
|
+
var import_Today = __toESM(require("@mui/icons-material/Today"));
|
|
500
|
+
var import_DeleteForever2 = __toESM(require("@mui/icons-material/DeleteForever"));
|
|
501
|
+
var import_AdsClick = __toESM(require("@mui/icons-material/AdsClick"));
|
|
502
|
+
var import_Fingerprint = __toESM(require("@mui/icons-material/Fingerprint"));
|
|
503
|
+
var import_SportsEsportsOutlined = __toESM(require("@mui/icons-material/SportsEsportsOutlined"));
|
|
504
|
+
var import_HelpOutlineRounded = __toESM(require("@mui/icons-material/HelpOutlineRounded"));
|
|
505
|
+
var import_AccountTreeOutlined2 = __toESM(require("@mui/icons-material/AccountTreeOutlined"));
|
|
506
|
+
var import_SmartToyOutlined = __toESM(require("@mui/icons-material/SmartToyOutlined"));
|
|
507
|
+
var import_AcUnit = __toESM(require("@mui/icons-material/AcUnit"));
|
|
508
|
+
var import_Loop = __toESM(require("@mui/icons-material/Loop"));
|
|
509
|
+
var import_Pending = __toESM(require("@mui/icons-material/Pending"));
|
|
510
|
+
var import_AllInclusive = __toESM(require("@mui/icons-material/AllInclusive"));
|
|
511
|
+
var import_WarningOutlined = __toESM(require("@mui/icons-material/WarningOutlined"));
|
|
512
|
+
var import_InfoOutlined = __toESM(require("@mui/icons-material/InfoOutlined"));
|
|
513
|
+
var import_AutoAwesomeRounded = __toESM(require("@mui/icons-material/AutoAwesomeRounded"));
|
|
514
|
+
var import_ErrorOutlineOutlined = __toESM(require("@mui/icons-material/ErrorOutlineOutlined"));
|
|
515
|
+
var import_Download = __toESM(require("@mui/icons-material/Download"));
|
|
516
|
+
|
|
517
|
+
// src/components/elemental/Image/src/Cropper/sections/CropperActionSection.tsx
|
|
518
|
+
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
519
|
+
function CropperActionSection({
|
|
520
|
+
onSave,
|
|
521
|
+
onResetTransforms,
|
|
522
|
+
onClear,
|
|
523
|
+
saveDisabled
|
|
524
|
+
}) {
|
|
525
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
|
|
526
|
+
import_Box.default,
|
|
527
|
+
{
|
|
528
|
+
sx: {
|
|
529
|
+
display: "flex",
|
|
530
|
+
alignItems: "center",
|
|
531
|
+
justifyContent: "flex-end",
|
|
532
|
+
gap: 1,
|
|
533
|
+
flexWrap: "wrap"
|
|
534
|
+
},
|
|
535
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_Box.default, { sx: { display: "flex", alignItems: "center", gap: 1, flexWrap: "wrap" }, children: [
|
|
536
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(IconButton_default, { onClick: onResetTransforms, title: "Reset Scale & Rotation", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Replay.default, { fontSize: "small" }) }),
|
|
537
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(IconButton_default, { onClick: onClear, color: "error", title: "Remove image", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Close2.default, { fontSize: "small" }) }),
|
|
538
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)(IconButton_default, { onClick: onSave, color: "success", disabled: saveDisabled, title: "Save", children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(import_Check.default, { fontSize: "small" }) })
|
|
539
|
+
] })
|
|
540
|
+
}
|
|
541
|
+
);
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
// src/components/elemental/Image/src/Cropper/sections/CropperFileSelector.tsx
|
|
545
|
+
var import_react3 = __toESM(require("react"));
|
|
546
|
+
|
|
547
|
+
// src/components/compound/FileUploader/src/ReactDropzone.tsx
|
|
548
|
+
var import_react2 = require("react");
|
|
549
|
+
var import_react_dropzone = require("react-dropzone");
|
|
550
|
+
|
|
551
|
+
// src/components/compound/FileUploader/src/theme.ts
|
|
552
|
+
var fileUploaderRootSx = {
|
|
553
|
+
"--dropzone-bg": "var(--mui-palette-background-paper)",
|
|
554
|
+
"--dropzone-text-color": "var(--mui-palette-text-secondary)",
|
|
555
|
+
"--dropzone-border-hover": "var(--mui-palette-primary-main)",
|
|
556
|
+
"--dropzone-bg-hover": "var(--mui-palette-action-hover)"
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
// src/_utils/_func/downloadFile.ts
|
|
560
|
+
var import_file_type = require("file-type");
|
|
561
|
+
async function downloadFile(url, fetchOptions) {
|
|
562
|
+
const res = await fetch(url, fetchOptions);
|
|
563
|
+
const blob = await res.blob();
|
|
564
|
+
const buffer = await blob.arrayBuffer();
|
|
565
|
+
const fType = await (0, import_file_type.fileTypeFromBuffer)(buffer);
|
|
566
|
+
const data = {
|
|
567
|
+
blobUrl: URL.createObjectURL(blob),
|
|
568
|
+
size: blob.size,
|
|
569
|
+
mimeType: fType?.mime || blob.type
|
|
570
|
+
// use file-type to get the mime type
|
|
571
|
+
};
|
|
572
|
+
const nonImgRes = {
|
|
573
|
+
...data,
|
|
574
|
+
dimensions: {
|
|
575
|
+
width: 0,
|
|
576
|
+
height: 0
|
|
577
|
+
}
|
|
578
|
+
};
|
|
579
|
+
try {
|
|
580
|
+
if (data.mimeType.includes("image/")) {
|
|
581
|
+
const dimensions = await handleImageDownload(data.blobUrl);
|
|
582
|
+
return {
|
|
583
|
+
...data,
|
|
584
|
+
dimensions
|
|
585
|
+
};
|
|
586
|
+
} else {
|
|
587
|
+
return nonImgRes;
|
|
588
|
+
}
|
|
589
|
+
} catch (err) {
|
|
590
|
+
console.warn("Failed to handle image download:", err);
|
|
591
|
+
return nonImgRes;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
async function handleImageDownload(blobUrl) {
|
|
595
|
+
const img = new Image();
|
|
596
|
+
img.src = blobUrl;
|
|
597
|
+
await new Promise((resolve, reject) => {
|
|
598
|
+
img.onload = resolve;
|
|
599
|
+
img.onerror = reject;
|
|
600
|
+
});
|
|
601
|
+
const metaData = {
|
|
602
|
+
width: img.width,
|
|
603
|
+
height: img.height
|
|
604
|
+
};
|
|
605
|
+
img.remove();
|
|
606
|
+
return metaData;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
// src/_utils/_const/file.ts
|
|
610
|
+
var FILE_STATUSs = {
|
|
611
|
+
// local status
|
|
612
|
+
uploadingToLocal: "local-uploading",
|
|
613
|
+
uploadedToLocal: "local-uploaded",
|
|
614
|
+
localError: "local-error",
|
|
615
|
+
pending: "pending",
|
|
616
|
+
// upload s3
|
|
617
|
+
uploadPending: "upload-pending",
|
|
618
|
+
gettingSignedURL: "upload-gettingSignedURL",
|
|
619
|
+
beginUploadToS3: "upload-beginUploadToS3",
|
|
620
|
+
uploadedToCloud: "upload-uploadedToCloud",
|
|
621
|
+
error: "upload-error",
|
|
622
|
+
// download
|
|
623
|
+
downloadPending: "download-pending",
|
|
624
|
+
downloading: "download-in-progress",
|
|
625
|
+
downloaded: "download-completed",
|
|
626
|
+
downloadError: "download-error"
|
|
627
|
+
};
|
|
628
|
+
var FILE_TYPEs = {
|
|
629
|
+
image: "image",
|
|
630
|
+
video: "video",
|
|
631
|
+
audio: "audio",
|
|
632
|
+
pdf: "pdf",
|
|
633
|
+
doc: "doc",
|
|
634
|
+
xls: "xls",
|
|
635
|
+
ppt: "ppt",
|
|
636
|
+
txt: "txt",
|
|
637
|
+
zip: "zip",
|
|
638
|
+
json: "json",
|
|
639
|
+
other: "other"
|
|
640
|
+
};
|
|
641
|
+
|
|
642
|
+
// src/_utils/classes/PreviewableFile.ts
|
|
643
|
+
var PreviewableFile = class {
|
|
644
|
+
path;
|
|
645
|
+
blobUrl;
|
|
646
|
+
filename;
|
|
647
|
+
randomName;
|
|
648
|
+
fileType;
|
|
649
|
+
mimeType;
|
|
650
|
+
size;
|
|
651
|
+
displaySize;
|
|
652
|
+
url;
|
|
653
|
+
fetchOptions;
|
|
654
|
+
putUrl;
|
|
655
|
+
getUrl;
|
|
656
|
+
status;
|
|
657
|
+
revokeable;
|
|
658
|
+
imageProps;
|
|
659
|
+
constructor(props = {}) {
|
|
660
|
+
this.path = props.path ?? "";
|
|
661
|
+
this.blobUrl = props.blobUrl ?? "";
|
|
662
|
+
this.filename = props.filename ?? "";
|
|
663
|
+
this.randomName = props.randomName ?? "";
|
|
664
|
+
this.fileType = props.fileType ?? getFileType(props.mimeType ?? "");
|
|
665
|
+
this.mimeType = props.mimeType ?? "";
|
|
666
|
+
this.size = props.size ?? 0;
|
|
667
|
+
this.displaySize = props.displaySize ?? displayFileSize(props.size ?? 0);
|
|
668
|
+
this.url = props.url ?? "";
|
|
669
|
+
this.fetchOptions = props.fetchOptions ?? {};
|
|
670
|
+
this.putUrl = props.putUrl ?? "";
|
|
671
|
+
this.getUrl = props.getUrl ?? "";
|
|
672
|
+
this.status = props.status ?? FILE_STATUSs.pending;
|
|
673
|
+
this.revokeable = props.revokeable ?? true;
|
|
674
|
+
this.imageProps = props.imageProps ?? {
|
|
675
|
+
width: 0,
|
|
676
|
+
height: 0
|
|
677
|
+
};
|
|
678
|
+
Object.preventExtensions(this);
|
|
679
|
+
}
|
|
680
|
+
toPlainObj() {
|
|
681
|
+
return {
|
|
682
|
+
...this
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
updateFile(file) {
|
|
686
|
+
if (!file) return;
|
|
687
|
+
this.path = file.path;
|
|
688
|
+
this.blobUrl = file.blobUrl;
|
|
689
|
+
this.filename = file.filename;
|
|
690
|
+
this.randomName = file.randomName;
|
|
691
|
+
this.fileType = file.fileType;
|
|
692
|
+
this.size = file.size;
|
|
693
|
+
this.displaySize = file.displaySize;
|
|
694
|
+
this.url = file.url;
|
|
695
|
+
this.fetchOptions = file.fetchOptions;
|
|
696
|
+
this.putUrl = file.putUrl;
|
|
697
|
+
this.getUrl = file.getUrl;
|
|
698
|
+
this.status = file.status;
|
|
699
|
+
this.revokeable = file.revokeable;
|
|
700
|
+
this.imageProps = file.imageProps;
|
|
701
|
+
}
|
|
702
|
+
updateStatus(status) {
|
|
703
|
+
this.status = status;
|
|
704
|
+
}
|
|
705
|
+
async downloadFile() {
|
|
706
|
+
if (!this.url) return this;
|
|
707
|
+
try {
|
|
708
|
+
const res = await downloadFile(this.url, this.fetchOptions);
|
|
709
|
+
this.url = res.blobUrl;
|
|
710
|
+
this.path = res.blobUrl;
|
|
711
|
+
this.status = FILE_STATUSs.downloaded;
|
|
712
|
+
this.blobUrl = res.blobUrl;
|
|
713
|
+
this.fileType = getFileType(res.mimeType);
|
|
714
|
+
this.mimeType = res.mimeType;
|
|
715
|
+
this.size = res.size;
|
|
716
|
+
this.displaySize = displayFileSize(res.size);
|
|
717
|
+
this.imageProps = res.dimensions;
|
|
718
|
+
return this;
|
|
719
|
+
} catch (err) {
|
|
720
|
+
console.log(err);
|
|
721
|
+
return this;
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
_displayFileSize() {
|
|
725
|
+
return displayFileSize(this.size);
|
|
726
|
+
}
|
|
727
|
+
getUploadFormat() {
|
|
728
|
+
return {
|
|
729
|
+
url: this.putUrl,
|
|
730
|
+
keyPath: this.putUrl,
|
|
731
|
+
filename: this.filename,
|
|
732
|
+
fileType: this.mimeType,
|
|
733
|
+
hostname: ""
|
|
734
|
+
};
|
|
735
|
+
}
|
|
736
|
+
};
|
|
737
|
+
function displayFileSize(size) {
|
|
738
|
+
const units = ["B", "KB", "MB", "GB", "TB"];
|
|
739
|
+
let unitIndex = 0;
|
|
740
|
+
while (size >= 1024 && unitIndex < units.length - 1) {
|
|
741
|
+
size /= 1024;
|
|
742
|
+
unitIndex++;
|
|
743
|
+
}
|
|
744
|
+
const sizeWithUnit = size.toFixed(2) + " " + units[unitIndex];
|
|
745
|
+
return `[${sizeWithUnit}]`;
|
|
746
|
+
}
|
|
747
|
+
function getFileType(mimeType) {
|
|
748
|
+
const types = Object.values(FILE_TYPEs);
|
|
749
|
+
const [type] = mimeType.split("/");
|
|
750
|
+
if (types.includes(type)) {
|
|
751
|
+
return type;
|
|
752
|
+
}
|
|
753
|
+
const found = types.find((t) => mimeType.includes(t) && t !== FILE_TYPEs.other);
|
|
754
|
+
if (found) {
|
|
755
|
+
return found;
|
|
756
|
+
}
|
|
757
|
+
return FILE_TYPEs.other;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
// src/components/compound/DisplayFile/src/DisplayFile.tsx
|
|
761
|
+
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
762
|
+
var getFileIcon = (fileType) => {
|
|
763
|
+
switch (fileType) {
|
|
764
|
+
case FILE_TYPEs.image:
|
|
765
|
+
return import_ImageOutlined.default;
|
|
766
|
+
case FILE_TYPEs.pdf:
|
|
767
|
+
return import_PictureAsPdf.default;
|
|
768
|
+
case FILE_TYPEs.audio:
|
|
769
|
+
return import_AudioFile.default;
|
|
770
|
+
case FILE_TYPEs.video:
|
|
771
|
+
return import_VideoFile.default;
|
|
772
|
+
case FILE_TYPEs.xls:
|
|
773
|
+
return import_TableChart.default;
|
|
774
|
+
case FILE_TYPEs.zip:
|
|
775
|
+
return import_FolderZip.default;
|
|
776
|
+
case FILE_TYPEs.json:
|
|
777
|
+
return import_DataObject.default;
|
|
778
|
+
case FILE_TYPEs.ppt:
|
|
779
|
+
case FILE_TYPEs.doc:
|
|
780
|
+
case FILE_TYPEs.txt:
|
|
781
|
+
return import_Description.default;
|
|
782
|
+
default:
|
|
783
|
+
return import_InsertDriveFile.default;
|
|
784
|
+
}
|
|
785
|
+
};
|
|
786
|
+
var FileThumbnail = ({ file, size = 60 }) => {
|
|
787
|
+
const isImage = file.fileType === FILE_TYPEs.image;
|
|
788
|
+
const FileIcon = getFileIcon(file.fileType || "");
|
|
789
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
790
|
+
import_Box.default,
|
|
791
|
+
{
|
|
792
|
+
sx: {
|
|
793
|
+
width: size,
|
|
794
|
+
height: size,
|
|
795
|
+
minWidth: size,
|
|
796
|
+
display: "flex",
|
|
797
|
+
alignItems: "center",
|
|
798
|
+
justifyContent: "center",
|
|
799
|
+
bgcolor: "transparent",
|
|
800
|
+
borderRadius: 1,
|
|
801
|
+
overflow: "hidden"
|
|
802
|
+
},
|
|
803
|
+
children: isImage && file.blobUrl ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
804
|
+
import_Box.default,
|
|
805
|
+
{
|
|
806
|
+
component: "img",
|
|
807
|
+
src: file.blobUrl,
|
|
808
|
+
alt: file.filename,
|
|
809
|
+
sx: { width: "100%", height: "100%", objectFit: "cover" }
|
|
810
|
+
}
|
|
811
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(FileIcon, { fontSize: size >= 60 ? "large" : "medium", color: "action" })
|
|
812
|
+
}
|
|
813
|
+
);
|
|
814
|
+
};
|
|
815
|
+
var DisplayFile = ({
|
|
816
|
+
file,
|
|
817
|
+
onDelete,
|
|
818
|
+
mode = "thumbnail"
|
|
819
|
+
}) => {
|
|
820
|
+
return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_Box.default, { sx: {
|
|
821
|
+
display: "flex",
|
|
822
|
+
alignItems: "center",
|
|
823
|
+
gap: 1,
|
|
824
|
+
p: 1,
|
|
825
|
+
border: "1px solid",
|
|
826
|
+
borderColor: "divider",
|
|
827
|
+
borderRadius: 1,
|
|
828
|
+
width: mode === "thumbnail" ? "fit-content" : "100%",
|
|
829
|
+
maxWidth: "100%",
|
|
830
|
+
position: "relative"
|
|
831
|
+
}, children: [
|
|
832
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(FileThumbnail, { file }),
|
|
833
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_Box.default, { sx: { flex: 1, overflow: "hidden" }, children: [
|
|
834
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Typography.default, { variant: "body2", noWrap: true, sx: { maxWidth: 150 }, children: file.filename }),
|
|
835
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Typography.default, { variant: "caption", color: "text.secondary", children: file.displaySize })
|
|
836
|
+
] }),
|
|
837
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
838
|
+
IconButton_default,
|
|
839
|
+
{
|
|
840
|
+
size: "small",
|
|
841
|
+
onClick: () => onDelete(file),
|
|
842
|
+
sx: { ml: "auto" },
|
|
843
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(import_Close.default, { fontSize: "small" })
|
|
844
|
+
}
|
|
845
|
+
)
|
|
846
|
+
] });
|
|
847
|
+
};
|
|
848
|
+
DisplayFile.DISPLAY_MODEs = {
|
|
849
|
+
thumbnail: "thumbnail",
|
|
850
|
+
name: "name"
|
|
851
|
+
};
|
|
852
|
+
var DisplayFile_default = DisplayFile;
|
|
853
|
+
|
|
854
|
+
// src/components/compound/FileUploader/src/DropZoneBox.tsx
|
|
855
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
856
|
+
var DropZoneBox = ({ getRootProps, getInputProps, error }) => {
|
|
857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
858
|
+
import_Box.default,
|
|
859
|
+
{
|
|
860
|
+
...getRootProps(),
|
|
861
|
+
sx: {
|
|
862
|
+
flex: 1,
|
|
863
|
+
display: "flex",
|
|
864
|
+
flexDirection: "column",
|
|
865
|
+
alignItems: "center",
|
|
866
|
+
p: 3,
|
|
867
|
+
border: "2px dashed",
|
|
868
|
+
borderColor: error ? "error.main" : "divider",
|
|
869
|
+
borderRadius: 1,
|
|
870
|
+
backgroundColor: "var(--dropzone-bg)",
|
|
871
|
+
outline: "none",
|
|
872
|
+
transition: "border .24s ease-in-out",
|
|
873
|
+
color: "var(--dropzone-text-color)",
|
|
874
|
+
cursor: "pointer",
|
|
875
|
+
"&:hover": {
|
|
876
|
+
borderColor: "var(--dropzone-border-hover)",
|
|
877
|
+
backgroundColor: "var(--dropzone-bg-hover)"
|
|
878
|
+
}
|
|
879
|
+
},
|
|
880
|
+
children: [
|
|
881
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("input", { ...getInputProps() }),
|
|
882
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_NoteAdd.default, { sx: { fontSize: "2.5rem", mb: 1 } }),
|
|
883
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_Typography.default, { variant: "caption", align: "center", children: 'Drag "n" drop some files here, or click to select files' })
|
|
884
|
+
]
|
|
885
|
+
}
|
|
886
|
+
);
|
|
887
|
+
};
|
|
888
|
+
var DropZoneBox_default = DropZoneBox;
|
|
889
|
+
|
|
890
|
+
// src/components/compound/FileUploader/src/DropZoneButton.tsx
|
|
891
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
892
|
+
var DropZoneButton = ({
|
|
893
|
+
getRootProps,
|
|
894
|
+
getInputProps,
|
|
895
|
+
label = "Upload file",
|
|
896
|
+
error = false
|
|
897
|
+
}) => {
|
|
898
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
899
|
+
Button,
|
|
900
|
+
{
|
|
901
|
+
variant: "outlined",
|
|
902
|
+
startIcon: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_CloudUpload.default, {}),
|
|
903
|
+
color: error ? "error" : "primary",
|
|
904
|
+
...getRootProps(),
|
|
905
|
+
children: [
|
|
906
|
+
label,
|
|
907
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("input", { ...getInputProps() })
|
|
908
|
+
]
|
|
909
|
+
}
|
|
910
|
+
);
|
|
911
|
+
};
|
|
912
|
+
var DropZoneButton_default = DropZoneButton;
|
|
913
|
+
|
|
914
|
+
// src/components/compound/FileUploader/src/ReactDropzone.tsx
|
|
915
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
916
|
+
var ReactDropzone = ({
|
|
917
|
+
filesProps,
|
|
918
|
+
accept,
|
|
919
|
+
maxFiles = 0,
|
|
920
|
+
// 0 means unlimited
|
|
921
|
+
error = false,
|
|
922
|
+
dropzoneType = "box",
|
|
923
|
+
label = "Upload File"
|
|
924
|
+
}) => {
|
|
925
|
+
const [files, setFiles] = filesProps;
|
|
926
|
+
const blobRegistryRef = (0, import_react2.useRef)(/* @__PURE__ */ new Set());
|
|
927
|
+
const onDrop = (0, import_react2.useCallback)((acceptedFiles) => {
|
|
928
|
+
const newFiles = acceptedFiles.map((file) => {
|
|
929
|
+
const blobUrl = URL.createObjectURL(file);
|
|
930
|
+
blobRegistryRef.current.add(blobUrl);
|
|
931
|
+
return new PreviewableFile({
|
|
932
|
+
path: file.path,
|
|
933
|
+
blobUrl,
|
|
934
|
+
filename: file.name,
|
|
935
|
+
mimeType: file.type,
|
|
936
|
+
size: file.size,
|
|
937
|
+
displaySize: displayFileSize(file.size),
|
|
938
|
+
fileType: file.type.startsWith("image/") ? "image" : file.type.startsWith("application/json") ? "json" : "other"
|
|
939
|
+
});
|
|
940
|
+
});
|
|
941
|
+
setFiles((prev) => [...prev, ...newFiles]);
|
|
942
|
+
}, [setFiles]);
|
|
943
|
+
const isLimitReached = maxFiles > 0 && files.length >= maxFiles;
|
|
944
|
+
const { getRootProps, getInputProps } = (0, import_react_dropzone.useDropzone)({
|
|
945
|
+
onDrop,
|
|
946
|
+
accept,
|
|
947
|
+
maxFiles: maxFiles > 0 ? maxFiles - files.length : void 0,
|
|
948
|
+
disabled: isLimitReached
|
|
949
|
+
});
|
|
950
|
+
const handleDelete = (fileToDelete) => {
|
|
951
|
+
setFiles((prev) => prev.filter((f) => f !== fileToDelete));
|
|
952
|
+
if (fileToDelete.blobUrl) {
|
|
953
|
+
URL.revokeObjectURL(fileToDelete.blobUrl);
|
|
954
|
+
blobRegistryRef.current.delete(fileToDelete.blobUrl);
|
|
955
|
+
}
|
|
956
|
+
};
|
|
957
|
+
(0, import_react2.useEffect)(() => {
|
|
958
|
+
const blobRegistry = blobRegistryRef.current;
|
|
959
|
+
return () => {
|
|
960
|
+
blobRegistry.forEach((url) => URL.revokeObjectURL(url));
|
|
961
|
+
blobRegistry.clear();
|
|
962
|
+
};
|
|
963
|
+
}, []);
|
|
964
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_Box.default, { sx: mergeSx({ maxWidth: "100%" }, fileUploaderRootSx), children: [
|
|
965
|
+
!isLimitReached && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_Box.default, { component: "section", children: dropzoneType === "box" ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropZoneBox_default, { getRootProps, getInputProps, error }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropZoneButton_default, { getRootProps, getInputProps, label, error }) }),
|
|
966
|
+
files.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_Stack.default, { spacing: 1, sx: { mt: 0 }, children: files.map((file) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
967
|
+
DisplayFile_default,
|
|
968
|
+
{
|
|
969
|
+
file,
|
|
970
|
+
onDelete: handleDelete
|
|
971
|
+
},
|
|
972
|
+
file.blobUrl || file.filename || file.path
|
|
973
|
+
)) })
|
|
974
|
+
] });
|
|
975
|
+
};
|
|
976
|
+
var ReactDropzone_default = ReactDropzone;
|
|
977
|
+
|
|
978
|
+
// src/components/elemental/Image/src/Cropper/sections/CropperFileSelector.tsx
|
|
979
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
980
|
+
function CropperFileSelector({ accept = "image/*", buttonLabel = "Select Image", onPick }) {
|
|
981
|
+
const [files, setFiles] = import_react3.default.useState([]);
|
|
982
|
+
import_react3.default.useEffect(() => {
|
|
983
|
+
}, [files]);
|
|
984
|
+
const lastForwardedRef = import_react3.default.useRef(null);
|
|
985
|
+
import_react3.default.useEffect(() => {
|
|
986
|
+
if (!files.length) {
|
|
987
|
+
if (lastForwardedRef.current) {
|
|
988
|
+
lastForwardedRef.current = null;
|
|
989
|
+
onPick?.(null);
|
|
990
|
+
}
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
const pf = files[0];
|
|
994
|
+
if (!pf.blobUrl) return;
|
|
995
|
+
if (lastForwardedRef.current === pf.blobUrl) {
|
|
996
|
+
return;
|
|
997
|
+
}
|
|
998
|
+
let cancelled = false;
|
|
999
|
+
(async () => {
|
|
1000
|
+
try {
|
|
1001
|
+
const res = await fetch(pf.blobUrl);
|
|
1002
|
+
const blob = await res.blob();
|
|
1003
|
+
const file = new File([blob], pf.filename || "file", { type: pf.mimeType || void 0 });
|
|
1004
|
+
if (!cancelled) {
|
|
1005
|
+
lastForwardedRef.current = pf.blobUrl;
|
|
1006
|
+
onPick?.(file);
|
|
1007
|
+
}
|
|
1008
|
+
} catch {
|
|
1009
|
+
}
|
|
1010
|
+
})();
|
|
1011
|
+
return () => {
|
|
1012
|
+
cancelled = true;
|
|
1013
|
+
};
|
|
1014
|
+
}, [files, onPick]);
|
|
1015
|
+
const acceptProp = typeof accept === "string" ? { [accept]: [] } : accept;
|
|
1016
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_Box.default, { sx: { display: "flex", alignItems: "center", pt: 0, width: "100%", justifyContent: "center" }, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ReactDropzone_default, { filesProps: [files, setFiles], accept: acceptProp, maxFiles: 1, dropzoneType: "button", label: buttonLabel }) });
|
|
1017
|
+
}
|
|
1018
|
+
|
|
1019
|
+
// src/components/elemental/Image/src/Cropper/hooks/useCropperState.ts
|
|
1020
|
+
var import_react4 = __toESM(require("react"));
|
|
1021
|
+
var import_react_image_crop2 = require("react-image-crop");
|
|
1022
|
+
function toRad(degrees) {
|
|
1023
|
+
return degrees * Math.PI / 180;
|
|
1024
|
+
}
|
|
1025
|
+
function defaultCrop() {
|
|
1026
|
+
return {
|
|
1027
|
+
unit: "%",
|
|
1028
|
+
x: 10,
|
|
1029
|
+
y: 10,
|
|
1030
|
+
width: 80,
|
|
1031
|
+
height: 80
|
|
1032
|
+
};
|
|
1033
|
+
}
|
|
1034
|
+
function makeCenteredAspectCrop(mediaWidth, mediaHeight, aspect) {
|
|
1035
|
+
return (0, import_react_image_crop2.centerCrop)(
|
|
1036
|
+
(0, import_react_image_crop2.makeAspectCrop)(
|
|
1037
|
+
{
|
|
1038
|
+
unit: "%",
|
|
1039
|
+
width: 90
|
|
1040
|
+
},
|
|
1041
|
+
aspect,
|
|
1042
|
+
mediaWidth,
|
|
1043
|
+
mediaHeight
|
|
1044
|
+
),
|
|
1045
|
+
mediaWidth,
|
|
1046
|
+
mediaHeight
|
|
1047
|
+
);
|
|
1048
|
+
}
|
|
1049
|
+
function initialCrop(mediaWidth, mediaHeight, defaultRatio, cropConfig) {
|
|
1050
|
+
if (defaultRatio) {
|
|
1051
|
+
return makeCenteredAspectCrop(mediaWidth, mediaHeight, defaultRatio);
|
|
1052
|
+
}
|
|
1053
|
+
return { ...defaultCrop(), ...cropConfig };
|
|
1054
|
+
}
|
|
1055
|
+
function drawPreviewToCanvas(image, canvas, crop, scale, rotate, circularCrop) {
|
|
1056
|
+
const context = canvas.getContext("2d");
|
|
1057
|
+
if (!context) return;
|
|
1058
|
+
if (!crop.width || !crop.height) return;
|
|
1059
|
+
const scaleX = image.naturalWidth / image.width;
|
|
1060
|
+
const scaleY = image.naturalHeight / image.height;
|
|
1061
|
+
const pixelRatio = window.devicePixelRatio || 1;
|
|
1062
|
+
canvas.width = Math.floor(crop.width * scaleX * pixelRatio);
|
|
1063
|
+
canvas.height = Math.floor(crop.height * scaleY * pixelRatio);
|
|
1064
|
+
context.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);
|
|
1065
|
+
context.imageSmoothingQuality = "high";
|
|
1066
|
+
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
1067
|
+
const cropX = crop.x * scaleX;
|
|
1068
|
+
const cropY = crop.y * scaleY;
|
|
1069
|
+
const rotateRads = toRad(rotate);
|
|
1070
|
+
const centerX = image.naturalWidth / 2;
|
|
1071
|
+
const centerY = image.naturalHeight / 2;
|
|
1072
|
+
context.save();
|
|
1073
|
+
if (circularCrop) {
|
|
1074
|
+
const width = crop.width * scaleX;
|
|
1075
|
+
const height = crop.height * scaleY;
|
|
1076
|
+
const radius = Math.min(width, height) / 2;
|
|
1077
|
+
context.beginPath();
|
|
1078
|
+
context.arc(width / 2, height / 2, radius, 0, Math.PI * 2);
|
|
1079
|
+
context.closePath();
|
|
1080
|
+
context.clip();
|
|
1081
|
+
}
|
|
1082
|
+
context.translate(-cropX, -cropY);
|
|
1083
|
+
context.translate(centerX, centerY);
|
|
1084
|
+
context.rotate(rotateRads);
|
|
1085
|
+
context.scale(scale, scale);
|
|
1086
|
+
context.translate(-centerX, -centerY);
|
|
1087
|
+
context.drawImage(
|
|
1088
|
+
image,
|
|
1089
|
+
0,
|
|
1090
|
+
0,
|
|
1091
|
+
image.naturalWidth,
|
|
1092
|
+
image.naturalHeight,
|
|
1093
|
+
0,
|
|
1094
|
+
0,
|
|
1095
|
+
image.naturalWidth,
|
|
1096
|
+
image.naturalHeight
|
|
1097
|
+
);
|
|
1098
|
+
context.restore();
|
|
1099
|
+
}
|
|
1100
|
+
function useCropperState({
|
|
1101
|
+
blobUrl,
|
|
1102
|
+
onSave,
|
|
1103
|
+
setImgNull,
|
|
1104
|
+
circularCrop,
|
|
1105
|
+
defaultRatio,
|
|
1106
|
+
cropConfig
|
|
1107
|
+
}) {
|
|
1108
|
+
const imageRef = import_react4.default.useRef(null);
|
|
1109
|
+
const canvasRef = import_react4.default.useRef(null);
|
|
1110
|
+
const cropConfigRef = import_react4.default.useRef(cropConfig);
|
|
1111
|
+
cropConfigRef.current = cropConfig;
|
|
1112
|
+
const scaleRef = import_react4.default.useRef(1);
|
|
1113
|
+
const rotateRef = import_react4.default.useRef(0);
|
|
1114
|
+
const [activeBlobUrl, setActiveBlobUrl] = import_react4.default.useState(blobUrl);
|
|
1115
|
+
const [crop, setCrop] = import_react4.default.useState({ ...defaultCrop(), ...cropConfig });
|
|
1116
|
+
const [completedCrop, setCompletedCrop] = import_react4.default.useState();
|
|
1117
|
+
const [scale, setScale] = import_react4.default.useState(1);
|
|
1118
|
+
const [rotate, setRotate] = import_react4.default.useState(0);
|
|
1119
|
+
scaleRef.current = scale;
|
|
1120
|
+
rotateRef.current = rotate;
|
|
1121
|
+
const applyCropFromImage = import_react4.default.useCallback((image) => {
|
|
1122
|
+
const { width, height } = image;
|
|
1123
|
+
if (!width || !height) return;
|
|
1124
|
+
const nextCrop = initialCrop(width, height, defaultRatio, cropConfigRef.current);
|
|
1125
|
+
const pixelCrop = (0, import_react_image_crop2.convertToPixelCrop)(nextCrop, width, height);
|
|
1126
|
+
if (!pixelCrop.width || !pixelCrop.height) return;
|
|
1127
|
+
setCrop(nextCrop);
|
|
1128
|
+
setCompletedCrop(pixelCrop);
|
|
1129
|
+
const canvas = canvasRef.current;
|
|
1130
|
+
if (canvas) {
|
|
1131
|
+
drawPreviewToCanvas(
|
|
1132
|
+
image,
|
|
1133
|
+
canvas,
|
|
1134
|
+
pixelCrop,
|
|
1135
|
+
scaleRef.current,
|
|
1136
|
+
rotateRef.current,
|
|
1137
|
+
circularCrop
|
|
1138
|
+
);
|
|
1139
|
+
}
|
|
1140
|
+
}, [circularCrop, defaultRatio]);
|
|
1141
|
+
import_react4.default.useEffect(() => {
|
|
1142
|
+
setActiveBlobUrl(blobUrl);
|
|
1143
|
+
}, [blobUrl]);
|
|
1144
|
+
import_react4.default.useLayoutEffect(() => {
|
|
1145
|
+
if (!activeBlobUrl) {
|
|
1146
|
+
setCrop({ ...defaultCrop(), ...cropConfigRef.current });
|
|
1147
|
+
setCompletedCrop(void 0);
|
|
1148
|
+
setScale(1);
|
|
1149
|
+
setRotate(0);
|
|
1150
|
+
return;
|
|
1151
|
+
}
|
|
1152
|
+
setScale(1);
|
|
1153
|
+
setRotate(0);
|
|
1154
|
+
const tryApply = () => {
|
|
1155
|
+
const image = imageRef.current;
|
|
1156
|
+
if (image?.complete && image.width > 0 && image.height > 0) {
|
|
1157
|
+
applyCropFromImage(image);
|
|
1158
|
+
return true;
|
|
1159
|
+
}
|
|
1160
|
+
return false;
|
|
1161
|
+
};
|
|
1162
|
+
if (tryApply()) return;
|
|
1163
|
+
const frame = requestAnimationFrame(() => {
|
|
1164
|
+
tryApply();
|
|
1165
|
+
});
|
|
1166
|
+
return () => cancelAnimationFrame(frame);
|
|
1167
|
+
}, [activeBlobUrl, applyCropFromImage]);
|
|
1168
|
+
import_react4.default.useEffect(() => {
|
|
1169
|
+
if (!completedCrop || !imageRef.current || !canvasRef.current) return;
|
|
1170
|
+
drawPreviewToCanvas(
|
|
1171
|
+
imageRef.current,
|
|
1172
|
+
canvasRef.current,
|
|
1173
|
+
completedCrop,
|
|
1174
|
+
scale,
|
|
1175
|
+
rotate,
|
|
1176
|
+
circularCrop
|
|
1177
|
+
);
|
|
1178
|
+
}, [completedCrop, scale, rotate, circularCrop]);
|
|
1179
|
+
const onImageLoad = (e) => {
|
|
1180
|
+
applyCropFromImage(e.currentTarget);
|
|
1181
|
+
};
|
|
1182
|
+
const handleCompletedCrop = (nextCrop) => {
|
|
1183
|
+
if (!nextCrop.width || !nextCrop.height) return;
|
|
1184
|
+
setCompletedCrop(nextCrop);
|
|
1185
|
+
};
|
|
1186
|
+
const handleSave = async () => {
|
|
1187
|
+
if (!completedCrop || !imageRef.current) return;
|
|
1188
|
+
const previewCanvas = document.createElement("canvas");
|
|
1189
|
+
drawPreviewToCanvas(
|
|
1190
|
+
imageRef.current,
|
|
1191
|
+
previewCanvas,
|
|
1192
|
+
completedCrop,
|
|
1193
|
+
scale,
|
|
1194
|
+
rotate,
|
|
1195
|
+
circularCrop
|
|
1196
|
+
);
|
|
1197
|
+
const blob = await new Promise((resolve) => {
|
|
1198
|
+
previewCanvas.toBlob((nextBlob) => resolve(nextBlob), "image/png");
|
|
1199
|
+
});
|
|
1200
|
+
if (!blob) return;
|
|
1201
|
+
const resultUrl = URL.createObjectURL(blob);
|
|
1202
|
+
await onSave(resultUrl);
|
|
1203
|
+
};
|
|
1204
|
+
const handleClear = () => {
|
|
1205
|
+
setActiveBlobUrl("");
|
|
1206
|
+
setImgNull();
|
|
1207
|
+
imageRef.current = null;
|
|
1208
|
+
const canvas = canvasRef.current;
|
|
1209
|
+
if (canvas) {
|
|
1210
|
+
const context = canvas.getContext("2d");
|
|
1211
|
+
if (context) {
|
|
1212
|
+
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
1213
|
+
}
|
|
1214
|
+
}
|
|
1215
|
+
setCrop({ ...defaultCrop(), ...cropConfigRef.current });
|
|
1216
|
+
setScale(1);
|
|
1217
|
+
setRotate(0);
|
|
1218
|
+
setCompletedCrop(void 0);
|
|
1219
|
+
};
|
|
1220
|
+
const handleResetTransforms = () => {
|
|
1221
|
+
setScale(1);
|
|
1222
|
+
setRotate(0);
|
|
1223
|
+
};
|
|
1224
|
+
return {
|
|
1225
|
+
imageRef,
|
|
1226
|
+
canvasRef,
|
|
1227
|
+
activeBlobUrl,
|
|
1228
|
+
crop,
|
|
1229
|
+
setCrop,
|
|
1230
|
+
completedCrop,
|
|
1231
|
+
setCompletedCrop: handleCompletedCrop,
|
|
1232
|
+
scale,
|
|
1233
|
+
setScale,
|
|
1234
|
+
rotate,
|
|
1235
|
+
setRotate,
|
|
1236
|
+
onImageLoad,
|
|
1237
|
+
handleSave,
|
|
1238
|
+
handleClear,
|
|
1239
|
+
handleResetTransforms
|
|
1240
|
+
};
|
|
1241
|
+
}
|
|
1242
|
+
|
|
1243
|
+
// src/components/elemental/Image/src/Cropper/Cropper.tsx
|
|
1244
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1245
|
+
var Cropper = ({
|
|
1246
|
+
blobUrl,
|
|
1247
|
+
onSave,
|
|
1248
|
+
setImgNull,
|
|
1249
|
+
onClear,
|
|
1250
|
+
// optional parent callback when the image is removed
|
|
1251
|
+
circularCrop = false,
|
|
1252
|
+
defaultRatio,
|
|
1253
|
+
resizeCropEnabled = true,
|
|
1254
|
+
cropConfig,
|
|
1255
|
+
PreviewRenderer,
|
|
1256
|
+
footerExtra,
|
|
1257
|
+
showFileSelector = false,
|
|
1258
|
+
fileSelectorAccept = "image/*",
|
|
1259
|
+
fileSelectorButtonLabel = "Select Image",
|
|
1260
|
+
onFileSelect
|
|
1261
|
+
}) => {
|
|
1262
|
+
const {
|
|
1263
|
+
imageRef,
|
|
1264
|
+
canvasRef,
|
|
1265
|
+
activeBlobUrl,
|
|
1266
|
+
crop,
|
|
1267
|
+
setCrop,
|
|
1268
|
+
completedCrop,
|
|
1269
|
+
setCompletedCrop,
|
|
1270
|
+
scale,
|
|
1271
|
+
setScale,
|
|
1272
|
+
rotate,
|
|
1273
|
+
setRotate,
|
|
1274
|
+
onImageLoad,
|
|
1275
|
+
handleSave,
|
|
1276
|
+
handleClear,
|
|
1277
|
+
handleResetTransforms
|
|
1278
|
+
} = useCropperState({
|
|
1279
|
+
blobUrl,
|
|
1280
|
+
onSave,
|
|
1281
|
+
setImgNull,
|
|
1282
|
+
circularCrop,
|
|
1283
|
+
defaultRatio,
|
|
1284
|
+
cropConfig
|
|
1285
|
+
});
|
|
1286
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1287
|
+
CropperLayout,
|
|
1288
|
+
{
|
|
1289
|
+
left: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1290
|
+
CropperSourceSection,
|
|
1291
|
+
{
|
|
1292
|
+
activeBlobUrl,
|
|
1293
|
+
crop,
|
|
1294
|
+
setCrop,
|
|
1295
|
+
setCompletedCrop,
|
|
1296
|
+
circularCrop,
|
|
1297
|
+
defaultRatio,
|
|
1298
|
+
resizeCropEnabled,
|
|
1299
|
+
rotate,
|
|
1300
|
+
scale,
|
|
1301
|
+
imageRef,
|
|
1302
|
+
onImageLoad
|
|
1303
|
+
}
|
|
1304
|
+
),
|
|
1305
|
+
right: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1306
|
+
CropperControlsSection,
|
|
1307
|
+
{
|
|
1308
|
+
PreviewRenderer,
|
|
1309
|
+
canvasRef,
|
|
1310
|
+
rotate,
|
|
1311
|
+
setRotate,
|
|
1312
|
+
scale,
|
|
1313
|
+
setScale
|
|
1314
|
+
}
|
|
1315
|
+
),
|
|
1316
|
+
leftFooter: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
|
|
1317
|
+
footerExtra,
|
|
1318
|
+
showFileSelector && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1319
|
+
CropperFileSelector,
|
|
1320
|
+
{
|
|
1321
|
+
accept: fileSelectorAccept,
|
|
1322
|
+
buttonLabel: fileSelectorButtonLabel,
|
|
1323
|
+
onPick: (f) => onFileSelect?.(f)
|
|
1324
|
+
}
|
|
1325
|
+
)
|
|
1326
|
+
] }),
|
|
1327
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1328
|
+
CropperActionSection,
|
|
1329
|
+
{
|
|
1330
|
+
onSave: handleSave,
|
|
1331
|
+
onResetTransforms: handleResetTransforms,
|
|
1332
|
+
onClear: () => {
|
|
1333
|
+
handleClear();
|
|
1334
|
+
onClear?.();
|
|
1335
|
+
},
|
|
1336
|
+
saveDisabled: !completedCrop || !activeBlobUrl
|
|
1337
|
+
}
|
|
1338
|
+
)
|
|
1339
|
+
}
|
|
1340
|
+
);
|
|
1341
|
+
};
|
|
1342
|
+
var Cropper_default = Cropper;
|
|
1343
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1344
|
+
0 && (module.exports = {
|
|
1345
|
+
Cropper,
|
|
1346
|
+
MuiImageList
|
|
1347
|
+
});
|
|
1348
|
+
//# sourceMappingURL=image.js.map
|