From ee60d9ddccfb21d3918b60f75a89dd5da88a270c Mon Sep 17 00:00:00 2001
From: Murderlon
Date: Mon, 20 Jan 2025 08:01:22 +0000
Subject: [PATCH] deploy: 3e6f6a2e1c40829ccc1fd73cb1be4fc3def5f3d1
---
404.html | 2 +-
assets/js/{2057.2c9244ad.js => 2057.b72324d8.js} | 2 +-
assets/js/{250.5598eda3.js => 250.5220c303.js} | 4 ++--
...50.5598eda3.js.LICENSE.txt => 250.5220c303.js.LICENSE.txt} | 0
.../js/{runtime~main.234ebd5e.js => runtime~main.84c92077.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.2c9244ad.js => 2057.b72324d8.js} (99%)
rename assets/js/{250.5598eda3.js => 250.5220c303.js} (99%)
rename assets/js/{250.5598eda3.js.LICENSE.txt => 250.5220c303.js.LICENSE.txt} (100%)
rename assets/js/{runtime~main.234ebd5e.js => runtime~main.84c92077.js} (99%)
diff --git a/404.html b/404.html
index 27302b9ba..20088923c 100644
--- a/404.html
+++ b/404.html
@@ -13,7 +13,7 @@
-
+
diff --git a/assets/js/2057.2c9244ad.js b/assets/js/2057.b72324d8.js
similarity index 99%
rename from assets/js/2057.2c9244ad.js
rename to assets/js/2057.b72324d8.js
index f9ab1037d..929a562bc 100644
--- a/assets/js/2057.2c9244ad.js
+++ b/assets/js/2057.b72324d8.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.12.2"}}}]);
\ 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.0"}}}]);
\ No newline at end of file
diff --git a/assets/js/250.5598eda3.js b/assets/js/250.5220c303.js
similarity index 99%
rename from assets/js/250.5598eda3.js
rename to assets/js/250.5220c303.js
index a359ebed3..8ba6da3e3 100644
--- a/assets/js/250.5598eda3.js
+++ b/assets/js/250.5220c303.js
@@ -1,2 +1,2 @@
-/*! For license information please see 250.5598eda3.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 deb64f6e2..3cc633b7a 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 c9e4d5e85..a1ceffd99 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 e4133c481..af63afdfd 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 e43f8ed14..64f12997d 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 5d71095e6..84f44cc65 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 4901ebf02..291549b09 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 6a3379489..f8c24a1c5 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 5e6268053..78329d7fc 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 9dc673c61..441a8006e 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 e5f6f5128..067720d18 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 fbc1f189c..28bb0cfa9 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 cd212d820..bf53c3520 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 53b247f9d..e2b70293f 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 6cc599c35..d6ab5d9c8 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 2298dca7d..b8703889e 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 e4f37851a..3f27a65ea 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 c5f01b857..6e59f3151 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 d4ff674dd..421059723 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 425c97371..ddcdc595c 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 1996f1e9e..34795bc0d 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 1ba1a7580..c2d8220ca 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 c0bd8e3cc..39f034826 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 1a4d61e1d..c51b5e49f 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 a2b6d3875..8ad5e22eb 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 cbe5dcbbc..f50ebb01a 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 856e24d7c..b5a9b0b08 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 6c8a9f8fc..b8991c471 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 a11136184..80a2cfb09 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 aa06851ef..9723f2bd8 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 80e28eb28..d36abd8f0 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 829bb4b00..42bb4fac0 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 c5ad992ef..3ce200138 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 12e4c9220..99f8e27af 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 d2dc2259f..a9931e858 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 6cc4a2a85..af57c7a44 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 77bd4d8e7..3dca065cd 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 c6c63ae7b..9671a8833 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 be28de630..ccb83bdac 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 a04216c9f..99cb6f361 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 b4218d3c0..339d2334a 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 9a04ed59e..bd9055ccb 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 223437f35..0caf1757a 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 9b73a3321..8d56a8c7e 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 be90abd00..f6bb64127 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 eddb97270..a3275cd4f 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 4e1a195fb..db9a0da41 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 b3c01c8ef..20acc3d7a 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 7207b36fa..a602b1464 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 a2f8a4670..862cce518 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 cda87da99..b47f35f51 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 a291d9788..e8777e3c4 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 426603731..2c2d3884a 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 144d95c96..b7abb6c8f 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 903d41981..19140be43 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 e0d1fe182..4c5216786 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 3cd6297ee..078374aaa 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 1c0404480..ffcb0693e 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 347eb305a..ddbdbc384 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 f23390c5f..223e35fba 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 8eda6d196..1df112c0f 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 b41f9a0e6..67029fbdf 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 c215a76e2..642823b5a 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 533584c21..7151acbea 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 bcb1b7604..3ce4ffe9e 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 a4c5c0ea7..ed5b570fc 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 f838b5b75..3e210654f 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 a1d258583..de2bedee1 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 d4bcca831..7c9f8c3eb 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 4b2a64013..6bcd2f41b 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 a47e8a2c2..e9332edf9 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 a049dc5e7..a39974c35 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 586acc647..e985c7f4d 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 89150930d..2080d3b08 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 88e5f9f4c..cc3c682e7 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 20a7df61b..c066a2e87 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 cb5f797c0..7781a3081 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 40e3a433c..a0d019a65 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 68548bd9d..67723bb5d 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 ca85cde4a..a8c95e1a0 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 49c365536..daeb6c8f2 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 92e90333d..f08a6c29a 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 8faeff470..58e754ba1 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 5b51cde07..a1d719982 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 4bf0ba6ba..7abfc4e46 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 708ddf4c3..5f87ab0dd 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 4bacc8a77..8ff3fcabc 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 6ed4f7d2d..a498aba72 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 ffa00c6de..177909cc0 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 fe8876f90..d2df7a72e 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 8c8389c00..d4eebac96 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 f56614f02..5eb454c3d 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 a5d05fbec..255244fd9 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 9e92895ed..3187930cf 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 1e0a71061..102e6d190 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , Audio } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 5abbcb47b..eca3d2b6f 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , AwsS3 } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 62264df7d..2a2c52801 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Box } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 f39c6c7e4..20a507ffc 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 2d82324b4..ba520f8ff 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Compressor } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 3f3501b4c..c97276363 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 97a4bb484..a70bee72d 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , DragDrop } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 3808bd18d..6323da51e 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { DropTarget } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 86a743074..e21e2e74b 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dropbox } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 59423a5d3..200dac685 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Facebook } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 c9598f075..7f057cb2c 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , FileInput } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 88d4db664..43fbbd74f 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Form } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 a1b59d1b3..e5e7496be 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoldenRetriever } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 e44c23a05..a0a0a36b1 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoogleDrivePicker } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 ee1260d8d..b2d985010 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GoogleDrive } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 11ebf1fff..f16ee7962 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GooglePhotosPicker } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 67333883b..d860ce917 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , GooglePhotos } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 bcb4de7d9..06f8c270a 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 a4c85c7b5..51bf4dd97 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 f03a30f00..68631015b 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 5bf69cc45..ed45cfba1 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 7834584c1..2fad84b1c 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 a36cfab6c..5be1ed570 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 58e42cb43..2d697b936 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , ImageEditor } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 6654de92a..7c96992bd 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 b21d0af33..1a5ca0650 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Informer } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 fb68bed39..86574501d 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Instagram } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 fd8323855..6b83c85de 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 fb043fdb8..f731883a4 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 71f613e53..f6b7ec431 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , OneDrive } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 ab5906897..238ce580e 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , ProgressBar } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 cb8f8fb55..7a71b025f 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 021ec66c2..80779a65e 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 10aa90ef1..08f87587e 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 13270739c..e589ceb18 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { RemoteSources } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 6b8f889a7..6397c2d18 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , ScreenCapture } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 7f2c83daa..15d98be09 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , StatusBar } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 2d705fd37..7a7c6b268 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 b6a072e3c..e28798b69 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 cfa7641c6..f886688a5 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , ThumbnailGenerator } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 bae57ab7a..1d8031456 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Transloadit } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 e2817e906..68ddbb9ac 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Tus } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 4c03df160..69dcbf24c 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Unsplash } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 1a0a17a21..57123e092 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 470dec2d0..3abcdf1a5 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Url } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 3bf343aa7..d42744ebd 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 67f85290a..0fa3fa84b 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Dashboard , Webcam } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 042a5b967..3b3ae6b63 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , WebDav } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 c7b47be1d..ef18924ad 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , XHRUpload } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
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 ee6834749..86b69494a 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.12.2/uppy.min.css " rel = " stylesheet " > < div id = " uppy " > </ div > < script type = " module " > import { Uppy , Zoom } from "https://releases.transloadit.com/uppy/v4.12.2/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.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 >
Use
Using Zoom requires setup in both Uppy and Companion.
Use in Uppy
diff --git a/examples/index.html b/examples/index.html
index a7c862e52..89178792a 100644
--- a/examples/index.html
+++ b/examples/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/index.html b/index.html
index b6e6ca85d..b40e775e0 100644
--- a/index.html
+++ b/index.html
@@ -13,7 +13,7 @@
-
+
diff --git a/privacy-policy/index.html b/privacy-policy/index.html
index 9d3d69aa3..43df52a22 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 d6bce8c55..904a6ce15 100644
--- a/search/index.html
+++ b/search/index.html
@@ -13,7 +13,7 @@
-
+