From de802b5b6072b2acba4345b2a3cc24b9817cd713 Mon Sep 17 00:00:00 2001
From: Murderlon
Date: Mon, 27 Jan 2025 09:36:38 +0000
Subject: [PATCH] deploy: 8875619bceb230fd7ec894676bd5f0c551acb7ed
---
404.html | 2 +-
assets/js/{2057.b72324d8.js => 2057.92f2f7fe.js} | 2 +-
assets/js/{250.5220c303.js => 250.83bf524f.js} | 4 ++--
...50.5220c303.js.LICENSE.txt => 250.83bf524f.js.LICENSE.txt} | 0
.../js/{runtime~main.84c92077.js => runtime~main.e875f297.js} | 2 +-
blog/2016/07/uppy-begins/index.html | 2 +-
blog/2016/08/0.8.0/index.html | 2 +-
blog/2016/08/0.9.0/index.html | 2 +-
blog/2016/09/0.10/index.html | 2 +-
blog/2016/11/0.11/index.html | 2 +-
blog/2016/12/0.12/index.html | 2 +-
blog/2017/02/0.14/index.html | 2 +-
blog/2017/03/0.15/index.html | 2 +-
blog/2017/05/0.16/index.html | 2 +-
blog/2017/05/0.17/index.html | 2 +-
blog/2017/07/golden-retriever/index.html | 2 +-
blog/2017/08/0.18/index.html | 2 +-
blog/2017/09/0.19/index.html | 2 +-
blog/2017/10/0.20/index.html | 2 +-
blog/2017/10/0.21/index.html | 2 +-
blog/2017/12/0.22/index.html | 2 +-
blog/2018/02/0.23/index.html | 2 +-
blog/2018/04/0.24/index.html | 2 +-
blog/2018/06/0.25/index.html | 2 +-
blog/2018/07/0.26/index.html | 2 +-
blog/2018/08/0.27/index.html | 2 +-
blog/2018/10/0.28/index.html | 2 +-
blog/2018/12/0.29/index.html | 2 +-
blog/2019/03/0.30/index.html | 2 +-
blog/2019/03/liftoff-01/index.html | 2 +-
blog/2019/03/liftoff-02/index.html | 2 +-
blog/2019/03/liftoff-03/index.html | 2 +-
blog/2019/03/liftoff-04/index.html | 2 +-
blog/2019/03/liftoff-05/index.html | 2 +-
blog/2019/03/liftoff-06/index.html | 2 +-
blog/2019/04/1.0/index.html | 2 +-
blog/2019/04/liftoff-07/index.html | 2 +-
blog/2019/04/liftoff-08/index.html | 2 +-
blog/2019/04/liftoff-09/index.html | 2 +-
blog/2019/04/liftoff-10/index.html | 2 +-
blog/2019/04/liftoff-11/index.html | 2 +-
blog/2019/04/liftoff-12/index.html | 2 +-
blog/2019/04/liftoff-13/index.html | 2 +-
blog/2019/04/liftoff-14/index.html | 2 +-
blog/2019/04/liftoff-15/index.html | 2 +-
blog/2019/04/liftoff-16/index.html | 2 +-
blog/2019/04/liftoff-17/index.html | 2 +-
blog/2019/04/liftoff-18/index.html | 2 +-
blog/2019/04/liftoff-19/index.html | 2 +-
blog/2019/04/liftoff-20/index.html | 2 +-
blog/2019/04/liftoff-21/index.html | 2 +-
blog/2019/04/liftoff-22/index.html | 2 +-
blog/2019/04/liftoff-23/index.html | 2 +-
blog/2019/04/liftoff-24/index.html | 2 +-
blog/2019/04/liftoff-25/index.html | 2 +-
blog/2019/04/liftoff-26/index.html | 2 +-
blog/2019/04/liftoff-27/index.html | 2 +-
blog/2019/04/liftoff-28/index.html | 2 +-
blog/2019/04/liftoff-29/index.html | 2 +-
blog/2019/04/liftoff-30/index.html | 2 +-
blog/2019/08/1.3/index.html | 2 +-
blog/2019/10/1.5/index.html | 2 +-
blog/2019/11/1.6/index.html | 2 +-
blog/2019/12/1.7/index.html | 2 +-
blog/2020/03/1.9/index.html | 2 +-
blog/2020/03/custom-providers/index.html | 2 +-
blog/2020/04/1.10/index.html | 2 +-
blog/2020/04/1.13/index.html | 2 +-
blog/2020/07/1.18-image-editor/index.html | 2 +-
blog/2020/09/companion-2.0/index.html | 2 +-
blog/2020/10/1.22/index.html | 2 +-
blog/2020/11/1.23/index.html | 2 +-
blog/2020/12/1.24/index.html | 2 +-
blog/2021/01/1.25/index.html | 2 +-
blog/2021/02/1.26/index.html | 2 +-
blog/2021/04/1.27/index.html | 2 +-
blog/2021/05/1.29/index.html | 2 +-
blog/2021/07/1.30/index.html | 2 +-
blog/2021/08/2.0/index.html | 2 +-
blog/2021/12/2.1-2.3/index.html | 2 +-
blog/2022/03/2.4-2.7/index.html | 2 +-
blog/2022/09/3.0/index.html | 2 +-
blog/2022/12/3.3/index.html | 2 +-
blog/2023-05-new-website/index.html | 2 +-
blog/2023-10-25-image-editor/index.html | 2 +-
blog/2023/07/3.13-3.21/index.html | 2 +-
blog/2023/07/3.3-3.13/index.html | 2 +-
blog/archive/index.html | 2 +-
blog/index.html | 2 +-
blog/page/2/index.html | 2 +-
blog/page/3/index.html | 2 +-
blog/page/4/index.html | 2 +-
blog/page/5/index.html | 2 +-
blog/page/6/index.html | 2 +-
blog/page/7/index.html | 2 +-
blog/page/8/index.html | 2 +-
blog/page/9/index.html | 2 +-
blog/uppy-4.0/index.html | 2 +-
docs/angular/index.html | 2 +-
docs/audio/index.html | 4 ++--
docs/aws-s3/index.html | 4 ++--
docs/box/index.html | 4 ++--
docs/companion/index.html | 2 +-
docs/compressor/index.html | 4 ++--
docs/dashboard/index.html | 4 ++--
docs/drag-drop/index.html | 4 ++--
docs/drop-target/index.html | 4 ++--
docs/dropbox/index.html | 4 ++--
docs/facebook/index.html | 4 ++--
docs/file-input/index.html | 4 ++--
docs/form/index.html | 4 ++--
docs/golden-retriever/index.html | 4 ++--
docs/google-drive-picker/index.html | 4 ++--
docs/google-drive/index.html | 4 ++--
docs/google-photos-picker/index.html | 4 ++--
docs/google-photos/index.html | 4 ++--
docs/guides/browser-support/index.html | 2 +-
docs/guides/building-plugins/index.html | 2 +-
docs/guides/building-your-own-ui-with-uppy/index.html | 2 +-
docs/guides/choosing-uploader/index.html | 2 +-
docs/guides/custom-stores/index.html | 2 +-
docs/guides/migration-guides/index.html | 2 +-
docs/image-editor/index.html | 4 ++--
docs/index.html | 2 +-
docs/informer/index.html | 4 ++--
docs/instagram/index.html | 4 ++--
docs/locales/index.html | 2 +-
docs/nextjs/index.html | 2 +-
docs/onedrive/index.html | 4 ++--
docs/progress-bar/index.html | 4 ++--
docs/quick-start/index.html | 2 +-
docs/react/index.html | 2 +-
docs/reactrouter/index.html | 2 +-
docs/remote-sources/index.html | 4 ++--
docs/screen-capture/index.html | 4 ++--
docs/status-bar/index.html | 4 ++--
docs/svelte/index.html | 2 +-
docs/sveltekit/index.html | 2 +-
docs/thumbnail-generator/index.html | 4 ++--
docs/transloadit/index.html | 4 ++--
docs/tus/index.html | 4 ++--
docs/unsplash/index.html | 4 ++--
docs/uppy/index.html | 4 ++--
docs/url/index.html | 4 ++--
docs/vue/index.html | 2 +-
docs/webcam/index.html | 4 ++--
docs/webdav/index.html | 4 ++--
docs/xhr-upload/index.html | 4 ++--
docs/zoom/index.html | 4 ++--
examples/index.html | 2 +-
index.html | 2 +-
privacy-policy/index.html | 2 +-
search/index.html | 2 +-
153 files changed, 187 insertions(+), 187 deletions(-)
rename assets/js/{2057.b72324d8.js => 2057.92f2f7fe.js} (99%)
rename assets/js/{250.5220c303.js => 250.83bf524f.js} (99%)
rename assets/js/{250.5220c303.js.LICENSE.txt => 250.83bf524f.js.LICENSE.txt} (100%)
rename assets/js/{runtime~main.84c92077.js => runtime~main.e875f297.js} (99%)
diff --git a/404.html b/404.html
index 20088923c..021938bb7 100644
--- a/404.html
+++ b/404.html
@@ -13,7 +13,7 @@
-
+
diff --git a/assets/js/2057.b72324d8.js b/assets/js/2057.92f2f7fe.js
similarity index 99%
rename from assets/js/2057.b72324d8.js
rename to assets/js/2057.92f2f7fe.js
index 929a562bc..c38fd6067 100644
--- a/assets/js/2057.b72324d8.js
+++ b/assets/js/2057.92f2f7fe.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkuppy_io=self.webpackChunkuppy_io||[]).push([[2057],{27293:(e,n,t)=>{t.d(n,{A:()=>k});var r=t(96540),a=t(74848);function i(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=r.Children.toArray(e),t=n.find((e=>r.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),i=n.filter((e=>e!==t)),o=t?.props.children;return{mdxAdmonitionTitle:o,rest:i.length>0?(0,a.jsx)(a.Fragment,{children:i}):null}}(e.children),i=e.title??n;return{...e,...i&&{title:i},children:t}}var o=t(18215),l=t(21312),s=t(17559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function u(e){let{type:n,className:t,children:r}=e;return(0,a.jsx)("div",{className:(0,o.A)(s.G.common.admonition,s.G.common.admonitionType(n),c.admonition,t),children:r})}function d(e){let{icon:n,title:t}=e;return(0,a.jsxs)("div",{className:c.admonitionHeading,children:[(0,a.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function m(e){let{children:n}=e;return n?(0,a.jsx)("div",{className:c.admonitionContent,children:n}):null}function h(e){const{type:n,icon:t,title:r,children:i,className:o}=e;return(0,a.jsxs)(u,{type:n,className:o,children:[r||t?(0,a.jsx)(d,{title:r,icon:t}):null,(0,a.jsx)(m,{children:i})]})}function f(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,a.jsx)(f,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function v(e){return(0,a.jsx)(h,{...p,...e,className:(0,o.A)("alert alert--secondary",e.className),children:e.children})}function b(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const x={icon:(0,a.jsx)(b,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,a.jsx)(h,{...x,...e,className:(0,o.A)("alert alert--success",e.className),children:e.children})}function j(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,a.jsx)(j,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,a.jsx)(h,{...y,...e,className:(0,o.A)("alert alert--info",e.className),children:e.children})}function A(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const N={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function T(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const I={icon:(0,a.jsx)(T,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const V={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const C={...{note:v,tip:g,info:w,warning:function(e){return(0,a.jsx)(h,{...N,...e,className:(0,o.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(h,{...I,...e,className:(0,o.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(v,{title:"secondary",...e}),important:e=>(0,a.jsx)(w,{title:"important",...e}),success:e=>(0,a.jsx)(g,{title:"success",...e}),caution:function(e){return(0,a.jsx)(h,{...V,...e,className:(0,o.A)("alert alert--warning",e.className),children:e.children})}}};function k(e){const n=i(e),t=(r=n.type,C[r]||(console.warn(`No admonition component found for admonition type "${r}". Using Info as fallback.`),C.info));var r;return(0,a.jsx)(t,{...n})}},19365:(e,n,t)=>{t.d(n,{A:()=>o});t(96540);var r=t(18215);const a={tabItem:"tabItem_Ymn6"};var i=t(74848);function o(e){let{children:n,hidden:t,className:o}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.A)(a.tabItem,o),hidden:t,children:n})}},11470:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(96540),a=t(18215),i=t(23104),o=t(56347),l=t(205),s=t(57485),c=t(31682),u=t(70679);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}(t);return function(e){const n=(0,c.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.W6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s.aZ)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function p(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=m(e),[o,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i}))),[c,d]=f({queryString:t,groupId:a}),[p,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,u.Dv)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),b=(()=>{const e=c??p;return h({value:e,tabValues:i})?e:null})();(0,l.A)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),v(e)}),[d,v,i]),tabValues:i}}var v=t(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(74848);function g(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:l}=e;const s=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),u=e=>{const n=e.currentTarget,t=s.indexOf(n),a=l[t].value;a!==r&&(c(n),o(a))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:i}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>s.push(e),onKeyDown:d,onClick:u,...i,className:(0,a.A)("tabs__item",b.tabItem,i?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function j(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function y(e){const n=p(e);return(0,x.jsxs)("div",{className:(0,a.A)("tabs-container",b.tabList),children:[(0,x.jsx)(g,{...n,...e}),(0,x.jsx)(j,{...n,...e})]})}function w(e){const n=(0,v.A)();return(0,x.jsx)(y,{...e,children:d(e.children)},String(n))}},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var r=t(96540);const a={},i=r.createContext(a);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},4476:e=>{e.exports={rE:"4.13.0"}}}]);
\ No newline at end of file
+"use strict";(self.webpackChunkuppy_io=self.webpackChunkuppy_io||[]).push([[2057],{27293:(e,n,t)=>{t.d(n,{A:()=>k});var r=t(96540),a=t(74848);function i(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=r.Children.toArray(e),t=n.find((e=>r.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),i=n.filter((e=>e!==t)),o=t?.props.children;return{mdxAdmonitionTitle:o,rest:i.length>0?(0,a.jsx)(a.Fragment,{children:i}):null}}(e.children),i=e.title??n;return{...e,...i&&{title:i},children:t}}var o=t(18215),l=t(21312),s=t(17559);const c={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function u(e){let{type:n,className:t,children:r}=e;return(0,a.jsx)("div",{className:(0,o.A)(s.G.common.admonition,s.G.common.admonitionType(n),c.admonition,t),children:r})}function d(e){let{icon:n,title:t}=e;return(0,a.jsxs)("div",{className:c.admonitionHeading,children:[(0,a.jsx)("span",{className:c.admonitionIcon,children:n}),t]})}function m(e){let{children:n}=e;return n?(0,a.jsx)("div",{className:c.admonitionContent,children:n}):null}function h(e){const{type:n,icon:t,title:r,children:i,className:o}=e;return(0,a.jsxs)(u,{type:n,className:o,children:[r||t?(0,a.jsx)(d,{title:r,icon:t}):null,(0,a.jsx)(m,{children:i})]})}function f(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,a.jsx)(f,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function v(e){return(0,a.jsx)(h,{...p,...e,className:(0,o.A)("alert alert--secondary",e.className),children:e.children})}function b(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const x={icon:(0,a.jsx)(b,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function g(e){return(0,a.jsx)(h,{...x,...e,className:(0,o.A)("alert alert--success",e.className),children:e.children})}function j(e){return(0,a.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const y={icon:(0,a.jsx)(j,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function w(e){return(0,a.jsx)(h,{...y,...e,className:(0,o.A)("alert alert--info",e.className),children:e.children})}function A(e){return(0,a.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const N={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function T(e){return(0,a.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,a.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const I={icon:(0,a.jsx)(T,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const V={icon:(0,a.jsx)(A,{}),title:(0,a.jsx)(l.A,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const C={...{note:v,tip:g,info:w,warning:function(e){return(0,a.jsx)(h,{...N,...e,className:(0,o.A)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,a.jsx)(h,{...I,...e,className:(0,o.A)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,a.jsx)(v,{title:"secondary",...e}),important:e=>(0,a.jsx)(w,{title:"important",...e}),success:e=>(0,a.jsx)(g,{title:"success",...e}),caution:function(e){return(0,a.jsx)(h,{...V,...e,className:(0,o.A)("alert alert--warning",e.className),children:e.children})}}};function k(e){const n=i(e),t=(r=n.type,C[r]||(console.warn(`No admonition component found for admonition type "${r}". Using Info as fallback.`),C.info));var r;return(0,a.jsx)(t,{...n})}},19365:(e,n,t)=>{t.d(n,{A:()=>o});t(96540);var r=t(18215);const a={tabItem:"tabItem_Ymn6"};var i=t(74848);function o(e){let{children:n,hidden:t,className:o}=e;return(0,i.jsx)("div",{role:"tabpanel",className:(0,r.A)(a.tabItem,o),hidden:t,children:n})}},11470:(e,n,t)=>{t.d(n,{A:()=>w});var r=t(96540),a=t(18215),i=t(23104),o=t(56347),l=t(205),s=t(57485),c=t(31682),u=t(70679);function d(e){return r.Children.toArray(e).filter((e=>"\n"!==e)).map((e=>{if(!e||(0,r.isValidElement)(e)&&function(e){const{props:n}=e;return!!n&&"object"==typeof n&&"value"in n}(e))return e;throw new Error(`Docusaurus error: Bad child <${"string"==typeof e.type?e.type:e.type.name}>: all children of the component should be , and every should have a unique "value" prop.`)}))?.filter(Boolean)??[]}function m(e){const{values:n,children:t}=e;return(0,r.useMemo)((()=>{const e=n??function(e){return d(e).map((e=>{let{props:{value:n,label:t,attributes:r,default:a}}=e;return{value:n,label:t,attributes:r,default:a}}))}(t);return function(e){const n=(0,c.X)(e,((e,n)=>e.value===n.value));if(n.length>0)throw new Error(`Docusaurus error: Duplicate values "${n.map((e=>e.value)).join(", ")}" found in . Every value needs to be unique.`)}(e),e}),[n,t])}function h(e){let{value:n,tabValues:t}=e;return t.some((e=>e.value===n))}function f(e){let{queryString:n=!1,groupId:t}=e;const a=(0,o.W6)(),i=function(e){let{queryString:n=!1,groupId:t}=e;if("string"==typeof n)return n;if(!1===n)return null;if(!0===n&&!t)throw new Error('Docusaurus error: The component groupId prop is required if queryString=true, because this value is used as the search param name. You can also provide an explicit value such as queryString="my-search-param".');return t??null}({queryString:n,groupId:t});return[(0,s.aZ)(i),(0,r.useCallback)((e=>{if(!i)return;const n=new URLSearchParams(a.location.search);n.set(i,e),a.replace({...a.location,search:n.toString()})}),[i,a])]}function p(e){const{defaultValue:n,queryString:t=!1,groupId:a}=e,i=m(e),[o,s]=(0,r.useState)((()=>function(e){let{defaultValue:n,tabValues:t}=e;if(0===t.length)throw new Error("Docusaurus error: the component requires at least one children component");if(n){if(!h({value:n,tabValues:t}))throw new Error(`Docusaurus error: The has a defaultValue "${n}" but none of its children has the corresponding value. Available values are: ${t.map((e=>e.value)).join(", ")}. If you intend to show no default tab, use defaultValue={null} instead.`);return n}const r=t.find((e=>e.default))??t[0];if(!r)throw new Error("Unexpected error: 0 tabValues");return r.value}({defaultValue:n,tabValues:i}))),[c,d]=f({queryString:t,groupId:a}),[p,v]=function(e){let{groupId:n}=e;const t=function(e){return e?`docusaurus.tab.${e}`:null}(n),[a,i]=(0,u.Dv)(t);return[a,(0,r.useCallback)((e=>{t&&i.set(e)}),[t,i])]}({groupId:a}),b=(()=>{const e=c??p;return h({value:e,tabValues:i})?e:null})();(0,l.A)((()=>{b&&s(b)}),[b]);return{selectedValue:o,selectValue:(0,r.useCallback)((e=>{if(!h({value:e,tabValues:i}))throw new Error(`Can't select invalid tab value=${e}`);s(e),d(e),v(e)}),[d,v,i]),tabValues:i}}var v=t(92303);const b={tabList:"tabList__CuJ",tabItem:"tabItem_LNqP"};var x=t(74848);function g(e){let{className:n,block:t,selectedValue:r,selectValue:o,tabValues:l}=e;const s=[],{blockElementScrollPositionUntilNextRender:c}=(0,i.a_)(),u=e=>{const n=e.currentTarget,t=s.indexOf(n),a=l[t].value;a!==r&&(c(n),o(a))},d=e=>{let n=null;switch(e.key){case"Enter":u(e);break;case"ArrowRight":{const t=s.indexOf(e.currentTarget)+1;n=s[t]??s[0];break}case"ArrowLeft":{const t=s.indexOf(e.currentTarget)-1;n=s[t]??s[s.length-1];break}}n?.focus()};return(0,x.jsx)("ul",{role:"tablist","aria-orientation":"horizontal",className:(0,a.A)("tabs",{"tabs--block":t},n),children:l.map((e=>{let{value:n,label:t,attributes:i}=e;return(0,x.jsx)("li",{role:"tab",tabIndex:r===n?0:-1,"aria-selected":r===n,ref:e=>s.push(e),onKeyDown:d,onClick:u,...i,className:(0,a.A)("tabs__item",b.tabItem,i?.className,{"tabs__item--active":r===n}),children:t??n},n)}))})}function j(e){let{lazy:n,children:t,selectedValue:a}=e;const i=(Array.isArray(t)?t:[t]).filter(Boolean);if(n){const e=i.find((e=>e.props.value===a));return e?(0,r.cloneElement)(e,{className:"margin-top--md"}):null}return(0,x.jsx)("div",{className:"margin-top--md",children:i.map(((e,n)=>(0,r.cloneElement)(e,{key:n,hidden:e.props.value!==a})))})}function y(e){const n=p(e);return(0,x.jsxs)("div",{className:(0,a.A)("tabs-container",b.tabList),children:[(0,x.jsx)(g,{...n,...e}),(0,x.jsx)(j,{...n,...e})]})}function w(e){const n=(0,v.A)();return(0,x.jsx)(y,{...e,children:d(e.children)},String(n))}},28453:(e,n,t)=>{t.d(n,{R:()=>o,x:()=>l});var r=t(96540);const a={},i=r.createContext(a);function o(e){const n=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),r.createElement(i.Provider,{value:n},e.children)}},4476:e=>{e.exports={rE:"4.13.1"}}}]);
\ No newline at end of file
diff --git a/assets/js/250.5220c303.js b/assets/js/250.83bf524f.js
similarity index 99%
rename from assets/js/250.5220c303.js
rename to assets/js/250.83bf524f.js
index 8ba6da3e3..704672b1b 100644
--- a/assets/js/250.5220c303.js
+++ b/assets/js/250.83bf524f.js
@@ -1,2 +1,2 @@
-/*! For license information please see 250.5220c303.js.LICENSE.txt */
-(self.webpackChunkuppy_io=self.webpackChunkuppy_io||[]).push([[250],{78505:e=>{"use strict";e.exports=function(e){if("number"!=typeof e||Number.isNaN(e))throw new TypeError("Expected a number, got "+typeof e);const t=e<0,i=["B","KB","MB","GB","TB","PB","EB","ZB","YB"];if(t&&(e=-e),e<1)return(t?"-":"")+e+" B";const r=Math.min(Math.floor(Math.log(e)/Math.log(1024)),i.length-1);e=Number(e/1024**r);const n=i[r];return e>=10||e%1==0?`${(t?"-":"")+e.toFixed(0)} ${n}`:`${(t?"-":"")+e.toFixed(1)} ${n}`}},78478:(e,t,i)=>{"use strict";i.d(t,{A:()=>o});i(96540);var r=i(92303),n=i(74848);function o(e){let{children:t,fallback:i}=e;return(0,r.A)()?(0,n.jsx)(n.Fragment,{children:t?.()}):i??null}},65643:function(e){e.exports=function(){"use strict";function e(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,r)}return i}function t(t){for(var i=1;ie.length)&&(t=e.length);for(var i=0,r=new Array(t);i
',fe=Number.isNaN||g.isNaN;function me(e){return"number"==typeof e&&!fe(e)}var ge=function(e){return e>0&&e<1/0};function ye(e){return void 0===e}function ve(e){return"object"===n(e)&&null!==e}var be=Object.prototype.hasOwnProperty;function we(e){if(!ve(e))return!1;try{var t=e.constructor,i=t.prototype;return t&&i&&be.call(i,"isPrototypeOf")}catch(r){return!1}}function Se(e){return"function"==typeof e}var Pe=Array.prototype.slice;function _e(e){return Array.from?Array.from(e):Pe.call(e)}function Ce(e,t){return e&&Se(t)&&(Array.isArray(e)||me(e.length)?_e(e).forEach((function(i,r){t.call(e,i,r,e)})):ve(e)&&Object.keys(e).forEach((function(i){t.call(e,e[i],i,e)}))),e}var ke=Object.assign||function(e){for(var t=arguments.length,i=new Array(t>1?t-1:0),r=1;r0&&i.forEach((function(t){ve(t)&&Object.keys(t).forEach((function(i){e[i]=t[i]}))})),e},Fe=/\.\d*(?:0|9){12}\d*$/;function xe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e11;return Fe.test(e)?Math.round(e*t)/t:e}var Te=/^width|height|left|top|marginLeft|marginTop$/;function Ae(e,t){var i=e.style;Ce(t,(function(e,t){Te.test(t)&&me(e)&&(e="".concat(e,"px")),i[t]=e}))}function Ee(e,t){return e.classList?e.classList.contains(t):e.className.indexOf(t)>-1}function Oe(e,t){if(t)if(me(e.length))Ce(e,(function(e){Oe(e,t)}));else if(e.classList)e.classList.add(t);else{var i=e.className.trim();i?i.indexOf(t)<0&&(e.className="".concat(i," ").concat(t)):e.className=t}}function Ie(e,t){t&&(me(e.length)?Ce(e,(function(e){Ie(e,t)})):e.classList?e.classList.remove(t):e.className.indexOf(t)>=0&&(e.className=e.className.replace(t,"")))}function Re(e,t,i){t&&(me(e.length)?Ce(e,(function(e){Re(e,t,i)})):i?Oe(e,t):Ie(e,t))}var De=/([a-z\d])([A-Z])/g;function Ue(e){return e.replace(De,"$1-$2").toLowerCase()}function Ne(e,t){return ve(e[t])?e[t]:e.dataset?e.dataset[t]:e.getAttribute("data-".concat(Ue(t)))}function Me(e,t,i){ve(i)?e[t]=i:e.dataset?e.dataset[t]=i:e.setAttribute("data-".concat(Ue(t)),i)}function Le(e,t){if(ve(e[t]))try{delete e[t]}catch(i){e[t]=void 0}else if(e.dataset)try{delete e.dataset[t]}catch(i){e.dataset[t]=void 0}else e.removeAttribute("data-".concat(Ue(t)))}var Be=/\s\s*/,ze=function(){var e=!1;if(m){var t=!1,i=function(){},r=Object.defineProperty({},"once",{get:function(){return e=!0,t},set:function(e){t=e}});g.addEventListener("test",i,r),g.removeEventListener("test",i,r)}return e}();function je(e,t,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=i;t.trim().split(Be).forEach((function(t){if(!ze){var o=e.listeners;o&&o[t]&&o[t][i]&&(n=o[t][i],delete o[t][i],0===Object.keys(o[t]).length&&delete o[t],0===Object.keys(o).length&&delete e.listeners)}e.removeEventListener(t,n,r)}))}function He(e,t,i){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=i;t.trim().split(Be).forEach((function(t){if(r.once&&!ze){var o=e.listeners,s=void 0===o?{}:o;n=function(){delete s[t][i],e.removeEventListener(t,n,r);for(var o=arguments.length,a=new Array(o),l=0;lMath.abs(r)&&(r=l)}))})),r}function Je(e,i){var r=e.pageX,n=e.pageY,o={endX:r,endY:n};return i?o:t({startX:r,startY:n},o)}function Qe(e){var t=0,i=0,r=0;return Ce(e,(function(e){var n=e.startX,o=e.startY;t+=n,i+=o,r+=1})),{pageX:t/=r,pageY:i/=r}}function Ze(e){var t=e.aspectRatio,i=e.height,r=e.width,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"contain",o=ge(r),s=ge(i);if(o&&s){var a=i*t;"contain"===n&&a>r||"cover"===n&&a90?{width:l,height:a}:{width:a,height:l}}function tt(e,t,i,r){var n=t.aspectRatio,o=t.naturalWidth,s=t.naturalHeight,a=t.rotate,l=void 0===a?0:a,h=t.scaleX,c=void 0===h?1:h,p=t.scaleY,d=void 0===p?1:p,f=i.aspectRatio,m=i.naturalWidth,g=i.naturalHeight,y=r.fillColor,v=void 0===y?"transparent":y,b=r.imageSmoothingEnabled,w=void 0===b||b,S=r.imageSmoothingQuality,P=void 0===S?"low":S,_=r.maxWidth,C=void 0===_?1/0:_,k=r.maxHeight,F=void 0===k?1/0:k,x=r.minWidth,T=void 0===x?0:x,A=r.minHeight,E=void 0===A?0:A,O=document.createElement("canvas"),I=O.getContext("2d"),R=Ze({aspectRatio:f,width:C,height:F}),D=Ze({aspectRatio:f,width:T,height:E},"cover"),U=Math.min(R.width,Math.max(D.width,m)),N=Math.min(R.height,Math.max(D.height,g)),M=Ze({aspectRatio:n,width:C,height:F}),L=Ze({aspectRatio:n,width:T,height:E},"cover"),B=Math.min(M.width,Math.max(L.width,o)),z=Math.min(M.height,Math.max(L.height,s)),j=[-B/2,-z/2,B,z];return O.width=xe(U),O.height=xe(N),I.fillStyle=v,I.fillRect(0,0,U,N),I.save(),I.translate(U/2,N/2),I.rotate(l*Math.PI/180),I.scale(c,d),I.imageSmoothingEnabled=w,I.imageSmoothingQuality=P,I.drawImage.apply(I,[e].concat(u(j.map((function(e){return Math.floor(xe(e))}))))),I.restore(),O}var it=String.fromCharCode;function rt(e,t,i){var r="";i+=t;for(var n=t;n0;)i.push(it.apply(null,_e(n.subarray(0,r)))),n=n.subarray(r);return"data:".concat(t,";base64,").concat(btoa(i.join("")))}function at(e){var t,i=new DataView(e);try{var r,n,o;if(255===i.getUint8(0)&&216===i.getUint8(1))for(var s=i.byteLength,a=2;a+1=8&&(o=l+h)}}}if(o){var c,p,d=i.getUint16(o,r);for(p=0;p=0?n:he),height:Math.max(i.offsetHeight,o>=0?o:ce)};this.containerData=s,Ae(r,{width:s.width,height:s.height}),Oe(e,D),Ie(r,D)},initCanvas:function(){var e=this.containerData,t=this.imageData,i=this.options.viewMode,r=Math.abs(t.rotate)%180==90,n=r?t.naturalHeight:t.naturalWidth,o=r?t.naturalWidth:t.naturalHeight,s=n/o,a=e.width,l=e.height;e.height*s>e.width?3===i?a=e.height*s:l=e.width/s:3===i?l=e.width/s:a=e.height*s;var u={aspectRatio:s,naturalWidth:n,naturalHeight:o,width:a,height:l};this.canvasData=u,this.limited=1===i||2===i,this.limitCanvas(!0,!0),u.width=Math.min(Math.max(u.width,u.minWidth),u.maxWidth),u.height=Math.min(Math.max(u.height,u.minHeight),u.maxHeight),u.left=(e.width-u.width)/2,u.top=(e.height-u.height)/2,u.oldLeft=u.left,u.oldTop=u.top,this.initialCanvasData=ke({},u)},limitCanvas:function(e,t){var i=this.options,r=this.containerData,n=this.canvasData,o=this.cropBoxData,s=i.viewMode,a=n.aspectRatio,l=this.cropped&&o;if(e){var u=Number(i.minCanvasWidth)||0,h=Number(i.minCanvasHeight)||0;s>1?(u=Math.max(u,r.width),h=Math.max(h,r.height),3===s&&(h*a>u?u=h*a:h=u/a)):s>0&&(u?u=Math.max(u,l?o.width:0):h?h=Math.max(h,l?o.height:0):l&&(u=o.width,(h=o.height)*a>u?u=h*a:h=u/a));var c=Ze({aspectRatio:a,width:u,height:h});u=c.width,h=c.height,n.minWidth=u,n.minHeight=h,n.maxWidth=1/0,n.maxHeight=1/0}if(t)if(s>(l?0:1)){var p=r.width-n.width,d=r.height-n.height;n.minLeft=Math.min(0,p),n.minTop=Math.min(0,d),n.maxLeft=Math.max(0,p),n.maxTop=Math.max(0,d),l&&this.limited&&(n.minLeft=Math.min(o.left,o.left+(o.width-n.width)),n.minTop=Math.min(o.top,o.top+(o.height-n.height)),n.maxLeft=o.left,n.maxTop=o.top,2===s&&(n.width>=r.width&&(n.minLeft=Math.min(0,p),n.maxLeft=Math.max(0,p)),n.height>=r.height&&(n.minTop=Math.min(0,d),n.maxTop=Math.max(0,d))))}else n.minLeft=-n.width,n.minTop=-n.height,n.maxLeft=r.width,n.maxTop=r.height},renderCanvas:function(e,t){var i=this.canvasData,r=this.imageData;if(t){var n=et({width:r.naturalWidth*Math.abs(r.scaleX||1),height:r.naturalHeight*Math.abs(r.scaleY||1),degree:r.rotate||0}),o=n.width,s=n.height,a=i.width*(o/i.naturalWidth),l=i.height*(s/i.naturalHeight);i.left-=(a-i.width)/2,i.top-=(l-i.height)/2,i.width=a,i.height=l,i.aspectRatio=o/s,i.naturalWidth=o,i.naturalHeight=s,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heightt.width?n.height=n.width/i:n.width=n.height*i),this.cropBoxData=n,this.limitCropBox(!0,!0),n.width=Math.min(Math.max(n.width,n.minWidth),n.maxWidth),n.height=Math.min(Math.max(n.height,n.minHeight),n.maxHeight),n.width=Math.max(n.minWidth,n.width*r),n.height=Math.max(n.minHeight,n.height*r),n.left=t.left+(t.width-n.width)/2,n.top=t.top+(t.height-n.height)/2,n.oldLeft=n.left,n.oldTop=n.top,this.initialCropBoxData=ke({},n)},limitCropBox:function(e,t){var i=this.options,r=this.containerData,n=this.canvasData,o=this.cropBoxData,s=this.limited,a=i.aspectRatio;if(e){var l=Number(i.minCropBoxWidth)||0,u=Number(i.minCropBoxHeight)||0,h=s?Math.min(r.width,n.width,n.width+n.left,r.width-n.left):r.width,c=s?Math.min(r.height,n.height,n.height+n.top,r.height-n.top):r.height;l=Math.min(l,r.width),u=Math.min(u,r.height),a&&(l&&u?u*a>l?u=l/a:l=u*a:l?u=l/a:u&&(l=u*a),c*a>h?c=h/a:h=c*a),o.minWidth=Math.min(l,h),o.minHeight=Math.min(u,c),o.maxWidth=h,o.maxHeight=c}t&&(s?(o.minLeft=Math.max(0,n.left),o.minTop=Math.max(0,n.top),o.maxLeft=Math.min(r.width,n.left+n.width)-o.width,o.maxTop=Math.min(r.height,n.top+n.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=r.width-o.width,o.maxTop=r.height-o.height))},renderCropBox:function(){var e=this.options,t=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=t.width&&i.height>=t.height?P:w),Ae(this.cropBox,ke({width:i.width,height:i.height},Xe({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),qe(this.element,$,this.getData())}},ht={initPreview:function(){var e=this.element,t=this.crossOrigin,i=this.options.preview,r=t?this.crossOriginUrl:this.url,n=e.alt||"The image to preview",o=document.createElement("img");if(t&&(o.crossOrigin=t),o.src=r,o.alt=n,this.viewBox.appendChild(o),this.viewBoxImage=o,i){var s=i;"string"==typeof i?s=e.ownerDocument.querySelectorAll(i):i.querySelector&&(s=[i]),this.previews=s,Ce(s,(function(e){var i=document.createElement("img");Me(e,z,{width:e.offsetWidth,height:e.offsetHeight,html:e.innerHTML}),t&&(i.crossOrigin=t),i.src=r,i.alt=n,i.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',e.innerHTML="",e.appendChild(i)}))}},resetPreview:function(){Ce(this.previews,(function(e){var t=Ne(e,z);Ae(e,{width:t.width,height:t.height}),e.innerHTML=t.html,Le(e,z)}))},preview:function(){var e=this.imageData,t=this.canvasData,i=this.cropBoxData,r=i.width,n=i.height,o=e.width,s=e.height,a=i.left-t.left-e.left,l=i.top-t.top-e.top;this.cropped&&!this.disabled&&(Ae(this.viewBoxImage,ke({width:o,height:s},Xe(ke({translateX:-a,translateY:-l},e)))),Ce(this.previews,(function(t){var i=Ne(t,z),u=i.width,h=i.height,c=u,p=h,d=1;r&&(p=n*(d=u/r)),n&&p>h&&(c=r*(d=h/n),p=h),Ae(t,{width:c,height:p}),Ae(t.getElementsByTagName("img")[0],ke({width:o*d,height:s*d},Xe(ke({translateX:-a*d,translateY:-l*d},e))))})))}},ct={bind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&He(e,G,t.cropstart),Se(t.cropmove)&&He(e,W,t.cropmove),Se(t.cropend)&&He(e,V,t.cropend),Se(t.crop)&&He(e,$,t.crop),Se(t.zoom)&&He(e,ne,t.zoom),He(i,Q,this.onCropStart=this.cropStart.bind(this)),t.zoomable&&t.zoomOnWheel&&He(i,re,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&He(i,K,this.onDblclick=this.dblclick.bind(this)),He(e.ownerDocument,Z,this.onCropMove=this.cropMove.bind(this)),He(e.ownerDocument,ee,this.onCropEnd=this.cropEnd.bind(this)),t.responsive&&He(window,ie,this.onResize=this.resize.bind(this))},unbind:function(){var e=this.element,t=this.options,i=this.cropper;Se(t.cropstart)&&je(e,G,t.cropstart),Se(t.cropmove)&&je(e,W,t.cropmove),Se(t.cropend)&&je(e,V,t.cropend),Se(t.crop)&&je(e,$,t.crop),Se(t.zoom)&&je(e,ne,t.zoom),je(i,Q,this.onCropStart),t.zoomable&&t.zoomOnWheel&&je(i,re,this.onWheel,{passive:!1,capture:!0}),t.toggleDragModeOnDblclick&&je(i,K,this.onDblclick),je(e.ownerDocument,Z,this.onCropMove),je(e.ownerDocument,ee,this.onCropEnd),t.responsive&&je(window,ie,this.onResize)}},pt={resize:function(){if(!this.disabled){var e,t,i=this.options,r=this.container,n=this.containerData,o=r.offsetWidth/n.width,s=r.offsetHeight/n.height,a=Math.abs(o-1)>Math.abs(s-1)?o:s;1!==a&&(i.restore&&(e=this.getCanvasData(),t=this.getCropBoxData()),this.render(),i.restore&&(this.setCanvasData(Ce(e,(function(t,i){e[i]=t*a}))),this.setCropBoxData(Ce(t,(function(e,i){t[i]=e*a})))))}},dblclick:function(){this.disabled||this.options.dragMode===q||this.setDragMode(Ee(this.dragBox,I)?H:j)},wheel:function(e){var t=this,i=Number(this.options.wheelZoomRatio)||.1,r=1;this.disabled||(e.preventDefault(),this.wheeling||(this.wheeling=!0,setTimeout((function(){t.wheeling=!1}),50),e.deltaY?r=e.deltaY>0?1:-1:e.wheelDelta?r=-e.wheelDelta/120:e.detail&&(r=e.detail>0?1:-1),this.zoom(-r*i,e)))},cropStart:function(e){var t=e.buttons,i=e.button;if(!(this.disabled||("mousedown"===e.type||"pointerdown"===e.type&&"mouse"===e.pointerType)&&(me(t)&&1!==t||me(i)&&0!==i||e.ctrlKey))){var r,n=this.options,o=this.pointers;e.changedTouches?Ce(e.changedTouches,(function(e){o[e.identifier]=Je(e)})):o[e.pointerId||0]=Je(e),r=Object.keys(o).length>1&&n.zoomable&&n.zoomOnTouch?_:Ne(e.target,B),se.test(r)&&!1!==qe(this.element,G,{originalEvent:e,action:r})&&(e.preventDefault(),this.action=r,this.cropping=!1,r===S&&(this.cropping=!0,Oe(this.dragBox,M)))}},cropMove:function(e){var t=this.action;if(!this.disabled&&t){var i=this.pointers;e.preventDefault(),!1!==qe(this.element,W,{originalEvent:e,action:t})&&(e.changedTouches?Ce(e.changedTouches,(function(e){ke(i[e.identifier]||{},Je(e,!0))})):ke(i[e.pointerId||0]||{},Je(e,!0)),this.change(e))}},cropEnd:function(e){if(!this.disabled){var t=this.action,i=this.pointers;e.changedTouches?Ce(e.changedTouches,(function(e){delete i[e.identifier]})):delete i[e.pointerId||0],t&&(e.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,Re(this.dragBox,M,this.cropped&&this.options.modal)),qe(this.element,V,{originalEvent:e,action:t}))}}},dt={change:function(e){var t,i=this.options,r=this.canvasData,n=this.containerData,o=this.cropBoxData,s=this.pointers,a=this.action,l=i.aspectRatio,u=o.left,h=o.top,c=o.width,p=o.height,d=u+c,f=h+p,m=0,g=0,y=n.width,v=n.height,b=!0;!l&&e.shiftKey&&(l=c&&p?c/p:1),this.limited&&(m=o.minLeft,g=o.minTop,y=m+Math.min(n.width,r.width,r.left+r.width),v=g+Math.min(n.height,r.height,r.top+r.height));var I=s[Object.keys(s)[0]],R={x:I.endX-I.startX,y:I.endY-I.startY},U=function(e){switch(e){case C:d+R.x>y&&(R.x=y-d);break;case k:u+R.xv&&(R.y=v-f)}};switch(a){case w:u+=R.x,h+=R.y;break;case C:if(R.x>=0&&(d>=y||l&&(h<=g||f>=v))){b=!1;break}U(C),(c+=R.x)<0&&(a=k,u-=c=-c),l&&(p=c/l,h+=(o.height-p)/2);break;case x:if(R.y<=0&&(h<=g||l&&(u<=m||d>=y))){b=!1;break}U(x),p-=R.y,h+=R.y,p<0&&(a=F,h-=p=-p),l&&(c=p*l,u+=(o.width-c)/2);break;case k:if(R.x<=0&&(u<=m||l&&(h<=g||f>=v))){b=!1;break}U(k),c-=R.x,u+=R.x,c<0&&(a=C,u-=c=-c),l&&(p=c/l,h+=(o.height-p)/2);break;case F:if(R.y>=0&&(f>=v||l&&(u<=m||d>=y))){b=!1;break}U(F),(p+=R.y)<0&&(a=x,h-=p=-p),l&&(c=p*l,u+=(o.width-c)/2);break;case T:if(l){if(R.y<=0&&(h<=g||d>=y)){b=!1;break}U(x),p-=R.y,h+=R.y,c=p*l}else U(x),U(C),R.x>=0?dg&&(p-=R.y,h+=R.y):(p-=R.y,h+=R.y);c<0&&p<0?(a=O,h-=p=-p,u-=c=-c):c<0?(a=A,u-=c=-c):p<0&&(a=E,h-=p=-p);break;case A:if(l){if(R.y<=0&&(h<=g||u<=m)){b=!1;break}U(x),p-=R.y,h+=R.y,c=p*l,u+=o.width-c}else U(x),U(k),R.x<=0?u>m?(c-=R.x,u+=R.x):R.y<=0&&h<=g&&(b=!1):(c-=R.x,u+=R.x),R.y<=0?h>g&&(p-=R.y,h+=R.y):(p-=R.y,h+=R.y);c<0&&p<0?(a=E,h-=p=-p,u-=c=-c):c<0?(a=T,u-=c=-c):p<0&&(a=O,h-=p=-p);break;case O:if(l){if(R.x<=0&&(u<=m||f>=v)){b=!1;break}U(k),c-=R.x,u+=R.x,p=c/l}else U(F),U(k),R.x<=0?u>m?(c-=R.x,u+=R.x):R.y>=0&&f>=v&&(b=!1):(c-=R.x,u+=R.x),R.y>=0?f=0&&(d>=y||f>=v)){b=!1;break}U(C),p=(c+=R.x)/l}else U(F),U(C),R.x>=0?d=0&&f>=v&&(b=!1):c+=R.x,R.y>=0?f0?a=R.y>0?E:T:R.x<0&&(u-=c,a=R.y>0?O:A),R.y<0&&(h-=p),this.cropped||(Ie(this.cropBox,D),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}b&&(o.width=c,o.height=p,o.left=u,o.top=h,this.action=a,this.renderCropBox()),Ce(s,(function(e){e.startX=e.endX,e.startY=e.endY}))}},ft={crop:function(){return!this.ready||this.cropped||this.disabled||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Oe(this.dragBox,M),Ie(this.cropBox,D),this.setCropBoxData(this.initialCropBoxData)),this},reset:function(){return this.ready&&!this.disabled&&(this.imageData=ke({},this.initialImageData),this.canvasData=ke({},this.initialCanvasData),this.cropBoxData=ke({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this},clear:function(){return this.cropped&&!this.disabled&&(ke(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0),this.renderCanvas(),Ie(this.dragBox,M),Oe(this.cropBox,D)),this},replace:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!this.disabled&&e&&(this.isImg&&(this.element.src=e),t?(this.url=e,this.image.src=e,this.ready&&(this.viewBoxImage.src=e,Ce(this.previews,(function(t){t.getElementsByTagName("img")[0].src=e})))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(e))),this},enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Ie(this.cropper,R)),this},disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Oe(this.cropper,R)),this},destroy:function(){var e=this.element;return e[b]?(e[b]=void 0,this.isImg&&this.replaced&&(e.src=this.originalUrl),this.uncreate(),this):this},move:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,i=this.canvasData,r=i.left,n=i.top;return this.moveTo(ye(e)?e:r+Number(e),ye(t)?t:n+Number(t))},moveTo:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,i=this.canvasData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.movable&&(me(e)&&(i.left=e,r=!0),me(t)&&(i.top=t,r=!0),r&&this.renderCanvas(!0)),this},zoom:function(e,t){var i=this.canvasData;return e=(e=Number(e))<0?1/(1-e):1+e,this.zoomTo(i.width*e/i.naturalWidth,null,t)},zoomTo:function(e,t,i){var r=this.options,n=this.canvasData,o=n.width,s=n.height,a=n.naturalWidth,l=n.naturalHeight;if((e=Number(e))>=0&&this.ready&&!this.disabled&&r.zoomable){var u=a*e,h=l*e;if(!1===qe(this.element,ne,{ratio:e,oldRatio:o/a,originalEvent:i}))return this;if(i){var c=this.pointers,p=$e(this.cropper),d=c&&Object.keys(c).length?Qe(c):{pageX:i.pageX,pageY:i.pageY};n.left-=(u-o)*((d.pageX-p.left-n.left)/o),n.top-=(h-s)*((d.pageY-p.top-n.top)/s)}else we(t)&&me(t.x)&&me(t.y)?(n.left-=(u-o)*((t.x-n.left)/o),n.top-=(h-s)*((t.y-n.top)/s)):(n.left-=(u-o)/2,n.top-=(h-s)/2);n.width=u,n.height=h,this.renderCanvas(!0)}return this},rotate:function(e){return this.rotateTo((this.imageData.rotate||0)+Number(e))},rotateTo:function(e){return me(e=Number(e))&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=e%360,this.renderCanvas(!0,!0)),this},scaleX:function(e){var t=this.imageData.scaleY;return this.scale(e,me(t)?t:1)},scaleY:function(e){var t=this.imageData.scaleX;return this.scale(me(t)?t:1,e)},scale:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,i=this.imageData,r=!1;return e=Number(e),t=Number(t),this.ready&&!this.disabled&&this.options.scalable&&(me(e)&&(i.scaleX=e,r=!0),me(t)&&(i.scaleY=t,r=!0),r&&this.renderCanvas(!0,!0)),this},getData:function(){var e,t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.options,r=this.imageData,n=this.canvasData,o=this.cropBoxData;if(this.ready&&this.cropped){e={x:o.left-n.left,y:o.top-n.top,width:o.width,height:o.height};var s=r.width/r.naturalWidth;if(Ce(e,(function(t,i){e[i]=t/s})),t){var a=Math.round(e.y+e.height),l=Math.round(e.x+e.width);e.x=Math.round(e.x),e.y=Math.round(e.y),e.width=l-e.x,e.height=a-e.y}}else e={x:0,y:0,width:0,height:0};return i.rotatable&&(e.rotate=r.rotate||0),i.scalable&&(e.scaleX=r.scaleX||1,e.scaleY=r.scaleY||1),e},setData:function(e){var t=this.options,i=this.imageData,r=this.canvasData,n={};if(this.ready&&!this.disabled&&we(e)){var o=!1;t.rotatable&&me(e.rotate)&&e.rotate!==i.rotate&&(i.rotate=e.rotate,o=!0),t.scalable&&(me(e.scaleX)&&e.scaleX!==i.scaleX&&(i.scaleX=e.scaleX,o=!0),me(e.scaleY)&&e.scaleY!==i.scaleY&&(i.scaleY=e.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var s=i.width/i.naturalWidth;me(e.x)&&(n.left=e.x*s+r.left),me(e.y)&&(n.top=e.y*s+r.top),me(e.width)&&(n.width=e.width*s),me(e.height)&&(n.height=e.height*s),this.setCropBoxData(n)}return this},getContainerData:function(){return this.ready?ke({},this.containerData):{}},getImageData:function(){return this.sized?ke({},this.imageData):{}},getCanvasData:function(){var e=this.canvasData,t={};return this.ready&&Ce(["left","top","width","height","naturalWidth","naturalHeight"],(function(i){t[i]=e[i]})),t},setCanvasData:function(e){var t=this.canvasData,i=t.aspectRatio;return this.ready&&!this.disabled&&we(e)&&(me(e.left)&&(t.left=e.left),me(e.top)&&(t.top=e.top),me(e.width)?(t.width=e.width,t.height=e.width/i):me(e.height)&&(t.height=e.height,t.width=e.height*i),this.renderCanvas(!0)),this},getCropBoxData:function(){var e,t=this.cropBoxData;return this.ready&&this.cropped&&(e={left:t.left,top:t.top,width:t.width,height:t.height}),e||{}},setCropBoxData:function(e){var t,i,r=this.cropBoxData,n=this.options.aspectRatio;return this.ready&&this.cropped&&!this.disabled&&we(e)&&(me(e.left)&&(r.left=e.left),me(e.top)&&(r.top=e.top),me(e.width)&&e.width!==r.width&&(t=!0,r.width=e.width),me(e.height)&&e.height!==r.height&&(i=!0,r.height=e.height),n&&(t?r.height=r.width/n:i&&(r.width=r.height*n)),this.renderCropBox()),this},getCroppedCanvas:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var t=this.canvasData,i=tt(this.image,this.imageData,t,e);if(!this.cropped)return i;var r=this.getData(e.rounded),n=r.x,o=r.y,s=r.width,a=r.height,l=i.width/Math.floor(t.naturalWidth);1!==l&&(n*=l,o*=l,s*=l,a*=l);var h=s/a,c=Ze({aspectRatio:h,width:e.maxWidth||1/0,height:e.maxHeight||1/0}),p=Ze({aspectRatio:h,width:e.minWidth||0,height:e.minHeight||0},"cover"),d=Ze({aspectRatio:h,width:e.width||(1!==l?i.width:s),height:e.height||(1!==l?i.height:a)}),f=d.width,m=d.height;f=Math.min(c.width,Math.max(p.width,f)),m=Math.min(c.height,Math.max(p.height,m));var g=document.createElement("canvas"),y=g.getContext("2d");g.width=xe(f),g.height=xe(m),y.fillStyle=e.fillColor||"transparent",y.fillRect(0,0,f,m);var v=e.imageSmoothingEnabled,b=void 0===v||v,w=e.imageSmoothingQuality;y.imageSmoothingEnabled=b,w&&(y.imageSmoothingQuality=w);var S,P,_,C,k,F,x=i.width,T=i.height,A=n,E=o;A<=-s||A>x?(A=0,S=0,_=0,k=0):A<=0?(_=-A,A=0,k=S=Math.min(x,s+A)):A<=x&&(_=0,k=S=Math.min(s,x-A)),S<=0||E<=-a||E>T?(E=0,P=0,C=0,F=0):E<=0?(C=-E,E=0,F=P=Math.min(T,a+E)):E<=T&&(C=0,F=P=Math.min(a,T-E));var O=[A,E,S,P];if(k>0&&F>0){var I=f/s;O.push(_*I,C*I,k*I,F*I)}return y.drawImage.apply(y,[i].concat(u(O.map((function(e){return Math.floor(xe(e))}))))),g},setAspectRatio:function(e){var t=this.options;return this.disabled||ye(e)||(t.aspectRatio=Math.max(0,e)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this},setDragMode:function(e){var t=this.options,i=this.dragBox,r=this.face;if(this.ready&&!this.disabled){var n=e===j,o=t.movable&&e===H;e=n||o?e:q,t.dragMode=e,Me(i,B,e),Re(i,I,n),Re(i,L,o),t.cropBoxMovable||(Me(r,B,e),Re(r,I,n),Re(r,L,o))}return this}},mt=g.Cropper,gt=function(){function e(t){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o(this,e),!t||!ue.test(t.tagName))throw new Error("The first argument is required and must be an or element.");this.element=t,this.options=ke({},pe,we(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return a(e,[{key:"init",value:function(){var e,t=this.element,i=t.tagName.toLowerCase();if(!t[b]){if(t[b]=this,"img"===i){if(this.isImg=!0,e=t.getAttribute("src")||"",this.originalUrl=e,!e)return;e=t.src}else"canvas"===i&&window.HTMLCanvasElement&&(e=t.toDataURL());this.load(e)}}},{key:"load",value:function(e){var t=this;if(e){this.url=e,this.imageData={};var i=this.element,r=this.options;if(r.rotatable||r.scalable||(r.checkOrientation=!1),r.checkOrientation&&window.ArrayBuffer)if(ae.test(e))le.test(e)?this.read(ot(e)):this.clone();else{var n=new XMLHttpRequest,o=this.clone.bind(this);this.reloading=!0,this.xhr=n,n.onabort=o,n.onerror=o,n.ontimeout=o,n.onprogress=function(){n.getResponseHeader("content-type")!==oe&&n.abort()},n.onload=function(){t.read(n.response)},n.onloadend=function(){t.reloading=!1,t.xhr=null},r.checkCrossOrigin&&Ge(e)&&i.crossOrigin&&(e=Ke(e)),n.open("GET",e,!0),n.responseType="arraybuffer",n.withCredentials="use-credentials"===i.crossOrigin,n.send()}else this.clone()}}},{key:"read",value:function(e){var t=this.options,i=this.imageData,r=at(e),n=0,o=1,s=1;if(r>1){this.url=st(e,oe);var a=lt(r);n=a.rotate,o=a.scaleX,s=a.scaleY}t.rotatable&&(i.rotate=n),t.scalable&&(i.scaleX=o,i.scaleY=s),this.clone()}},{key:"clone",value:function(){var e=this.element,t=this.url,i=e.crossOrigin,r=t;this.options.checkCrossOrigin&&Ge(t)&&(i||(i="anonymous"),r=Ke(t)),this.crossOrigin=i,this.crossOriginUrl=r;var n=document.createElement("img");i&&(n.crossOrigin=i),n.src=r||t,n.alt=e.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),Oe(n,U),e.parentNode.insertBefore(n,e.nextSibling)}},{key:"start",value:function(){var e=this,t=this.image;t.onload=null,t.onerror=null,this.sizing=!0;var i=g.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(g.navigator.userAgent),r=function(t,i){ke(e.imageData,{naturalWidth:t,naturalHeight:i,aspectRatio:t/i}),e.initialImageData=ke({},e.imageData),e.sizing=!1,e.sized=!0,e.build()};if(!t.naturalWidth||i){var n=document.createElement("img"),o=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){r(n.width,n.height),i||o.removeChild(n)},n.src=t.src,i||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",o.appendChild(n))}else r(t.naturalWidth,t.naturalHeight)}},{key:"stop",value:function(){var e=this.image;e.onload=null,e.onerror=null,e.parentNode.removeChild(e),this.image=null}},{key:"build",value:function(){if(this.sized&&!this.ready){var e=this.element,t=this.options,i=this.image,r=e.parentNode,n=document.createElement("div");n.innerHTML=de;var o=n.querySelector(".".concat(b,"-container")),s=o.querySelector(".".concat(b,"-canvas")),a=o.querySelector(".".concat(b,"-drag-box")),l=o.querySelector(".".concat(b,"-crop-box")),u=l.querySelector(".".concat(b,"-face"));this.container=r,this.cropper=o,this.canvas=s,this.dragBox=a,this.cropBox=l,this.viewBox=o.querySelector(".".concat(b,"-view-box")),this.face=u,s.appendChild(i),Oe(e,D),r.insertBefore(o,e.nextSibling),Ie(i,U),this.initPreview(),this.bind(),t.initialAspectRatio=Math.max(0,t.initialAspectRatio)||NaN,t.aspectRatio=Math.max(0,t.aspectRatio)||NaN,t.viewMode=Math.max(0,Math.min(3,Math.round(t.viewMode)))||0,Oe(l,D),t.guides||Oe(l.getElementsByClassName("".concat(b,"-dashed")),D),t.center||Oe(l.getElementsByClassName("".concat(b,"-center")),D),t.background&&Oe(o,"".concat(b,"-bg")),t.highlight||Oe(u,N),t.cropBoxMovable&&(Oe(u,L),Me(u,B,w)),t.cropBoxResizable||(Oe(l.getElementsByClassName("".concat(b,"-line")),D),Oe(l.getElementsByClassName("".concat(b,"-point")),D)),this.render(),this.ready=!0,this.setDragMode(t.dragMode),t.autoCrop&&this.crop(),this.setData(t.data),Se(t.ready)&&He(e,te,t.ready,{once:!0}),qe(e,te)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var e=this.cropper.parentNode;e&&e.removeChild(this.cropper),Ie(this.element,D)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()}}],[{key:"noConflict",value:function(){return window.Cropper=mt,e}},{key:"setDefaults",value:function(e){ke(pe,we(e)&&e)}}])}();return ke(gt.prototype,ut,ht,ct,pt,dt,ft),gt}()},30228:e=>{"use strict";var t=Object.prototype.hasOwnProperty,i="~";function r(){}function n(e,t,i){this.fn=e,this.context=t,this.once=i||!1}function o(e,t,r,o,s){if("function"!=typeof r)throw new TypeError("The listener must be a function");var a=new n(r,o||e,s),l=i?i+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],a]:e._events[l].push(a):(e._events[l]=a,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t]}function a(){this._events=new r,this._eventsCount=0}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(i=!1)),a.prototype.eventNames=function(){var e,r,n=[];if(0===this._eventsCount)return n;for(r in e=this._events)t.call(e,r)&&n.push(i?r.slice(1):r);return Object.getOwnPropertySymbols?n.concat(Object.getOwnPropertySymbols(e)):n},a.prototype.listeners=function(e){var t=i?i+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var n=0,o=r.length,s=new Array(o);n{"use strict";e.exports=n,e.exports.isMobile=n,e.exports.default=n;const t=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,i=/CrOS/,r=/android|ipad|playbook|silk/i;function n(e){e||(e={});let n=e.ua;if(n||"undefined"==typeof navigator||(n=navigator.userAgent),n&&n.headers&&"string"==typeof n.headers["user-agent"]&&(n=n.headers["user-agent"]),"string"!=typeof n)return!1;let o=t.test(n)&&!i.test(n)||!!e.tablet&&r.test(n);return!o&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==n.indexOf("Macintosh")&&-1!==n.indexOf("Safari")&&(o=!0),o}},51873:(e,t,i)=>{var r=i(9325).Symbol;e.exports=r},72552:(e,t,i)=>{var r=i(51873),n=i(659),o=i(59350),s=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":s&&s in Object(e)?n(e):o(e)}},54128:(e,t,i)=>{var r=i(31800),n=/^\s+/;e.exports=function(e){return e?e.slice(0,r(e)+1).replace(n,""):e}},34840:(e,t,i)=>{var r="object"==typeof i.g&&i.g&&i.g.Object===Object&&i.g;e.exports=r},659:(e,t,i)=>{var r=i(51873),n=Object.prototype,o=n.hasOwnProperty,s=n.toString,a=r?r.toStringTag:void 0;e.exports=function(e){var t=o.call(e,a),i=e[a];try{e[a]=void 0;var r=!0}catch(l){}var n=s.call(e);return r&&(t?e[a]=i:delete e[a]),n}},59350:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},9325:(e,t,i)=>{var r=i(34840),n="object"==typeof self&&self&&self.Object===Object&&self,o=r||n||Function("return this")();e.exports=o},31800:e=>{var t=/\s/;e.exports=function(e){for(var i=e.length;i--&&t.test(e.charAt(i)););return i}},38221:(e,t,i)=>{var r=i(23805),n=i(10124),o=i(99374),s=Math.max,a=Math.min;e.exports=function(e,t,i){var l,u,h,c,p,d,f=0,m=!1,g=!1,y=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function v(t){var i=l,r=u;return l=u=void 0,f=t,c=e.apply(r,i)}function b(e){var i=e-d;return void 0===d||i>=t||i<0||g&&e-f>=h}function w(){var e=n();if(b(e))return S(e);p=setTimeout(w,function(e){var i=t-(e-d);return g?a(i,h-(e-f)):i}(e))}function S(e){return p=void 0,y&&l?v(e):(l=u=void 0,c)}function P(){var e=n(),i=b(e);if(l=arguments,u=this,d=e,i){if(void 0===p)return function(e){return f=e,p=setTimeout(w,t),m?v(e):c}(d);if(g)return clearTimeout(p),p=setTimeout(w,t),v(d)}return void 0===p&&(p=setTimeout(w,t)),c}return t=o(t)||0,r(i)&&(m=!!i.leading,h=(g="maxWait"in i)?s(o(i.maxWait)||0,t):h,y="trailing"in i?!!i.trailing:y),P.cancel=function(){void 0!==p&&clearTimeout(p),f=0,l=d=u=p=void 0},P.flush=function(){return void 0===p?c:S(n())},P}},23805:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},40346:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},44394:(e,t,i)=>{var r=i(72552),n=i(40346);e.exports=function(e){return"symbol"==typeof e||n(e)&&"[object Symbol]"==r(e)}},10124:(e,t,i)=>{var r=i(9325);e.exports=function(){return r.Date.now()}},7350:(e,t,i)=>{var r=i(38221),n=i(23805);e.exports=function(e,t,i){var o=!0,s=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return n(i)&&(o="leading"in i?!!i.leading:o,s="trailing"in i?!!i.trailing:s),r(e,t,{leading:o,maxWait:t,trailing:s})}},99374:(e,t,i)=>{var r=i(54128),n=i(23805),o=i(44394),s=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,l=/^0o[0-7]+$/i,u=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(o(e))return NaN;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var i=a.test(e);return i||l.test(e)?u(e.slice(2),i?2:8):s.test(e)?NaN:+e}},37057:(e,t,i)=>{var r=i(27163),n=/[\/\+\.]/;e.exports=function(e,t){function i(t){var i=r(t,e,n);return i&&i.length>=2}return t?i(t.split(";")[0]):i}},10727:()=>{},33835:e=>{e.exports=function(){var e={},t=e._fns={};return e.emit=function(e,i,r,n,o,s,a){var l=function(e){var i=t[e]?t[e]:[],r=e.indexOf(":"),n=-1===r?[e]:[e.substring(0,r),e.substring(r+1)],o=Object.keys(t),s=0,a=o.length;for(;s{"use strict";i.d(t,{FK:()=>P,Ob:()=>q,XX:()=>H,_3:()=>S,fF:()=>n,h:()=>b,uA:()=>_,v2:()=>O});var r,n,o,s,a,l,u,h,c,p,d={},f=[],m=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,g=Array.isArray;function y(e,t){for(var i in t)e[i]=t[i];return e}function v(e){var t=e.parentNode;t&&t.removeChild(e)}function b(e,t,i){var n,o,s,a={};for(s in t)"key"==s?n=t[s]:"ref"==s?o=t[s]:a[s]=t[s];if(arguments.length>2&&(a.children=arguments.length>3?r.call(arguments,2):i),"function"==typeof e&&null!=e.defaultProps)for(s in e.defaultProps)void 0===a[s]&&(a[s]=e.defaultProps[s]);return w(e,a,n,o,null)}function w(e,t,i,r,s){var a={type:e,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==s?++o:s,__i:-1,__u:0};return null==s&&null!=n.vnode&&n.vnode(a),a}function S(){return{current:null}}function P(e){return e.children}function _(e,t){this.props=e,this.context=t}function C(e,t){if(null==t)return e.__?C(e.__,e.__i+1):null;for(var i;tt&&s.sort(u));x.__r=0}function T(e,t,i,r,n,o,s,a,l,u,h){var c,p,m,g,y,v=r&&r.__k||f,b=t.length;for(i.__d=l,A(i,t,v),l=i.__d,c=0;c0?w(n.type,n.props,n.key,n.ref?n.ref:null,n.__v):n)?(n.__=e,n.__b=e.__b+1,a=I(n,i,s,h),n.__i=a,o=null,-1!==a&&(h--,(o=i[a])&&(o.__u|=131072)),null==o||null===o.__v?(-1==a&&c--,"function"!=typeof n.type&&(n.__u|=65536)):a!==s&&(a===s+1?c++:a>s?h>l-s?c+=a-s:c--:a(null==l||131072&l.__u?0:1))for(;s>=0||a=0){if((l=t[s])&&!(131072&l.__u)&&n==l.key&&o===l.type)return s;s--}if(a2&&(l.children=arguments.length>3?r.call(arguments,2):i),w(e.type,l,n||e.key,o||e.ref,null)}r=f.slice,n={__e:function(e,t,i,r){for(var n,o,s;t=t.__;)if((n=t.__c)&&!n.__)try{if((o=n.constructor)&&null!=o.getDerivedStateFromError&&(n.setState(o.getDerivedStateFromError(e)),s=n.__d),null!=n.componentDidCatch&&(n.componentDidCatch(e,r||{}),s=n.__d),s)return n.__E=n}catch(t){e=t}throw e}},o=0,_.prototype.setState=function(e,t){var i;i=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=y({},this.state),"function"==typeof e&&(e=e(y({},i),this.props)),e&&y(i,e),null!=e&&this.__v&&(t&&this._sb.push(t),F(this))},_.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),F(this))},_.prototype.render=P,s=[],l="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,u=function(e,t){return e.__v.__b-t.__v.__b},x.__r=0,h=0,c=U(!1),p=U(!0)},45994:(e,t,i)=>{"use strict";i.d(t,{J0:()=>b,Kr:()=>P,hb:()=>_,li:()=>S,vJ:()=>w});var r,n,o,s,a=i(50172),l=0,u=[],h=[],c=a.fF,p=c.__b,d=c.__r,f=c.diffed,m=c.__c,g=c.unmount,y=c.__;function v(e,t){c.__h&&c.__h(n,e,l||t),l=0;var i=n.__H||(n.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({__V:h}),i.__[e]}function b(e){return l=1,function(e,t,i){var o=v(r++,2);if(o.t=e,!o.__c&&(o.__=[i?i(t):E(void 0,t),function(e){var t=o.__N?o.__N[0]:o.__[0],i=o.t(t,e);t!==i&&(o.__N=[i,o.__[1]],o.__c.setState({}))}],o.__c=n,!n.u)){var s=function(e,t,i){if(!o.__c.__H)return!0;var r=o.__c.__H.__.filter((function(e){return!!e.__c}));if(r.every((function(e){return!e.__N})))return!a||a.call(this,e,t,i);var n=!1;return r.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(n=!0)}})),!(!n&&o.__c.props===e)&&(!a||a.call(this,e,t,i))};n.u=!0;var a=n.shouldComponentUpdate,l=n.componentWillUpdate;n.componentWillUpdate=function(e,t,i){if(this.__e){var r=a;a=void 0,s(e,t,i),a=r}l&&l.call(this,e,t,i)},n.shouldComponentUpdate=s}return o.__N||o.__}(E,e)}function w(e,t){var i=v(r++,3);!c.__s&&A(i.__H,t)&&(i.__=e,i.i=t,n.__H.__h.push(i))}function S(e){return l=5,P((function(){return{current:e}}),[])}function P(e,t){var i=v(r++,7);return A(i.__H,t)?(i.__V=e(),i.i=t,i.__h=e,i.__V):i.__}function _(e,t){return l=8,P((function(){return e}),t)}function C(){for(var e;e=u.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(x),e.__H.__h.forEach(T),e.__H.__h=[]}catch(r){e.__H.__h=[],c.__e(r,e.__v)}}c.__b=function(e){n=null,p&&p(e)},c.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),y&&y(e,t)},c.__r=function(e){d&&d(e),r=0;var t=(n=e.__c).__H;t&&(o===n?(t.__h=[],n.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=h,e.__N=e.i=void 0}))):(t.__h.forEach(x),t.__h.forEach(T),t.__h=[],r=0)),o=n},c.diffed=function(e){f&&f(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==u.push(t)&&s===c.requestAnimationFrame||((s=c.requestAnimationFrame)||F)(C)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==h&&(e.__=e.__V),e.i=void 0,e.__V=h}))),o=n=null},c.__c=function(e,t){t.some((function(e){try{e.__h.forEach(x),e.__h=e.__h.filter((function(e){return!e.__||T(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],c.__e(n,e.__v)}})),m&&m(e,t)},c.unmount=function(e){g&&g(e);var t,i=e.__c;i&&i.__H&&(i.__H.__.forEach((function(e){try{x(e)}catch(e){t=e}})),i.__H=void 0,t&&c.__e(t,i.__v))};var k="function"==typeof requestAnimationFrame;function F(e){var t,i=function(){clearTimeout(r),k&&cancelAnimationFrame(t),setTimeout(e)},r=setTimeout(i,100);k&&(t=requestAnimationFrame(i))}function x(e){var t=n,i=e.__c;"function"==typeof i&&(e.__c=void 0,i()),n=t}function T(e){var t=n;e.__c=e.__(),n=t}function A(e,t){return!e||e.length!==t.length||t.some((function(t,i){return t!==e[i]}))}function E(e,t){return"function"==typeof t?t(e):t}},73992:(e,t)=>{"use strict";var i=Object.prototype.hasOwnProperty;function r(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(t){return null}}function n(e){try{return encodeURIComponent(e)}catch(t){return null}}t.stringify=function(e,t){t=t||"";var r,o,s=[];for(o in"string"!=typeof t&&(t="?"),e)if(i.call(e,o)){if((r=e[o])||null!=r&&!isNaN(r)||(r=""),o=n(o),r=n(r),null===o||null===r)continue;s.push(o+"="+r)}return s.length?t+s.join("&"):""},t.parse=function(e){for(var t,i=/([^=?#&]+)=?([^&]*)/g,n={};t=i.exec(e);){var o=r(t[1]),s=r(t[2]);null===o||null===s||o in n||(n[o]=s)}return n}},92063:e=>{"use strict";e.exports=function(e,t){if(t=t.split(":")[0],!(e=+e))return!1;switch(t){case"http":case"ws":return 80!==e;case"https":case"wss":return 443!==e;case"ftp":return 21!==e;case"gopher":return 70!==e;case"file":return!1}return 0!==e}},75617:(e,t,i)=>{e.exports=i(58303)},58303:(e,t,i)=>{var r=i(93961);t.operation=function(e){var i=t.timeouts(e);return new r(i,{forever:e&&(e.forever||e.retries===1/0),unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})},t.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var i in e)t[i]=e[i];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var r=[],n=0;n{function t(e,t){"boolean"==typeof t&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}e.exports=t,t.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},t.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},t.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=(new Date).getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var i=this._timeouts.shift();if(void 0===i){if(!this._cachedTimeouts)return!1;this._errors.splice(0,this._errors.length-1),i=this._cachedTimeouts.slice(-1)}var r=this;return this._timer=setTimeout((function(){r._attempts++,r._operationTimeoutCb&&(r._timeout=setTimeout((function(){r._operationTimeoutCb(r._attempts)}),r._operationTimeout),r._options.unref&&r._timeout.unref()),r._fn(r._attempts)}),i),this._options.unref&&this._timer.unref(),!0},t.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var i=this;this._operationTimeoutCb&&(this._timeout=setTimeout((function(){i._operationTimeoutCb()}),i._operationTimeout)),this._operationStart=(new Date).getTime(),this._fn(this._attempts)},t.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)},t.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)},t.prototype.start=t.prototype.try,t.prototype.errors=function(){return this._errors},t.prototype.attempts=function(){return this._attempts},t.prototype.mainError=function(){if(0===this._errors.length)return null;for(var e={},t=null,i=0,r=0;r=i&&(t=n,i=s)}return t}},61160:(e,t,i)=>{"use strict";var r=i(92063),n=i(73992),o=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,s=/[\n\r\t]/g,a=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,l=/:\d+$/,u=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,h=/^[a-zA-Z]:/;function c(e){return(e||"").toString().replace(o,"")}var p=[["#","hash"],["?","query"],function(e,t){return m(t.protocol)?e.replace(/\\/g,"/"):e},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],d={hash:1,query:1};function f(e){var t,r=("undefined"!=typeof window?window:void 0!==i.g?i.g:"undefined"!=typeof self?self:{}).location||{},n={},o=typeof(e=e||r);if("blob:"===e.protocol)n=new y(unescape(e.pathname),{});else if("string"===o)for(t in n=new y(e,{}),d)delete n[t];else if("object"===o){for(t in e)t in d||(n[t]=e[t]);void 0===n.slashes&&(n.slashes=a.test(e.href))}return n}function m(e){return"file:"===e||"ftp:"===e||"http:"===e||"https:"===e||"ws:"===e||"wss:"===e}function g(e,t){e=(e=c(e)).replace(s,""),t=t||{};var i,r=u.exec(e),n=r[1]?r[1].toLowerCase():"",o=!!r[2],a=!!r[3],l=0;return o?a?(i=r[2]+r[3]+r[4],l=r[2].length+r[3].length):(i=r[2]+r[4],l=r[2].length):a?(i=r[3]+r[4],l=r[3].length):i=r[4],"file:"===n?l>=2&&(i=i.slice(2)):m(n)?i=r[4]:n?o&&(i=i.slice(2)):l>=2&&m(t.protocol)&&(i=r[4]),{protocol:n,slashes:o||m(n),slashesCount:l,rest:i}}function y(e,t,i){if(e=(e=c(e)).replace(s,""),!(this instanceof y))return new y(e,t,i);var o,a,l,u,d,v,b=p.slice(),w=typeof t,S=this,P=0;for("object"!==w&&"string"!==w&&(i=t,t=null),i&&"function"!=typeof i&&(i=n.parse),o=!(a=g(e||"",t=f(t))).protocol&&!a.slashes,S.slashes=a.slashes||o&&t.slashes,S.protocol=a.protocol||t.protocol||"",e=a.rest,("file:"===a.protocol&&(2!==a.slashesCount||h.test(e))||!a.slashes&&(a.protocol||a.slashesCount<2||!m(S.protocol)))&&(b[3]=[/(.*)/,"pathname"]);P{"use strict";function t(e,t){this.text=e=e||"",this.hasWild=~e.indexOf("*"),this.separator=t,this.parts=e.split(t)}t.prototype.match=function(e){var t,i,r=!0,n=this.parts,o=n.length;if("string"==typeof e||e instanceof String)if(this.hasWild||this.text==e){for(i=(e||"").split(this.separator),t=0;r&&t{var i;!function(){"use strict";var r={}.hasOwnProperty;function n(){for(var e="",t=0;t{"use strict";i.d(t,{A:()=>H});var r=i(50172),n=i(31837),o=i(79885);var s=i(45994);function a(e){let{recording:t,onStartRecording:i,onStopRecording:n,i18n:o}=e;return t?(0,r.h)("button",{className:"uppy-u-reset uppy-c-btn uppy-Audio-button",type:"button",title:o("stopAudioRecording"),"aria-label":o("stopAudioRecording"),onClick:n,"data-uppy-super-focusable":!0},(0,r.h)("svg",{"aria-hidden":"true",focusable:"false",className:"uppy-c-icon",width:"100",height:"100",viewBox:"0 0 100 100"},(0,r.h)("rect",{x:"15",y:"15",width:"70",height:"70"}))):(0,r.h)("button",{className:"uppy-u-reset uppy-c-btn uppy-Audio-button",type:"button",title:o("startAudioRecording"),"aria-label":o("startAudioRecording"),onClick:i,"data-uppy-super-focusable":!0},(0,r.h)("svg",{"aria-hidden":"true",focusable:"false",className:"uppy-c-icon",width:"14px",height:"20px",viewBox:"0 0 14 20"},(0,r.h)("path",{d:"M7 14c2.21 0 4-1.71 4-3.818V3.818C11 1.71 9.21 0 7 0S3 1.71 3 3.818v6.364C3 12.29 4.79 14 7 14zm6.364-7h-.637a.643.643 0 0 0-.636.65V9.6c0 3.039-2.565 5.477-5.6 5.175-2.645-.264-4.582-2.692-4.582-5.407V7.65c0-.36-.285-.65-.636-.65H.636A.643.643 0 0 0 0 7.65v1.631c0 3.642 2.544 6.888 6.045 7.382v1.387H3.818a.643.643 0 0 0-.636.65v.65c0 .36.285.65.636.65h6.364c.351 0 .636-.29.636-.65v-.65c0-.36-.285-.65-.636-.65H7.955v-1.372C11.363 16.2 14 13.212 14 9.6V7.65c0-.36-.285-.65-.636-.65z",fill:"#FFF","fill-rule":"nonzero"})))}function l(e){let{recordingLengthSeconds:t,i18n:i}=e;const n=(o=t,`${Math.floor(o/60)}:${String(o%60).padStart(2,"0")}`);var o;return(0,r.h)("span",{"aria-label":i("recordingLength",{recording_length:n})},n)}var u=0;function h(e){return"__private_"+u+++"_"+e}function c(e){return"function"==typeof e}function p(e){return c(e)?e():e}var d=h("draw");class f{constructor(e,t){void 0===t&&(t={}),Object.defineProperty(this,d,{writable:!0,value:()=>this.draw()});const i=t.canvas||{},r=t.canvasContext||{};this.analyser=null,this.bufferLength=0,this.canvas=e,this.width=p(i.width)||this.canvas.width,this.height=p(i.height)||this.canvas.height,this.canvas.width=this.width,this.canvas.height=this.height,this.canvasContext=this.canvas.getContext("2d"),this.canvasContext.fillStyle=p(r.fillStyle)||"rgb(255, 255, 255)",this.canvasContext.strokeStyle=p(r.strokeStyle)||"rgb(0, 0, 0)",this.canvasContext.lineWidth=p(r.lineWidth)||1,this.onDrawFrame=c(t.onDrawFrame)?t.onDrawFrame:()=>{}}addSource(e){this.streamSource=e,this.audioContext=this.streamSource.context,this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=2048,this.bufferLength=this.analyser.frequencyBinCount,this.source=this.audioContext.createBufferSource(),this.dataArray=new Uint8Array(this.bufferLength),this.analyser.getByteTimeDomainData(this.dataArray),this.streamSource.connect(this.analyser)}draw(){const{analyser:e,dataArray:t,bufferLength:i}=this,r=this.canvasContext,n=this.width,o=this.height;e&&e.getByteTimeDomainData(t),r.fillRect(0,0,n,o),r.beginPath();const s=1*n/i;let a=0;i||r.moveTo(0,this.height/2);for(let l=0;l()=>{P.current=null,n()}),[n]),(0,s.vJ)((()=>{if(!i&&(P.current=new f(S.current,{canvas:{width:600,height:600},canvasContext:{lineWidth:2,fillStyle:"rgb(0,0,0)",strokeStyle:"green"}}),P.current.draw(),t)){const e=(new AudioContext).createMediaStreamSource(t);P.current.addSource(e)}}),[i,t]);const _=null!=i,C=!_&&u,k=c&&!_&&h&&h.length>1;return(0,r.h)("div",{className:"uppy-Audio-container"},(0,r.h)("div",{className:"uppy-Audio-audioContainer"},_?(0,r.h)("audio",{className:"uppy-Audio-player",controls:!0,src:i}):(0,r.h)("canvas",{ref:S,className:"uppy-Audio-canvas"})),(0,r.h)("div",{className:"uppy-Audio-footer"},(0,r.h)("div",{className:"uppy-Audio-audioSourceContainer"},k?(e=>{let{currentDeviceId:t,audioSources:i,onChangeSource:n}=e;return(0,r.h)("div",{className:"uppy-Audio-videoSource"},(0,r.h)("select",{className:"uppy-u-reset uppy-Audio-audioSource-select",onChange:e=>{n(e.target.value)}},i.map((e=>(0,r.h)("option",{key:e.deviceId,value:e.deviceId,selected:e.deviceId===t},e.label)))))})(e):null),(0,r.h)("div",{className:"uppy-Audio-buttonContainer"},C&&(0,r.h)(a,{recording:o,onStartRecording:y,onStopRecording:v,i18n:d}),_&&(0,r.h)(m,{onSubmit:p,i18n:d}),_&&(0,r.h)(g,{onDiscard:b,i18n:d})),(0,r.h)("div",{className:"uppy-Audio-recordingLength"},!_&&(0,r.h)(l,{recordingLengthSeconds:w,i18n:d}))))}const v=e=>{const{icon:t,hasAudio:i,i18n:n}=e;return(0,r.h)("div",{className:"uppy-Audio-permissons"},(0,r.h)("div",{className:"uppy-Audio-permissonsIcon"},t()),(0,r.h)("div",{className:"uppy-Audio-title"},n(i?"allowAudioAccessTitle":"noAudioTitle")),(0,r.h)("p",null,n(i?"allowAudioAccessDescription":"noAudioDescription")))},b={strings:{pluginNameAudio:"Audio",startAudioRecording:"Begin audio recording",stopAudioRecording:"Stop audio recording",allowAudioAccessTitle:"Please allow access to your microphone",allowAudioAccessDescription:"In order to record audio, please allow microphone access for this site.",noAudioTitle:"Microphone Not Available",noAudioDescription:"In order to record audio, please connect a microphone or another audio input device",recordingStoppedMaxSize:"Recording stopped because the file size is about to exceed the limit",recordingLength:"Recording length %{recording_length}",submitRecordedFile:"Submit recorded file",discardRecordedFile:"Discard recorded file"}};function w(){return w=Object.assign?Object.assign.bind():function(e){for(var t=1;t{if(!S(this,O)[O])return Promise.reject(new Error("Microphone access not supported"));S(this,F)[F]=!0,S(this,I)[I]().then((t=>(this.setPluginState({hasAudio:t}),S(this,E)[E].getUserMedia({audio:!0}).then((t=>{S(this,k)[k]=t;let i=null;const r=t.getAudioTracks();i=null!=e&&e.deviceId?r.findLast((t=>t.getSettings().deviceId===e.deviceId)):r[0].getSettings().deviceId,S(this,j)[j](),this.setPluginState({currentDeviceId:i,audioReady:!0})})).catch((e=>{this.setPluginState({audioReady:!1,cameraError:e}),this.uppy.info(e.message,"error")})))))}}),Object.defineProperty(this,D,{writable:!0,value:()=>{S(this,T)[T]=new MediaRecorder(S(this,k)[k]),S(this,x)[x]=[];let e=!1;S(this,T)[T].addEventListener("dataavailable",(t=>{S(this,x)[x].push(t.data);const{restrictions:i}=this.uppy.opts;if(S(this,x)[x].length>1&&null!=i.maxFileSize&&!e){const t=S(this,x)[x].reduce(((e,t)=>e+t.size),0),r=3*((t-S(this,x)[x][0].size)/(S(this,x)[x].length-1));t>Math.max(0,i.maxFileSize-r)&&(e=!0,this.uppy.info(this.i18n("recordingStoppedMaxSize"),"warning",4e3),S(this,U)[U]())}})),S(this,T)[T].start(500),S(this,C)[C]=setInterval((()=>{const e=this.getPluginState().recordingLengthSeconds;this.setPluginState({recordingLengthSeconds:e+1})}),1e3),this.setPluginState({isRecording:!0})}}),Object.defineProperty(this,U,{writable:!0,value:()=>new Promise((e=>{S(this,T)[T].addEventListener("stop",(()=>{e()})),S(this,T)[T].stop(),clearInterval(S(this,C)[C]),this.setPluginState({recordingLengthSeconds:0})})).then((()=>(this.setPluginState({isRecording:!1}),S(this,B)[B]()))).then((e=>{try{S(this,A)[A]=e,this.setPluginState({recordedAudio:URL.createObjectURL(e.data)})}catch(t){t.isRestriction||this.uppy.log(t)}})).then((()=>{S(this,x)[x]=null,S(this,T)[T]=null}),(e=>{throw S(this,x)[x]=null,S(this,T)[T]=null,e}))}),Object.defineProperty(this,N,{writable:!0,value:()=>{this.setPluginState({recordedAudio:null}),S(this,A)[A]=null}}),Object.defineProperty(this,M,{writable:!0,value:()=>{try{S(this,A)[A]&&this.uppy.addFile(S(this,A)[A])}catch(e){e.isRestriction||this.uppy.log(e,"warning")}}}),Object.defineProperty(this,L,{writable:!0,value:async()=>{if(S(this,k)[k]){S(this,k)[k].getAudioTracks().forEach((e=>e.stop()))}S(this,T)[T]&&await new Promise((e=>{S(this,T)[T].addEventListener("stop",e,{once:!0}),S(this,T)[T].stop(),clearInterval(S(this,C)[C])})),S(this,x)[x]=null,S(this,T)[T]=null,S(this,F)[F]=!1,S(this,k)[k]=null,this.setPluginState({recordedAudio:null,isRecording:!1,recordingLengthSeconds:0})}}),Object.defineProperty(this,z,{writable:!0,value:e=>{S(this,L)[L](),S(this,R)[R]({deviceId:e})}}),Object.defineProperty(this,j,{writable:!0,value:()=>{S(this,E)[E].enumerateDevices().then((e=>{this.setPluginState({audioSources:e.filter((e=>"audioinput"===e.kind))})}))}}),S(this,E)[E]=navigator.mediaDevices,S(this,O)[O]=null!=S(this,E)[E],this.id=this.opts.id||"Audio",this.type="acquirer",this.icon=()=>(0,r.h)("svg",{className:"uppy-DashboardTab-iconAudio","aria-hidden":"true",focusable:"false",width:"32px",height:"32px",viewBox:"0 0 32 32"},(0,r.h)("path",{d:"M21.143 12.297c.473 0 .857.383.857.857v2.572c0 3.016-2.24 5.513-5.143 5.931v2.64h2.572a.857.857 0 110 1.714H12.57a.857.857 0 110-1.714h2.572v-2.64C12.24 21.24 10 18.742 10 15.726v-2.572a.857.857 0 111.714 0v2.572A4.29 4.29 0 0016 20.01a4.29 4.29 0 004.286-4.285v-2.572c0-.474.384-.857.857-.857zM16 6.5a3 3 0 013 3v6a3 3 0 01-6 0v-6a3 3 0 013-3z",fill:"currentcolor","fill-rule":"nonzero"})),this.defaultLocale=b,this.opts={...t},this.i18nInit(),this.title=this.i18n("pluginNameAudio"),this.setPluginState({hasAudio:!1,audioReady:!1,cameraError:null,recordingLengthSeconds:0,audioSources:[],currentDeviceId:null})}render(){S(this,F)[F]||S(this,R)[R]();const e=this.getPluginState();return e.audioReady&&e.hasAudio?(0,r.h)(y,w({},e,{onChangeSource:S(this,z)[z],onStartRecording:S(this,D)[D],onStopRecording:S(this,U)[U],onDiscardRecordedAudio:S(this,N)[N],onSubmit:S(this,M)[M],onStop:S(this,L)[L],i18n:this.i18n,showAudioSourceDropdown:this.opts.showAudioSourceDropdown,supportsRecording:"function"==typeof MediaRecorder&&"function"==typeof(null==(t=MediaRecorder.prototype)?void 0:t.start),recording:e.isRecording,stream:S(this,k)[k]})):(0,r.h)(v,{icon:this.icon,i18n:this.i18n,hasAudio:e.hasAudio});var t}install(){this.setPluginState({audioReady:!1,recordingLengthSeconds:0});const{target:e}=this.opts;e&&this.mount(e,this),S(this,E)[E]&&(S(this,j)[j](),S(this,E)[E].ondevicechange=()=>{if(S(this,j)[j](),S(this,k)[k]){let e=!0;const{audioSources:t,currentDeviceId:i}=this.getPluginState();t.forEach((t=>{i===t.deviceId&&(e=!1)})),e&&(S(this,L)[L](),S(this,R)[R]())}})}uninstall(){S(this,k)[k]&&S(this,L)[L](),this.unmount()}}function q(){return S(this,E)[E]?S(this,E)[E].enumerateDevices().then((e=>e.some((e=>"audioinput"===e.kind)))):Promise.resolve(!1)}function $(){const e=S(this,x)[x].find((e=>{var t;return(null==(t=e.type)?void 0:t.length)>0})).type,t=(0,o.A)(e);if(!t)return Promise.reject(new Error(`Could not retrieve recording: Unsupported media type "${e}"`));const i=`audio-${Date.now()}.${t}`,r=new Blob(S(this,x)[x],{type:e}),n={source:this.id,name:i,data:new Blob([r],{type:e}),type:e};return Promise.resolve(n)}H.VERSION="2.1.1"},89463:(e,t,i)=>{"use strict";i.d(t,{A:()=>l});var r=i(6267),n=i(31837),o=i(62108),s=i(50172);const a={strings:{pluginNameBox:"Box"}};class l extends n.A{constructor(e,t){super(e,t),this.rootFolderId=null,this.id=this.opts.id||"Box",this.type="acquirer",this.storage=this.opts.storage||r.HM,this.files=[],this.icon=()=>(0,s.h)("svg",{className:"uppy-DashboardTab-iconBox","aria-hidden":"true",focusable:"false",width:"32",height:"32",viewBox:"0 0 32 32"},(0,s.h)("g",{fill:"currentcolor",fillRule:"nonzero"},(0,s.h)("path",{d:"m16.4 13.5c-1.6 0-3 0.9-3.7 2.2-0.7-1.3-2.1-2.2-3.7-2.2-1 0-1.8 0.3-2.5 0.8v-3.6c-0.1-0.3-0.5-0.7-1-0.7s-0.8 0.4-0.8 0.8v7c0 2.3 1.9 4.2 4.2 4.2 1.6 0 3-0.9 3.7-2.2 0.7 1.3 2.1 2.2 3.7 2.2 2.3 0 4.2-1.9 4.2-4.2 0.1-2.4-1.8-4.3-4.1-4.3m-7.5 6.8c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5m7.5 0c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5"}),(0,s.h)("path",{d:"m27.2 20.6l-2.3-2.8 2.3-2.8c0.3-0.4 0.2-0.9-0.2-1.2s-1-0.2-1.3 0.2l-2 2.4-2-2.4c-0.3-0.4-0.9-0.4-1.3-0.2-0.4 0.3-0.5 0.8-0.2 1.2l2.3 2.8-2.3 2.8c-0.3 0.4-0.2 0.9 0.2 1.2s1 0.2 1.3-0.2l2-2.4 2 2.4c0.3 0.4 0.9 0.4 1.3 0.2 0.4-0.3 0.4-0.8 0.2-1.2"}))),this.opts.companionAllowedHosts=(0,r.cP)(this.opts.companionAllowedHosts,this.opts.companionUrl),this.provider=new r.Kq(e,{companionUrl:this.opts.companionUrl,companionHeaders:this.opts.companionHeaders,companionKeysParams:this.opts.companionKeysParams,companionCookiesRule:this.opts.companionCookiesRule,provider:"box",pluginId:this.id,supportsRefreshToken:!1}),this.defaultLocale=a,this.i18nInit(),this.title=this.i18n("pluginNameBox"),this.render=this.render.bind(this)}install(){this.view=new o.gi(this,{provider:this.provider,loadAllFiles:!0,virtualList:!0});const{target:e}=this.opts;e&&this.mount(e,this)}uninstall(){this.view.tearDown(),this.unmount()}render(e){return this.view.render(e)}}l.VERSION="3.2.1"},6267:(e,t,i)=>{"use strict";i.d(t,{Kq:()=>L,R0:()=>x,YL:()=>j,cP:()=>O,HM:()=>r});var r={};i.r(r),i.d(r,{getItem:()=>q,removeItem:()=>$,setItem:()=>H});class n extends Error{constructor(){super(...arguments),this.name="UserFacingApiError"}}const o=n;var s=i(75617);const a=Object.prototype.toString,l=e=>"[object Error]"===a.call(e),u=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);class h extends Error{constructor(e){super(),e instanceof Error?(this.originalError=e,({message:e}=e)):(this.originalError=new Error(e),this.originalError.stack=this.stack),this.name="AbortError",this.message=e}}const c=(e,t,i)=>{const r=i.retries-(t-1);return e.attemptNumber=t,e.retriesLeft=r,e};async function p(e,t){return new Promise(((i,r)=>{t={onFailedAttempt(){},retries:10,shouldRetry:()=>!0,...t};const n=s.operation(t),o=()=>{n.stop(),r(t.signal?.reason)};t.signal&&!t.signal.aborted&&t.signal.addEventListener("abort",o,{once:!0});const a=()=>{t.signal?.removeEventListener("abort",o),n.stop()};n.attempt((async o=>{try{const t=await e(o);a(),i(t)}catch(s){try{if(!(s instanceof Error))throw new TypeError(`Non-error was thrown: "${s}". You should only throw errors.`);if(s instanceof h)throw s.originalError;if(s instanceof TypeError&&!function(e){return!(!e||!l(e)||"TypeError"!==e.name||"string"!=typeof e.message)&&("Load failed"===e.message?void 0===e.stack:u.has(e.message))}(s))throw s;if(c(s,o,t),await t.shouldRetry(s)||(n.stop(),r(s)),await t.onFailedAttempt(s),!n.retry(s))throw n.mainError()}catch(p){c(p,o,t),a(),r(p)}}}))}))}var d=i(52094);var f=i(61825);class m extends Error{constructor(e,t){super(e),this.cause=null==t?void 0:t.cause,this.cause&&(0,f.A)(this.cause,"isNetworkError")?this.isNetworkError=this.cause.isNetworkError:this.isNetworkError=!1}}const g=m;class y extends Error{constructor(){super("Authorization required"),this.name="AuthError",this.isAuthError=!0}}const v=y;function b(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}var w=0;function S(e){return"__private_"+w+++"_"+e}class P extends Error{constructor(e){let{statusCode:t,message:i}=e;super(i),this.name="HttpError",this.statusCode=t}}var _=S("companionHeaders"),C=S("getUrl"),k=S("requestSocketToken"),F=S("awaitRemoteFileUpload");class x{constructor(e,t){Object.defineProperty(this,F,{value:A}),Object.defineProperty(this,C,{value:T}),Object.defineProperty(this,_,{writable:!0,value:void 0}),Object.defineProperty(this,k,{writable:!0,value:async e=>{var t;let{file:i,postBody:r,signal:n}=e;if(null==(null==(t=i.remote)?void 0:t.url))throw new Error("Cannot connect to an undefined URL");return(await this.post(i.remote.url,{...i.remote.body,...r},{signal:n})).token}}),this.uppy=e,this.opts=t,this.onReceiveResponse=this.onReceiveResponse.bind(this),b(this,_)[_]=t.companionHeaders}setCompanionHeaders(e){b(this,_)[_]=e}[Symbol.for("uppy test: getCompanionHeaders")](){return b(this,_)[_]}get hostname(){const{companion:e}=this.uppy.getState(),t=this.opts.companionUrl;return(e&&e[t]?e[t]:t).replace(/\/$/,"")}async headers(e){void 0===e&&(e=!1);return{...{Accept:"application/json",...e?void 0:{"Content-Type":"application/json"}},...b(this,_)[_]}}onReceiveResponse(e){const{headers:t}=e,i=this.uppy.getState().companion||{},r=this.opts.companionUrl;t.has("i-am")&&t.get("i-am")!==i[r]&&this.uppy.setState({companion:{...i,[r]:t.get("i-am")}})}async request(e){let{path:t,method:i="GET",data:r,skipPostResponse:n,signal:s}=e;try{const e=await this.headers(!r),a=await function(){return fetch(...arguments).catch((e=>{throw"AbortError"===e.name?e:new d.A(e)}))}(b(this,C)[C](t),{method:i,signal:s,headers:e,credentials:this.opts.companionCookiesRule||"same-origin",body:r?JSON.stringify(r):null});return n||this.onReceiveResponse(a),await async function(e){if(401===e.status)throw new v;if(e.ok)return e.json();let t,i=`Failed request with status: ${e.status}. ${e.statusText}`;try{t=await e.json(),t.message&&(i=`${i} message: ${t.message}`),t.requestId&&(i=`${i} request-Id: ${t.requestId}`)}catch(r){throw new Error(i,{cause:r})}if(e.status>=400&&e.status<=499&&t.message)throw new o(t.message);throw new P({statusCode:e.status,message:i})}(a)}catch(a){if(a.isAuthError||"UserFacingApiError"===a.name||"AbortError"===a.name)throw a;throw new g(`Could not ${i} ${b(this,C)[C](t)}`,{cause:a})}}async get(e,t){return this.request({...t,path:e})}async post(e,t,i){return this.request({...i,path:e,method:"POST",data:t})}async delete(e,t,i){return this.request({...i,path:e,method:"DELETE",data:t})}async uploadRemoteFile(e,t,i){var r=this;try{const{signal:n,getQueue:o}=i||{};return await p((async()=>{var i;const s=null==(i=this.uppy.getFile(e.id))?void 0:i.serverToken;if(null!=s)return this.uppy.log(`Connecting to exiting websocket ${s}`),b(this,F)[F]({file:e,queue:o(),signal:n});const a=o().wrapPromiseFunction((async function(){try{return await b(r,k)[k](...arguments)}catch(e){if(e.isAuthError)throw new h(e);if(null==e.cause)throw e;const t=e.cause,i=()=>[408,409,429,418,423].includes(t.statusCode)||t.statusCode>=500&&t.statusCode<=599&&![501,505].includes(t.statusCode);if("HttpError"===t.name&&!i())throw new h(t);throw t}}),{priority:-1}),l=await a({file:e,postBody:t,signal:n}).abortOn(n);return this.uppy.getFile(e.id)?(this.uppy.setFileState(e.id,{serverToken:l}),b(this,F)[F]({file:this.uppy.getFile(e.id),queue:o(),signal:n})):void 0}),{retries:10,signal:n,onFailedAttempt:e=>this.uppy.log(`Retrying upload due to: ${e.message}`,"warning")})}catch(n){if("AbortError"===n.name)return;throw this.uppy.emit("upload-error",e,n),n}}}function T(e){return/^(https?:|)\/\//.test(e)?e:`${this.hostname}/${e}`}async function A(e){let t,{file:i,queue:r,signal:n}=e;const{capabilities:o}=this.uppy.getState();try{return await new Promise(((e,s)=>{const a=i.serverToken,l=function(e){var t;const i=null==(t=/^(?:https?:\/\/|\/\/)?(?:[^@\n]+@)?(?:www\.)?([^\n]+)/i.exec(e))?void 0:t[1];return`${/^http:\/\//i.test(e)?"ws":"wss"}://${i}`}(i.remote.companionUrl);let u,h,c,{isPaused:d}=i;const f=(e,t)=>{var r;null!=u&&u.readyState===u.OPEN?u.send(JSON.stringify({action:e,payload:null!=t?t:{}})):this.uppy.log(`Cannot send "${e}" to socket ${i.id} because the socket state was ${String(null==(r=u)?void 0:r.readyState)}`,"warning")};function m(){o.resumableUploads&&f(d?"pause":"resume")}const g=e=>{o.resumableUploads&&(d=e,u&&m())},y=t=>{var r;o.individualCancellation&&t.id===i.id&&(f("cancel"),null==(r=h)||null==r.abort||r.abort(),this.uppy.log(`upload ${i.id} was removed`),e())},v=()=>{var t;f("cancel"),null==(t=h)||null==t.abort||t.abort(),this.uppy.log(`upload ${i.id} was canceled`),e()},b=(e,t)=>{(null==e?void 0:e.id)===i.id&&g(t)},w=()=>g(!0),S=()=>g(!1);this.uppy.on("file-removed",y),this.uppy.on("cancel-all",v),this.uppy.on("upload-pause",b),this.uppy.on("pause-all",w),this.uppy.on("resume-all",S),t=()=>{this.uppy.off("file-removed",y),this.uppy.off("cancel-all",v),this.uppy.off("upload-pause",b),this.uppy.off("pause-all",w),this.uppy.off("resume-all",S)},n.addEventListener("abort",(()=>{var e;null==(e=h)||e.abort()})),(async()=>{h&&h.abort(),h=new AbortController;const t=e=>{var t;this.uppy.setFileState(i.id,{serverToken:null}),null==(t=h)||null==t.abort||t.abort(),s(e)};function n(){clearTimeout(c),d||(c=setTimeout((()=>t(new Error("Timeout waiting for message from Companion socket"))),3e5))}try{await r.wrapPromiseFunction((async()=>{await p((async()=>new Promise(((r,o)=>{u=new WebSocket(`${l}/api/${a}`),n(),u.addEventListener("close",(()=>{u=void 0,o(new Error("Socket closed unexpectedly"))})),u.addEventListener("error",(e=>{var t;this.uppy.log(`Companion socket error ${JSON.stringify(e)}, closing socket`,"warning"),null==(t=u)||t.close()})),u.addEventListener("open",(()=>{m()})),u.addEventListener("message",(r=>{n();try{const{action:t,payload:n}=JSON.parse(r.data);switch(t){case"progress":!function(e,t,i){const{progress:r,bytesUploaded:n,bytesTotal:o}=t;var s;r&&(e.uppy.log(`Upload progress: ${r}`),e.uppy.emit("upload-progress",i,{uploadStarted:null!=(s=i.progress.uploadStarted)?s:0,bytesUploaded:n,bytesTotal:o}))}(this,n,this.uppy.getFile(i.id));break;case"success":{var o,s,a,l;const t=null==(o=n.response)?void 0:o.responseText;this.uppy.emit("upload-success",this.uppy.getFile(i.id),{uploadURL:n.url,status:null!=(s=null==(a=n.response)?void 0:a.status)?s:200,body:t?JSON.parse(t):void 0}),null==(l=h)||null==l.abort||l.abort(),e();break}case"error":{const{message:e}=n.error;throw Object.assign(new Error(e),{cause:n.error})}default:this.uppy.log(`Companion socket unknown action ${t}`,"warning")}}catch(u){t(u)}}));const s=()=>{this.uppy.log(`Closing socket ${i.id}`),clearTimeout(c),u&&u.close(),u=void 0};h.signal.addEventListener("abort",(()=>{s()}))}))),{retries:10,signal:h.signal,onFailedAttempt:()=>{h.signal.aborted||this.uppy.log(`Retrying websocket ${i.id}`)}})}))().abortOn(h.signal)}catch(o){if(h.signal.aborted)return;t(o)}})()}))}finally{null==t||t()}}function E(e){return"string"==typeof e?new RegExp(`^${e}$`):e instanceof RegExp?e:void 0}function O(e,t){if(e){const t=e=>{if(!("string"==typeof e&&E(e)||e instanceof RegExp))throw new TypeError('The option "companionAllowedHosts" must be one of string, Array, RegExp')};return Array.isArray(e)?e.every(t):t(e),e}let i=t;return/^(?!https?:\/\/).*$/i.test(i)&&(i=`https://${t.replace(/^\/\//,"")}`),i=new URL(i).origin,i=i.replace(/[/\-\\^$*+?.()|[\]{}]/g,"\\$&"),i}function I(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}x.VERSION="4.4.1";var R=0;function D(e){return"__private_"+R+++"_"+e}var U=D("refreshingTokenPromise"),N=D("getAuthToken"),M=D("getPlugin");class L extends x{constructor(e,t){super(e,t),Object.defineProperty(this,M,{value:z}),Object.defineProperty(this,N,{value:B}),Object.defineProperty(this,U,{writable:!0,value:void 0}),this.provider=t.provider,this.id=this.provider,this.name=this.opts.name||(e=>e.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" "))(this.id),this.pluginId=this.opts.pluginId,this.tokenKey=`companion-${this.pluginId}-auth-token`,this.companionKeysParams=this.opts.companionKeysParams,this.preAuthToken=null,this.supportsRefreshToken=!!t.supportsRefreshToken}async headers(){const[e,t]=await Promise.all([super.headers(),I(this,N)[N]()]),i={};return t&&(i["uppy-auth-token"]=t),this.companionKeysParams&&(i["uppy-credentials-params"]=btoa(JSON.stringify({params:this.companionKeysParams}))),{...e,...i}}onReceiveResponse(e){super.onReceiveResponse(e);const t=I(this,M)[M](),i=t.getPluginState().authenticated?401!==e.status:e.status<400;return t.setPluginState({authenticated:i}),e}async setAuthToken(e){return I(this,M)[M]().storage.setItem(this.tokenKey,e)}async removeAuthToken(){return I(this,M)[M]().storage.removeItem(this.tokenKey)}async ensurePreAuth(){if(this.companionKeysParams&&!this.preAuthToken&&(await this.fetchPreAuthToken(),!this.preAuthToken))throw new Error("Could not load authentication data required for third-party login. Please try again later.")}authQuery(e){return{}}authUrl(e){let{authFormData:t,query:i}=e;const r=new URLSearchParams({...i,state:btoa(JSON.stringify({origin:location.origin})),...this.authQuery({authFormData:t})});return this.preAuthToken&&r.set("uppyPreAuthToken",this.preAuthToken),`${this.hostname}/${this.id}/connect?${r}`}async loginSimpleAuth(e){let{uppyVersions:t,authFormData:i,signal:r}=e;const n=await this.post(`${this.id}/simple-auth`,{form:i},{qs:{uppyVersions:t},signal:r});this.setAuthToken(n.uppyAuthToken)}async loginOAuth(e){let{uppyVersions:t,authFormData:i,signal:r}=e;return await this.ensurePreAuth(),r.throwIfAborted(),new Promise(((e,n)=>{const o=this.authUrl({query:{uppyVersions:t},authFormData:i}),s=window.open(o,"_blank");let a;const l=t=>{if(t.source!==s){let e="";try{e=JSON.stringify(t.data)}catch(u){}return void this.uppy.log(`ignoring event from unknown source ${e}`,"warning")}const{companionAllowedHosts:i}=I(this,M)[M]().opts;if(r=t.origin,o=i,!(Array.isArray(o)?o.map(E):[E(o)]).some((e=>(null==e?void 0:e.test(r))||(null==e?void 0:e.test(`${r}/`)))))return void n(new Error(`rejecting event from ${t.origin} vs allowed pattern ${i}`));var r,o;const l="string"==typeof t.data?JSON.parse(t.data):t.data;if(l.error){const{uppy:e}=this,t=e.i18n("authAborted");return e.info({message:t},"warning",5e3),void n(new Error("auth aborted"))}l.token?(a(),e(this.setAuthToken(l.token))):n(new Error("did not receive token from auth window"))};a=()=>{null==s||s.close(),window.removeEventListener("message",l),r.removeEventListener("abort",a)},r.addEventListener("abort",a),window.addEventListener("message",l)}))}async login(e){let{uppyVersions:t,authFormData:i,signal:r}=e;return this.loginOAuth({uppyVersions:t,authFormData:i,signal:r})}refreshTokenUrl(){return`${this.hostname}/${this.id}/refresh-token`}fileUrl(e){return`${this.hostname}/${this.id}/get/${e}`}async request(){await I(this,U)[U];try{return await super.request(...arguments)}catch(e){if(!this.supportsRefreshToken)throw e;const t=await I(this,N)[N]();if(!e.isAuthError||!t)throw e;return null==I(this,U)[U]&&(I(this,U)[U]=(async()=>{try{this.uppy.log("[CompanionClient] Refreshing expired auth token");const e=await super.request({path:this.refreshTokenUrl(),method:"POST"});await this.setAuthToken(e.uppyAuthToken)}catch(t){throw t.isAuthError&&await this.removeAuthToken(),e}finally{I(this,U)[U]=void 0}})()),await I(this,U)[U],super.request(...arguments)}}async fetchPreAuthToken(){if(this.companionKeysParams)try{const e=await this.post(`${this.id}/preauth/`,{params:this.companionKeysParams});this.preAuthToken=e.token}catch(e){this.uppy.log(`[CompanionClient] unable to fetch preAuthToken ${e}`,"warning")}}list(e,t){return this.get(`${this.id}/list/${e||""}`,t)}async logout(e){const t=await this.get(`${this.id}/logout`,e);return await this.removeAuthToken(),t}}async function B(){return I(this,M)[M]().storage.getItem(this.tokenKey)}function z(){const e=this.uppy.getPlugin(this.pluginId);if(null==e)throw new Error("Plugin was nullish");return e}class j extends x{constructor(e,t){super(e,t),this.provider=t.provider,this.id=this.provider,this.name=this.opts.name||(e=>e.split("-").map((e=>e.charAt(0).toUpperCase()+e.slice(1))).join(" "))(this.id),this.pluginId=this.opts.pluginId}fileUrl(e){return`${this.hostname}/search/${this.id}/get/${e}`}search(e,t){return this.get(`search/${this.id}/list?q=${encodeURIComponent(e)}${t?`&${t}`:""}`)}}async function H(e,t){localStorage.setItem(e,t)}async function q(e){return localStorage.getItem(e)}async function $(e){localStorage.removeItem(e)}},42656:(e,t,i)=>{"use strict";i.d(t,{A:()=>n});var r=i(60720);class n{constructor(e,t){this.uppy=e,this.opts=null!=t?t:{}}getPluginState(){const{plugins:e}=this.uppy.getState();return(null==e?void 0:e[this.id])||{}}setPluginState(e){const{plugins:t}=this.uppy.getState();this.uppy.setState({plugins:{...t,[this.id]:{...t[this.id],...e}}})}setOptions(e){this.opts={...this.opts,...e},this.setPluginState(void 0),this.i18nInit()}i18nInit(){const e=new r.A([this.defaultLocale,this.uppy.locale,this.opts.locale]);this.i18n=e.translate.bind(e),this.i18nArray=e.translateArray.bind(e),this.setPluginState(void 0)}addTarget(e){throw new Error("Extend the addTarget method to add your plugin to another plugin's target")}install(){}uninstall(){}update(e){}afterUpdate(){}}},31837:(e,t,i)=>{"use strict";i.d(t,{A:()=>d});var r=i(50172),n=i(45298);const o=function(e,t){return void 0===t&&(t=document),"string"==typeof e?t.querySelector(e):(0,n.A)(e)?e:null};var s=i(44622),a=i(42656);function l(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}var u=0;function h(e){return"__private_"+u+++"_"+e}var c=h("updateUI");class p extends a.A{constructor(){super(...arguments),Object.defineProperty(this,c,{writable:!0,value:void 0})}getTargetPlugin(e){let t;if("function"==typeof(null==e?void 0:e.addTarget))t=e,t instanceof p||console.warn(new Error("The provided plugin is not an instance of UIPlugin. This is an indication of a bug with the way Uppy is bundled.",{cause:{targetPlugin:t,UIPlugin:p}}));else if("function"==typeof e){const i=e;this.uppy.iteratePlugins((e=>{e instanceof i&&(t=e)}))}return t}mount(e,t){const i=t.id,n=o(e);if(n){this.isTargetDOMEl=!0;const t=document.createElement("div");return t.classList.add("uppy-Root"),l(this,c)[c]=function(e){let t,i=null;return function(){for(var r=arguments.length,n=new Array(r),o=0;o(i=null,e(...t))))),i}}((e=>{this.uppy.getPlugin(this.id)&&((0,r.XX)(this.render(e,t),t),this.afterUpdate())})),this.uppy.log(`Installing ${i} to a DOM element '${e}'`),this.opts.replaceTargetContent&&(n.innerHTML=""),(0,r.XX)(this.render(this.uppy.getState(),t),t),this.el=t,n.appendChild(t),t.dir=this.opts.direction||(0,s.A)(t)||"ltr",this.onMount(),this.el}const a=this.getTargetPlugin(e);if(a)return this.uppy.log(`Installing ${i} to ${a.id}`),this.parent=a,this.el=a.addTarget(t),this.onMount(),this.el;this.uppy.log(`Not installing ${i}`);let u=`Invalid target option given to ${i}.`;throw u+="function"==typeof e?" The given target is not a Plugin class. Please check that you're not specifying a React Component instead of a plugin. If you are using @uppy/* packages directly, make sure you have only 1 version of @uppy/core installed: run `npm ls @uppy/core` on the command line and verify that all the versions match and are deduped correctly.":"If you meant to target an HTML element, please make sure that the element exists. Check that the
-
+
diff --git a/blog/2016/08/0.8.0/index.html b/blog/2016/08/0.8.0/index.html
index 3cc633b7a..d1eaa87df 100644
--- a/blog/2016/08/0.8.0/index.html
+++ b/blog/2016/08/0.8.0/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2016/08/0.9.0/index.html b/blog/2016/08/0.9.0/index.html
index a1ceffd99..8d5c779c9 100644
--- a/blog/2016/08/0.9.0/index.html
+++ b/blog/2016/08/0.9.0/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2016/09/0.10/index.html b/blog/2016/09/0.10/index.html
index af63afdfd..3ca535515 100644
--- a/blog/2016/09/0.10/index.html
+++ b/blog/2016/09/0.10/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2016/11/0.11/index.html b/blog/2016/11/0.11/index.html
index 64f12997d..226b32581 100644
--- a/blog/2016/11/0.11/index.html
+++ b/blog/2016/11/0.11/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2016/12/0.12/index.html b/blog/2016/12/0.12/index.html
index 84f44cc65..2dd91ac95 100644
--- a/blog/2016/12/0.12/index.html
+++ b/blog/2016/12/0.12/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/02/0.14/index.html b/blog/2017/02/0.14/index.html
index 291549b09..727f225bd 100644
--- a/blog/2017/02/0.14/index.html
+++ b/blog/2017/02/0.14/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/03/0.15/index.html b/blog/2017/03/0.15/index.html
index f8c24a1c5..fa9d88adb 100644
--- a/blog/2017/03/0.15/index.html
+++ b/blog/2017/03/0.15/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/05/0.16/index.html b/blog/2017/05/0.16/index.html
index 78329d7fc..172ddd20c 100644
--- a/blog/2017/05/0.16/index.html
+++ b/blog/2017/05/0.16/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/05/0.17/index.html b/blog/2017/05/0.17/index.html
index 441a8006e..b8b8a1f6a 100644
--- a/blog/2017/05/0.17/index.html
+++ b/blog/2017/05/0.17/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/07/golden-retriever/index.html b/blog/2017/07/golden-retriever/index.html
index 067720d18..3c0cffc26 100644
--- a/blog/2017/07/golden-retriever/index.html
+++ b/blog/2017/07/golden-retriever/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/08/0.18/index.html b/blog/2017/08/0.18/index.html
index 28bb0cfa9..455a263bb 100644
--- a/blog/2017/08/0.18/index.html
+++ b/blog/2017/08/0.18/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/09/0.19/index.html b/blog/2017/09/0.19/index.html
index bf53c3520..662138215 100644
--- a/blog/2017/09/0.19/index.html
+++ b/blog/2017/09/0.19/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/10/0.20/index.html b/blog/2017/10/0.20/index.html
index e2b70293f..aee386a15 100644
--- a/blog/2017/10/0.20/index.html
+++ b/blog/2017/10/0.20/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/10/0.21/index.html b/blog/2017/10/0.21/index.html
index d6ab5d9c8..7dd4db143 100644
--- a/blog/2017/10/0.21/index.html
+++ b/blog/2017/10/0.21/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2017/12/0.22/index.html b/blog/2017/12/0.22/index.html
index b8703889e..6c8b9397a 100644
--- a/blog/2017/12/0.22/index.html
+++ b/blog/2017/12/0.22/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2018/02/0.23/index.html b/blog/2018/02/0.23/index.html
index 3f27a65ea..81ba91712 100644
--- a/blog/2018/02/0.23/index.html
+++ b/blog/2018/02/0.23/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2018/04/0.24/index.html b/blog/2018/04/0.24/index.html
index 6e59f3151..71884a722 100644
--- a/blog/2018/04/0.24/index.html
+++ b/blog/2018/04/0.24/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2018/06/0.25/index.html b/blog/2018/06/0.25/index.html
index 421059723..949a0f09b 100644
--- a/blog/2018/06/0.25/index.html
+++ b/blog/2018/06/0.25/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2018/07/0.26/index.html b/blog/2018/07/0.26/index.html
index ddcdc595c..78bfe2c6c 100644
--- a/blog/2018/07/0.26/index.html
+++ b/blog/2018/07/0.26/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2018/08/0.27/index.html b/blog/2018/08/0.27/index.html
index 34795bc0d..239797831 100644
--- a/blog/2018/08/0.27/index.html
+++ b/blog/2018/08/0.27/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2018/10/0.28/index.html b/blog/2018/10/0.28/index.html
index c2d8220ca..8bbfd952c 100644
--- a/blog/2018/10/0.28/index.html
+++ b/blog/2018/10/0.28/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2018/12/0.29/index.html b/blog/2018/12/0.29/index.html
index 39f034826..17b6a17ae 100644
--- a/blog/2018/12/0.29/index.html
+++ b/blog/2018/12/0.29/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/03/0.30/index.html b/blog/2019/03/0.30/index.html
index c51b5e49f..b12cbec80 100644
--- a/blog/2019/03/0.30/index.html
+++ b/blog/2019/03/0.30/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/03/liftoff-01/index.html b/blog/2019/03/liftoff-01/index.html
index 8ad5e22eb..52078f3c4 100644
--- a/blog/2019/03/liftoff-01/index.html
+++ b/blog/2019/03/liftoff-01/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/03/liftoff-02/index.html b/blog/2019/03/liftoff-02/index.html
index f50ebb01a..39b1026a5 100644
--- a/blog/2019/03/liftoff-02/index.html
+++ b/blog/2019/03/liftoff-02/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/03/liftoff-03/index.html b/blog/2019/03/liftoff-03/index.html
index b5a9b0b08..6e24c6a97 100644
--- a/blog/2019/03/liftoff-03/index.html
+++ b/blog/2019/03/liftoff-03/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/03/liftoff-04/index.html b/blog/2019/03/liftoff-04/index.html
index b8991c471..5a9685bcf 100644
--- a/blog/2019/03/liftoff-04/index.html
+++ b/blog/2019/03/liftoff-04/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/03/liftoff-05/index.html b/blog/2019/03/liftoff-05/index.html
index 80a2cfb09..f5695486f 100644
--- a/blog/2019/03/liftoff-05/index.html
+++ b/blog/2019/03/liftoff-05/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/03/liftoff-06/index.html b/blog/2019/03/liftoff-06/index.html
index 9723f2bd8..fc3b8e5fa 100644
--- a/blog/2019/03/liftoff-06/index.html
+++ b/blog/2019/03/liftoff-06/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/1.0/index.html b/blog/2019/04/1.0/index.html
index d36abd8f0..a70ae0759 100644
--- a/blog/2019/04/1.0/index.html
+++ b/blog/2019/04/1.0/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-07/index.html b/blog/2019/04/liftoff-07/index.html
index 42bb4fac0..ebb8fa9d4 100644
--- a/blog/2019/04/liftoff-07/index.html
+++ b/blog/2019/04/liftoff-07/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-08/index.html b/blog/2019/04/liftoff-08/index.html
index 3ce200138..0585a5090 100644
--- a/blog/2019/04/liftoff-08/index.html
+++ b/blog/2019/04/liftoff-08/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-09/index.html b/blog/2019/04/liftoff-09/index.html
index 99f8e27af..2cd7c9c67 100644
--- a/blog/2019/04/liftoff-09/index.html
+++ b/blog/2019/04/liftoff-09/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-10/index.html b/blog/2019/04/liftoff-10/index.html
index a9931e858..a3ef1ff72 100644
--- a/blog/2019/04/liftoff-10/index.html
+++ b/blog/2019/04/liftoff-10/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-11/index.html b/blog/2019/04/liftoff-11/index.html
index af57c7a44..a8da1ce5b 100644
--- a/blog/2019/04/liftoff-11/index.html
+++ b/blog/2019/04/liftoff-11/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-12/index.html b/blog/2019/04/liftoff-12/index.html
index 3dca065cd..6b1ef56cc 100644
--- a/blog/2019/04/liftoff-12/index.html
+++ b/blog/2019/04/liftoff-12/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-13/index.html b/blog/2019/04/liftoff-13/index.html
index 9671a8833..ca043ccc1 100644
--- a/blog/2019/04/liftoff-13/index.html
+++ b/blog/2019/04/liftoff-13/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-14/index.html b/blog/2019/04/liftoff-14/index.html
index ccb83bdac..ff7ce40b9 100644
--- a/blog/2019/04/liftoff-14/index.html
+++ b/blog/2019/04/liftoff-14/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-15/index.html b/blog/2019/04/liftoff-15/index.html
index 99cb6f361..16a952ab2 100644
--- a/blog/2019/04/liftoff-15/index.html
+++ b/blog/2019/04/liftoff-15/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-16/index.html b/blog/2019/04/liftoff-16/index.html
index 339d2334a..73b2d6e8c 100644
--- a/blog/2019/04/liftoff-16/index.html
+++ b/blog/2019/04/liftoff-16/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-17/index.html b/blog/2019/04/liftoff-17/index.html
index bd9055ccb..7eba2262e 100644
--- a/blog/2019/04/liftoff-17/index.html
+++ b/blog/2019/04/liftoff-17/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-18/index.html b/blog/2019/04/liftoff-18/index.html
index 0caf1757a..5b72cf344 100644
--- a/blog/2019/04/liftoff-18/index.html
+++ b/blog/2019/04/liftoff-18/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-19/index.html b/blog/2019/04/liftoff-19/index.html
index 8d56a8c7e..e8c7e05bb 100644
--- a/blog/2019/04/liftoff-19/index.html
+++ b/blog/2019/04/liftoff-19/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-20/index.html b/blog/2019/04/liftoff-20/index.html
index f6bb64127..02b062483 100644
--- a/blog/2019/04/liftoff-20/index.html
+++ b/blog/2019/04/liftoff-20/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-21/index.html b/blog/2019/04/liftoff-21/index.html
index a3275cd4f..2f2e87da3 100644
--- a/blog/2019/04/liftoff-21/index.html
+++ b/blog/2019/04/liftoff-21/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-22/index.html b/blog/2019/04/liftoff-22/index.html
index db9a0da41..0aeca0205 100644
--- a/blog/2019/04/liftoff-22/index.html
+++ b/blog/2019/04/liftoff-22/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-23/index.html b/blog/2019/04/liftoff-23/index.html
index 20acc3d7a..254a680a2 100644
--- a/blog/2019/04/liftoff-23/index.html
+++ b/blog/2019/04/liftoff-23/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-24/index.html b/blog/2019/04/liftoff-24/index.html
index a602b1464..d4c7610c6 100644
--- a/blog/2019/04/liftoff-24/index.html
+++ b/blog/2019/04/liftoff-24/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-25/index.html b/blog/2019/04/liftoff-25/index.html
index 862cce518..fea346cac 100644
--- a/blog/2019/04/liftoff-25/index.html
+++ b/blog/2019/04/liftoff-25/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-26/index.html b/blog/2019/04/liftoff-26/index.html
index b47f35f51..121109cad 100644
--- a/blog/2019/04/liftoff-26/index.html
+++ b/blog/2019/04/liftoff-26/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-27/index.html b/blog/2019/04/liftoff-27/index.html
index e8777e3c4..398af9aa0 100644
--- a/blog/2019/04/liftoff-27/index.html
+++ b/blog/2019/04/liftoff-27/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-28/index.html b/blog/2019/04/liftoff-28/index.html
index 2c2d3884a..59a6e03d8 100644
--- a/blog/2019/04/liftoff-28/index.html
+++ b/blog/2019/04/liftoff-28/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-29/index.html b/blog/2019/04/liftoff-29/index.html
index b7abb6c8f..0d7988058 100644
--- a/blog/2019/04/liftoff-29/index.html
+++ b/blog/2019/04/liftoff-29/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/04/liftoff-30/index.html b/blog/2019/04/liftoff-30/index.html
index 19140be43..a4cbfc7ac 100644
--- a/blog/2019/04/liftoff-30/index.html
+++ b/blog/2019/04/liftoff-30/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/08/1.3/index.html b/blog/2019/08/1.3/index.html
index 4c5216786..e2e1c23ec 100644
--- a/blog/2019/08/1.3/index.html
+++ b/blog/2019/08/1.3/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/10/1.5/index.html b/blog/2019/10/1.5/index.html
index 078374aaa..0aa1c2676 100644
--- a/blog/2019/10/1.5/index.html
+++ b/blog/2019/10/1.5/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/11/1.6/index.html b/blog/2019/11/1.6/index.html
index ffcb0693e..dd0e0d607 100644
--- a/blog/2019/11/1.6/index.html
+++ b/blog/2019/11/1.6/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2019/12/1.7/index.html b/blog/2019/12/1.7/index.html
index ddbdbc384..5eb49a7ec 100644
--- a/blog/2019/12/1.7/index.html
+++ b/blog/2019/12/1.7/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/03/1.9/index.html b/blog/2020/03/1.9/index.html
index 223e35fba..76c869213 100644
--- a/blog/2020/03/1.9/index.html
+++ b/blog/2020/03/1.9/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/03/custom-providers/index.html b/blog/2020/03/custom-providers/index.html
index 1df112c0f..cba811a07 100644
--- a/blog/2020/03/custom-providers/index.html
+++ b/blog/2020/03/custom-providers/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/04/1.10/index.html b/blog/2020/04/1.10/index.html
index 67029fbdf..88086f83b 100644
--- a/blog/2020/04/1.10/index.html
+++ b/blog/2020/04/1.10/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/04/1.13/index.html b/blog/2020/04/1.13/index.html
index 642823b5a..bd9269126 100644
--- a/blog/2020/04/1.13/index.html
+++ b/blog/2020/04/1.13/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/07/1.18-image-editor/index.html b/blog/2020/07/1.18-image-editor/index.html
index 7151acbea..d0566ce97 100644
--- a/blog/2020/07/1.18-image-editor/index.html
+++ b/blog/2020/07/1.18-image-editor/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/09/companion-2.0/index.html b/blog/2020/09/companion-2.0/index.html
index 3ce4ffe9e..63b03fa2c 100644
--- a/blog/2020/09/companion-2.0/index.html
+++ b/blog/2020/09/companion-2.0/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/10/1.22/index.html b/blog/2020/10/1.22/index.html
index ed5b570fc..96d9abdaf 100644
--- a/blog/2020/10/1.22/index.html
+++ b/blog/2020/10/1.22/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/11/1.23/index.html b/blog/2020/11/1.23/index.html
index 3e210654f..c01c0e0cc 100644
--- a/blog/2020/11/1.23/index.html
+++ b/blog/2020/11/1.23/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2020/12/1.24/index.html b/blog/2020/12/1.24/index.html
index de2bedee1..9d64f0254 100644
--- a/blog/2020/12/1.24/index.html
+++ b/blog/2020/12/1.24/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2021/01/1.25/index.html b/blog/2021/01/1.25/index.html
index 7c9f8c3eb..87bd8c91c 100644
--- a/blog/2021/01/1.25/index.html
+++ b/blog/2021/01/1.25/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2021/02/1.26/index.html b/blog/2021/02/1.26/index.html
index 6bcd2f41b..fbdd12c72 100644
--- a/blog/2021/02/1.26/index.html
+++ b/blog/2021/02/1.26/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2021/04/1.27/index.html b/blog/2021/04/1.27/index.html
index e9332edf9..8a1641454 100644
--- a/blog/2021/04/1.27/index.html
+++ b/blog/2021/04/1.27/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2021/05/1.29/index.html b/blog/2021/05/1.29/index.html
index a39974c35..64ae2accd 100644
--- a/blog/2021/05/1.29/index.html
+++ b/blog/2021/05/1.29/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2021/07/1.30/index.html b/blog/2021/07/1.30/index.html
index e985c7f4d..a115ed46e 100644
--- a/blog/2021/07/1.30/index.html
+++ b/blog/2021/07/1.30/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2021/08/2.0/index.html b/blog/2021/08/2.0/index.html
index 2080d3b08..046d0aca9 100644
--- a/blog/2021/08/2.0/index.html
+++ b/blog/2021/08/2.0/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2021/12/2.1-2.3/index.html b/blog/2021/12/2.1-2.3/index.html
index cc3c682e7..3bc890152 100644
--- a/blog/2021/12/2.1-2.3/index.html
+++ b/blog/2021/12/2.1-2.3/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2022/03/2.4-2.7/index.html b/blog/2022/03/2.4-2.7/index.html
index c066a2e87..c1a737e22 100644
--- a/blog/2022/03/2.4-2.7/index.html
+++ b/blog/2022/03/2.4-2.7/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2022/09/3.0/index.html b/blog/2022/09/3.0/index.html
index 7781a3081..2fc971dfe 100644
--- a/blog/2022/09/3.0/index.html
+++ b/blog/2022/09/3.0/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2022/12/3.3/index.html b/blog/2022/12/3.3/index.html
index a0d019a65..1b3f3f57c 100644
--- a/blog/2022/12/3.3/index.html
+++ b/blog/2022/12/3.3/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2023-05-new-website/index.html b/blog/2023-05-new-website/index.html
index 67723bb5d..733eea94c 100644
--- a/blog/2023-05-new-website/index.html
+++ b/blog/2023-05-new-website/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2023-10-25-image-editor/index.html b/blog/2023-10-25-image-editor/index.html
index a8c95e1a0..3449683a6 100644
--- a/blog/2023-10-25-image-editor/index.html
+++ b/blog/2023-10-25-image-editor/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2023/07/3.13-3.21/index.html b/blog/2023/07/3.13-3.21/index.html
index daeb6c8f2..347dc81c5 100644
--- a/blog/2023/07/3.13-3.21/index.html
+++ b/blog/2023/07/3.13-3.21/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/2023/07/3.3-3.13/index.html b/blog/2023/07/3.3-3.13/index.html
index f08a6c29a..d7f5361ff 100644
--- a/blog/2023/07/3.3-3.13/index.html
+++ b/blog/2023/07/3.3-3.13/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 58e754ba1..db1143354 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/index.html b/blog/index.html
index a1d719982..b3f66f5c5 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/2/index.html b/blog/page/2/index.html
index 7abfc4e46..d98416ba2 100644
--- a/blog/page/2/index.html
+++ b/blog/page/2/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/3/index.html b/blog/page/3/index.html
index 5f87ab0dd..d2ff58576 100644
--- a/blog/page/3/index.html
+++ b/blog/page/3/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/4/index.html b/blog/page/4/index.html
index 8ff3fcabc..0d766f5f7 100644
--- a/blog/page/4/index.html
+++ b/blog/page/4/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/5/index.html b/blog/page/5/index.html
index a498aba72..c719f54ce 100644
--- a/blog/page/5/index.html
+++ b/blog/page/5/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/6/index.html b/blog/page/6/index.html
index 177909cc0..7469fff22 100644
--- a/blog/page/6/index.html
+++ b/blog/page/6/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/7/index.html b/blog/page/7/index.html
index d2df7a72e..68af62210 100644
--- a/blog/page/7/index.html
+++ b/blog/page/7/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/8/index.html b/blog/page/8/index.html
index d4eebac96..1d6a0cff0 100644
--- a/blog/page/8/index.html
+++ b/blog/page/8/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/page/9/index.html b/blog/page/9/index.html
index 5eb454c3d..1b9d28ef6 100644
--- a/blog/page/9/index.html
+++ b/blog/page/9/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/blog/uppy-4.0/index.html b/blog/uppy-4.0/index.html
index 255244fd9..577ddbe7f 100644
--- a/blog/uppy-4.0/index.html
+++ b/blog/uppy-4.0/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/angular/index.html b/docs/angular/index.html
index 3187930cf..d299f26e4 100644
--- a/docs/angular/index.html
+++ b/docs/angular/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/audio/index.html b/docs/audio/index.html
index 102e6d190..67e6903d6 100644
--- a/docs/audio/index.html
+++ b/docs/audio/index.html
@@ -13,7 +13,7 @@
-
+
@@ -26,7 +26,7 @@
When should I use this?
When you want users to record audio on their computer.
Install
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , Audio } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { inline : true , target : 'body' } ) uppy . use ( Audio ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , Audio } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { inline : true , target : 'body' } ) uppy . use ( Audio ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import Audio from '@uppy/audio' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; import '@uppy/audio/dist/style.min.css' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : 'body' } ) . use ( Audio ) ;
API
diff --git a/docs/aws-s3/index.html b/docs/aws-s3/index.html
index eca3d2b6f..02fcb7c8e 100644
--- a/docs/aws-s3/index.html
+++ b/docs/aws-s3/index.html
@@ -13,7 +13,7 @@
-
+
@@ -48,7 +48,7 @@ When sh
instead of short lived signed URL per resource. This is a security trade-off.
Install
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , AwsS3 } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" new Uppy ( ) . use ( AwsS3 , { } ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , AwsS3 } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" new Uppy ( ) . use ( AwsS3 , { } ) </ script >
Use
Setting up your S3 bucket
To use this plugin with S3 we need to setup a bucket with the right permissions
diff --git a/docs/box/index.html b/docs/box/index.html
index 2a2c52801..b25dab4d3 100644
--- a/docs/box/index.html
+++ b/docs/box/index.html
@@ -13,7 +13,7 @@
-
+
@@ -31,7 +31,7 @@ When
are on a mobile connection.
You can self-host Companion or get a hosted version with any
Transloadit plan .
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Box } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Box , { } ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Box } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Box , { } ) </ script >
Use
Using Box requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/companion/index.html b/docs/companion/index.html
index 20a507ffc..e009657c4 100644
--- a/docs/companion/index.html
+++ b/docs/companion/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/compressor/index.html b/docs/compressor/index.html
index ba520f8ff..1afa17a90 100644
--- a/docs/compressor/index.html
+++ b/docs/compressor/index.html
@@ -13,7 +13,7 @@
-
+
@@ -25,7 +25,7 @@ When sh
When your users are likely to upload images, potentially on mobile devices, and
saving data and faster uploads are important.
Install
-npm install @uppy/compressor
yarn add @uppy/compressor
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Compressor } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Compressor , { } ) </ script >
+npm install @uppy/compressor
yarn add @uppy/compressor
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Compressor } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Compressor , { } ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import Compressor from '@uppy/compressor' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : '#dashboard' ) . use ( Compressor ) ;
No action is needed from the user — Uppy will automatically optimize images,
diff --git a/docs/dashboard/index.html b/docs/dashboard/index.html
index c97276363..9d037d3d3 100644
--- a/docs/dashboard/index.html
+++ b/docs/dashboard/index.html
@@ -13,7 +13,7 @@
-
+
@@ -38,7 +38,7 @@ When
capture their screen .
Install
-npm install @uppy/core @uppy/dashboard
yarn add @uppy/core @uppy/dashboard
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { target : '#uppy' , inline : true } ) </ script >
+npm install @uppy/core @uppy/dashboard
yarn add @uppy/core @uppy/dashboard
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { target : '#uppy' , inline : true } ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : '#uppy-dashboard' } ) ;
The @uppy/dashboard
plugin includes CSS for the Dashboard itself, and the
diff --git a/docs/drag-drop/index.html b/docs/drag-drop/index.html
index a70bee72d..523fb254c 100644
--- a/docs/drag-drop/index.html
+++ b/docs/drag-drop/index.html
@@ -13,7 +13,7 @@
-
+
@@ -27,7 +27,7 @@
When
Dashboard is too much. But it can be too minimal too. By
default it doesn’t show that a file has been added nor is there a progress bar.
Install
-npm install @uppy/core @uppy/drag-drop
yarn add @uppy/core @uppy/drag-drop
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , DragDrop } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( DragDrop , { target : '#uppy' } ) </ script >
+npm install @uppy/core @uppy/drag-drop
yarn add @uppy/core @uppy/drag-drop
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , DragDrop } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( DragDrop , { target : '#uppy' } ) </ script >
Use
import Uppy from '@uppy/core' ; import DragDrop from '@uppy/drag-drop' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/drag-drop/dist/style.min.css' ; new Uppy ( ) . use ( DragDrop , { target : '#drag-drop' } ) ;
Certain restrictions set in Uppy’s options, namely
diff --git a/docs/drop-target/index.html b/docs/drop-target/index.html
index 6323da51e..69eedc434 100644
--- a/docs/drop-target/index.html
+++ b/docs/drop-target/index.html
@@ -13,7 +13,7 @@
-
+
@@ -29,7 +29,7 @@
When
in the Dashboard
UI, or catch dropped files from anywhere
on the page.
Install
-npm install @uppy/drop-target
yarn add @uppy/drop-target
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { DropTarget } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const DropTarget = new Uppy ( ) . use ( DropTarget ) </ script >
+npm install @uppy/drop-target
yarn add @uppy/drop-target
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { DropTarget } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const DropTarget = new Uppy ( ) . use ( DropTarget ) </ script >
Use
This module has one default export: the DropTarget
plugin class.
import Uppy from '@uppy/core' ; import DropTarget from '@uppy/drop-target' ; import '@uppy/core/dist/style.css' ; import '@uppy/drop-target/dist/style.css' ; const uppy = new Uppy ( ) ; uppy . use ( DropTarget , { target : document . body , } ) ;
diff --git a/docs/dropbox/index.html b/docs/dropbox/index.html
index e21e2e74b..db81dd13c 100644
--- a/docs/dropbox/index.html
+++ b/docs/dropbox/index.html
@@ -13,7 +13,7 @@
-
+
@@ -31,7 +31,7 @@
When
helpful if they are on a mobile connection.
You can self-host Companion or get a hosted version with any
Transloadit plan .
-
npm install @uppy/dropbox
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dropbox } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dropbox , { } ) </ script >
+
npm install @uppy/dropbox
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dropbox } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dropbox , { } ) </ script >
Use
Using Dropbox requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/facebook/index.html b/docs/facebook/index.html
index 200dac685..4de8a4f19 100644
--- a/docs/facebook/index.html
+++ b/docs/facebook/index.html
@@ -13,7 +13,7 @@
-
+
@@ -31,7 +31,7 @@
When
helpful if they are on a mobile connection.
You can self-host Companion or get a hosted version with any
Transloadit plan .
-
npm install @uppy/facebook
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Facebook } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Facebook , { } ) </ script >
+
npm install @uppy/facebook
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Facebook } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Facebook , { } ) </ script >
Use
Using Facebook requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/file-input/index.html b/docs/file-input/index.html
index 7f057cb2c..b247e73e6 100644
--- a/docs/file-input/index.html
+++ b/docs/file-input/index.html
@@ -13,7 +13,7 @@
-
+
@@ -23,7 +23,7 @@
When should I use it?
When you want users to select files from their local machine with a minimal UI.
Install
-
npm install @uppy/file-input
yarn add @uppy/file-input
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , FileInput } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( FileInput , { target : document . body } ) </ script >
+
npm install @uppy/file-input
yarn add @uppy/file-input
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , FileInput } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( FileInput , { target : document . body } ) </ script >
Use
import Uppy from '@uppy/core' ; import FileInput from '@uppy/file-input' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/file-input/dist/style.css' ; new Uppy ( ) . use ( FileInput , { target : '#uppy-file-input' } ) ;
The @uppy/file-input
plugin includes some basic styles for use with the
diff --git a/docs/form/index.html b/docs/form/index.html
index 43fbbd74f..0bbb2c6a4 100644
--- a/docs/form/index.html
+++ b/docs/form/index.html
@@ -13,7 +13,7 @@
-
+
@@ -46,7 +46,7 @@
When
and listen to uppy.on('complete')
to get the upload
results back.
Install
-
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Form } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Form , { } ) </ script >
+
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Form } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Form , { } ) </ script >
Use
app.js
import Uppy from '@uppy/core' ; import Form from '@uppy/form' ; import DragDrop from '@uppy/drag-drop' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/drag-drop/dist/style.min.css' ; new Uppy ( ) . use ( Form , { target : '#my-form' , } ) ;
index.html
< form id = " my-form " action = " /submit " method = " get " > < label for = " name " > Enter your name: </ label > < input type = " text " name = " name " required /> < label for = " dob " > Date of birth: </ label > < input type = " date " name = " dob " /> < input type = " submit " value = " Save " /> </ form >
diff --git a/docs/golden-retriever/index.html b/docs/golden-retriever/index.html
index e5e7496be..eb388b791 100644
--- a/docs/golden-retriever/index.html
+++ b/docs/golden-retriever/index.html
@@ -13,7 +13,7 @@
-
+
@@ -49,7 +49,7 @@
When
something else in your app or otherwise, and then come back to the same
selection.
Install
-npm install @uppy/golden-retriever
yarn add @uppy/golden-retriever
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoldenRetriever } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" new Uppy ( ) . use ( GoldenRetriever ) </ script >
+npm install @uppy/golden-retriever
yarn add @uppy/golden-retriever
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoldenRetriever } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" new Uppy ( ) . use ( GoldenRetriever ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import GoldenRetriever from '@uppy/golden-retriever' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : '#dashboard' ) . use ( GoldenRetriever ) ;
By default, Golden Retriever will only use the IndexedDB
storage, which is
diff --git a/docs/google-drive-picker/index.html b/docs/google-drive-picker/index.html
index a0a0a36b1..8cac1b4df 100644
--- a/docs/google-drive-picker/index.html
+++ b/docs/google-drive-picker/index.html
@@ -13,7 +13,7 @@
-
+
@@ -37,7 +37,7 @@
When
The downside of using the Picker UI made by Google is less controls, inability
to select folders, downloading an additional bundle, and a less consistent user
experience.
-
npm install @uppy/google-drive-picker
yarn add @uppy/google-drive-picker
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoogleDrivePicker } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GoogleDrivePicker , { } ) </ script >
+
npm install @uppy/google-drive-picker
yarn add @uppy/google-drive-picker
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoogleDrivePicker } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GoogleDrivePicker , { } ) </ script >
Use
Using Google Drive Picker requires setup in both Uppy and Companion.
Initial setup
diff --git a/docs/google-drive/index.html b/docs/google-drive/index.html
index b2d985010..19eabb63f 100644
--- a/docs/google-drive/index.html
+++ b/docs/google-drive/index.html
@@ -13,7 +13,7 @@
-
+
@@ -38,7 +38,7 @@
When
The downside is it needs a restricted API scope, which requires CASA Tier 2
compliance. This could take months to obtain and potentially a third-party
security audit.
-
npm install @uppy/google-drive
yarn add @uppy/google-drive
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoogleDrive } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GoogleDrive , { } ) </ script >
+
npm install @uppy/google-drive
yarn add @uppy/google-drive
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoogleDrive } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GoogleDrive , { } ) </ script >
Use
Using Google Drive requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/google-photos-picker/index.html b/docs/google-photos-picker/index.html
index f16ee7962..29d6d70ff 100644
--- a/docs/google-photos-picker/index.html
+++ b/docs/google-photos-picker/index.html
@@ -13,7 +13,7 @@
-
+
@@ -37,7 +37,7 @@
When
The downside of using the Picker UI made by Google is less controls, inability
to select folders, downloading an additional bundle, and a less consistent user
experience.
-
npm install @uppy/google-photos-picker
yarn add @uppy/google-photos-picker
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GooglePhotosPicker } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GooglePhotosPicker , { } ) </ script >
+
npm install @uppy/google-photos-picker
yarn add @uppy/google-photos-picker
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GooglePhotosPicker } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GooglePhotosPicker , { } ) </ script >
Use
Using Google Photos Picker requires setup in both Uppy and Companion.
Initial setup
diff --git a/docs/google-photos/index.html b/docs/google-photos/index.html
index d860ce917..84d90180d 100644
--- a/docs/google-photos/index.html
+++ b/docs/google-photos/index.html
@@ -13,7 +13,7 @@
-
+
@@ -38,7 +38,7 @@
When
The downside is it needs a restricted API scope, which requires CASA Tier 2
compliance. This could take months to obtain and potentially a third-party
security audit.
-
npm install @uppy/google-photos
yarn add @uppy/google-photos
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GooglePhotos } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GooglePhotos , { } ) </ script >
+
npm install @uppy/google-photos
yarn add @uppy/google-photos
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GooglePhotos } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( GooglePhotos , { } ) </ script >
Use
Using Google Photos requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/guides/browser-support/index.html b/docs/guides/browser-support/index.html
index 06f8c270a..439f0ba5c 100644
--- a/docs/guides/browser-support/index.html
+++ b/docs/guides/browser-support/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/guides/building-plugins/index.html b/docs/guides/building-plugins/index.html
index 51bf4dd97..90713de1b 100644
--- a/docs/guides/building-plugins/index.html
+++ b/docs/guides/building-plugins/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/guides/building-your-own-ui-with-uppy/index.html b/docs/guides/building-your-own-ui-with-uppy/index.html
index 68631015b..1c40734b2 100644
--- a/docs/guides/building-your-own-ui-with-uppy/index.html
+++ b/docs/guides/building-your-own-ui-with-uppy/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/guides/choosing-uploader/index.html b/docs/guides/choosing-uploader/index.html
index ed45cfba1..708ac69e5 100644
--- a/docs/guides/choosing-uploader/index.html
+++ b/docs/guides/choosing-uploader/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/guides/custom-stores/index.html b/docs/guides/custom-stores/index.html
index 2fad84b1c..1731e68be 100644
--- a/docs/guides/custom-stores/index.html
+++ b/docs/guides/custom-stores/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/guides/migration-guides/index.html b/docs/guides/migration-guides/index.html
index 5be1ed570..21e966306 100644
--- a/docs/guides/migration-guides/index.html
+++ b/docs/guides/migration-guides/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/image-editor/index.html b/docs/image-editor/index.html
index 2d697b936..b346e700c 100644
--- a/docs/image-editor/index.html
+++ b/docs/image-editor/index.html
@@ -13,7 +13,7 @@
-
+
@@ -24,7 +24,7 @@
When
When you want to allow users to crop, rotate, zoom and flip images that are
added to Uppy.
Install
-
npm install @uppy/core @uppy/dashboard @uppy/image-editor
yarn add @uppy/core @uppy/dashboard @uppy/image-editor
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , ImageEditor } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { target : '#uppy' , inline : true } ) uppy . use ( ImageEditor ) </ script >
+
npm install @uppy/core @uppy/dashboard @uppy/image-editor
yarn add @uppy/core @uppy/dashboard @uppy/image-editor
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , ImageEditor } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { target : '#uppy' , inline : true } ) uppy . use ( ImageEditor ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import ImageEditor from '@uppy/image-editor' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; import '@uppy/image-editor/dist/style.min.css' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : '#dashboard' } ) . use ( ImageEditor ) ;
API
diff --git a/docs/index.html b/docs/index.html
index 7c96992bd..8c51e4e2d 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/informer/index.html b/docs/informer/index.html
index 1a5ca0650..d3e7a62bf 100644
--- a/docs/informer/index.html
+++ b/docs/informer/index.html
@@ -13,7 +13,7 @@
-
+
@@ -26,7 +26,7 @@
When sh
This plugin is published separately but made specifically for the Dashboard. You
can technically use it without it, but it’s not officially supported.
Install
-npm install @uppy/informer
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Informer } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Informer , { target : '#informer' } ) </ script >
+npm install @uppy/informer
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Informer } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Informer , { target : '#informer' } ) </ script >
Use
import Uppy from '@uppy/core' ; import Informer from '@uppy/informer' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/informer/dist/style.min.css' ; new Uppy ( ) . use ( Informer , { target : '#informer' } ) ;
Informer gets its data from uppy.state.info
, which is updated by various
diff --git a/docs/instagram/index.html b/docs/instagram/index.html
index 86574501d..1e7aef359 100644
--- a/docs/instagram/index.html
+++ b/docs/instagram/index.html
@@ -13,7 +13,7 @@
-
+
@@ -31,7 +31,7 @@
When
helpful if they are on a mobile connection.
You can self-host Companion or get a hosted version with any
Transloadit plan .
-
npm install @uppy/instagram
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Instagram } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Instagram , { } ) </ script >
+
npm install @uppy/instagram
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Instagram } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Instagram , { } ) </ script >
Use
Using Instagram requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/locales/index.html b/docs/locales/index.html
index 6b83c85de..978480dcd 100644
--- a/docs/locales/index.html
+++ b/docs/locales/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/nextjs/index.html b/docs/nextjs/index.html
index f731883a4..1de6dc778 100644
--- a/docs/nextjs/index.html
+++ b/docs/nextjs/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/onedrive/index.html b/docs/onedrive/index.html
index f6b7ec431..3df30f5ce 100644
--- a/docs/onedrive/index.html
+++ b/docs/onedrive/index.html
@@ -13,7 +13,7 @@
-
+
@@ -31,7 +31,7 @@
When
helpful if they are on a mobile connection.
You can self-host Companion or get a hosted version with any
Transloadit plan .
-
npm install @uppy/onedrive
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , OneDrive } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( OneDrive , { } ) </ script >
+
npm install @uppy/onedrive
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , OneDrive } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( OneDrive , { } ) </ script >
Use
Using OneDrive requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/progress-bar/index.html b/docs/progress-bar/index.html
index 238ce580e..8695e75e6 100644
--- a/docs/progress-bar/index.html
+++ b/docs/progress-bar/index.html
@@ -13,7 +13,7 @@
-
+
@@ -27,7 +27,7 @@
When sh
cases, Dashboard or Drag & Drop (with
Status Bar ) is more likely what you need.
Install
-npm install @uppy/progress-bar
yarn add @uppy/progress-bar
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , ProgressBar } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( ProgressBar , { target : '#progress-bar' } ) </ script >
+npm install @uppy/progress-bar
yarn add @uppy/progress-bar
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , ProgressBar } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( ProgressBar , { target : '#progress-bar' } ) </ script >
Use
import Uppy from '@uppy/core' ; import ProgressBar from '@uppy/progress-bar' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/progress-bar/dist/style.min.css' ; new Uppy ( ) . use ( ProgressBar , { target : '#progress-bar' } ) ;
API
diff --git a/docs/quick-start/index.html b/docs/quick-start/index.html
index 7a71b025f..326874aa4 100644
--- a/docs/quick-start/index.html
+++ b/docs/quick-start/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/react/index.html b/docs/react/index.html
index 80779a65e..35a2261e6 100644
--- a/docs/react/index.html
+++ b/docs/react/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/reactrouter/index.html b/docs/reactrouter/index.html
index 08f87587e..1ae1221a8 100644
--- a/docs/reactrouter/index.html
+++ b/docs/reactrouter/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/remote-sources/index.html b/docs/remote-sources/index.html
index e589ceb18..a3ecfd97f 100644
--- a/docs/remote-sources/index.html
+++ b/docs/remote-sources/index.html
@@ -13,7 +13,7 @@
-
+
@@ -36,7 +36,7 @@ When sh
You can self-host Companion or get a hosted version with any
Transloadit plan .
Install
-
npm install @uppy/remote-sources
yarn add @uppy/remote-sources
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { RemoteSources } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const RemoteSources = new Uppy ( ) . use ( RemoteSources ) </ script >
+
npm install @uppy/remote-sources
yarn add @uppy/remote-sources
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { RemoteSources } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const RemoteSources = new Uppy ( ) . use ( RemoteSources ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import RemoteSources from '@uppy/remote-sources' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; new Uppy ( ) ; . use ( Dashboard ) ; . use ( RemoteSources , { companionUrl : 'https://your-companion-url' } ) ;
Use with Transloadit
diff --git a/docs/screen-capture/index.html b/docs/screen-capture/index.html
index 6397c2d18..8750df707 100644
--- a/docs/screen-capture/index.html
+++ b/docs/screen-capture/index.html
@@ -13,7 +13,7 @@
-
+
@@ -33,7 +33,7 @@
When
This restriction does not apply on localhost
, so you don’t have to jump
through many hoops during development.
Install
-npm install @uppy/screen-capture
yarn add @uppy/screen-capture
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , ScreenCapture } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { inline : true , target : 'body' } ) uppy . use ( ScreenCapture ) </ script >
+npm install @uppy/screen-capture
yarn add @uppy/screen-capture
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , ScreenCapture } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { inline : true , target : 'body' } ) uppy . use ( ScreenCapture ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import ScreenCapture from '@uppy/screen-capture' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; import '@uppy/screen-capture/dist/style.min.css' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : 'body' } ) . use ( ScreenCapture ) ;
API
diff --git a/docs/status-bar/index.html b/docs/status-bar/index.html
index 15d98be09..c7f0f294b 100644
--- a/docs/status-bar/index.html
+++ b/docs/status-bar/index.html
@@ -13,7 +13,7 @@
-
+
@@ -29,7 +29,7 @@ When sh
can still use it without it but it may need some (CSS) tweaking for your use
case.
Install
-npm install @uppy/status-bar
yarn add @uppy/status-bar
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , StatusBar } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( StatusBar , { target : '#status-bar' } ) </ script >
+npm install @uppy/status-bar
yarn add @uppy/status-bar
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , StatusBar } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( StatusBar , { target : '#status-bar' } ) </ script >
Use
import Uppy from '@uppy/core' ; import StatusBar from '@uppy/status-bar' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/status-bar/dist/style.min.css' ; new Uppy ( ) . use ( StatusBar , { target : '#status-bar' } ) ;
API
diff --git a/docs/svelte/index.html b/docs/svelte/index.html
index 7a7c6b268..b3f24b600 100644
--- a/docs/svelte/index.html
+++ b/docs/svelte/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/sveltekit/index.html b/docs/sveltekit/index.html
index e28798b69..f7cc53bc4 100644
--- a/docs/sveltekit/index.html
+++ b/docs/sveltekit/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/thumbnail-generator/index.html b/docs/thumbnail-generator/index.html
index f886688a5..070800961 100644
--- a/docs/thumbnail-generator/index.html
+++ b/docs/thumbnail-generator/index.html
@@ -13,7 +13,7 @@
-
+
@@ -28,7 +28,7 @@ When
downloaded on the server. Some providers, such as Google Drive, have baked in
thumbnails into their API responses.
Install
-npm install @uppy/thumbnail-generator
yarn add @uppy/thumbnail-generator
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , ThumbnailGenerator } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( ThumbnailGenerator ) </ script >
+npm install @uppy/thumbnail-generator
yarn add @uppy/thumbnail-generator
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , ThumbnailGenerator } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( ThumbnailGenerator ) </ script >
Use
If you use the Dashboard then it’s already installed. If you
want to use it programmatically for your own UI:
diff --git a/docs/transloadit/index.html b/docs/transloadit/index.html
index 1d8031456..bde1b9e25 100644
--- a/docs/transloadit/index.html
+++ b/docs/transloadit/index.html
@@ -13,7 +13,7 @@
-
+
@@ -39,7 +39,7 @@ When sh
Companion servers, (optionally) need file processing, and store it in the
service (such as S3 or GCS) of your liking. All with minimal effort.
Install
-npm install @uppy/transloadit
yarn add @uppy/transloadit
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Transloadit } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" new Uppy ( ) . use ( Transloadit , { } ) </ script >
+npm install @uppy/transloadit
yarn add @uppy/transloadit
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Transloadit } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" new Uppy ( ) . use ( Transloadit , { } ) </ script >
Use
A quick overview of the complete API.
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import Transloadit from '@uppy/transloadit' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; const uppy = new Uppy ( ) . use ( Dashboard , { inline : true , target : 'body' } ) . use ( Transloadit , { assemblyOptions : { params : { auth : { key : 'your-transloadit-key' } , template_id : 'your-template-id' , } , } , } ) ; uppy . on ( 'transloadit:assembly-created' , ( assembly , fileIDs ) => { } ) ; uppy . on ( 'transloadit:upload' , ( file , assembly ) => { } ) ; uppy . on ( 'transloadit:assembly-executing' , ( assembly ) => { } ) ; uppy . on ( 'transloadit:result' , ( stepName , result , assembly ) => { } ) ; uppy . on ( 'transloadit:complete' , ( assembly ) => { } ) ;
diff --git a/docs/tus/index.html b/docs/tus/index.html
index 68ddbb9ac..f0cdac1ba 100644
--- a/docs/tus/index.html
+++ b/docs/tus/index.html
@@ -13,7 +13,7 @@
-
+
@@ -35,7 +35,7 @@ When sh
If you want reliable, resumable uploads: use @uppy/tus
to connect to your Tus
server in a few lines of code.
Install
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Tus } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" new Uppy ( ) . use ( Tus , { endpoint : 'https://tusd.tusdemo.net/files' } ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Tus } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" new Uppy ( ) . use ( Tus , { endpoint : 'https://tusd.tusdemo.net/files' } ) </ script >
Use
A quick overview of the complete API.
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import Tus from '@uppy/tus' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : 'body' } ) . use ( Tus , { endpoint : 'https://tusd.tusdemo.net/files/' } ) ;
diff --git a/docs/unsplash/index.html b/docs/unsplash/index.html
index 69dcbf24c..f8d5beeba 100644
--- a/docs/unsplash/index.html
+++ b/docs/unsplash/index.html
@@ -13,7 +13,7 @@
-
+
@@ -31,7 +31,7 @@ When
helpful if they are on a mobile connection.
You can self-host Companion or get a hosted version with any
Transloadit plan .
-npm install @uppy/unsplash
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Unsplash } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Unsplash , { } ) </ script >
+npm install @uppy/unsplash
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Unsplash } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Unsplash , { } ) </ script >
Use
Using Unsplash requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/docs/uppy/index.html b/docs/uppy/index.html
index 57123e092..624c65153 100644
--- a/docs/uppy/index.html
+++ b/docs/uppy/index.html
@@ -13,7 +13,7 @@
-
+
@@ -33,7 +33,7 @@ When sh
If you want to see how it all comes together, checkout the
examples .
Install
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) </ script >
Use
@uppy/core
has four exports: Uppy
, UIPlugin
, BasePlugin
, and
debugLogger
. The default export is the Uppy
class.
diff --git a/docs/url/index.html b/docs/url/index.html
index 3abcdf1a5..07cf862a1 100644
--- a/docs/url/index.html
+++ b/docs/url/index.html
@@ -13,7 +13,7 @@
-
+
@@ -33,7 +33,7 @@ When
Server Side Request Forgery
(SSRF) protections built-in so you don’t have to worry about the security
implications of arbitrary URLs.
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Url } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Url , { } ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Url } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Url , { } ) </ script >
Use
Using @uppy/url
only requires setup in Uppy.
Use in Uppy
diff --git a/docs/vue/index.html b/docs/vue/index.html
index d42744ebd..f0506961c 100644
--- a/docs/vue/index.html
+++ b/docs/vue/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/docs/webcam/index.html b/docs/webcam/index.html
index 0fa3fa84b..aecff81ac 100644
--- a/docs/webcam/index.html
+++ b/docs/webcam/index.html
@@ -13,7 +13,7 @@
-
+
@@ -27,7 +27,7 @@ When sh
separately but made specifically for the Dashboard . You can
technically use it without it, but it’s not officially supported.
Install
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , Webcam } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { inline : true , target : 'body' } ) uppy . use ( Webcam ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , Webcam } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Dashboard , { inline : true , target : 'body' } ) uppy . use ( Webcam ) </ script >
Use
To use the Webcam plugin in Chrome,
your site must be served over https .
diff --git a/docs/webdav/index.html b/docs/webdav/index.html
index 3b3ae6b63..981075e30 100644
--- a/docs/webdav/index.html
+++ b/docs/webdav/index.html
@@ -13,7 +13,7 @@
-
+
@@ -35,7 +35,7 @@
When
Server Side Request Forgery
(SSRF) protections built-in so you don’t have to worry about the security
implications of arbitrary URLs.
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , WebDav } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( WebDav , { } ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , WebDav } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( WebDav , { } ) </ script >
Use
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import WebDav from '@uppy/webdav' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : '#dashboard' } ) . use ( WebDav , { companionUrl : 'https://your-companion.com' } ) ;
API
diff --git a/docs/xhr-upload/index.html b/docs/xhr-upload/index.html
index ef18924ad..befd02fb7 100644
--- a/docs/xhr-upload/index.html
+++ b/docs/xhr-upload/index.html
@@ -13,7 +13,7 @@
-
+
@@ -28,7 +28,7 @@ When sh
instance, if you have a Node.js server (or server-side framework like Next.js)
you could integrate tus-node-server .
Install
-npm install @uppy/xhr-upload
yarn add @uppy/xhr-upload
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , XHRUpload } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" new Uppy ( ) . use ( XHRUpload , { endpoint : 'https://tusd.tusdemo.net/files' } ) </ script >
+npm install @uppy/xhr-upload
yarn add @uppy/xhr-upload
The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , XHRUpload } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" new Uppy ( ) . use ( XHRUpload , { endpoint : 'https://tusd.tusdemo.net/files' } ) </ script >
Use
A quick overview of the complete API.
import Uppy from '@uppy/core' ; import Dashboard from '@uppy/dashboard' ; import XHR from '@uppy/xhr-upload' ; import '@uppy/core/dist/style.min.css' ; import '@uppy/dashboard/dist/style.min.css' ; new Uppy ( ) . use ( Dashboard , { inline : true , target : 'body' } ) . use ( XHR , { endpoint : 'https://your-domain.com/upload' } ) ;
diff --git a/docs/zoom/index.html b/docs/zoom/index.html
index 86b69494a..cac106929 100644
--- a/docs/zoom/index.html
+++ b/docs/zoom/index.html
@@ -13,7 +13,7 @@
-
+
@@ -34,7 +34,7 @@ When
they are on a mobile connection.
You can self-host Companion or get a hosted version with any
Transloadit plan .
-The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.0/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Zoom } from "https://releases.transloadit.com/uppy/v4.13.0/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Zoom , { } ) </ script >
+The bundle consists of most Uppy plugins, so this method is not recommended for production, as your users will have to download all plugins when you are likely using only a few.
It can be useful to speed up your development environment, so don't hesitate to use it to get you started.
< link href = " https://releases.transloadit.com/uppy/v4.13.1/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Zoom } from "https://releases.transloadit.com/uppy/v4.13.1/uppy.min.mjs" const uppy = new Uppy ( ) uppy . use ( Zoom , { } ) </ script >
Use
Using Zoom requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/examples/index.html b/examples/index.html
index 89178792a..5df13f6a7 100644
--- a/examples/index.html
+++ b/examples/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/index.html b/index.html
index b40e775e0..2cb7e79bb 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/privacy-policy/index.html b/privacy-policy/index.html
index 43df52a22..0a5f77643 100644
--- a/privacy-policy/index.html
+++ b/privacy-policy/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/search/index.html b/search/index.html
index 904a6ce15..f9d575acb 100644
--- a/search/index.html
+++ b/search/index.html
@@ -13,7 +13,7 @@
-
+