From eea85b834eee527f3a05fca9410e671c935603b2 Mon Sep 17 00:00:00 2001 From: blessedcoolant Date: Mon, 28 Mar 2022 17:52:05 +1300 Subject: [PATCH 1/4] Complete GUI Refactor This patch brings in a massive number of changes to the frontend of the application. Please feel free to discuss the proposed changes with me at any time. Implemented Recoil as a state management system. Why Recoil? It is a robust library built by developers at Facebook for state management. It has an extremely simple API for implementation that is in sync with React syntax compared to any other state management system out there and works amazingly well. While the official release status is beta as it becomes fully featured, the library is already used in various systems at Facebook and is very stable for the use cases of this application. Why global state management? One of the major issues I saw with the current file structure is that there is minimal code splitting and it makes further development of the frontend a cumbersome task. I have broken down the frontend into various easy to access components isolating the GUI from the logic. To avoid prop drilling, we need global state management to handle the necessary tasks. This will also facilitate the addition of any new features greatly. Code Splitting. Majority of the components that can be isolated in the application have now been done so. All New Custom CSS & Removal of Tailwind While Tailwind is a great way to deploy beautiful interfaces quickly, anyone trying to stylize the application further needs to be familiar with Tailwind which makes it harder for more people to work on it. Not to mention, I am not a particular fan of flooding JSX elements with inline CSS classes. That makes reading the code extremely hard and bloats up component code drastically. As a replacement to Tailwind, I implemented a custom styling system using SCSS as a developer dependency. In the new system, all the general and shared styles are in the styles folder and all the component styles are in the same folder as the component for easy access.The _index.scss file now acts as a central import for every other stylesheet that needs to be loaded. What Changed? The entire application looks and feels like the current implementation with minimal changes. The green (#bdff01) highlight used in the application has now been changed to a bright yellow (rgb(255, 190, 0)) because I felt it better suited the new Dark Mode (see below). The swipe bar for comparing before and after images has now been removed and instead the comparison is a smooth fade effect. I felt this was better to analyze image changes rather than a swiper. // Can add the swipe back if needed. Dark Mode A brand new Dark Mode has been added for the application. Users can enable and disable by tapping the button in the header or by using the Shift + D hotkey. Other Misc New Features When the editor image is now zoomed out to its default size, the image now also gets centered back. TODO The currently used react-zoom-pinch-pan module is not mobile friendly. It does not allow brush strokes. Need to figure out a way to fix this. Further optimization of the frontend code with better code splitting and performance. When using the LaMa model, the first stroke has a delayed response from the backend but the ones that follow are almost immediate. I believe this is happening because of the initialization of the model on the first stroke. I wonder if either of us can look at it and see if this can somehow be preloaded so the user experience is smooth from the first stroke. Enable threading for the desktop application mode so flaskwebgui does not block the main applications Python console. --- lama_cleaner/app/build/asset-manifest.json | 15 +- lama_cleaner/app/build/index.html | 2 +- .../build/static/css/main.1144a0ea.chunk.css | 2 - .../build/static/css/main.54fbc69f.chunk.css | 1 + .../app/build/static/js/2.2516aa7d.chunk.js | 2 + ...SE.txt => 2.2516aa7d.chunk.js.LICENSE.txt} | 0 .../app/build/static/js/2.d3149f41.chunk.js | 2 - .../build/static/js/main.98890b3e.chunk.js | 1 - .../build/static/js/main.d346743e.chunk.js | 1 + .../static/media/WorkSans-Black.67c2c5a1.ttf | Bin 0 -> 192104 bytes .../static/media/WorkSans-Bold.2bea7a7f.ttf | Bin 0 -> 192548 bytes .../media/WorkSans-Regular.bb287b89.ttf | Bin 0 -> 192140 bytes .../media/WorkSans-SemiBold.1e98db4e.ttf | Bin 0 -> 192596 bytes lama_cleaner/app/package.json | 21 +- lama_cleaner/app/postcss.config.js | 6 - lama_cleaner/app/public/index.html | 4 +- lama_cleaner/app/src/App.tsx | 120 ++-------- .../app/src/components/Editor/Editor.scss | 133 +++++++++++ .../src/{ => components/Editor}/Editor.tsx | 223 +++++++----------- .../src/components/Editor/SizeSelector.tsx | 77 ++++++ .../src/components/{ => Editor}/Slider.tsx | 7 +- .../src/components/FileSelect/FileSelect.scss | 35 +++ .../{ => FileSelect}/FileSelect.tsx | 23 +- .../app/src/components/Header/Header.scss | 16 ++ .../app/src/components/Header/Header.tsx | 31 +++ .../components/LandingPage/LandingPage.scss | 30 +++ .../components/LandingPage/LandingPage.tsx | 26 ++ lama_cleaner/app/src/components/Modal.tsx | 50 ---- .../src/components/Shortcuts/Shortcuts.scss | 32 +++ .../src/components/Shortcuts/Shortcuts.tsx | 54 +++++ .../components/Shortcuts/ShortcutsModal.tsx | 66 ++++++ .../app/src/components/ShortcutsModal.tsx | 55 ----- .../app/src/components/SizeSelector.tsx | 120 ---------- lama_cleaner/app/src/components/Workspace.tsx | 23 ++ .../app/src/components/shared/Button.scss | 28 +++ .../src/components/{ => shared}/Button.tsx | 26 +- .../app/src/components/{ => shared}/Link.tsx | 6 +- .../{ => shared}/MadeWidthBadge.tsx | 0 .../app/src/components/shared/Modal.scss | 19 ++ .../app/src/components/shared/Modal.tsx | 34 +++ .../src/components/shared/ThemeChanger.scss | 29 +++ .../src/components/shared/ThemeChanger.tsx | 25 ++ lama_cleaner/app/src/hooks/useResolution.tsx | 31 +++ lama_cleaner/app/src/index.tsx | 12 +- .../media/fonts/Work_Sans/WorkSans-Black.ttf | Bin 0 -> 192104 bytes .../fonts/Work_Sans/WorkSans-BlackItalic.ttf | Bin 0 -> 176152 bytes .../media/fonts/Work_Sans/WorkSans-Bold.ttf | Bin 0 -> 192548 bytes .../fonts/Work_Sans/WorkSans-BoldItalic.ttf | Bin 0 -> 176364 bytes .../fonts/Work_Sans/WorkSans-ExtraBold.ttf | Bin 0 -> 192576 bytes .../Work_Sans/WorkSans-ExtraBoldItalic.ttf | Bin 0 -> 176372 bytes .../fonts/Work_Sans/WorkSans-ExtraLight.ttf | Bin 0 -> 192388 bytes .../Work_Sans/WorkSans-ExtraLightItalic.ttf | Bin 0 -> 176204 bytes .../media/fonts/Work_Sans/WorkSans-Italic.ttf | Bin 0 -> 175724 bytes .../media/fonts/Work_Sans/WorkSans-Light.ttf | Bin 0 -> 192360 bytes .../fonts/Work_Sans/WorkSans-LightItalic.ttf | Bin 0 -> 176076 bytes .../media/fonts/Work_Sans/WorkSans-Medium.ttf | Bin 0 -> 192620 bytes .../fonts/Work_Sans/WorkSans-MediumItalic.ttf | Bin 0 -> 176352 bytes .../fonts/Work_Sans/WorkSans-Regular.ttf | Bin 0 -> 192140 bytes .../fonts/Work_Sans/WorkSans-SemiBold.ttf | Bin 0 -> 192596 bytes .../Work_Sans/WorkSans-SemiBoldItalic.ttf | Bin 0 -> 176444 bytes .../media/fonts/Work_Sans/WorkSans-Thin.ttf | Bin 0 -> 191840 bytes .../fonts/Work_Sans/WorkSans-ThinItalic.ttf | Bin 0 -> 175852 bytes lama_cleaner/app/src/store/Atoms.tsx | 11 + lama_cleaner/app/src/styles/App.scss | 11 + .../app/src/styles/Mixins/_MediaQueries.scss | 40 ++++ .../app/src/styles/Mixins/_Mixins.scss | 0 .../app/src/styles/Mixins/_index.scss | 2 + lama_cleaner/app/src/styles/_Animations.scss | 21 ++ lama_cleaner/app/src/styles/_Colors.scss | 23 ++ lama_cleaner/app/src/styles/_ColorsDark.scss | 23 ++ lama_cleaner/app/src/styles/_Fonts.scss | 19 ++ lama_cleaner/app/src/styles/_index.scss | 32 +++ lama_cleaner/app/src/styles/tailwind.css | 46 ---- lama_cleaner/app/tailwind.config.js | 37 --- 74 files changed, 1021 insertions(+), 632 deletions(-) delete mode 100644 lama_cleaner/app/build/static/css/main.1144a0ea.chunk.css create mode 100644 lama_cleaner/app/build/static/css/main.54fbc69f.chunk.css create mode 100644 lama_cleaner/app/build/static/js/2.2516aa7d.chunk.js rename lama_cleaner/app/build/static/js/{2.d3149f41.chunk.js.LICENSE.txt => 2.2516aa7d.chunk.js.LICENSE.txt} (100%) delete mode 100644 lama_cleaner/app/build/static/js/2.d3149f41.chunk.js delete mode 100644 lama_cleaner/app/build/static/js/main.98890b3e.chunk.js create mode 100644 lama_cleaner/app/build/static/js/main.d346743e.chunk.js create mode 100644 lama_cleaner/app/build/static/media/WorkSans-Black.67c2c5a1.ttf create mode 100644 lama_cleaner/app/build/static/media/WorkSans-Bold.2bea7a7f.ttf create mode 100644 lama_cleaner/app/build/static/media/WorkSans-Regular.bb287b89.ttf create mode 100644 lama_cleaner/app/build/static/media/WorkSans-SemiBold.1e98db4e.ttf delete mode 100644 lama_cleaner/app/postcss.config.js create mode 100644 lama_cleaner/app/src/components/Editor/Editor.scss rename lama_cleaner/app/src/{ => components/Editor}/Editor.tsx (72%) create mode 100644 lama_cleaner/app/src/components/Editor/SizeSelector.tsx rename lama_cleaner/app/src/components/{ => Editor}/Slider.tsx (75%) create mode 100644 lama_cleaner/app/src/components/FileSelect/FileSelect.scss rename lama_cleaner/app/src/components/{ => FileSelect}/FileSelect.tsx (84%) create mode 100644 lama_cleaner/app/src/components/Header/Header.scss create mode 100644 lama_cleaner/app/src/components/Header/Header.tsx create mode 100644 lama_cleaner/app/src/components/LandingPage/LandingPage.scss create mode 100644 lama_cleaner/app/src/components/LandingPage/LandingPage.tsx delete mode 100644 lama_cleaner/app/src/components/Modal.tsx create mode 100644 lama_cleaner/app/src/components/Shortcuts/Shortcuts.scss create mode 100644 lama_cleaner/app/src/components/Shortcuts/Shortcuts.tsx create mode 100644 lama_cleaner/app/src/components/Shortcuts/ShortcutsModal.tsx delete mode 100644 lama_cleaner/app/src/components/ShortcutsModal.tsx delete mode 100644 lama_cleaner/app/src/components/SizeSelector.tsx create mode 100644 lama_cleaner/app/src/components/Workspace.tsx create mode 100644 lama_cleaner/app/src/components/shared/Button.scss rename lama_cleaner/app/src/components/{ => shared}/Button.tsx (58%) rename lama_cleaner/app/src/components/{ => shared}/Link.tsx (64%) rename lama_cleaner/app/src/components/{ => shared}/MadeWidthBadge.tsx (100%) create mode 100644 lama_cleaner/app/src/components/shared/Modal.scss create mode 100644 lama_cleaner/app/src/components/shared/Modal.tsx create mode 100644 lama_cleaner/app/src/components/shared/ThemeChanger.scss create mode 100644 lama_cleaner/app/src/components/shared/ThemeChanger.tsx create mode 100644 lama_cleaner/app/src/hooks/useResolution.tsx create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-Black.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-BlackItalic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-Bold.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-BoldItalic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-ExtraBold.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-ExtraBoldItalic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-ExtraLight.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-ExtraLightItalic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-Italic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-Light.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-LightItalic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-Medium.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-MediumItalic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-Regular.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-SemiBold.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-SemiBoldItalic.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-Thin.ttf create mode 100644 lama_cleaner/app/src/media/fonts/Work_Sans/WorkSans-ThinItalic.ttf create mode 100644 lama_cleaner/app/src/store/Atoms.tsx create mode 100644 lama_cleaner/app/src/styles/App.scss create mode 100644 lama_cleaner/app/src/styles/Mixins/_MediaQueries.scss create mode 100644 lama_cleaner/app/src/styles/Mixins/_Mixins.scss create mode 100644 lama_cleaner/app/src/styles/Mixins/_index.scss create mode 100644 lama_cleaner/app/src/styles/_Animations.scss create mode 100644 lama_cleaner/app/src/styles/_Colors.scss create mode 100644 lama_cleaner/app/src/styles/_ColorsDark.scss create mode 100644 lama_cleaner/app/src/styles/_Fonts.scss create mode 100644 lama_cleaner/app/src/styles/_index.scss delete mode 100644 lama_cleaner/app/src/styles/tailwind.css delete mode 100644 lama_cleaner/app/tailwind.config.js diff --git a/lama_cleaner/app/build/asset-manifest.json b/lama_cleaner/app/build/asset-manifest.json index c93b54d..9846eb2 100644 --- a/lama_cleaner/app/build/asset-manifest.json +++ b/lama_cleaner/app/build/asset-manifest.json @@ -1,16 +1,17 @@ { "files": { - "main.css": "/static/css/main.1144a0ea.chunk.css", - "main.js": "/static/js/main.98890b3e.chunk.js", + "main.css": "/static/css/main.54fbc69f.chunk.css", + "main.js": "/static/js/main.d346743e.chunk.js", "runtime-main.js": "/static/js/runtime-main.5e86ac81.js", - "static/js/2.d3149f41.chunk.js": "/static/js/2.d3149f41.chunk.js", + "static/js/2.2516aa7d.chunk.js": "/static/js/2.2516aa7d.chunk.js", "index.html": "/index.html", - "static/js/2.d3149f41.chunk.js.LICENSE.txt": "/static/js/2.d3149f41.chunk.js.LICENSE.txt" + "static/js/2.2516aa7d.chunk.js.LICENSE.txt": "/static/js/2.2516aa7d.chunk.js.LICENSE.txt", + "static/media/_index.scss": "/static/media/WorkSans-SemiBold.1e98db4e.ttf" }, "entrypoints": [ "static/js/runtime-main.5e86ac81.js", - "static/js/2.d3149f41.chunk.js", - "static/css/main.1144a0ea.chunk.css", - "static/js/main.98890b3e.chunk.js" + "static/js/2.2516aa7d.chunk.js", + "static/css/main.54fbc69f.chunk.css", + "static/js/main.d346743e.chunk.js" ] } \ No newline at end of file diff --git a/lama_cleaner/app/build/index.html b/lama_cleaner/app/build/index.html index 50ad5f1..e86afea 100644 --- a/lama_cleaner/app/build/index.html +++ b/lama_cleaner/app/build/index.html @@ -1 +1 @@ -lama-cleaner - Image inpainting powered by LaMa
\ No newline at end of file +lama-cleaner - Image inpainting powered by LaMa
\ No newline at end of file diff --git a/lama_cleaner/app/build/static/css/main.1144a0ea.chunk.css b/lama_cleaner/app/build/static/css/main.1144a0ea.chunk.css deleted file mode 100644 index c0d515d..0000000 --- a/lama_cleaner/app/build/static/css/main.1144a0ea.chunk.css +++ /dev/null @@ -1,2 +0,0 @@ -@import url(https://fonts.googleapis.com/css2?family=Work+Sans:wght@600;900&display=swap); -/*! tailwindcss v2.2.17 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */html{-moz-tab-size:4;tab-size:4;line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,"Segoe UI",Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji"}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,:after,:before{box-sizing:border-box;border:0 solid}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:-moz-focusring{outline:auto}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-border-opacity:1;border-color:rgba(229,231,235,var(--tw-border-opacity));--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-blur:var(--tw-empty,/*!*/ /*!*/);--tw-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-invert:var(--tw-empty,/*!*/ /*!*/);--tw-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-drop-shadow:var(--tw-empty,/*!*/ /*!*/);--tw-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);--tw-backdrop-blur:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-brightness:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-contrast:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-grayscale:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-hue-rotate:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-invert:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-opacity:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-saturate:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-sepia:var(--tw-empty,/*!*/ /*!*/);--tw-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-y-0{top:0;bottom:0}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.right-4{right:1rem}.top-4{top:1rem}.left-0{left:0}.z-10{z-index:10}.z-20{z-index:20}.m-0{margin:0}.mr-2{margin-right:.5rem}.mr-12{margin-right:3rem}.mb-1{margin-bottom:.25rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.hidden{display:none}.h-screen{height:100vh}.h-full{height:100%}.h-6{height:1.5rem}.h-20{height:5rem}.h-10{height:2.5rem}.h-5{height:1.25rem}.h-4{height:1rem}.max-h-60{max-height:15rem}.w-full{width:100%}.w-6{width:1.5rem}.w-10{width:2.5rem}.w-32{width:8rem}.w-5{width:1.25rem}.w-24{width:6rem}.max-w-xl{max-width:36rem}.max-w-4xl{max-width:56rem}.flex-1{flex:1 1}.transform{-webkit-transform:var(--tw-transform);transform:var(--tw-transform)}@-webkit-keyframes pulse{50%{opacity:.7}0%,to{opacity:.8}}@keyframes pulse{50%{opacity:.7}0%,to{opacity:.8}}.animate-pulse-fast{-webkit-animation:pulse .7s cubic-bezier(.4,0,.6,1) infinite;animation:pulse .7s cubic-bezier(.4,0,.6,1) infinite}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.select-none{-webkit-user-select:none;-ms-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;appearance:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.75rem*var(--tw-space-x-reverse));margin-left:calc(0.75rem*(1 - var(--tw-space-x-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.overflow-auto{overflow:auto}.overflow-hidden,.truncate{overflow:hidden}.truncate{text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded-sm{border-radius:.125rem}.rounded-full{border-radius:9999px}.rounded-xl{border-radius:.75rem}.rounded-md{border-radius:.375rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-2{border-width:2px}.border-l-4{border-left-width:4px}.border-dashed{border-style:dashed}.border-primary{--tw-border-opacity:1;border-color:rgba(189,255,1,var(--tw-border-opacity))}.border-black{--tw-border-opacity:1;border-color:rgba(0,0,0,var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209,213,219,var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:rgba(189,255,1,var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgba(209,213,219,var(--tw-bg-opacity))}.bg-opacity-30{--tw-bg-opacity:0.3}.bg-opacity-80{--tw-bg-opacity:0.8}.bg-opacity-10{--tw-bg-opacity:0.1}.bg-opacity-40{--tw-bg-opacity:0.4}.p-1{padding:.25rem}.p-5{padding:1.25rem}.p-0{padding:0}.p-8{padding:2rem}.px-4{padding-left:1rem;padding-right:1rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0{padding-top:0;padding-bottom:0}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pt-0{padding-top:0}.pb-10{padding-bottom:2.5rem}.pt-5{padding-top:1.25rem}.pb-6{padding-bottom:1.5rem}.pl-4{padding-left:1rem}.pr-4{padding-right:1rem}.pl-3{padding-left:.75rem}.pr-2{padding-right:.5rem}.text-center{text-align:center}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-black{font-weight:900}.font-normal{font-weight:400}.text-white{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17,24,39,var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgba(156,163,175,var(--tw-text-opacity))}.text-black{--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}.underline{text-decoration:underline}.opacity-50{opacity:.5}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);box-shadow:0 0 transparent,0 0 transparent,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.blur{--tw-blur:blur(8px);-webkit-filter:var(--tw-filter);filter:var(--tw-filter)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-filter);backdrop-filter:var(--tw-backdrop-filter)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-filter);backdrop-filter:var(--tw-backdrop-filter)}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}body,html{width:100%;height:100%;font-family:"Work Sans";font-weight:600;overflow:hidden}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:17px;height:17px;background:#000;border-radius:50%}:not(input):not(textarea){-ms-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}@supports (-webkit-touch-callout:none){.full-visible-h-safari{height:calc(100% - 80px)}}.focus-within\:outline-none[focus-within]{outline:2px solid transparent;outline-offset:2px}.focus-within\:outline-none:focus-within{outline:2px solid transparent;outline-offset:2px}.hover\:border-black:hover{--tw-border-opacity:1;border-color:rgba(0,0,0,var(--tw-border-opacity))}.hover\:bg-black:hover{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:rgba(189,255,1,var(--tw-bg-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:640px){.sm\:block{display:block}.sm\:hidden{display:none}.sm\:h-52{height:13rem}.sm\:h-auto{height:auto}.sm\:flex-row{flex-direction:row}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-center{justify-content:center}.sm\:justify-between{justify-content:space-between}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0px*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px*var(--tw-space-y-reverse))}.sm\:space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1.5rem*var(--tw-space-x-reverse));margin-left:calc(1.5rem*(1 - var(--tw-space-x-reverse)))}.sm\:p-12{padding:3rem}.sm\:p-0{padding:0}.sm\:p-14{padding:3.5rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:inline{display:inline}.md\:w-auto{width:auto}} \ No newline at end of file diff --git a/lama_cleaner/app/build/static/css/main.54fbc69f.chunk.css b/lama_cleaner/app/build/static/css/main.54fbc69f.chunk.css new file mode 100644 index 0000000..facb152 --- /dev/null +++ b/lama_cleaner/app/build/static/css/main.54fbc69f.chunk.css @@ -0,0 +1 @@ +@font-face{font-family:"WorkSans";src:url(/static/media/WorkSans-Regular.bb287b89.ttf)}@font-face{font-family:"WorkSans-Semibold";src:url(/static/media/WorkSans-SemiBold.1e98db4e.ttf)}@font-face{font-family:"WorkSans-Bold";src:url(/static/media/WorkSans-Bold.2bea7a7f.ttf)}@font-face{font-family:"WorkSans-Black";src:url(/static/media/WorkSans-Black.67c2c5a1.ttf)}:root{--page-bg:#f0f0fa;--page-text-color:#000;--link-color:#000;--editor-toolkit-bg:rgba(240,240,250,0.15);--modal-bg:var(--page-bg);--modal-text-color:#000;--modal-hotkey-bg:#f0f0f0;--btn-primary-bg:#d2d2dc;--btn-primary-hover-bg:var(--yellow-accent);--animation-pulsing-bg:hsla(0,0%,100%,0.5)}:root,[data-theme=dark]{--yellow-accent:#ffbe00;--border-color:#646478}[data-theme=dark]{--page-bg:#14141e;--page-text-color:#c8c8d2;--link-color:#ffbe00;--editor-toolkit-bg:rgba(20,20,30,0.15);--modal-bg:var(--page-bg);--modal-text-color:var(--page-text-color);--modal-hotkey-bg:#3c3c5a;--btn-primary-bg:#8c8cb4;--btn-primary-hover-bg:var(--yellow-accent);--animation-pulsing-bg:#f0f0ff}@-webkit-keyframes pulsing{0%{opacity:1}50%{opacity:.75;background-color:hsla(0,0%,100%,.5);background-color:var(--animation-pulsing-bg)}to{opacity:1}}@keyframes pulsing{0%{opacity:1}50%{opacity:.75;background-color:hsla(0,0%,100%,.5);background-color:var(--animation-pulsing-bg)}to{opacity:1}}@-webkit-keyframes opacityReveal{0%{opacity:0}to{opacity:1}}@keyframes opacityReveal{0%{opacity:0}to{opacity:1}}.lama-cleaner{grid-template-areas:"main-content";background-color:#f0f0fa;background-color:var(--page-bg);color:#000;color:var(--page-text-color);transition-property:background-color,color;transition-duration:.2s;transition-timing-function:repeat(2,ease-out)}.editor-container,.lama-cleaner{display:grid;width:100vw;height:100vh}.editor-container{grid-area:main-content;place-items:center}.react-transform-wrapper{display:grid!important;width:100%!important;height:100%!important}.editor-canvas-container{display:grid;grid-template-areas:"editor-content";grid-row-gap:1rem;row-gap:1rem}.editor-canvas{grid-area:editor-content}.original-image-container{grid-area:editor-content;pointer-events:none;-webkit-animation:opacityReveal .35s ease-in-out;animation:opacityReveal .35s ease-in-out}.editor-canvas-loading{pointer-events:none;-webkit-animation:pulsing .75s infinite;animation:pulsing .75s infinite}.editor-toolkit-panel{position:fixed;bottom:0;padding:1rem 4rem;display:grid;grid-template-areas:"toolkit-image-type toolkit-size-selector toolkit-brush-slider toolkit-btns";grid-column-gap:2rem;-webkit-column-gap:2rem;column-gap:2rem;align-items:center;background-color:rgba(240,240,250,.15);background-color:var(--editor-toolkit-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:.5rem .5rem 0 0}@media screen and (max-width:767px){.editor-toolkit-panel{padding:1rem 2rem;grid-template-areas:"toolkit-image-type toolkit-size-selector" "toolkit-brush-slider toolkit-brush-slider" "toolkit-btns toolkit-btns";grid-row-gap:2rem;row-gap:2rem;justify-items:center}}.editor-brush-slider{grid-area:toolkit-brush-slider;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:grid;grid-template-columns:repeat(2,-webkit-max-content);grid-template-columns:repeat(2,max-content);height:-webkit-max-content;height:max-content;grid-column-gap:1rem;-webkit-column-gap:1rem;column-gap:1rem;align-items:center}.editor-brush-slider input[type=range]{outline:none}.editor-toolkit-btns{grid-area:toolkit-btns;display:grid;grid-auto-flow:column;grid-column-gap:1rem;-webkit-column-gap:1rem;column-gap:1rem}.brush-shape{position:absolute;border-radius:50%;background:hsla(0,0%,100%,.25);border:1px dashed #646478;border:1px dashed var(--border-color);pointer-events:none}.editor-size-selector-options{position:fixed;display:grid}.editor-size-selector{grid-area:toolkit-size-selector;display:grid;grid-template-columns:repeat(2,-webkit-max-content);grid-template-columns:repeat(2,max-content);align-items:center;grid-column-gap:.5rem;-webkit-column-gap:.5rem;column-gap:.5rem}.editor-size-selector select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#ffbe00;background:var(--yellow-accent);outline:none;border:1px dashed #646478;border:1px dashed var(--border-color);border-radius:.5rem;font-size:1rem}.editor-size-selector select,.image-type-tag{font-family:"WorkSans-Bold";padding:.5rem;text-align:center;color:#000}.image-type-tag{grid-area:toolkit-image-type;z-index:2;background-color:#ffbe00;background-color:var(--yellow-accent);border-radius:.5rem;width:100px}.landing-page{display:grid;place-self:center;justify-items:center;grid-row-gap:2rem;row-gap:2rem;grid-auto-rows:-webkit-max-content;grid-auto-rows:max-content}@media screen and (max-width:767px){.landing-page{padding:1rem}}.landing-page h1{text-align:center;font-size:1.4rem}@media screen and (max-width:767px){.landing-page h1{font-size:1.2rem}}.landing-page a{color:#000;color:var(--link-color)}.landing-file-selector,header{display:grid}header{grid-area:main-content;padding:1rem 2rem;position:absolute;top:0;grid-template-columns:repeat(2,-webkit-max-content);grid-template-columns:repeat(2,max-content);width:100%;grid-template-columns:repeat(2,auto)}.shortcuts{justify-self:end;margin-right:4rem;z-index:1}.modal-shortcuts{grid-area:main-content;background-color:#f0f0fa;background-color:var(--modal-bg);color:#000;color:var(--modal-text-color);box-shadow:0 0 20px rgba(0,0,40,.2)}.shortcut-options{display:grid;grid-row-gap:1rem;row-gap:1rem}.shortcut-options .shortcut-option{display:grid;grid-template-columns:repeat(2,auto);grid-column-gap:6rem;-webkit-column-gap:6rem;column-gap:6rem;align-items:center}.shortcut-options .shortcut-key{font-family:"WorkSans-Bold";background-color:#f0f0f0;background-color:var(--modal-hotkey-bg);padding:.4rem 1rem;width:-webkit-max-content;width:max-content;border-radius:.4rem}.shortcut-options .shortcut-description{justify-self:end;text-align:right;width:15rem}.theme-changer{border:none;border-radius:50%;width:30px;height:30px;background:transparent;box-shadow:inset 4px 10px 0 #505050;-webkit-transform:rotate(-75deg);transform:rotate(-75deg);transition:all .2s ease-in;margin:1rem;position:absolute;right:1rem;top:.25rem;z-index:10;outline:none}.theme-changer:hover{cursor:pointer}[data-theme=dark] .theme-changer{background:#ffbe00;box-shadow:none;-webkit-transform:rotate(-75deg);transform:rotate(-75deg);outline:none}.file-select-label{display:grid;cursor:pointer;border:2px dashed #646478;border:2px dashed var(--border-color);border-radius:.5rem;min-width:600px}@media screen and (max-width:767px){.file-select-label{min-width:300px}}.file-select-label .file-select-label-hover,.file-select-label:hover{color:#000;background-color:#ffbe00;background-color:var(--yellow-accent)}.file-select-container{display:grid;padding:4rem;width:100%;height:100%}.file-select-container input{display:none}.file-select-message{font-family:"WorkSans-Bold";text-align:center}.btn-primary{display:grid;grid-auto-flow:column;grid-column-gap:1rem;-webkit-column-gap:1rem;column-gap:1rem;background-color:#d2d2dc;background-color:var(--btn-primary-bg);color:#000;font-family:"WorkSans-Bold",sans-serif;width:-webkit-max-content;width:max-content;padding:.5rem;place-items:center;border-radius:.5rem;z-index:1;cursor:pointer}.btn-primary:hover{background-color:#ffbe00;background-color:var(--btn-primary-hover-bg)}.btn-primary svg{width:20px;height:auto}.btn-primary-disabled{pointer-events:none;opacity:.5}.modal{display:grid;grid-auto-rows:-webkit-max-content;grid-auto-rows:max-content;grid-row-gap:2rem;row-gap:2rem;place-self:center;padding:2rem;border-radius:.95rem;z-index:9999}.modal .modal-header{display:grid;grid-template-columns:repeat(2,auto);align-items:center}.modal .modal-header .btn-primary{justify-self:end}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{font-family:"WorkSans",sans-serif} \ No newline at end of file diff --git a/lama_cleaner/app/build/static/js/2.2516aa7d.chunk.js b/lama_cleaner/app/build/static/js/2.2516aa7d.chunk.js new file mode 100644 index 0000000..3cb0fd2 --- /dev/null +++ b/lama_cleaner/app/build/static/js/2.2516aa7d.chunk.js @@ -0,0 +1,2 @@ +/*! For license information please see 2.2516aa7d.chunk.js.LICENSE.txt */ +(this["webpackJsonplama-cleaner"]=this["webpackJsonplama-cleaner"]||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(19)},function(e,t,n){"use strict";e.exports=n(25)},function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var r=n(12);var o=n(8),a=n(14);function i(e,t){return Object(r.a)(e)||function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,a=void 0;try{for(var i,u=e[Symbol.iterator]();!(r=(i=u.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(l){o=!0,a=l}finally{try{r||null==u.return||u.return()}finally{if(o)throw a}}return n}}(e,t)||Object(o.a)(e,t)||Object(a.a)()}},function(e,t,n){e.exports=n(24)},function(e,t,n){"use strict";n.d(t,"a",(function(){return Mu})),n.d(t,"b",(function(){return zu})),n.d(t,"c",(function(){return Vu})),n.d(t,"d",(function(){return ju})),n.d(t,"e",(function(){return Du}));var r=n(12),o=n(13),a=n(8),i=n(14);function u(e){return Object(r.a)(e)||Object(o.a)(e)||Object(a.a)(e)||Object(i.a)()}var l=n(7);function c(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=n(6),f=n(2);function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function p(e,t){return p=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},p(e,t)}function v(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}function h(e,t,n){return h=v()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&p(o,n.prototype),o},h.apply(null,arguments)}function m(e){var t="function"===typeof Map?new Map:void 0;return m=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!==typeof e)throw new TypeError("Super expression must either be null or a function");if("undefined"!==typeof t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return h(e,arguments,d(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),p(r,e)},m(e)}var y=n(3),g=n.n(y);function b(e,t){var n;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=Object(a.a)(e))||t&&e&&"number"===typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,u=!0,l=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return u=e.done,e},e:function(e){l=!0,i=e},f:function(){try{u||null==n.return||n.return()}finally{if(l)throw i}}}}function w(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{};return n.error,null},Ee=_e,Te=function e(){N(this,e)},xe=new Te,Ce=function(e){E(n,e);var t=C(n);function n(e){return N(this,n),t.call(this,"Tried to set the value of Recoil selector ".concat(e," using an updater function, but it is an async selector in a pending or error state; this is not supported."))}return n}(m(Error)),Ne=new Map,Oe=new Map;var Re=function(e){E(n,e);var t=C(n);function n(){return N(this,n),t.apply(this,arguments)}return n}(m(Error));var Pe=new Map;function Le(e){return Pe.get(e)}var Ae={nodes:Ne,recoilValues:Oe,registerNode:function(e){if(Ne.has(e.key)){var t='Duplicate atom key "'.concat(e.key,'". This is a FATAL ERROR in\n production. But it is safe to ignore this warning if it occurred because of\n hot module replacement.');console.warn(t)}Ne.set(e.key,e);var n=null==e.set?new ye.RecoilValueReadOnly(e.key):new ye.RecoilState(e.key);return Oe.set(e.key,n),n},getNode:function(e){var t=Ne.get(e);if(null==t)throw new Re('Missing definition for RecoilValue: "'.concat(e,'""'));return t},getNodeMaybe:function(e){return Ne.get(e)},deleteNodeConfigIfPossible:function(e){var t;if(Se("recoil_memory_managament_2020")){var n,r=Ne.get(e);if(null!==r&&void 0!==r&&null!==(t=r.shouldDeleteConfigOnRelease)&&void 0!==t&&t.call(r))Ne.delete(e),null===(n=Le(e))||void 0===n||n(),Pe.delete(e)}},setConfigDeletionHandler:function(e,t){Se("recoil_memory_managament_2020")&&(void 0===t?Pe.delete(e):Pe.set(e,t))},getConfigDeletionHandler:Le,recoilValuesForKeys:function(e){return ke(e,(function(e){return B(Oe.get(e))}))},NodeMissingError:Re,DefaultValue:Te,DEFAULT_VALUE:xe,RecoilValueNotReady:Ce};var Me={enqueueExecution:function(e,t){t()}};var ze=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n={},r=Math.pow(2,5),o=r-1,a=r/2,i=r/4,u={},l=function(e){return function(){return e}},c=n.hash=function(e){var n="undefined"===typeof e?"undefined":t(e);if("number"===n)return e;"string"!==n&&(e+="");for(var r=0,o=0,a=e.length;o>>e&o},f=function(e){return 1<>1&1431655765))+(n>>2&858993459))+(n>>4)&252645135,127&(n+=n>>8)+(n>>16);var n},p=function(e,t,n,r){var o=r;if(!e){var a=r.length;o=new Array(a);for(var i=0;i1?g(e,this.hash,l):l[0]}var c=r();return c===u?this:(++i.value,S(e,n,this.hash,this,o,y(e,o,a,c)))},T=function(e,t,n,r,o,i,u){var l=this.mask,c=this.children,y=s(n,o),g=f(y),S=d(l,g),_=l&g,E=_?c[S]:h,T=E._modify(e,t,n+5,r,o,i,u);if(E===T)return this;var x,C=k(e,this),N=l,O=void 0;if(_&&m(T)){if(!(N&=~g))return h;if(c.length<=2&&((x=c[1^S])===h||1===x.type||2===x.type))return c[1^S];O=v(C,S,c)}else if(_||m(T))O=p(C,S,T,c);else{if(c.length>=a)return function(e,t,n,r,o){for(var a=[],i=r,u=0,l=0;i;++l)1&i&&(a[l]=o[u++]),i>>>=1;return a[t]=n,w(e,u+1,a)}(e,y,T,l,c);N|=g,O=function(e,t,n,r){var o=r.length;if(e){for(var a=o;a>=t;)r[a--]=r[a];return r[t]=n,r}for(var i=0,u=0,l=new Array(o+1);i1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:e.getState().currentTree,i=e.getState();a.version!==i.currentTree.version&&a.version!==(null===(n=i.nextTree)||void 0===n?void 0:n.version)&&a.version!==(null===(r=i.previousTree)||void 0===r?void 0:r.version)&&Ee("Tried to read from a discarded tree");var u=jt(e,a,o);return"loading"===u.state&&u.contents.catch((function(){})),u},setRecoilValue:tn,setRecoilValueLoadable:function(e,t,n){if(n instanceof Ft)return tn(e,t,n);Gt(e,{type:"setLoadable",recoilValue:t,loadable:n})},markRecoilValueModified:function(e,t){Gt(e,{type:"markModified",recoilValue:t})},setUnvalidatedRecoilValue:function(e,t,n){Gt(e,{type:"setUnvalidated",recoilValue:t,unvalidatedValue:n})},subscribeToRecoilValue:function(e,t,n){var r=t.key,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=Dt(),i=e.getState();i.nodeToComponentSubscriptions.has(r)||i.nodeToComponentSubscriptions.set(r,new Map),B(i.nodeToComponentSubscriptions.get(r)).set(a,[null!==o&&void 0!==o?o:"",n]);var u=Wt();if(u.early&&("LEGACY"===u.mode||"MUTABLE_SOURCE"===u.mode)){var l=e.getState().nextTree;l&&l.dirtyAtoms.has(r)&&n(l)}return{release:function(){var t=e.getState(),n=t.nodeToComponentSubscriptions.get(r);void 0!==n&&n.has(a)?(n.delete(a),0===n.size&&t.nodeToComponentSubscriptions.delete(r)):Ee("Subscription missing at release time for atom ".concat(r,". This is a bug in Recoil."))}}},isRecoilValue:Kt,applyAtomValueWrites:function(e,t){var n=e.clone();return t.forEach((function(e,t){"hasValue"===e.state&&e.contents instanceof Ft?n.delete(t):n.set(t,e)})),n},batchStart:function(){var e=new Map;return Zt.push(e),function(){var t,n=b(e);try{for(n.s();!(t=n.n()).done;){var r=Object(f.a)(t.value,2);$t(r[0],r[1])}}catch(o){n.e(o)}finally{n.f()}Zt.pop()!==e&&Ee("Incorrect order of batch popping")}},writeLoadableToTreeState:Qt,invalidateDownstreams:en,copyTreeState:Jt,refreshRecoilValue:function(e,t){var n,r=e.getState().currentTree,o=It(t.key);null===(n=o.clearCache)||void 0===n||n.call(o,e,r)},invalidateDownstreams_FOR_TESTING:en};var rn=function(e,t,n){for(var r=e.entries(),o=r.next();!o.done;){var a=o.value;if(t.call(n,a[1],a[0],e))return!0;o=r.next()}return!1},on=Ct,an=Ae.deleteNodeConfigIfPossible,un=Ae.getNode,ln=ot,cn=new Set;function sn(e,t){var n=e.getState(),r=n.currentTree;if(n.nextTree)Ee("releaseNodesNowOnCurrentTree should only be called at the end of a batch");else{var o,a=new Set,i=b(t);try{for(i.s();!(o=i.n()).done;){var u=o.value;if(u instanceof ln){var l,c=b(dn(n,u));try{for(c.s();!(l=c.n()).done;){var s=l.value;a.add(s)}}catch(v){c.e(v)}finally{c.f()}}else a.add(u)}}catch(v){i.e(v)}finally{i.f()}var f,d=function(e,t){var n=e.getState(),r=n.currentTree,o=e.getGraph(r.version),a=new Set,i=new Set;return u(t),a;function u(t){var l,c=new Set,s=function(e,t,n,r,o){var a=e.getGraph(t.version),i=[],u=new Set;for(;n.size>0;)l(B(n.values().next().value));return i;function l(e){if(r.has(e)||o.has(e))n.delete(e);else if(!u.has(e)){var t=a.nodeToNodeSubscriptions.get(e);if(t){var c,s=b(t);try{for(s.s();!(c=s.n()).done;){l(c.value)}}catch(v){s.e(v)}finally{s.f()}}u.add(e),n.delete(e),i.push(e)}}}(e,r,t,a,i),f=b(s);try{for(f.s();!(l=f.n()).done;){var d,p=l.value;if("recoilRoot"!==un(p).retainedBy)if((null!==(d=n.retention.referenceCounts.get(p))&&void 0!==d?d:0)>0)i.add(p);else if(pn(p).some((function(e){return n.retention.referenceCounts.get(e)})))i.add(p);else{var h=o.nodeToNodeSubscriptions.get(p);h&&rn(h,(function(e){return i.has(e)}))?i.add(p):(a.add(p),c.add(p))}else i.add(p)}}catch(v){f.e(v)}finally{f.f()}var m,y=new Set,g=b(c);try{for(g.s();!(m=g.n()).done;){var w,S=m.value,k=b(null!==(_=o.nodeDeps.get(S))&&void 0!==_?_:cn);try{for(k.s();!(w=k.n()).done;){var _,E=w.value;a.has(E)||y.add(E)}}catch(v){k.e(v)}finally{k.f()}}}catch(v){g.e(v)}finally{g.f()}y.size&&u(y)}}(e,a),p=b(d);try{for(p.s();!(f=p.n()).done;){fn(e,r,f.value)}}catch(v){p.e(v)}finally{p.f()}}}function fn(e,t,n){if(Se("recoil_memory_managament_2020")){on(e,n);var r=e.getState();r.knownAtoms.delete(n),r.knownSelectors.delete(n),r.nodeTransactionSubscriptions.delete(n),r.retention.referenceCounts.delete(n);var o,a=b(pn(n));try{for(a.s();!(o=a.n()).done;){var i,u=o.value;null===(i=r.retention.nodesRetainedByZone.get(u))||void 0===i||i.delete(n)}}catch(v){a.e(v)}finally{a.f()}t.atomValues.delete(n),t.dirtyAtoms.delete(n),t.nonvalidatedAtoms.delete(n);var l=r.graphsByVersion.get(t.version);if(l){var c=l.nodeDeps.get(n);if(void 0!==c){l.nodeDeps.delete(n);var s,f=b(c);try{for(f.s();!(s=f.n()).done;){var d,p=s.value;null===(d=l.nodeToNodeSubscriptions.get(p))||void 0===d||d.delete(n)}}catch(v){f.e(v)}finally{f.f()}}l.nodeToNodeSubscriptions.delete(n)}an(n)}}function dn(e,t){var n;return null!==(n=e.retention.nodesRetainedByZone.get(t))&&void 0!==n?n:cn}function pn(e){var t=un(e).retainedBy;return void 0===t||"components"===t||"recoilRoot"===t?[]:t instanceof ln?[t]:t}function vn(e,t){Se("recoil_memory_managament_2020")&&(e.getState().retention.referenceCounts.delete(t),function(e,t){var n=e.getState();n.nextTree?n.retention.retainablesToCheckForRelease.add(t):sn(e,new Set([t]))}(e,t))}var hn=12e4,mn=function(e,t,n){var r;if(Se("recoil_memory_managament_2020")){var o=e.getState().retention.referenceCounts,a=(null!==(r=o.get(t))&&void 0!==r?r:0)+n;0===a?vn(e,t):o.set(t,a)}},yn=function(e){if(Se("recoil_memory_managament_2020")){var t=e.getState();sn(e,t.retention.retainablesToCheckForRelease),t.retention.retainablesToCheckForRelease.clear()}},gn=function(e){return void 0===e?"recoilRoot":e},bn=M.a.unstable_batchedUpdates,wn=nn.batchStart,Sn={unstable_batchedUpdates:{unstable_batchedUpdates:bn}.unstable_batchedUpdates}.unstable_batchedUpdates,kn=function(e){Sn((function(){var t=function(){};try{t=wn(),e()}finally{t()}}))};function _n(e){var t,n,r,o,a,i;return g.a.wrap((function(u){for(;;)switch(u.prev=u.next){case 0:t=b(e),u.prev=1,t.s();case 3:if((n=t.n()).done){u.next=24;break}r=n.value,o=b(r),u.prev=6,o.s();case 8:if((a=o.n()).done){u.next=14;break}return i=a.value,u.next=12,i;case 12:u.next=8;break;case 14:u.next=19;break;case 16:u.prev=16,u.t0=u.catch(6),o.e(u.t0);case 19:return u.prev=19,o.f(),u.finish(19);case 22:u.next=3;break;case 24:u.next=29;break;case 26:u.prev=26,u.t1=u.catch(1),t.e(u.t1);case 29:return u.prev=29,t.f(),u.finish(29);case 32:case"end":return u.stop()}}),I,null,[[1,26,29,32],[6,16,19,22]])}var En=_n,Tn={isSSR:"undefined"===typeof window,isReactNative:"undefined"!==typeof navigator&&"ReactNative"===navigator.product};var xn=function(e,t){var n,r,o=this;return[function(){for(var a=arguments.length,i=new Array(a),u=0;u0}},{key:"checkRefCount_INTERNAL",value:function(){Se("recoil_memory_managament_2020")&&this._refCount}},{key:"getStore_INTERNAL",value:function(){return this.checkRefCount_INTERNAL(),this._store}},{key:"getID",value:function(){return this.checkRefCount_INTERNAL(),this._store.getState().currentTree.stateID}}]),e}();function Yn(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.getState(),o=n?Un():t.version;return{currentTree:n?{version:o,stateID:o,transactionMetadata:k({},t.transactionMetadata),dirtyAtoms:new Set(t.dirtyAtoms),atomValues:t.atomValues.clone(),nonvalidatedAtoms:t.nonvalidatedAtoms.clone()}:t,commitDepth:0,nextTree:null,previousTree:null,knownAtoms:new Set(r.knownAtoms),knownSelectors:new Set(r.knownSelectors),transactionSubscriptions:new Map,nodeTransactionSubscriptions:new Map,nodeToComponentSubscriptions:new Map,queuedComponentCallbacks_DEPRECATED:[],suspendedComponentResolvers:new Set,graphsByVersion:(new Map).set(o,e.getGraph(t.version)),retention:{referenceCounts:new Map,nodesRetainedByZone:new Map,retainablesToCheckForRelease:new Set},nodeCleanupFunctions:new Map(ke(r.nodeCleanupFunctions.entries(),(function(e){return[Object(f.a)(e,1)[0],function(){}]})))}}var Xn=Wn((function(e,t){var n=e.getState(),r="current"===t?n.currentTree:B(n.previousTree);return new Hn(Yn(e,r))}),(function(e,t){var n;return String(t)+String(e.storeID)+String(e.getState().currentTree.version)+String(null===(n=e.getState().previousTree)||void 0===n?void 0:n.version)})),Kn=Object(f.a)(Xn,2),qn=Kn[0],Qn=Kn[1];var $n=function(e){E(n,e);var t=C(n);function n(e,r){var o;return N(this,n),W(_(o=t.call(this,Yn(e.getStore_INTERNAL(),e.getStore_INTERNAL().getState().currentTree,!0))),"_batch",void 0),W(_(o),"set",(function(e,t){o.checkRefCount_INTERNAL();var n=o.getStore_INTERNAL();o._batch((function(){In(n,e.key,1),Vn(o.getStore_INTERNAL(),e,t)}))})),W(_(o),"reset",(function(e){o.checkRefCount_INTERNAL();var t=o.getStore_INTERNAL();o._batch((function(){In(t,e.key,1),Vn(o.getStore_INTERNAL(),e,Ln)}))})),W(_(o),"setUnvalidatedAtomValues_DEPRECATED",(function(e){o.checkRefCount_INTERNAL();var t=o.getStore_INTERNAL();Cn((function(){var n,r=b(e.entries());try{for(r.s();!(n=r.n()).done;){var o=Object(f.a)(n.value,2),a=o[0],i=o[1];In(t,a,1),Dn(t,new zn(a),i)}}catch(u){r.e(u)}finally{r.f()}}))})),o._batch=r,o}return n}(Hn),Gn={Snapshot:Hn,MutableSnapshot:$n,freshSnapshot:function(e){var t=new Hn(Fn());return null!=e?t.map(e):t},cloneSnapshot:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"current",n=qn(e,t);return n.isRetained()?n:(Qn(),qn(e,t))}},Zn=Gn.Snapshot,Jn=Gn.MutableSnapshot,er=Gn.freshSnapshot,tr=Gn.cloneSnapshot,nr=Object.freeze({__proto__:null,Snapshot:Zn,MutableSnapshot:Jn,freshSnapshot:er,cloneSnapshot:tr});var rr=function(){for(var e=new Set,t=arguments.length,n=new Array(t),r=0;r component.")}var Nr=Object.freeze({storeID:hr(),getState:Cr,replaceState:Cr,getGraph:Cr,subscribeToTransactions:Cr,addTransactionMetadata:Cr}),Or=!1;function Rr(e){if(Or)throw U("An atom update was triggered within the execution of a state updater function. State updater functions provided to Recoil must be pure functions.");var t=e.getState();if(null===t.nextTree){Se("recoil_memory_managament_2020")&&Se("recoil_release_on_cascading_update_killswitch_2021")&&t.commitDepth>0&&br(e);var n=t.currentTree.version,r=ir();t.nextTree=k(k({},t.currentTree),{},{version:r,stateID:r,dirtyAtoms:new Set,transactionMetadata:{}}),t.graphsByVersion.set(r,vr(B(t.graphsByVersion.get(n))))}}var Pr=L.a.createContext({current:Nr}),Lr=function(){return kr(Pr)},Ar=L.a.createContext(null);function Mr(e,t,n){var r,o=b(cr(e,n,n.dirtyAtoms));try{for(o.s();!(r=o.n()).done;){var a=r.value,i=t.nodeToComponentSubscriptions.get(a);if(i){var u,l=b(i);try{for(l.s();!(u=l.n()).done;){var c=Object(f.a)(u.value,2),s=(c[0],Object(f.a)(c[1],2));s[0];(0,s[1])(n)}}catch(d){l.e(d)}finally{l.f()}}}}catch(d){o.e(d)}finally{o.f()}}function zr(e){var t=e.getState(),n=t.currentTree,r=n.dirtyAtoms;if(r.size){var o,a=b(t.nodeTransactionSubscriptions);try{for(a.s();!(o=a.n()).done;){var i=Object(f.a)(o.value,2),u=i[0],l=i[1];if(r.has(u)){var c,s=b(l);try{for(s.s();!(c=s.n()).done;){var d=Object(f.a)(c.value,2);d[0];(0,d[1])(e)}}catch(m){s.e(m)}finally{s.f()}}}}catch(m){a.e(m)}finally{a.f()}var p,v=b(t.transactionSubscriptions);try{for(v.s();!(p=v.n()).done;){var h=Object(f.a)(p.value,2);h[0];(0,h[1])(e)}}catch(m){v.e(m)}finally{v.f()}(!yr().early||t.suspendedComponentResolvers.size>0)&&(Mr(e,t,n),t.suspendedComponentResolvers.forEach((function(e){return e()})),t.suspendedComponentResolvers.clear())}t.queuedComponentCallbacks_DEPRECATED.forEach((function(e){return e(n)})),t.queuedComponentCallbacks_DEPRECATED.splice(0,t.queuedComponentCallbacks_DEPRECATED.length)}function jr(e){var t=e.setNotifyBatcherOfChange,n=Lr(),r=xr([]),o=Object(f.a)(r,2)[1];return t((function(){return o({})})),_r((function(){return t((function(){return o({})})),function(){t((function(){}))}}),[t]),_r((function(){Me.enqueueExecution("Batcher",(function(){!function(e){var t=e.getState();t.commitDepth++;try{var n=t.nextTree;if(null===n)return;t.previousTree=t.currentTree,t.currentTree=n,t.nextTree=null,zr(e),null!=t.previousTree?t.graphsByVersion.delete(t.previousTree.version):Ee("Ended batch with no previous state, which is unexpected","recoil"),t.previousTree=null,Se("recoil_memory_managament_2020")&&br(e)}finally{t.commitDepth--}}(n.current)}))})),null}var Vr=0;function Dr(e){var t,n=e.initializeState_DEPRECATED,r=e.initializeState,o=e.store_INTERNAL,a=e.children,i=function(e){var n=t.current.graphsByVersion;if(n.has(e))return B(n.get(e));var r=pr();return n.set(e,r),r},u=function(e,t){if(null==t){var n=d.current.getState().transactionSubscriptions,r=Vr++;return n.set(r,e),{release:function(){n.delete(r)}}}var o=d.current.getState().nodeTransactionSubscriptions;o.has(t)||o.set(t,new Map);var a=Vr++;return B(o.get(t)).set(a,e),{release:function(){var e=o.get(t);e&&(e.delete(a),0===e.size&&o.delete(t))}}},l=function(e){Rr(d.current);for(var t=0,n=Object.keys(e);t. must be an ancestor of any component that uses Recoil hooks."),e},Br=function(){return Lr().current.storeID};var Wr=function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(var n=0,r=e.length;n"},ro=Ae.DEFAULT_VALUE,oo=Mt.reactMode,ao=Mt.useMutableSource,io=Mt.useSyncExternalStore,uo=Fr,lo=Ur,co=(ye.isRecoilValue,nn.getRecoilValueAsLoadable),so=nn.setRecoilValue,fo=nn.subscribeToRecoilValue,po=L.a.useCallback,vo=L.a.useEffect,ho=L.a.useMemo,mo=L.a.useRef,yo=L.a.useState;function go(e,t,n){if("hasValue"===e.state)return e.contents;if("loading"===e.state)throw new Promise((function(e){n.current.getState().suspendedComponentResolvers.add(e)}));throw"hasError"===e.state?e.contents:U('Invalid value of loadable atom "'.concat(t.key,'"'))}function bo(e){var t=lo(),n=no(),r=po((function(){var n;var r=t.current,o=r.getState(),a=oo().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return{loadable:co(r,e,a),key:e.key}}),[t,e]),o=po((function(e){var t;return function(){var n,r,o=e();return null!==(n=t)&&void 0!==n&&n.loadable.is(o.loadable)&&(null===(r=t)||void 0===r?void 0:r.key)===o.key?t:(t=o,o)}}),[]),a=ho((function(){return o(r)}),[r,o]),i=po((function(r){var o=t.current;return fo(o,e,r,n).release}),[t,e,n]);return io(i,a,a).loadable}function wo(e){var t=lo(),n=po((function(){var n,r=t.current,o=r.getState(),a=oo().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return co(r,e,a)}),[t,e]),r=po((function(){return n()}),[n]),o=no(),a=po((function(r,a){var i=t.current;return fo(i,e,(function(){if(!Se("recoil_suppress_rerender_in_callback"))return a();var e=n();l.current.is(e)||a(),l.current=e}),o).release}),[t,e,o,n]),i=uo();if(null==i)throw U("Recoil hooks must be used in components contained within a component.");var u=ao(i,r,a),l=mo(u);return vo((function(){l.current=u})),u}function So(e){var t=lo(),n=no(),r=po((function(){var n;var r=t.current,o=r.getState(),a=oo().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return co(r,e,a)}),[t,e]),o=po((function(){return{loadable:r(),key:e.key}}),[r,e.key]),a=po((function(e){var t=o();return e.loadable.is(t.loadable)&&e.key===t.key?e:t}),[o]);vo((function(){var r=fo(t.current,e,(function(e){c(a)}),n);return c(a),r.release}),[n,e,t,a]);var i=yo(o),u=Object(f.a)(i,2),l=u[0],c=u[1];return l.key!==e.key?o().loadable:l.loadable}function ko(e){var t=lo(),n=yo([]),r=Object(f.a)(n,2)[1],o=no(),a=po((function(){var n;var r=t.current,o=r.getState(),a=oo().early&&null!==(n=o.nextTree)&&void 0!==n?n:o.currentTree;return co(r,e,a)}),[t,e]),i=a(),u=mo(i);return vo((function(){u.current=i})),vo((function(){var n=t.current,i=n.getState(),l=fo(n,e,(function(e){var t;if(!Se("recoil_suppress_rerender_in_callback"))return r([]);var n=a();null!==(t=u.current)&&void 0!==t&&t.is(n)||r(n),u.current=n}),o);if(i.nextTree)n.getState().queuedComponentCallbacks_DEPRECATED.push((function(){u.current=null,r([])}));else{var c;if(!Se("recoil_suppress_rerender_in_callback"))return r([]);var s=a();null!==(c=u.current)&&void 0!==c&&c.is(s)||r(s),u.current=s}return l.release}),[o,a,e,t]),i}function _o(e){return Se("recoil_memory_managament_2020")&&eo(e),{TRANSITION_SUPPORT:So,SYNC_EXTERNAL_STORE:bo,MUTABLE_SOURCE:wo,LEGACY:ko}[oo().mode](e)}function Eo(e){var t=lo();return go(_o(e),e,t)}function To(e){var t=lo();return po((function(n){so(t.current,e,n)}),[t,e])}function xo(e){return Se("recoil_memory_managament_2020")&&eo(e),So(e)}function Co(e){var t=lo();return go(xo(e),e,t)}var No=function(e){return[Eo(e),To(e)]},Oo=function(e){return[_o(e),To(e)]},Ro=Eo,Po=_o,Lo=function(e){var t=lo();return po((function(){so(t.current,e,ro)}),[t,e])},Ao=To,Mo=xo,zo=Co,jo=function(e){return[Co(e),To(e)]};var Vo=kn,Do=Ae.DEFAULT_VALUE,Io=Ae.getNode,Uo=Ur,Fo=nn.AbstractRecoilValue,Bo=nn.setRecoilValueLoadable,Wo=hn,Ho=nr.cloneSnapshot,Yo=L.a.useCallback,Xo=L.a.useEffect,Ko=L.a.useRef,qo=L.a.useState,Qo=Tn.isSSR;function $o(e){var t=Uo();Xo((function(){return t.current.subscribeToTransactions(e).release}),[e,t])}function Go(e,t){var n,r=e.getState(),o=null!==(n=r.nextTree)&&void 0!==n?n:r.currentTree,a=t.getStore_INTERNAL().getState().currentTree;Vo((function(){for(var n=new Set,r=0,i=[o.atomValues.keys(),a.atomValues.keys()];rthis.maxSize()&&this.deleteLru()}},{key:"deleteLru",value:function(){var e=this.tail();e&&this.delete(e.key)}},{key:"delete",value:function(e){var t=this._keyMapper(e);if(this._size&&this._map.has(t)){var n=B(this._map.get(t)),r=n.right,o=n.left;r&&(r.left=n.left),o&&(o.right=n.right),n===this.head()&&(this._head=r),n===this.tail()&&(this._tail=o),this._map.delete(t),this._size--}}},{key:"clear",value:function(){this._size=0,this._head=null,this._tail=null,this._map=new Map}}]),e}()}.LRUCache,ei=Object.freeze({__proto__:null,LRUCache:Ja}),ti=ei.LRUCache,ni=Za.TreeCache;var ri=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){return e},n=new ti({maxSize:e}),r=new ni({mapNodeValue:t,onHit:function(e){n.set(e,!0)},onSet:function(t){var o=n.tail();n.set(t,!0),o&&r.size()>e&&r.delete(o.key)}});return r};function oi(e,t,n){if("string"===typeof e&&!e.includes('"')&&!e.includes("\\"))return'"'.concat(e,'"');switch(typeof e){case"undefined":return"";case"boolean":return e?"true":"false";case"number":case"symbol":return String(e);case"string":return JSON.stringify(e);case"function":if(!0!==(null===t||void 0===t?void 0:t.allowFunctions))throw U("Attempt to serialize function in a Recoil cache key");return"__FUNCTION(".concat(e.name,")__")}if(null===e)return"null";var r;if("object"!==typeof e)return null!==(r=JSON.stringify(e))&&void 0!==r?r:"";if(F(e))return"__PROMISE__";if(Array.isArray(e))return"[".concat(e.map((function(e,n){return oi(e,t,n.toString())})),"]");if("function"===typeof e.toJSON)return oi(e.toJSON(n),t,n);if(e instanceof Map){var o,a={},i=b(e);try{for(i.s();!(o=i.n()).done;){var u=Object(f.a)(o.value,2),l=u[0],c=u[1];a["string"===typeof l?l:oi(l,t)]=c}}catch(s){i.e(s)}finally{i.f()}return oi(a,t,n)}return e instanceof Set?oi(Array.from(e).sort((function(e,n){return oi(e,t).localeCompare(oi(n,t))})),t,n):void 0!==Symbol&&null!=e[Symbol.iterator]&&"function"===typeof e[Symbol.iterator]?oi(Array.from(e),t,n):"{".concat(Object.keys(e).filter((function(t){return void 0!==e[t]})).sort().map((function(n){return"".concat(oi(n,t),":").concat(oi(e[n],t,n))})).join(","),"}")}var ai=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{allowFunctions:!1};return oi(e,t)},ii=Za.TreeCache,ui={equality:"reference",eviction:"keep-all",maxSize:1/0};function li(e){switch(e){case"reference":return function(e){return e};case"value":return function(e){return ai(e)}}throw U("Unrecognized equality policy ".concat(e))}function ci(e,t,n){switch(e){case"keep-all":return new ii({mapNodeValue:n});case"lru":return ri(B(t),n);case"most-recent":return ri(1,n)}throw U("Unrecognized eviction policy ".concat(e))}var si=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ui,t=e.equality,n=void 0===t?ui.equality:t,r=e.eviction,o=void 0===r?ui.eviction:r,a=e.maxSize,i=void 0===a?ui.maxSize:a,u=li(n),l=ci(o,i,u);return l};var fi=function(e){return function(){return null}},di=le.loadableWithError,pi=le.loadableWithPromise,vi=le.loadableWithValue,hi=_t,mi=Et,yi=Tt,gi=Ye,bi=Ae.DEFAULT_VALUE,wi=Ae.RecoilValueNotReady,Si=Ae.getConfigDeletionHandler,ki=Ae.getNode,_i=Ae.registerNode,Ei=ye.isRecoilValue,Ti=nn.markRecoilValueModified,xi=gn,Ci=za,Ni=fi,Oi=function e(){N(this,e)},Ri=new Oi,Pi=[],Li=new Map,Ai=function(){var e=0;return function(){return e++}}();var Mi=function(e){var t=null,n=e.key,r=e.get,o=e.cachePolicy_UNSTABLE,a=null!=e.set?e.set:void 0,i=new Set,u=si(null!==o&&void 0!==o?o:{equality:"reference",eviction:"keep-all"}),l=xi(e.retainedBy_UNSTABLE),c=new Map,s=0;function d(){return!Se("recoil_memory_managament_2020")||s>0}function p(e){return e.getState().knownSelectors.add(n),s++,function(){s--}}function v(){return void 0!==Si(n)&&!d()}function h(e,t,n,r,o){P(t,r,o),S(e,t,new Set(o.keys()),n),m(e,n)}function m(e,n){R(e,n)&&O(e);var r=Li.get(n);if(void 0!==r){var o,a=b(r);try{for(a.s();!(o=a.n()).done;){var i=o.value;Ti(i,B(t))}}catch(u){a.e(u)}finally{a.f()}Li.delete(n)}}function y(e,t){var n=Li.get(t);null==n&&Li.set(t,n=new Set),n.add(e)}function g(e,t,n){var r=e.getState().knownSelectors.has(n);if(r&&t.atomValues.has(n))return B(t.atomValues.get(n));var o=hi(e,t,n);return"loading"!==o.state&&r&&t.atomValues.set(n,o),o}function w(e,t,n,r,o,a){return t.then((function(r){if(!d())throw O(e),Ri;null!=a.loadingDepKey&&a.loadingDepPromise===t?n.atomValues.set(a.loadingDepKey,vi(r)):e.getState().knownSelectors.forEach((function(e){n.atomValues.delete(e)}));var i=_(e,n);if(i&&"loading"!==i.state){if((R(e,o)||null==C(e))&&m(e,o),"hasValue"===i.state)return i.contents;throw i.contents}if(!R(e,o)){var u=T(n);if("loading"===(null===u||void 0===u?void 0:u.latestLoadable.state))return u.latestLoadable.contents}var l=k(e,n,o),c=Object(f.a)(l,2),s=c[0],p=c[1];if(N(e,o,p),"loading"!==s.state&&h(e,n,o,s,p),"hasError"===s.state)throw s.contents;return s.contents})).catch((function(t){if(t instanceof Oi)throw Ri;if(!d())throw O(e),Ri;var a=di(t);throw h(e,n,o,a,r),t}))}function S(e,t,r,o){var a,u,l,c,s,f,d;(R(e,o)||t.version===(null===(a=e.getState())||void 0===a||null===(u=a.currentTree)||void 0===u?void 0:u.version)||t.version===(null===(l=e.getState())||void 0===l||null===(c=l.nextTree)||void 0===c?void 0:c.version))&&(gi(new Map([[n,r]]),e,null!==(s=null===(f=e.getState())||void 0===f||null===(d=f.nextTree)||void 0===d?void 0:d.version)&&void 0!==s?s:e.getState().currentTree.version),r.forEach((function(e){return i.add(e)})))}function k(e,o,a){var i,u=Ni(n),l=!0,c=function(){u(),l=!1},s=!1,f={loadingDepKey:null,loadingDepPromise:null},p=new Map,v=new Set;function m(t){var n=t.key;!function(e,t,n,r,o){n.add(r),S(e,t,n,o)}(e,o,v,n,a);var r=g(e,o,n);switch(p.set(n,r),r.state){case"hasValue":return r.contents;case"hasError":throw r.contents;case"loading":throw f.loadingDepKey=n,f.loadingDepPromise=r.contents,r.contents}throw U("Invalid Loadable state")}S(e,o,v,a);try{i=r({get:m,getCallback:function(n){return function(){if(l)throw U("Callbacks from getCallback() should only be called asynchronously after the selector is evalutated. It can be used for selectors to return objects with callbacks that can work with Recoil state without a subscription.");null==t&&ka(!1);for(var r=arguments.length,o=new Array(r),a=0;a0&&void 0!==arguments[0]?arguments[0]:ru,t=e.equality,n=void 0===t?ru.equality:t,r=e.eviction,o=void 0===r?ru.eviction:r,a=e.maxSize,i=void 0===a?ru.maxSize:a,u=ou(n),l=au(o,i,u);return l},uu=Ae.setConfigDeletionHandler;var lu=function(e){var t,n,r=iu({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return function(t){var n,o,a=r.get(t);if(null!=a)return a;e.cachePolicyForParams_UNSTABLE;var i=c(e,V),u=Zi(k(k({},i),{},{key:"".concat(e.key,"__").concat(null!==(n=ai(t))&&void 0!==n?n:"void"),default:"function"===typeof e.default?e.default(t):e.default,retainedBy_UNSTABLE:"function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE,effects:"function"===typeof e.effects?e.effects(t):"function"===typeof e.effects_UNSTABLE?e.effects_UNSTABLE(t):null!==(o=e.effects)&&void 0!==o?o:e.effects_UNSTABLE}));return r.set(t,u),uu(u.key,(function(){r.delete(t)})),u}},cu=Ae.setConfigDeletionHandler,su=0;var fu=function(e){var t,n,r=iu({equality:null!==(t=null===(n=e.cachePolicyForParams_UNSTABLE)||void 0===n?void 0:n.equality)&&void 0!==t?t:"value",eviction:"keep-all"});return function(t){var n,o=r.get(t);if(null!=o)return o;var a,i="".concat(e.key,"__selectorFamily/").concat(null!==(n=ai(t,{allowFunctions:!0}))&&void 0!==n?n:"void","/").concat(su++),u=function(n){return e.get(t)(n)},l=e.cachePolicy_UNSTABLE,c="function"===typeof e.retainedBy_UNSTABLE?e.retainedBy_UNSTABLE(t):e.retainedBy_UNSTABLE;if(null!=e.set){var s=e.set;a=Mi({key:i,get:u,set:function(e,n){return s(t)(e,n)},cachePolicy_UNSTABLE:l,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:c})}else a=Mi({key:i,get:u,cachePolicy_UNSTABLE:l,dangerouslyAllowMutability:e.dangerouslyAllowMutability,retainedBy_UNSTABLE:c});return r.set(t,a),cu(a.key,(function(){r.delete(t)})),a}},du=fu({key:"__constant",get:function(e){return function(){return e}},cachePolicyForParams_UNSTABLE:{equality:"reference"}});var pu=function(e){return du(e)},vu=fu({key:"__error",get:function(e){return function(){throw U(e)}},cachePolicyForParams_UNSTABLE:{equality:"reference"}});var hu=function(e){return vu(e)};var mu=function(e){return e},yu=le.loadableWithError,gu=le.loadableWithPromise,bu=le.loadableWithValue;function wu(e,t){var n,r=Array(t.length).fill(void 0),o=Array(t.length).fill(void 0),a=b(t.entries());try{for(a.s();!(n=a.n()).done;){var i=Object(f.a)(n.value,2),u=i[0],l=i[1];try{r[u]=e(l)}catch(c){o[u]=c}}}catch(s){a.e(s)}finally{a.f()}return[r,o]}function Su(e){return null!=e&&!F(e)}function ku(e){return Array.isArray(e)?e:Object.getOwnPropertyNames(e).map((function(t){return e[t]}))}function _u(e,t){return Array.isArray(e)?t:Object.getOwnPropertyNames(e).reduce((function(e,n,r){return k(k({},e),{},w({},n,t[r]))}),{})}function Eu(e,t,n){return _u(e,n.map((function(e,n){return null==e?bu(t[n]):F(e)?gu(e):yu(e)})))}var Tu={waitForNone:fu({key:"__waitForNone",get:function(e){return function(t){var n=wu(t.get,ku(e)),r=Object(f.a)(n,2),o=r[0],a=r[1];return Eu(e,o,a)}},dangerouslyAllowMutability:!0}),waitForAny:fu({key:"__waitForAny",get:function(e){return function(t){var n=wu(t.get,ku(e)),r=Object(f.a)(n,2),o=r[0],a=r[1];return a.some((function(e){return!F(e)}))?Eu(e,o,a):new Promise((function(t){var n,r=b(a.entries());try{var i=function(){var r=Object(f.a)(n.value,2),i=r[0],u=r[1];F(u)&&u.then((function(n){o[i]=n,a[i]=void 0,t(Eu(e,o,a))})).catch((function(n){a[i]=n,t(Eu(e,o,a))}))};for(r.s();!(n=r.n()).done;)i()}catch(u){r.e(u)}finally{r.f()}}))}},dangerouslyAllowMutability:!0}),waitForAll:fu({key:"__waitForAll",get:function(e){return function(t){var n=wu(t.get,ku(e)),r=Object(f.a)(n,2),o=r[0],a=r[1];if(a.every((function(e){return null==e})))return _u(e,o);var i=a.find(Su);if(null!=i)throw i;return Promise.all(a).then((function(t){return _u(e,(n=o,t.map((function(e,t){return void 0===e?n[t]:e}))));var n}))}},dangerouslyAllowMutability:!0}),waitForAllSettled:fu({key:"__waitForAllSettled",get:function(e){return function(t){var n=wu(t.get,ku(e)),r=Object(f.a)(n,2),o=r[0],a=r[1];return a.every((function(e){return!F(e)}))?Eu(e,o,a):Promise.all(a.map((function(e,t){return F(e)?e.then((function(e){o[t]=e,a[t]=void 0})).catch((function(e){o[t]=void 0,a[t]=e})):null}))).then((function(){return Eu(e,o,a)}))}},dangerouslyAllowMutability:!0}),noWait:fu({key:"__noWait",get:function(e){return function(t){var n=t.get;try{return bu(n(e))}catch(r){return F(r)?gu(r):yu(r)}}},dangerouslyAllowMutability:!0})},xu=le.RecoilLoadable,Cu=Ae.DefaultValue,Nu=Ir,Ou=Br,Ru=ye.isRecoilValue,Pu=at,Lu=nr.freshSnapshot,Au={DefaultValue:Cu,isRecoilValue:Ru,RecoilLoadable:xu,RecoilRoot:Nu,useRecoilStoreID:Ou,useRecoilBridgeAcrossReactRoots_UNSTABLE:ca,atom:Zi,selector:Mi,atomFamily:lu,selectorFamily:fu,constSelector:pu,errorSelector:hu,readOnlySelector:mu,noWait:Tu.noWait,waitForNone:Tu.waitForNone,waitForAny:Tu.waitForAny,waitForAll:Tu.waitForAll,waitForAllSettled:Tu.waitForAllSettled,useRecoilValue:Ro,useRecoilValueLoadable:Po,useRecoilState:No,useRecoilStateLoadable:Oo,useSetRecoilState:Ao,useResetRecoilState:Lo,useGetRecoilValueInfo_UNSTABLE:oa,useRecoilRefresher_UNSTABLE:Ua,useRecoilValueLoadable_TRANSITION_SUPPORT_UNSTABLE:Mo,useRecoilValue_TRANSITION_SUPPORT_UNSTABLE:zo,useRecoilState_TRANSITION_SUPPORT_UNSTABLE:jo,useRecoilCallback:ja,useRecoilTransaction_UNSTABLE:Ha,useGotoRecoilSnapshot:ea,useRecoilSnapshot:Zo,useRecoilTransactionObserver_UNSTABLE:ta,snapshot_UNSTABLE:Lu,useRetain:eo,retentionZone:Pu},Mu=Au.RecoilRoot,zu=Au.atom,ju=Au.useRecoilValue,Vu=Au.useRecoilState,Du=Au.useSetRecoilState},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"d",(function(){return o})),n.d(t,"c",(function(){return a})),n.d(t,"a",(function(){return i}));var r=function(){};function o(e){for(var t=[],n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=n?(r(1),e.animation=null):e.animation&&(r(i),requestAnimationFrame(e.animation))},requestAnimationFrame(e.animation)}}function v(e,t,n,r){var o=function(e){var t=e.scale,n=e.positionX,r=e.positionY;if(isNaN(t)||isNaN(n)||isNaN(r))return!1;return!0}(t);if(e.mounted&&o){var a=e.setTransformState,i=e.transformState,u=i.scale,l=i.positionX,c=i.positionY,s=t.scale-u,f=t.positionX-l,d=t.positionY-c;0===n?a(t.scale,t.positionX,t.positionY):p(e,r,n,(function(e){a(u+s*e,l+f*e,c+d*e)}))}}var h=function(e,t){var n=e.wrapperComponent,r=e.contentComponent,o=e.setup.centerZoomedOut;if(!n||!r)throw new Error("Components are not mounted");var a=function(e,t,n){var r=e.offsetWidth,o=e.offsetHeight,a=t.offsetWidth*n,i=t.offsetHeight*n;return{wrapperWidth:r,wrapperHeight:o,newContentWidth:a,newDiffWidth:r-a,newContentHeight:i,newDiffHeight:o-i}}(n,r,t),i=a.wrapperWidth,u=a.wrapperHeight,l=function(e,t,n,r,o,a,i){var u=e>t?n*(i?1:.5):0,l=r>o?a*(i?1:.5):0;return{minPositionX:e-t-u,maxPositionX:u,minPositionY:r-o-l,maxPositionY:l}}(i,a.newContentWidth,a.newDiffWidth,u,a.newContentHeight,a.newDiffHeight,Boolean(o));return l},m=function(e,t){var n=h(e,t);return e.bounds=n,n};function y(e,t,n,r,o,a,i){var u=n.minPositionX,l=n.minPositionY,c=n.maxPositionX,s=n.maxPositionY,f=0,d=0;return i&&(f=o,d=a),{x:g(e,u-f,c+f,r),y:g(t,l-d,s+d,r)}}var g=function(e,t,n,r){return l(r?en?n:e:e,2)};function b(e,t,n,r,o,a){var i=e.transformState,u=i.scale,l=i.positionX,c=i.positionY,s=r-u;return"number"!==typeof t||"number"!==typeof n?(console.error("Mouse X and Y position were not provided!"),{x:l,y:c}):y(l-t*s,c-n*s,o,a,0,0,null)}function w(e,t,n,r,o){var a=t-(o?r:0);return!isNaN(n)&&e>=n?n:!isNaN(t)&&e<=a?a:e}var S=function(e,t){var n=e.setup.panning.excluded,r=e.isInitialized,o=e.wrapperComponent,a=t.target,i=null===o||void 0===o?void 0:o.contains(a);return!!(r&&a&&i)&&!q(a,n)},k=function(e){var t=e.isInitialized,n=e.isPanning,r=e.setup.panning.disabled;return!(!t||!n||r)};var _=function(e,t){var n=e.setup,r=e.transformState.scale,o=n.minScale;return t>0&&r>=o?t:0};function E(e,t,n,r,o,a,i,u,l,c){if(o){var s;if(t>i&&n>i)return(s=i+(e-i)*c)>l?l:sa?a:s}return r?t:g(e,a,i,o)}function T(e,t){var n=function(e){var t=e.mounted,n=e.setup,r=n.disabled,o=n.velocityAnimation,a=e.transformState.scale;return!(o.disabled&&!(a>1)&&r&&!t)}(e);if(n){var r=e.lastMousePosition,o=e.velocityTime,a=e.setup,i=e.wrapperComponent,u=a.velocityAnimation.equalToMove,l=Date.now();if(r&&o&&i){var c=function(e,t){return t?Math.min(1,e.offsetWidth/window.innerWidth):1}(i,u),s=t.x-r.x,f=t.y-r.y,d=s/c,p=f/c,v=l-o,h=s*s+f*f,m=Math.sqrt(h)/v;e.velocity={velocityX:d,velocityY:p,total:m}}e.lastMousePosition=t,e.velocityTime=l}}function x(e,t){var n=e.transformState.scale;d(e),m(e,n),t.touches?function(e,t){var n=t.touches,r=e.transformState,o=r.positionX,a=r.positionY;if(e.isPanning=!0,1===n.length){var i=n[0].clientX,u=n[0].clientY;e.startCoords={x:i-o,y:u-a}}}(e,t):function(e,t){var n=e.transformState,r=n.positionX,o=n.positionY;e.isPanning=!0;var a=t.clientX,i=t.clientY;e.startCoords={x:a-r,y:i-o}}(e,t)}function C(e,t,n){var r=e.startCoords,o=e.setup.alignmentAnimation,a=o.sizeX,i=o.sizeY;if(r){var u=function(e,t,n){var r=e.startCoords,o=e.transformState,a=e.setup.panning,i=a.lockAxisX,u=a.lockAxisY,l=o.positionX,c=o.positionY;if(!r)return{x:l,y:c};var s=t-r.x,f=n-r.y;return{x:i?l:s,y:u?c:f}}(e,t,n),l=u.x,c=u.y,s=_(e,a),f=_(e,i);T(e,{x:l,y:c}),function(e,t,n,r,o){var a=e.setup.limitToBounds,i=e.wrapperComponent,u=e.bounds,l=e.transformState,c=l.scale,s=l.positionX,f=l.positionY;if(i&&t!==s&&n!==f&&u){var d=y(t,n,u,a,r,o,i),p=d.x,v=d.y;e.setTransformState(c,p,v)}}(e,l,c,s,f)}}function N(e){if(e.isPanning){var t=e.setup.panning.velocityDisabled,n=e.velocity,r=e.wrapperComponent,o=e.contentComponent;e.isPanning=!1,e.animate=!1,e.animation=null;var a=null===r||void 0===r?void 0:r.getBoundingClientRect(),i=null===o||void 0===o?void 0:o.getBoundingClientRect(),u=(null===a||void 0===a?void 0:a.width)||0,l=(null===a||void 0===a?void 0:a.height)||0,c=(null===i||void 0===i?void 0:i.width)||0,f=(null===i||void 0===i?void 0:i.height)||0,d=u.1&&d?function(e){var t=e.velocity,n=e.bounds,r=e.setup,o=e.wrapperComponent,a=function(e){var t=e.mounted,n=e.velocity,r=e.bounds,o=e.setup,a=o.disabled,i=o.velocityAnimation,u=e.transformState.scale;return!(i.disabled&&!(u>1)&&a&&!t)&&!(!n||!r)}(e);if(a&&t&&n&&o){var i=t.velocityX,u=t.velocityY,l=t.total,c=n.maxPositionX,f=n.minPositionX,d=n.maxPositionY,v=n.minPositionY,h=r.limitToBounds,m=r.alignmentAnimation,y=r.zoomAnimation,g=r.panning,b=g.lockAxisY,w=g.lockAxisX,S=y.animationType,k=m.sizeX,T=m.sizeY,x=m.velocityAlignmentTime,C=function(e,t){var n=e.setup.velocityAnimation,r=n.equalToMove,o=n.animationTime,a=n.sensitivity;return r?o*t*a:o}(e,l),N=Math.max(C,x),O=_(e,k),R=_(e,T),P=O*o.offsetWidth/100,L=R*o.offsetHeight/100,A=c+P,M=f-P,z=d+L,j=v-L,V=e.transformState,D=(new Date).getTime();p(e,S,N,(function(t){var n=e.transformState,r=n.scale,o=n.positionX,a=n.positionY,l=((new Date).getTime()-D)/x,p=1-(0,s[m.animationType])(Math.min(1,l)),y=1-t,g=o+i*y,S=a+u*y,k=E(g,V.positionX,o,w,h,f,c,M,A,p),_=E(S,V.positionY,a,b,h,v,d,j,z,p);o===g&&a===S||e.setTransformState(r,k,_)}))}}(e):O(e)}}function O(e){var t=e.transformState.scale,n=e.setup,r=n.minScale,o=n.alignmentAnimation,a=o.disabled,i=o.sizeX,u=o.sizeY,l=o.animationTime,c=o.animationType;if(!(a||tf||np||rf?c.offsetWidth:e.setup.minPositionX||0,r>p?c.offsetHeight:e.setup.minPositionY||0,o,e.bounds,u||l),g=y.x,w=y.y;return{scale:o,positionX:h?g:n,positionY:m?w:r}}}(e);s&&v(e,s,l,c)}}function R(e,t,n){var r=e.transformState.scale,o=e.wrapperComponent,a=e.setup,i=a.minScale,u=a.limitToBounds,l=a.zoomAnimation,c=l.disabled,s=l.animationTime,f=l.animationType,d=c||r>=i;if((r>=1||u)&&O(e),!d&&o&&e.mounted){var p=P(e,i,t||o.offsetWidth/2,n||o.offsetHeight/2);p&&v(e,p,s,f)}}function P(e,t,n,r){var o=e.setup,a=o.minScale,i=o.maxScale,u=o.limitToBounds,c=w(l(t,2),a,i,0,!1),s=b(e,n,r,c,m(e,c),u);return{scale:c,positionX:s.x,positionY:s.y}}var L={previousScale:1,scale:1,positionX:0,positionY:0},A=i(i({},L),{setComponents:function(){},contextInstance:null}),M={disabled:!1,minPositionX:null,maxPositionX:null,minPositionY:null,maxPositionY:null,minScale:1,maxScale:8,limitToBounds:!0,centerZoomedOut:!1,centerOnInit:!1,wheel:{step:.2,disabled:!1,wheelDisabled:!1,touchPadDisabled:!1,activationKeys:[],excluded:[]},panning:{disabled:!1,velocityDisabled:!1,lockAxisX:!1,lockAxisY:!1,activationKeys:[],excluded:[]},pinch:{step:5,disabled:!1,excluded:[]},doubleClick:{disabled:!1,step:.7,mode:"zoomIn",animationType:"easeOut",animationTime:200,excluded:[]},zoomAnimation:{disabled:!1,size:.4,animationTime:200,animationType:"easeOut"},alignmentAnimation:{disabled:!1,sizeX:100,sizeY:100,animationTime:200,velocityAlignmentTime:400,animationType:"easeOut"},velocityAnimation:{disabled:!1,sensitivity:1,animationTime:400,animationType:"easeOut",equalToMove:!0}},z=function(e){var t,n,r,o;return{previousScale:null!==(t=e.initialScale)&&void 0!==t?t:L.scale,scale:null!==(n=e.initialScale)&&void 0!==n?n:L.scale,positionX:null!==(r=e.initialPositionX)&&void 0!==r?r:L.positionX,positionY:null!==(o=e.initialPositionY)&&void 0!==o?o:L.positionY}},j=function(e){var t=i({},M);return Object.keys(e).forEach((function(n){var r="undefined"!==typeof e[n];if("undefined"!==typeof M[n]&&r){var o=Object.prototype.toString.call(M[n]),a="[object Object]"===o,l="[object Array]"===o;t[n]=a?i(i({},M[n]),e[n]):l?u(u([],M[n]),e[n]):e[n]}})),t},V=function(e,t,n){var r=e.transformState.scale,o=e.wrapperComponent,a=e.setup,i=a.maxScale,u=a.minScale,c=a.zoomAnimation.size;if(!o)throw new Error("Wrapper is not mounted");var s=r*Math.exp(t*n);return w(l(s,3),u,i,c,!1)};function D(e,t,n,r,o){var a=e.wrapperComponent,i=e.transformState,u=i.scale,l=i.positionX,c=i.positionY;if(!a)return console.error("No WrapperComponent found");var s=(a.offsetWidth/2-l)/u,f=(a.offsetHeight/2-c)/u,d=P(e,V(e,t,n),s,f);if(!d)return console.error("Error during zoom event. New transformation state was not calculated.");v(e,d,r,o)}function I(e,t,n){var r=e.setup,o=e.wrapperComponent,a=r.limitToBounds,i=z(e.props),u=e.transformState,l=u.scale,c=u.positionX,s=u.positionY;if(o){var f=h(e,i.scale),d=y(i.positionX,i.positionY,f,a,0,0,o),p={scale:i.scale,positionX:d.x,positionY:d.y};l===i.scale&&c===i.positionX&&s===i.positionY||v(e,p,t,n)}}var U=function(e){return function(t,n,r){void 0===t&&(t=.5),void 0===n&&(n=300),void 0===r&&(r="easeOut"),D(e,1,t,n,r)}},F=function(e){return function(t,n,r){void 0===t&&(t=.5),void 0===n&&(n=300),void 0===r&&(r="easeOut"),D(e,-1,t,n,r)}},B=function(e){return function(t,n,r,o,a){void 0===o&&(o=300),void 0===a&&(a="easeOut");var i=e.transformState,u=i.positionX,l=i.positionY,c=i.scale,s=e.wrapperComponent,f=e.contentComponent;if(!e.setup.disabled&&s&&f){var d={positionX:isNaN(t)?u:t,positionY:isNaN(n)?l:n,scale:isNaN(r)?c:r};v(e,d,o,a)}}},W=function(e){return function(t,n){void 0===t&&(t=200),void 0===n&&(n="easeOut"),I(e,t,n)}},H=function(e){return function(t,n,r){void 0===n&&(n=200),void 0===r&&(r="easeOut");var o=e.transformState,a=e.wrapperComponent,i=e.contentComponent;if(a&&i){var u=G(t||o.scale,a,i);v(e,u,n,r)}}},Y=function(e){return function(t,n,r,o){void 0===r&&(r=600),void 0===o&&(o="easeOut"),d(e);var a=e.wrapperComponent,i="string"===typeof t?document.getElementById(t):t;if(a&&function(e){return e?void 0!==(null===e||void 0===e?void 0:e.offsetWidth)&&void 0!==(null===e||void 0===e?void 0:e.offsetHeight)||(console.error("Zoom node is not valid - it must contain offsetWidth and offsetHeight"),!1):(console.error("Zoom node not found"),!1)}(i)&&i&&a.contains(i)){var u=function(e,t,n){var r=e.wrapperComponent,o=e.setup,a=o.limitToBounds,i=o.minScale,u=o.maxScale;if(!r)return L;var l=r.getBoundingClientRect(),c=function(e){for(var t=e,n=0,r=0;t;)n+=t.offsetLeft,r+=t.offsetTop,t=t.offsetParent;return{x:n,y:r}}(t),s=c.x,f=c.y,d=t.offsetWidth,p=t.offsetHeight,v=r.offsetWidth/d,m=r.offsetHeight/p,g=w(n||Math.min(v,m),i,u,0,!1),b=(l.width-d*g)/2,S=(l.height-p*g)/2,k=y((l.left-s)*g+b,(l.top-f)*g+S,h(e,g),a,0,0,r);return{positionX:k.x,positionY:k.y,scale:g}}(e,i,n);v(e,u,r,o)}}},X=function(e){return{instance:e,state:e.transformState,zoomIn:U(e),zoomOut:F(e),setTransform:B(e),resetTransform:W(e),centerView:H(e),zoomToElement:Y(e)}};function K(){try{return{get passive(){return!0,!1}}}catch(e){return!1}}var q=function(e,t){var n=e.tagName.toUpperCase();return!!t.find((function(e){return e.toUpperCase()===n}))||!!t.find((function(t){return e.classList.contains(t)}))},Q=function(e){e&&clearTimeout(e)},$=function(e,t,n){return"translate3d("+e+"px, "+t+"px, 0) scale("+n+")"},G=function(e,t,n){var r=n.offsetWidth*e,o=n.offsetHeight*e;return{scale:e,positionX:(t.offsetWidth-r)/2,positionY:(t.offsetHeight-o)/2}},Z=function(e,t){var n=e.setup.wheel,r=n.disabled,o=n.wheelDisabled,a=n.touchPadDisabled,i=n.excluded,u=e.isInitialized,l=e.isPanning,c=t.target;return!(!u||l||r||!c)&&(!(o&&!t.ctrlKey)&&((!a||!t.ctrlKey)&&!q(c,i)))};function J(e,t,n){var r=t.getBoundingClientRect(),o=0,a=0;if("clientX"in e)o=(e.clientX-r.left)/n,a=(e.clientY-r.top)/n;else{var i=e.touches[0];o=(i.clientX-r.left)/n,a=(i.clientY-r.top)/n}return(isNaN(o)||isNaN(a))&&console.error("No mouse or touch offset found"),{x:o,y:a}}var ee=function(e,t){var n=e.setup.pinch,r=n.disabled,o=n.excluded,a=e.isInitialized,i=t.target;return!(!a||r||!i)&&!q(i,o)},te=function(e){var t=e.setup.pinch.disabled,n=e.isInitialized,r=e.pinchStartDistance;return!(!n||t||!r)},ne=function(e){return Math.sqrt(Math.pow(e.touches[0].pageX-e.touches[1].pageX,2)+Math.pow(e.touches[0].pageY-e.touches[1].pageY,2))},re=function(e,t){var n=e.props,r=n.onWheelStart,o=n.onZoomStart;e.wheelStopEventTimer||(d(e),c(X(e),t,r),c(X(e),t,o))},oe=function(e,t){var n=e.props,r=n.onWheel,o=n.onZoom,a=e.contentComponent,i=e.setup,u=e.transformState.scale,s=i.limitToBounds,f=i.centerZoomedOut,d=i.zoomAnimation,p=i.wheel,v=d.size,h=d.disabled,y=p.step;if(!a)throw new Error("Component not mounted");t.preventDefault(),t.stopPropagation();var g=function(e,t){var n,r,o=e?e.deltaY<0?1:-1:0;return r=o,"number"===typeof(n=t)?n:r}(t,null),S=function(e,t,n,r,o){var a=e.transformState.scale,i=e.wrapperComponent,u=e.setup,c=u.maxScale,s=u.minScale,f=u.zoomAnimation,d=f.size,p=f.disabled;if(!i)throw new Error("Wrapper is not mounted");var v=a+t*(a-a*n)*n;if(o)return v;var h=!r&&!p;return w(l(v,3),s,c,d,h)}(e,g,y,!t.ctrlKey);if(u!==S){var k=m(e,S),_=J(t,a,u),E=s&&(h||0===v||f),T=b(e,_.x,_.y,S,k,E),x=T.x,C=T.y;e.previousWheelEvent=t,e.setTransformState(S,x,C),c(X(e),t,r),c(X(e),t,o)}},ae=function(e,t){var n=e.props,r=n.onWheelStop,o=n.onZoomStop;Q(e.wheelAnimationTimer),e.wheelAnimationTimer=setTimeout((function(){e.mounted&&(R(e,t.x,t.y),e.wheelAnimationTimer=null)}),100);var a=function(e,t){var n=e.previousWheelEvent,r=e.transformState.scale,o=e.setup,a=o.maxScale,i=o.minScale;return!!n&&(ri||Math.sign(n.deltaY)!==Math.sign(t.deltaY)||n.deltaY>0&&n.deltaYt.deltaY||Math.sign(n.deltaY)!==Math.sign(t.deltaY))}(e,t);a&&(Q(e.wheelStopEventTimer),e.wheelStopEventTimer=setTimeout((function(){e.mounted&&(e.wheelStopEventTimer=null,c(X(e),t,r),c(X(e),t,o))}),160))},ie=function(e,t){var n=ne(t);e.pinchStartDistance=n,e.lastDistance=n,e.pinchStartScale=e.transformState.scale,e.isPanning=!1,d(e)},ue=function(e,t){var n=e.contentComponent,r=e.pinchStartDistance,o=e.transformState.scale,a=e.setup,i=a.limitToBounds,u=a.centerZoomedOut,c=a.zoomAnimation,s=c.disabled,f=c.size;if(null!==r&&n){var d=function(e,t,n){var r=n.getBoundingClientRect(),o=e.touches,a=l(o[0].clientX-r.left,5),i=l(o[0].clientY-r.top,5);return{x:(a+l(o[1].clientX-r.left,5))/2/t,y:(i+l(o[1].clientY-r.top,5))/2/t}}(t,o,n);if(isFinite(d.x)&&isFinite(d.y)){var p=ne(t),v=function(e,t){var n=e.pinchStartScale,r=e.pinchStartDistance,o=e.setup,a=o.maxScale,i=o.minScale,u=o.zoomAnimation,c=u.size,s=u.disabled;if(!n||null===r||!t)throw new Error("Pinch touches distance was not provided");return t<0?e.transformState.scale:w(l(t/r*n,2),i,a,c,!s)}(e,p);if(v!==o){var h=m(e,v),y=i&&(s||0===f||u),g=b(e,d.x,d.y,v,h,y),S=g.x,k=g.y;e.pinchMidpoint=d,e.lastDistance=p,e.setTransformState(v,S,k)}}}},le=function(e){var t=e.pinchMidpoint;e.velocity=null,e.lastDistance=null,e.pinchMidpoint=null,e.pinchStartScale=null,e.pinchStartDistance=null,R(e,null===t||void 0===t?void 0:t.x,null===t||void 0===t?void 0:t.y)};function ce(e,t){var n=e.setup.doubleClick,r=n.disabled,o=n.mode,a=n.step,i=n.animationTime,u=n.animationType;if(!r){if("reset"===o)return I(e,i,u);var l=e.transformState.scale,c=e.contentComponent;if(!c)return console.error("No ContentComponent found");var s=V(e,"zoomOut"===o?-1:1,a),f=J(t,c,l),d=P(e,s,f.x,f.y);if(!d)return console.error("Error during zoom event. New transformation state was not calculated.");v(e,d,i,u)}}var se=function(e,t){var n=e.isInitialized,r=e.setup,o=e.wrapperComponent,a=r.doubleClick,i=a.disabled,u=a.excluded,l=t.target,c=null===o||void 0===o?void 0:o.contains(l),s=n&&l&&c&&!i;return!!s&&(!q(l,u)&&!!s)},fe=o.a.createContext(A),de=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.mounted=!0,t.transformState=z(t.props),t.setup=j(t.props),t.wrapperComponent=null,t.contentComponent=null,t.isInitialized=!1,t.bounds=null,t.previousWheelEvent=null,t.wheelStopEventTimer=null,t.wheelAnimationTimer=null,t.isPanning=!1,t.startCoords=null,t.lastTouch=null,t.distance=null,t.lastDistance=null,t.pinchStartDistance=null,t.pinchStartScale=null,t.pinchMidpoint=null,t.velocity=null,t.velocityTime=null,t.lastMousePosition=null,t.animate=!1,t.animation=null,t.maxBounds=null,t.pressedKeys={},t.handleInitializeWrapperEvents=function(e){var n=K();e.addEventListener("wheel",t.onWheelZoom,n),e.addEventListener("dblclick",t.onDoubleClick,n),e.addEventListener("touchstart",t.onTouchPanningStart,n),e.addEventListener("touchmove",t.onTouchPanning,n),e.addEventListener("touchend",t.onTouchPanningStop,n)},t.handleInitialize=function(){var e=t.setup.centerOnInit;t.applyTransformation(),t.forceUpdate(),e&&(setTimeout((function(){t.mounted&&t.setCenter()}),50),setTimeout((function(){t.mounted&&t.setCenter()}),100),setTimeout((function(){t.mounted&&t.setCenter()}),200))},t.onWheelZoom=function(e){t.setup.disabled||Z(t,e)&&t.isPressingKeys(t.setup.wheel.activationKeys)&&(re(t,e),oe(t,e),ae(t,e))},t.onPanningStart=function(e){var n=t.setup.disabled,r=t.props.onPanningStart;n||S(t,e)&&t.isPressingKeys(t.setup.panning.activationKeys)&&(e.preventDefault(),e.stopPropagation(),d(t),x(t,e),c(X(t),e,r))},t.onPanning=function(e){var n=t.setup.disabled,r=t.props.onPanning;n||k(t)&&t.isPressingKeys(t.setup.panning.activationKeys)&&(e.preventDefault(),e.stopPropagation(),C(t,e.clientX,e.clientY),c(X(t),e,r))},t.onPanningStop=function(e){var n=t.props.onPanningStop;t.isPanning&&(N(t),c(X(t),e,n))},t.onPinchStart=function(e){var n=t.setup.disabled,r=t.props,o=r.onPinchingStart,a=r.onZoomStart;n||ee(t,e)&&(ie(t,e),d(t),c(X(t),e,o),c(X(t),e,a))},t.onPinch=function(e){var n=t.setup.disabled,r=t.props,o=r.onPinching,a=r.onZoom;n||te(t)&&(e.preventDefault(),e.stopPropagation(),ue(t,e),c(X(t),e,o),c(X(t),e,a))},t.onPinchStop=function(e){var n=t.props,r=n.onPinchingStop,o=n.onZoomStop;t.pinchStartScale&&(le(t),c(X(t),e,r),c(X(t),e,o))},t.onTouchPanningStart=function(e){var n=t.setup.disabled,r=t.props.onPanningStart;if(!n&&S(t,e))if(t.lastTouch&&+new Date-t.lastTouch<200&&1===e.touches.length)t.onDoubleClick(e);else{t.lastTouch=+new Date,d(t);var o=e.touches,a=1===o.length,i=2===o.length;a&&(d(t),x(t,e),c(X(t),e,r)),i&&t.onPinchStart(e)}},t.onTouchPanning=function(e){var n=t.setup.disabled,r=t.props.onPanning;if(t.isPanning&&1===e.touches.length){if(n)return;if(!k(t))return;e.preventDefault(),e.stopPropagation();var o=e.touches[0];C(t,o.clientX,o.clientY),c(X(t),e,r)}else e.touches.length>1&&t.onPinch(e)},t.onTouchPanningStop=function(e){t.onPanningStop(e),t.onPinchStop(e)},t.onDoubleClick=function(e){t.setup.disabled||se(t,e)&&ce(t,e)},t.clearPanning=function(e){t.isPanning&&t.onPanningStop(e)},t.setKeyPressed=function(e){t.pressedKeys[e.key]=!0},t.setKeyUnPressed=function(e){t.pressedKeys[e.key]=!1},t.isPressingKeys=function(e){return!e.length||Boolean(e.find((function(e){return t.pressedKeys[e]})))},t.setComponents=function(e,n){t.wrapperComponent=e,t.contentComponent=n,m(t,t.transformState.scale),t.handleInitializeWrapperEvents(e),t.handleInitialize(),t.handleRef(),t.isInitialized=!0,c(X(t),void 0,t.props.onInit)},t.setTransformState=function(e,n,r){isNaN(e)||isNaN(n)||isNaN(r)?console.error("Detected NaN set state values"):(e!==t.transformState.scale&&(t.transformState.previousScale=t.transformState.scale,t.transformState.scale=e),t.transformState.positionX=n,t.transformState.positionY=r,t.applyTransformation())},t.setCenter=function(){if(t.wrapperComponent&&t.contentComponent){var e=G(t.transformState.scale,t.wrapperComponent,t.contentComponent);t.setTransformState(e.scale,e.positionX,e.positionY)}},t.applyTransformation=function(){if(t.mounted&&t.contentComponent){var e=t.transformState,n=e.scale,r=e.positionX,o=e.positionY,a=$(r,o,n);t.contentComponent.style.transform=a,t.handleRef()}},t.handleRef=function(){t.props.setRef(X(t))},t}return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(t,e),t.prototype.componentDidMount=function(){var e=K();window.addEventListener("mousedown",this.onPanningStart,e),window.addEventListener("mousemove",this.onPanning,e),window.addEventListener("mouseup",this.onPanningStop,e),document.addEventListener("mouseleave",this.clearPanning,e),window.addEventListener("keyup",this.setKeyUnPressed,e),window.addEventListener("keydown",this.setKeyPressed,e),this.handleRef()},t.prototype.componentWillUnmount=function(){var e=K();window.removeEventListener("mousedown",this.onPanningStart,e),window.removeEventListener("mousemove",this.onPanning,e),window.removeEventListener("mouseup",this.onPanningStop,e),window.removeEventListener("keyup",this.setKeyUnPressed,e),window.removeEventListener("keydown",this.setKeyPressed,e),d(this)},t.prototype.componentDidUpdate=function(e){e!==this.props&&(m(this,this.transformState.scale),this.setup=j(this.props))},t.prototype.render=function(){var e=X(this),t=this.props.children,n="function"===typeof t?t(e):t;return o.a.createElement(fe.Provider,{value:i(i({},this.transformState),{setComponents:this.setComponents,contextInstance:this})},n)},t}(r.Component),pe=o.a.forwardRef((function(e,t){var n=Object(r.useState)(null),a=n[0],u=n[1];return Object(r.useImperativeHandle)(t,(function(){return a}),[a]),o.a.createElement(de,i({},e,{setRef:u}))}));var ve="transform-component-module_wrapper__1_Fgj",he="transform-component-module_content__2jYgh";!function(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!==typeof document){var r=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===n&&r.firstChild?r.insertBefore(o,r.firstChild):r.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}}(".transform-component-module_wrapper__1_Fgj {\n position: relative;\n width: -moz-fit-content;\n width: fit-content;\n height: -moz-fit-content;\n height: fit-content;\n overflow: hidden;\n -webkit-touch-callout: none; /* iOS Safari */\n -webkit-user-select: none; /* Safari */\n -khtml-user-select: none; /* Konqueror HTML */\n -moz-user-select: none; /* Firefox */\n -ms-user-select: none; /* Internet Explorer/Edge */\n user-select: none;\n margin: 0;\n padding: 0;\n}\n.transform-component-module_content__2jYgh {\n display: flex;\n flex-wrap: wrap;\n width: -moz-fit-content;\n width: fit-content;\n height: -moz-fit-content;\n height: fit-content;\n margin: 0;\n padding: 0;\n transform-origin: 0% 0%;\n}\n.transform-component-module_content__2jYgh img {\n pointer-events: none;\n}\n");var me=function(e){var t=e.children,n=e.wrapperClass,a=void 0===n?"":n,i=e.contentClass,u=void 0===i?"":i,l=e.wrapperStyle,c=e.contentStyle,s=Object(r.useContext)(fe).setComponents,f=Object(r.useRef)(null),d=Object(r.useRef)(null);return Object(r.useEffect)((function(){var e=f.current,t=d.current;null!==e&&null!==t&&s&&s(e,t)}),[]),o.a.createElement("div",{ref:f,className:"react-transform-wrapper "+ve+" "+a,style:l},o.a.createElement("div",{ref:d,className:"react-transform-component "+he+" "+u,style:c},t))}},function(e,t,n){"use strict";var r=n(0),o=n(5),a=o.a?window:null,i=function(e){return!!e.addEventListener},u=function(e){return!!e.on},l=function(e,t,n,l){void 0===n&&(n=a),Object(r.useEffect)((function(){if(t&&n)return i(n)?Object(o.d)(n,e,t,l):u(n)&&n.on(e,t,l),function(){i(n)?Object(o.c)(n,e,t,l):u(n)&&n.off(e,t,l)}}),[e,t,n,JSON.stringify(l)])};t.a=function(e,t,n,a){void 0===t&&(t=o.b),void 0===n&&(n={}),void 0===a&&(a=[e]);var i=n.event,u=void 0===i?"keydown":i,c=n.target,s=n.options,f=Object(r.useMemo)((function(){var n,r="function"===typeof(n=e)?n:"string"===typeof n?function(e){return e.key===n}:n?function(){return!0}:function(){return!1};return function(e){if(r(e))return t(e)}}),a);l(u,f,c,s)}},function(e,t,n){"use strict";var r=n(16),o=60103,a=60106;t.Fragment=60107,t.StrictMode=60108,t.Profiler=60114;var i=60109,u=60110,l=60112;t.Suspense=60113;var c=60115,s=60116;if("function"===typeof Symbol&&Symbol.for){var f=Symbol.for;o=f("react.element"),a=f("react.portal"),t.Fragment=f("react.fragment"),t.StrictMode=f("react.strict_mode"),t.Profiler=f("react.profiler"),i=f("react.provider"),u=f("react.context"),l=f("react.forward_ref"),t.Suspense=f("react.suspense"),c=f("react.memo"),s=f("react.lazy")}var d="function"===typeof Symbol&&Symbol.iterator;function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n