{"version":3,"file":"index.mjs","sources":["../../node_modules/lucide-react/dist/esm/icons/rotate-cw.js","../../node_modules/lucide-react/dist/esm/icons/upload.js","../../src/examples/hooks/use-callback-ref.ts","../../src/hooks/use-controllable-state.ts","../../src/hooks/use-toast.ts","../../node_modules/prop-types/node_modules/react-is/index.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/lib/has.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/file-selector/dist/es2015/file.js","../../node_modules/file-selector/dist/es2015/file-selector.js","../../node_modules/attr-accept/dist/es/index.js","../../node_modules/react-dropzone/dist/es/utils/index.js","../../node_modules/react-dropzone/dist/es/index.js","../../src/components/default/dropzone/FileUploader.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.479.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8\", key: \"1p45f6\" }],\n  [\"path\", { d: \"M21 3v5h-5\", key: \"1q7to0\" }]\n];\nconst RotateCw = createLucideIcon(\"RotateCw\", __iconNode);\n\nexport { __iconNode, RotateCw as default };\n//# sourceMappingURL=rotate-cw.js.map\n","/**\n * @license lucide-react v0.479.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n  [\"path\", { d: \"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\", key: \"ih7n3h\" }],\n  [\"polyline\", { points: \"17 8 12 3 7 8\", key: \"t8dd8p\" }],\n  [\"line\", { x1: \"12\", x2: \"12\", y1: \"3\", y2: \"15\", key: \"widbto\" }]\n];\nconst Upload = createLucideIcon(\"Upload\", __iconNode);\n\nexport { __iconNode, Upload as default };\n//# sourceMappingURL=upload.js.map\n","/**\n * @see https://github.com/radix-ui/primitives/blob/main/packages/react/use-callback-ref/src/useCallbackRef.tsx\n */\n\nimport { useEffect, useMemo, useRef } from \"react\";\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: never[]) => unknown>(callback: T | undefined): T {\n\tconst callbackRef = useRef(callback);\n\n\tuseEffect(() => {\n\t\tcallbackRef.current = callback;\n\t});\n\n\t// https://github.com/facebook/react/issues/19240\n\treturn useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useCallbackRef } from \"../examples/hooks/use-callback-ref\";\n\ntype UseControllableStateParams<T> = {\n\tprop?: T | undefined;\n\tdefaultProp?: T | undefined;\n\tonChange?: (state: T) => void;\n};\n\ntype SetStateFn<T> = (prevState?: T) => T;\n\nfunction useControllableState<T>({\n\tprop,\n\tdefaultProp,\n\tonChange = () => {},\n}: UseControllableStateParams<T>) {\n\tconst [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({\n\t\tdefaultProp,\n\t\tonChange,\n\t});\n\tconst isControlled = prop !== undefined;\n\tconst value = isControlled ? prop : uncontrolledProp;\n\tconst handleChange = useCallbackRef(onChange);\n\n\tconst setValue: React.Dispatch<React.SetStateAction<T | undefined>> = useCallback(\n\t\t(nextValue) => {\n\t\t\tif (isControlled) {\n\t\t\t\tconst setter = nextValue as SetStateFn<T>;\n\t\t\t\tconst value = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n\t\t\t\tif (value !== prop) handleChange(value as T);\n\t\t\t} else {\n\t\t\t\tsetUncontrolledProp(nextValue);\n\t\t\t}\n\t\t},\n\t\t[isControlled, prop, setUncontrolledProp, handleChange],\n\t);\n\n\treturn [value, setValue] as const;\n}\n\nfunction useUncontrolledState<T>({\n\tdefaultProp,\n\tonChange,\n}: Omit<UseControllableStateParams<T>, \"prop\">) {\n\tconst uncontrolledState = useState<T | undefined>(defaultProp);\n\tconst [value] = uncontrolledState;\n\tconst prevValueRef = useRef(value);\n\tconst handleChange = useCallbackRef(onChange);\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\tuseEffect(() => {\n\t\tif (prevValueRef.current !== value) {\n\t\t\thandleChange(value as T);\n\t\t\tprevValueRef.current = value;\n\t\t}\n\t}, [value, prevValueRef, handleChange]);\n\n\treturn uncontrolledState;\n}\n\nexport { useControllableState };\n","import * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"@/components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n\tid: string;\n\ttitle?: React.ReactNode;\n\tdescription?: React.ReactNode;\n\taction?: ToastActionElement;\n};\n\nconst actionTypes = {\n\tADD_TOAST: \"ADD_TOAST\",\n\tUPDATE_TOAST: \"UPDATE_TOAST\",\n\tDISMISS_TOAST: \"DISMISS_TOAST\",\n\tREMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n\tcount = (count + 1) % Number.MAX_SAFE_INTEGER;\n\treturn count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n\t| {\n\t\t\ttype: ActionType[\"ADD_TOAST\"];\n\t\t\ttoast: ToasterToast;\n\t  }\n\t| {\n\t\t\ttype: ActionType[\"UPDATE_TOAST\"];\n\t\t\ttoast: Partial<ToasterToast>;\n\t  }\n\t| {\n\t\t\ttype: ActionType[\"DISMISS_TOAST\"];\n\t\t\ttoastId?: ToasterToast[\"id\"];\n\t  }\n\t| {\n\t\t\ttype: ActionType[\"REMOVE_TOAST\"];\n\t\t\ttoastId?: ToasterToast[\"id\"];\n\t  };\n\ninterface State {\n\ttoasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n\tif (toastTimeouts.has(toastId)) {\n\t\treturn;\n\t}\n\n\tconst timeout = setTimeout(() => {\n\t\ttoastTimeouts.delete(toastId);\n\t\tdispatch({\n\t\t\ttype: \"REMOVE_TOAST\",\n\t\t\ttoastId: toastId,\n\t\t});\n\t}, TOAST_REMOVE_DELAY);\n\n\ttoastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n\tswitch (action.type) {\n\t\tcase \"ADD_TOAST\":\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttoasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n\t\t\t};\n\n\t\tcase \"UPDATE_TOAST\":\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttoasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\n\t\t\t};\n\n\t\tcase \"DISMISS_TOAST\": {\n\t\t\tconst { toastId } = action;\n\n\t\t\t// ! Side effects ! - This could be extracted into a dismissToast() action,\n\t\t\t// but I'll keep it here for simplicity\n\t\t\tif (toastId) {\n\t\t\t\taddToRemoveQueue(toastId);\n\t\t\t} else {\n\t\t\t\tfor (const toast of state.toasts) {\n\t\t\t\t\taddToRemoveQueue(toast.id);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttoasts: state.toasts.map((t) =>\n\t\t\t\t\tt.id === toastId || toastId === undefined\n\t\t\t\t\t\t? {\n\t\t\t\t\t\t\t\t...t,\n\t\t\t\t\t\t\t\topen: false,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t: t,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t\tcase \"REMOVE_TOAST\":\n\t\t\tif (action.toastId === undefined) {\n\t\t\t\treturn {\n\t\t\t\t\t...state,\n\t\t\t\t\ttoasts: [],\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttoasts: state.toasts.filter((t) => t.id !== action.toastId),\n\t\t\t};\n\t}\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n\tmemoryState = reducer(memoryState, action);\n\tfor (const listener of listeners) {\n\t\tlistener(memoryState);\n\t}\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n\tconst id = genId();\n\n\tconst update = (props: ToasterToast) =>\n\t\tdispatch({\n\t\t\ttype: \"UPDATE_TOAST\",\n\t\t\ttoast: { ...props, id },\n\t\t});\n\tconst dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n\tdispatch({\n\t\ttype: \"ADD_TOAST\",\n\t\ttoast: {\n\t\t\t...props,\n\t\t\tid,\n\t\t\topen: true,\n\t\t\tonOpenChange: (open) => {\n\t\t\t\tif (!open) dismiss();\n\t\t\t},\n\t\t},\n\t});\n\n\treturn {\n\t\tid: id,\n\t\tdismiss,\n\t\tupdate,\n\t};\n}\n\nfunction useToast() {\n\tconst [state, setState] = React.useState<State>(memoryState);\n\n\tReact.useEffect(() => {\n\t\tlisteners.push(setState);\n\t\treturn () => {\n\t\t\tconst index = listeners.indexOf(setState);\n\t\t\tif (index > -1) {\n\t\t\t\tlisteners.splice(index, 1);\n\t\t\t}\n\t\t};\n\t}, []);\n\n\treturn {\n\t\t...state,\n\t\ttoast,\n\t\tdismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n\t};\n}\n\nexport { useToast, toast };\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react-is.production.min.js');\n} else {\n  module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n  return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n  type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n  if (typeof object === 'object' && object !== null) {\n    var $$typeof = object.$$typeof;\n\n    switch ($$typeof) {\n      case REACT_ELEMENT_TYPE:\n        var type = object.type;\n\n        switch (type) {\n          case REACT_ASYNC_MODE_TYPE:\n          case REACT_CONCURRENT_MODE_TYPE:\n          case REACT_FRAGMENT_TYPE:\n          case REACT_PROFILER_TYPE:\n          case REACT_STRICT_MODE_TYPE:\n          case REACT_SUSPENSE_TYPE:\n            return type;\n\n          default:\n            var $$typeofType = type && type.$$typeof;\n\n            switch ($$typeofType) {\n              case REACT_CONTEXT_TYPE:\n              case REACT_FORWARD_REF_TYPE:\n              case REACT_LAZY_TYPE:\n              case REACT_MEMO_TYPE:\n              case REACT_PROVIDER_TYPE:\n                return $$typeofType;\n\n              default:\n                return $$typeof;\n            }\n\n        }\n\n      case REACT_PORTAL_TYPE:\n        return $$typeof;\n    }\n  }\n\n  return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n  {\n    if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n      hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n      console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n    }\n  }\n\n  return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n  return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n  return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n  return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n  return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n  return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n  return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n  return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n  return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n  return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n  return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n  return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n  })();\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n  var loggedTypeFailures = {};\n  var has = require('./lib/has');\n\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) { /**/ }\n  };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n  if (process.env.NODE_ENV !== 'production') {\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error;\n        // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            var err = Error(\n              (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n              'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n              'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n            );\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n          error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n        } catch (ex) {\n          error = ex;\n        }\n        if (error && !(error instanceof Error)) {\n          printWarning(\n            (componentName || 'React class') + ': type specification of ' +\n            location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n            'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n            'You may have forgotten to pass an argument to the type checker ' +\n            'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n            'shape all require an argument).'\n          );\n        }\n        if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error.message] = true;\n\n          var stack = getStack ? getStack() : '';\n\n          printWarning(\n            'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n          );\n        }\n      }\n    }\n  }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n  if (process.env.NODE_ENV !== 'production') {\n    loggedTypeFailures = {};\n  }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n  printWarning = function(text) {\n    var message = 'Warning: ' + text;\n    if (typeof console !== 'undefined') {\n      console.error(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n  return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n  /* global Symbol */\n  var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n  var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n  /**\n   * Returns the iterator method function contained on the iterable object.\n   *\n   * Be sure to invoke the function with the iterable as context:\n   *\n   *     var iteratorFn = getIteratorFn(myIterable);\n   *     if (iteratorFn) {\n   *       var iterator = iteratorFn.call(myIterable);\n   *       ...\n   *     }\n   *\n   * @param {?object} maybeIterable\n   * @return {?function}\n   */\n  function getIteratorFn(maybeIterable) {\n    var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n    if (typeof iteratorFn === 'function') {\n      return iteratorFn;\n    }\n  }\n\n  /**\n   * Collection of methods that allow declaration and validation of props that are\n   * supplied to React components. Example usage:\n   *\n   *   var Props = require('ReactPropTypes');\n   *   var MyArticle = React.createClass({\n   *     propTypes: {\n   *       // An optional string prop named \"description\".\n   *       description: Props.string,\n   *\n   *       // A required enum prop named \"category\".\n   *       category: Props.oneOf(['News','Photos']).isRequired,\n   *\n   *       // A prop named \"dialog\" that requires an instance of Dialog.\n   *       dialog: Props.instanceOf(Dialog).isRequired\n   *     },\n   *     render: function() { ... }\n   *   });\n   *\n   * A more formal specification of how these methods are used:\n   *\n   *   type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n   *   decl := ReactPropTypes.{type}(.isRequired)?\n   *\n   * Each and every declaration produces a function with the same signature. This\n   * allows the creation of custom validation functions. For example:\n   *\n   *  var MyLink = React.createClass({\n   *    propTypes: {\n   *      // An optional string or URI prop named \"href\".\n   *      href: function(props, propName, componentName) {\n   *        var propValue = props[propName];\n   *        if (propValue != null && typeof propValue !== 'string' &&\n   *            !(propValue instanceof URI)) {\n   *          return new Error(\n   *            'Expected a string or an URI for ' + propName + ' in ' +\n   *            componentName\n   *          );\n   *        }\n   *      }\n   *    },\n   *    render: function() {...}\n   *  });\n   *\n   * @internal\n   */\n\n  var ANONYMOUS = '<<anonymous>>';\n\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n  var ReactPropTypes = {\n    array: createPrimitiveTypeChecker('array'),\n    bigint: createPrimitiveTypeChecker('bigint'),\n    bool: createPrimitiveTypeChecker('boolean'),\n    func: createPrimitiveTypeChecker('function'),\n    number: createPrimitiveTypeChecker('number'),\n    object: createPrimitiveTypeChecker('object'),\n    string: createPrimitiveTypeChecker('string'),\n    symbol: createPrimitiveTypeChecker('symbol'),\n\n    any: createAnyTypeChecker(),\n    arrayOf: createArrayOfTypeChecker,\n    element: createElementTypeChecker(),\n    elementType: createElementTypeTypeChecker(),\n    instanceOf: createInstanceTypeChecker,\n    node: createNodeChecker(),\n    objectOf: createObjectOfTypeChecker,\n    oneOf: createEnumTypeChecker,\n    oneOfType: createUnionTypeChecker,\n    shape: createShapeTypeChecker,\n    exact: createStrictShapeTypeChecker,\n  };\n\n  /**\n   * inlined Object.is polyfill to avoid requiring consumers ship their own\n   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n   */\n  /*eslint-disable no-self-compare*/\n  function is(x, y) {\n    // SameValue algorithm\n    if (x === y) {\n      // Steps 1-5, 7-10\n      // Steps 6.b-6.e: +0 != -0\n      return x !== 0 || 1 / x === 1 / y;\n    } else {\n      // Step 6.a: NaN == NaN\n      return x !== x && y !== y;\n    }\n  }\n  /*eslint-enable no-self-compare*/\n\n  /**\n   * We use an Error-like object for backward compatibility as people may call\n   * PropTypes directly and inspect their output. However, we don't use real\n   * Errors anymore. We don't inspect their stack anyway, and creating them\n   * is prohibitively expensive if they are created too often, such as what\n   * happens in oneOfType() for any type before the one that matched.\n   */\n  function PropTypeError(message, data) {\n    this.message = message;\n    this.data = data && typeof data === 'object' ? data: {};\n    this.stack = '';\n  }\n  // Make `instanceof Error` still work for returned errors.\n  PropTypeError.prototype = Error.prototype;\n\n  function createChainableTypeChecker(validate) {\n    if (process.env.NODE_ENV !== 'production') {\n      var manualPropTypeCallCache = {};\n      var manualPropTypeWarningCount = 0;\n    }\n    function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n      componentName = componentName || ANONYMOUS;\n      propFullName = propFullName || propName;\n\n      if (secret !== ReactPropTypesSecret) {\n        if (throwOnDirectAccess) {\n          // New behavior only for users of `prop-types` package\n          var err = new Error(\n            'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n            'Use `PropTypes.checkPropTypes()` to call them. ' +\n            'Read more at http://fb.me/use-check-prop-types'\n          );\n          err.name = 'Invariant Violation';\n          throw err;\n        } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n          // Old behavior for people using React.PropTypes\n          var cacheKey = componentName + ':' + propName;\n          if (\n            !manualPropTypeCallCache[cacheKey] &&\n            // Avoid spamming the console because they are often not actionable except for lib authors\n            manualPropTypeWarningCount < 3\n          ) {\n            printWarning(\n              'You are manually calling a React.PropTypes validation ' +\n              'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n              'and will throw in the standalone `prop-types` package. ' +\n              'You may be seeing this warning due to a third-party PropTypes ' +\n              'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n            );\n            manualPropTypeCallCache[cacheKey] = true;\n            manualPropTypeWarningCount++;\n          }\n        }\n      }\n      if (props[propName] == null) {\n        if (isRequired) {\n          if (props[propName] === null) {\n            return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n          }\n          return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n        }\n        return null;\n      } else {\n        return validate(props, propName, componentName, location, propFullName);\n      }\n    }\n\n    var chainedCheckType = checkType.bind(null, false);\n    chainedCheckType.isRequired = checkType.bind(null, true);\n\n    return chainedCheckType;\n  }\n\n  function createPrimitiveTypeChecker(expectedType) {\n    function validate(props, propName, componentName, location, propFullName, secret) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== expectedType) {\n        // `propValue` being instance of, say, date/regexp, pass the 'object'\n        // check, but we can offer a more precise error message here rather than\n        // 'of type `object`'.\n        var preciseType = getPreciseType(propValue);\n\n        return new PropTypeError(\n          'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n          {expectedType: expectedType}\n        );\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createAnyTypeChecker() {\n    return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n  }\n\n  function createArrayOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n      }\n      var propValue = props[propName];\n      if (!Array.isArray(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n      }\n      for (var i = 0; i < propValue.length; i++) {\n        var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n        if (error instanceof Error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createElementTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!isValidElement(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createElementTypeTypeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      if (!ReactIs.isValidElementType(propValue)) {\n        var propType = getPropType(propValue);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createInstanceTypeChecker(expectedClass) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!(props[propName] instanceof expectedClass)) {\n        var expectedClassName = expectedClass.name || ANONYMOUS;\n        var actualClassName = getClassName(props[propName]);\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createEnumTypeChecker(expectedValues) {\n    if (!Array.isArray(expectedValues)) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (arguments.length > 1) {\n          printWarning(\n            'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n            'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n          );\n        } else {\n          printWarning('Invalid argument supplied to oneOf, expected an array.');\n        }\n      }\n      return emptyFunctionThatReturnsNull;\n    }\n\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      for (var i = 0; i < expectedValues.length; i++) {\n        if (is(propValue, expectedValues[i])) {\n          return null;\n        }\n      }\n\n      var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n        var type = getPreciseType(value);\n        if (type === 'symbol') {\n          return String(value);\n        }\n        return value;\n      });\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createObjectOfTypeChecker(typeChecker) {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (typeof typeChecker !== 'function') {\n        return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n      }\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n      }\n      for (var key in propValue) {\n        if (has(propValue, key)) {\n          var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n          if (error instanceof Error) {\n            return error;\n          }\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createUnionTypeChecker(arrayOfTypeCheckers) {\n    if (!Array.isArray(arrayOfTypeCheckers)) {\n      process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n      return emptyFunctionThatReturnsNull;\n    }\n\n    for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n      var checker = arrayOfTypeCheckers[i];\n      if (typeof checker !== 'function') {\n        printWarning(\n          'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n          'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n        );\n        return emptyFunctionThatReturnsNull;\n      }\n    }\n\n    function validate(props, propName, componentName, location, propFullName) {\n      var expectedTypes = [];\n      for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n        var checker = arrayOfTypeCheckers[i];\n        var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n        if (checkerResult == null) {\n          return null;\n        }\n        if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n          expectedTypes.push(checkerResult.data.expectedType);\n        }\n      }\n      var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n      return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createNodeChecker() {\n    function validate(props, propName, componentName, location, propFullName) {\n      if (!isNode(props[propName])) {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function invalidValidatorError(componentName, location, propFullName, key, type) {\n    return new PropTypeError(\n      (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n      'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n    );\n  }\n\n  function createShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      for (var key in shapeTypes) {\n        var checker = shapeTypes[key];\n        if (typeof checker !== 'function') {\n          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n    return createChainableTypeChecker(validate);\n  }\n\n  function createStrictShapeTypeChecker(shapeTypes) {\n    function validate(props, propName, componentName, location, propFullName) {\n      var propValue = props[propName];\n      var propType = getPropType(propValue);\n      if (propType !== 'object') {\n        return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n      }\n      // We need to check all keys in case some are required but missing from props.\n      var allKeys = assign({}, props[propName], shapeTypes);\n      for (var key in allKeys) {\n        var checker = shapeTypes[key];\n        if (has(shapeTypes, key) && typeof checker !== 'function') {\n          return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n        }\n        if (!checker) {\n          return new PropTypeError(\n            'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n            '\\nBad object: ' + JSON.stringify(props[propName], null, '  ') +\n            '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, '  ')\n          );\n        }\n        var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n        if (error) {\n          return error;\n        }\n      }\n      return null;\n    }\n\n    return createChainableTypeChecker(validate);\n  }\n\n  function isNode(propValue) {\n    switch (typeof propValue) {\n      case 'number':\n      case 'string':\n      case 'undefined':\n        return true;\n      case 'boolean':\n        return !propValue;\n      case 'object':\n        if (Array.isArray(propValue)) {\n          return propValue.every(isNode);\n        }\n        if (propValue === null || isValidElement(propValue)) {\n          return true;\n        }\n\n        var iteratorFn = getIteratorFn(propValue);\n        if (iteratorFn) {\n          var iterator = iteratorFn.call(propValue);\n          var step;\n          if (iteratorFn !== propValue.entries) {\n            while (!(step = iterator.next()).done) {\n              if (!isNode(step.value)) {\n                return false;\n              }\n            }\n          } else {\n            // Iterator will provide entry [k,v] tuples rather than values.\n            while (!(step = iterator.next()).done) {\n              var entry = step.value;\n              if (entry) {\n                if (!isNode(entry[1])) {\n                  return false;\n                }\n              }\n            }\n          }\n        } else {\n          return false;\n        }\n\n        return true;\n      default:\n        return false;\n    }\n  }\n\n  function isSymbol(propType, propValue) {\n    // Native Symbol.\n    if (propType === 'symbol') {\n      return true;\n    }\n\n    // falsy value can't be a Symbol\n    if (!propValue) {\n      return false;\n    }\n\n    // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n    if (propValue['@@toStringTag'] === 'Symbol') {\n      return true;\n    }\n\n    // Fallback for non-spec compliant Symbols which are polyfilled.\n    if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n      return true;\n    }\n\n    return false;\n  }\n\n  // Equivalent of `typeof` but with special handling for array and regexp.\n  function getPropType(propValue) {\n    var propType = typeof propValue;\n    if (Array.isArray(propValue)) {\n      return 'array';\n    }\n    if (propValue instanceof RegExp) {\n      // Old webkits (at least until Android 4.0) return 'function' rather than\n      // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n      // passes PropTypes.object.\n      return 'object';\n    }\n    if (isSymbol(propType, propValue)) {\n      return 'symbol';\n    }\n    return propType;\n  }\n\n  // This handles more types than `getPropType`. Only used for error messages.\n  // See `createPrimitiveTypeChecker`.\n  function getPreciseType(propValue) {\n    if (typeof propValue === 'undefined' || propValue === null) {\n      return '' + propValue;\n    }\n    var propType = getPropType(propValue);\n    if (propType === 'object') {\n      if (propValue instanceof Date) {\n        return 'date';\n      } else if (propValue instanceof RegExp) {\n        return 'regexp';\n      }\n    }\n    return propType;\n  }\n\n  // Returns a string that is postfixed to a warning about an invalid type.\n  // For example, \"undefined\" or \"of type array\"\n  function getPostfixForTypeWarning(value) {\n    var type = getPreciseType(value);\n    switch (type) {\n      case 'array':\n      case 'object':\n        return 'an ' + type;\n      case 'boolean':\n      case 'date':\n      case 'regexp':\n        return 'a ' + type;\n      default:\n        return type;\n    }\n  }\n\n  // Returns class name of the object, if any.\n  function getClassName(propValue) {\n    if (!propValue.constructor || !propValue.constructor.name) {\n      return ANONYMOUS;\n    }\n    return propValue.constructor.name;\n  }\n\n  ReactPropTypes.checkPropTypes = checkPropTypes;\n  ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n  function shim(props, propName, componentName, location, propFullName, secret) {\n    if (secret === ReactPropTypesSecret) {\n      // It is still safe when called from React.\n      return;\n    }\n    var err = new Error(\n      'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n      'Use PropTypes.checkPropTypes() to call them. ' +\n      'Read more at http://fb.me/use-check-prop-types'\n    );\n    err.name = 'Invariant Violation';\n    throw err;\n  };\n  shim.isRequired = shim;\n  function getShim() {\n    return shim;\n  };\n  // Important!\n  // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n  var ReactPropTypes = {\n    array: shim,\n    bigint: shim,\n    bool: shim,\n    func: shim,\n    number: shim,\n    object: shim,\n    string: shim,\n    symbol: shim,\n\n    any: shim,\n    arrayOf: getShim,\n    element: shim,\n    elementType: shim,\n    instanceOf: getShim,\n    node: shim,\n    objectOf: getShim,\n    oneOf: getShim,\n    oneOfType: getShim,\n    shape: getShim,\n    exact: getShim,\n\n    checkPropTypes: emptyFunctionWithReset,\n    resetWarningCache: emptyFunction\n  };\n\n  ReactPropTypes.PropTypes = ReactPropTypes;\n\n  return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n  var ReactIs = require('react-is');\n\n  // By explicitly using `prop-types` you are opting into new development behavior.\n  // http://fb.me/prop-types-in-prod\n  var throwOnDirectAccess = true;\n  module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n  // By explicitly using `prop-types` you are opting into new production behavior.\n  // http://fb.me/prop-types-in-prod\n  module.exports = require('./factoryWithThrowingShims')();\n}\n","export const COMMON_MIME_TYPES = new Map([\n    // https://github.com/guzzle/psr7/blob/2d9260799e713f1c475d3c5fdc3d6561ff7441b2/src/MimeType.php\n    ['1km', 'application/vnd.1000minds.decision-model+xml'],\n    ['3dml', 'text/vnd.in3d.3dml'],\n    ['3ds', 'image/x-3ds'],\n    ['3g2', 'video/3gpp2'],\n    ['3gp', 'video/3gp'],\n    ['3gpp', 'video/3gpp'],\n    ['3mf', 'model/3mf'],\n    ['7z', 'application/x-7z-compressed'],\n    ['7zip', 'application/x-7z-compressed'],\n    ['123', 'application/vnd.lotus-1-2-3'],\n    ['aab', 'application/x-authorware-bin'],\n    ['aac', 'audio/x-acc'],\n    ['aam', 'application/x-authorware-map'],\n    ['aas', 'application/x-authorware-seg'],\n    ['abw', 'application/x-abiword'],\n    ['ac', 'application/vnd.nokia.n-gage.ac+xml'],\n    ['ac3', 'audio/ac3'],\n    ['acc', 'application/vnd.americandynamics.acc'],\n    ['ace', 'application/x-ace-compressed'],\n    ['acu', 'application/vnd.acucobol'],\n    ['acutc', 'application/vnd.acucorp'],\n    ['adp', 'audio/adpcm'],\n    ['aep', 'application/vnd.audiograph'],\n    ['afm', 'application/x-font-type1'],\n    ['afp', 'application/vnd.ibm.modcap'],\n    ['ahead', 'application/vnd.ahead.space'],\n    ['ai', 'application/pdf'],\n    ['aif', 'audio/x-aiff'],\n    ['aifc', 'audio/x-aiff'],\n    ['aiff', 'audio/x-aiff'],\n    ['air', 'application/vnd.adobe.air-application-installer-package+zip'],\n    ['ait', 'application/vnd.dvb.ait'],\n    ['ami', 'application/vnd.amiga.ami'],\n    ['amr', 'audio/amr'],\n    ['apk', 'application/vnd.android.package-archive'],\n    ['apng', 'image/apng'],\n    ['appcache', 'text/cache-manifest'],\n    ['application', 'application/x-ms-application'],\n    ['apr', 'application/vnd.lotus-approach'],\n    ['arc', 'application/x-freearc'],\n    ['arj', 'application/x-arj'],\n    ['asc', 'application/pgp-signature'],\n    ['asf', 'video/x-ms-asf'],\n    ['asm', 'text/x-asm'],\n    ['aso', 'application/vnd.accpac.simply.aso'],\n    ['asx', 'video/x-ms-asf'],\n    ['atc', 'application/vnd.acucorp'],\n    ['atom', 'application/atom+xml'],\n    ['atomcat', 'application/atomcat+xml'],\n    ['atomdeleted', 'application/atomdeleted+xml'],\n    ['atomsvc', 'application/atomsvc+xml'],\n    ['atx', 'application/vnd.antix.game-component'],\n    ['au', 'audio/x-au'],\n    ['avi', 'video/x-msvideo'],\n    ['avif', 'image/avif'],\n    ['aw', 'application/applixware'],\n    ['azf', 'application/vnd.airzip.filesecure.azf'],\n    ['azs', 'application/vnd.airzip.filesecure.azs'],\n    ['azv', 'image/vnd.airzip.accelerator.azv'],\n    ['azw', 'application/vnd.amazon.ebook'],\n    ['b16', 'image/vnd.pco.b16'],\n    ['bat', 'application/x-msdownload'],\n    ['bcpio', 'application/x-bcpio'],\n    ['bdf', 'application/x-font-bdf'],\n    ['bdm', 'application/vnd.syncml.dm+wbxml'],\n    ['bdoc', 'application/x-bdoc'],\n    ['bed', 'application/vnd.realvnc.bed'],\n    ['bh2', 'application/vnd.fujitsu.oasysprs'],\n    ['bin', 'application/octet-stream'],\n    ['blb', 'application/x-blorb'],\n    ['blorb', 'application/x-blorb'],\n    ['bmi', 'application/vnd.bmi'],\n    ['bmml', 'application/vnd.balsamiq.bmml+xml'],\n    ['bmp', 'image/bmp'],\n    ['book', 'application/vnd.framemaker'],\n    ['box', 'application/vnd.previewsystems.box'],\n    ['boz', 'application/x-bzip2'],\n    ['bpk', 'application/octet-stream'],\n    ['bpmn', 'application/octet-stream'],\n    ['bsp', 'model/vnd.valve.source.compiled-map'],\n    ['btif', 'image/prs.btif'],\n    ['buffer', 'application/octet-stream'],\n    ['bz', 'application/x-bzip'],\n    ['bz2', 'application/x-bzip2'],\n    ['c', 'text/x-c'],\n    ['c4d', 'application/vnd.clonk.c4group'],\n    ['c4f', 'application/vnd.clonk.c4group'],\n    ['c4g', 'application/vnd.clonk.c4group'],\n    ['c4p', 'application/vnd.clonk.c4group'],\n    ['c4u', 'application/vnd.clonk.c4group'],\n    ['c11amc', 'application/vnd.cluetrust.cartomobile-config'],\n    ['c11amz', 'application/vnd.cluetrust.cartomobile-config-pkg'],\n    ['cab', 'application/vnd.ms-cab-compressed'],\n    ['caf', 'audio/x-caf'],\n    ['cap', 'application/vnd.tcpdump.pcap'],\n    ['car', 'application/vnd.curl.car'],\n    ['cat', 'application/vnd.ms-pki.seccat'],\n    ['cb7', 'application/x-cbr'],\n    ['cba', 'application/x-cbr'],\n    ['cbr', 'application/x-cbr'],\n    ['cbt', 'application/x-cbr'],\n    ['cbz', 'application/x-cbr'],\n    ['cc', 'text/x-c'],\n    ['cco', 'application/x-cocoa'],\n    ['cct', 'application/x-director'],\n    ['ccxml', 'application/ccxml+xml'],\n    ['cdbcmsg', 'application/vnd.contact.cmsg'],\n    ['cda', 'application/x-cdf'],\n    ['cdf', 'application/x-netcdf'],\n    ['cdfx', 'application/cdfx+xml'],\n    ['cdkey', 'application/vnd.mediastation.cdkey'],\n    ['cdmia', 'application/cdmi-capability'],\n    ['cdmic', 'application/cdmi-container'],\n    ['cdmid', 'application/cdmi-domain'],\n    ['cdmio', 'application/cdmi-object'],\n    ['cdmiq', 'application/cdmi-queue'],\n    ['cdr', 'application/cdr'],\n    ['cdx', 'chemical/x-cdx'],\n    ['cdxml', 'application/vnd.chemdraw+xml'],\n    ['cdy', 'application/vnd.cinderella'],\n    ['cer', 'application/pkix-cert'],\n    ['cfs', 'application/x-cfs-compressed'],\n    ['cgm', 'image/cgm'],\n    ['chat', 'application/x-chat'],\n    ['chm', 'application/vnd.ms-htmlhelp'],\n    ['chrt', 'application/vnd.kde.kchart'],\n    ['cif', 'chemical/x-cif'],\n    ['cii', 'application/vnd.anser-web-certificate-issue-initiation'],\n    ['cil', 'application/vnd.ms-artgalry'],\n    ['cjs', 'application/node'],\n    ['cla', 'application/vnd.claymore'],\n    ['class', 'application/octet-stream'],\n    ['clkk', 'application/vnd.crick.clicker.keyboard'],\n    ['clkp', 'application/vnd.crick.clicker.palette'],\n    ['clkt', 'application/vnd.crick.clicker.template'],\n    ['clkw', 'application/vnd.crick.clicker.wordbank'],\n    ['clkx', 'application/vnd.crick.clicker'],\n    ['clp', 'application/x-msclip'],\n    ['cmc', 'application/vnd.cosmocaller'],\n    ['cmdf', 'chemical/x-cmdf'],\n    ['cml', 'chemical/x-cml'],\n    ['cmp', 'application/vnd.yellowriver-custom-menu'],\n    ['cmx', 'image/x-cmx'],\n    ['cod', 'application/vnd.rim.cod'],\n    ['coffee', 'text/coffeescript'],\n    ['com', 'application/x-msdownload'],\n    ['conf', 'text/plain'],\n    ['cpio', 'application/x-cpio'],\n    ['cpp', 'text/x-c'],\n    ['cpt', 'application/mac-compactpro'],\n    ['crd', 'application/x-mscardfile'],\n    ['crl', 'application/pkix-crl'],\n    ['crt', 'application/x-x509-ca-cert'],\n    ['crx', 'application/x-chrome-extension'],\n    ['cryptonote', 'application/vnd.rig.cryptonote'],\n    ['csh', 'application/x-csh'],\n    ['csl', 'application/vnd.citationstyles.style+xml'],\n    ['csml', 'chemical/x-csml'],\n    ['csp', 'application/vnd.commonspace'],\n    ['csr', 'application/octet-stream'],\n    ['css', 'text/css'],\n    ['cst', 'application/x-director'],\n    ['csv', 'text/csv'],\n    ['cu', 'application/cu-seeme'],\n    ['curl', 'text/vnd.curl'],\n    ['cww', 'application/prs.cww'],\n    ['cxt', 'application/x-director'],\n    ['cxx', 'text/x-c'],\n    ['dae', 'model/vnd.collada+xml'],\n    ['daf', 'application/vnd.mobius.daf'],\n    ['dart', 'application/vnd.dart'],\n    ['dataless', 'application/vnd.fdsn.seed'],\n    ['davmount', 'application/davmount+xml'],\n    ['dbf', 'application/vnd.dbf'],\n    ['dbk', 'application/docbook+xml'],\n    ['dcr', 'application/x-director'],\n    ['dcurl', 'text/vnd.curl.dcurl'],\n    ['dd2', 'application/vnd.oma.dd2+xml'],\n    ['ddd', 'application/vnd.fujixerox.ddd'],\n    ['ddf', 'application/vnd.syncml.dmddf+xml'],\n    ['dds', 'image/vnd.ms-dds'],\n    ['deb', 'application/x-debian-package'],\n    ['def', 'text/plain'],\n    ['deploy', 'application/octet-stream'],\n    ['der', 'application/x-x509-ca-cert'],\n    ['dfac', 'application/vnd.dreamfactory'],\n    ['dgc', 'application/x-dgc-compressed'],\n    ['dic', 'text/x-c'],\n    ['dir', 'application/x-director'],\n    ['dis', 'application/vnd.mobius.dis'],\n    ['disposition-notification', 'message/disposition-notification'],\n    ['dist', 'application/octet-stream'],\n    ['distz', 'application/octet-stream'],\n    ['djv', 'image/vnd.djvu'],\n    ['djvu', 'image/vnd.djvu'],\n    ['dll', 'application/octet-stream'],\n    ['dmg', 'application/x-apple-diskimage'],\n    ['dmn', 'application/octet-stream'],\n    ['dmp', 'application/vnd.tcpdump.pcap'],\n    ['dms', 'application/octet-stream'],\n    ['dna', 'application/vnd.dna'],\n    ['doc', 'application/msword'],\n    ['docm', 'application/vnd.ms-word.template.macroEnabled.12'],\n    ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n    ['dot', 'application/msword'],\n    ['dotm', 'application/vnd.ms-word.template.macroEnabled.12'],\n    ['dotx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.template'],\n    ['dp', 'application/vnd.osgi.dp'],\n    ['dpg', 'application/vnd.dpgraph'],\n    ['dra', 'audio/vnd.dra'],\n    ['drle', 'image/dicom-rle'],\n    ['dsc', 'text/prs.lines.tag'],\n    ['dssc', 'application/dssc+der'],\n    ['dtb', 'application/x-dtbook+xml'],\n    ['dtd', 'application/xml-dtd'],\n    ['dts', 'audio/vnd.dts'],\n    ['dtshd', 'audio/vnd.dts.hd'],\n    ['dump', 'application/octet-stream'],\n    ['dvb', 'video/vnd.dvb.file'],\n    ['dvi', 'application/x-dvi'],\n    ['dwd', 'application/atsc-dwd+xml'],\n    ['dwf', 'model/vnd.dwf'],\n    ['dwg', 'image/vnd.dwg'],\n    ['dxf', 'image/vnd.dxf'],\n    ['dxp', 'application/vnd.spotfire.dxp'],\n    ['dxr', 'application/x-director'],\n    ['ear', 'application/java-archive'],\n    ['ecelp4800', 'audio/vnd.nuera.ecelp4800'],\n    ['ecelp7470', 'audio/vnd.nuera.ecelp7470'],\n    ['ecelp9600', 'audio/vnd.nuera.ecelp9600'],\n    ['ecma', 'application/ecmascript'],\n    ['edm', 'application/vnd.novadigm.edm'],\n    ['edx', 'application/vnd.novadigm.edx'],\n    ['efif', 'application/vnd.picsel'],\n    ['ei6', 'application/vnd.pg.osasli'],\n    ['elc', 'application/octet-stream'],\n    ['emf', 'image/emf'],\n    ['eml', 'message/rfc822'],\n    ['emma', 'application/emma+xml'],\n    ['emotionml', 'application/emotionml+xml'],\n    ['emz', 'application/x-msmetafile'],\n    ['eol', 'audio/vnd.digital-winds'],\n    ['eot', 'application/vnd.ms-fontobject'],\n    ['eps', 'application/postscript'],\n    ['epub', 'application/epub+zip'],\n    ['es', 'application/ecmascript'],\n    ['es3', 'application/vnd.eszigno3+xml'],\n    ['esa', 'application/vnd.osgi.subsystem'],\n    ['esf', 'application/vnd.epson.esf'],\n    ['et3', 'application/vnd.eszigno3+xml'],\n    ['etx', 'text/x-setext'],\n    ['eva', 'application/x-eva'],\n    ['evy', 'application/x-envoy'],\n    ['exe', 'application/octet-stream'],\n    ['exi', 'application/exi'],\n    ['exp', 'application/express'],\n    ['exr', 'image/aces'],\n    ['ext', 'application/vnd.novadigm.ext'],\n    ['ez', 'application/andrew-inset'],\n    ['ez2', 'application/vnd.ezpix-album'],\n    ['ez3', 'application/vnd.ezpix-package'],\n    ['f', 'text/x-fortran'],\n    ['f4v', 'video/mp4'],\n    ['f77', 'text/x-fortran'],\n    ['f90', 'text/x-fortran'],\n    ['fbs', 'image/vnd.fastbidsheet'],\n    ['fcdt', 'application/vnd.adobe.formscentral.fcdt'],\n    ['fcs', 'application/vnd.isac.fcs'],\n    ['fdf', 'application/vnd.fdf'],\n    ['fdt', 'application/fdt+xml'],\n    ['fe_launch', 'application/vnd.denovo.fcselayout-link'],\n    ['fg5', 'application/vnd.fujitsu.oasysgp'],\n    ['fgd', 'application/x-director'],\n    ['fh', 'image/x-freehand'],\n    ['fh4', 'image/x-freehand'],\n    ['fh5', 'image/x-freehand'],\n    ['fh7', 'image/x-freehand'],\n    ['fhc', 'image/x-freehand'],\n    ['fig', 'application/x-xfig'],\n    ['fits', 'image/fits'],\n    ['flac', 'audio/x-flac'],\n    ['fli', 'video/x-fli'],\n    ['flo', 'application/vnd.micrografx.flo'],\n    ['flv', 'video/x-flv'],\n    ['flw', 'application/vnd.kde.kivio'],\n    ['flx', 'text/vnd.fmi.flexstor'],\n    ['fly', 'text/vnd.fly'],\n    ['fm', 'application/vnd.framemaker'],\n    ['fnc', 'application/vnd.frogans.fnc'],\n    ['fo', 'application/vnd.software602.filler.form+xml'],\n    ['for', 'text/x-fortran'],\n    ['fpx', 'image/vnd.fpx'],\n    ['frame', 'application/vnd.framemaker'],\n    ['fsc', 'application/vnd.fsc.weblaunch'],\n    ['fst', 'image/vnd.fst'],\n    ['ftc', 'application/vnd.fluxtime.clip'],\n    ['fti', 'application/vnd.anser-web-funds-transfer-initiation'],\n    ['fvt', 'video/vnd.fvt'],\n    ['fxp', 'application/vnd.adobe.fxp'],\n    ['fxpl', 'application/vnd.adobe.fxp'],\n    ['fzs', 'application/vnd.fuzzysheet'],\n    ['g2w', 'application/vnd.geoplan'],\n    ['g3', 'image/g3fax'],\n    ['g3w', 'application/vnd.geospace'],\n    ['gac', 'application/vnd.groove-account'],\n    ['gam', 'application/x-tads'],\n    ['gbr', 'application/rpki-ghostbusters'],\n    ['gca', 'application/x-gca-compressed'],\n    ['gdl', 'model/vnd.gdl'],\n    ['gdoc', 'application/vnd.google-apps.document'],\n    ['geo', 'application/vnd.dynageo'],\n    ['geojson', 'application/geo+json'],\n    ['gex', 'application/vnd.geometry-explorer'],\n    ['ggb', 'application/vnd.geogebra.file'],\n    ['ggt', 'application/vnd.geogebra.tool'],\n    ['ghf', 'application/vnd.groove-help'],\n    ['gif', 'image/gif'],\n    ['gim', 'application/vnd.groove-identity-message'],\n    ['glb', 'model/gltf-binary'],\n    ['gltf', 'model/gltf+json'],\n    ['gml', 'application/gml+xml'],\n    ['gmx', 'application/vnd.gmx'],\n    ['gnumeric', 'application/x-gnumeric'],\n    ['gpg', 'application/gpg-keys'],\n    ['gph', 'application/vnd.flographit'],\n    ['gpx', 'application/gpx+xml'],\n    ['gqf', 'application/vnd.grafeq'],\n    ['gqs', 'application/vnd.grafeq'],\n    ['gram', 'application/srgs'],\n    ['gramps', 'application/x-gramps-xml'],\n    ['gre', 'application/vnd.geometry-explorer'],\n    ['grv', 'application/vnd.groove-injector'],\n    ['grxml', 'application/srgs+xml'],\n    ['gsf', 'application/x-font-ghostscript'],\n    ['gsheet', 'application/vnd.google-apps.spreadsheet'],\n    ['gslides', 'application/vnd.google-apps.presentation'],\n    ['gtar', 'application/x-gtar'],\n    ['gtm', 'application/vnd.groove-tool-message'],\n    ['gtw', 'model/vnd.gtw'],\n    ['gv', 'text/vnd.graphviz'],\n    ['gxf', 'application/gxf'],\n    ['gxt', 'application/vnd.geonext'],\n    ['gz', 'application/gzip'],\n    ['gzip', 'application/gzip'],\n    ['h', 'text/x-c'],\n    ['h261', 'video/h261'],\n    ['h263', 'video/h263'],\n    ['h264', 'video/h264'],\n    ['hal', 'application/vnd.hal+xml'],\n    ['hbci', 'application/vnd.hbci'],\n    ['hbs', 'text/x-handlebars-template'],\n    ['hdd', 'application/x-virtualbox-hdd'],\n    ['hdf', 'application/x-hdf'],\n    ['heic', 'image/heic'],\n    ['heics', 'image/heic-sequence'],\n    ['heif', 'image/heif'],\n    ['heifs', 'image/heif-sequence'],\n    ['hej2', 'image/hej2k'],\n    ['held', 'application/atsc-held+xml'],\n    ['hh', 'text/x-c'],\n    ['hjson', 'application/hjson'],\n    ['hlp', 'application/winhlp'],\n    ['hpgl', 'application/vnd.hp-hpgl'],\n    ['hpid', 'application/vnd.hp-hpid'],\n    ['hps', 'application/vnd.hp-hps'],\n    ['hqx', 'application/mac-binhex40'],\n    ['hsj2', 'image/hsj2'],\n    ['htc', 'text/x-component'],\n    ['htke', 'application/vnd.kenameaapp'],\n    ['htm', 'text/html'],\n    ['html', 'text/html'],\n    ['hvd', 'application/vnd.yamaha.hv-dic'],\n    ['hvp', 'application/vnd.yamaha.hv-voice'],\n    ['hvs', 'application/vnd.yamaha.hv-script'],\n    ['i2g', 'application/vnd.intergeo'],\n    ['icc', 'application/vnd.iccprofile'],\n    ['ice', 'x-conference/x-cooltalk'],\n    ['icm', 'application/vnd.iccprofile'],\n    ['ico', 'image/x-icon'],\n    ['ics', 'text/calendar'],\n    ['ief', 'image/ief'],\n    ['ifb', 'text/calendar'],\n    ['ifm', 'application/vnd.shana.informed.formdata'],\n    ['iges', 'model/iges'],\n    ['igl', 'application/vnd.igloader'],\n    ['igm', 'application/vnd.insors.igm'],\n    ['igs', 'model/iges'],\n    ['igx', 'application/vnd.micrografx.igx'],\n    ['iif', 'application/vnd.shana.informed.interchange'],\n    ['img', 'application/octet-stream'],\n    ['imp', 'application/vnd.accpac.simply.imp'],\n    ['ims', 'application/vnd.ms-ims'],\n    ['in', 'text/plain'],\n    ['ini', 'text/plain'],\n    ['ink', 'application/inkml+xml'],\n    ['inkml', 'application/inkml+xml'],\n    ['install', 'application/x-install-instructions'],\n    ['iota', 'application/vnd.astraea-software.iota'],\n    ['ipfix', 'application/ipfix'],\n    ['ipk', 'application/vnd.shana.informed.package'],\n    ['irm', 'application/vnd.ibm.rights-management'],\n    ['irp', 'application/vnd.irepository.package+xml'],\n    ['iso', 'application/x-iso9660-image'],\n    ['itp', 'application/vnd.shana.informed.formtemplate'],\n    ['its', 'application/its+xml'],\n    ['ivp', 'application/vnd.immervision-ivp'],\n    ['ivu', 'application/vnd.immervision-ivu'],\n    ['jad', 'text/vnd.sun.j2me.app-descriptor'],\n    ['jade', 'text/jade'],\n    ['jam', 'application/vnd.jam'],\n    ['jar', 'application/java-archive'],\n    ['jardiff', 'application/x-java-archive-diff'],\n    ['java', 'text/x-java-source'],\n    ['jhc', 'image/jphc'],\n    ['jisp', 'application/vnd.jisp'],\n    ['jls', 'image/jls'],\n    ['jlt', 'application/vnd.hp-jlyt'],\n    ['jng', 'image/x-jng'],\n    ['jnlp', 'application/x-java-jnlp-file'],\n    ['joda', 'application/vnd.joost.joda-archive'],\n    ['jp2', 'image/jp2'],\n    ['jpe', 'image/jpeg'],\n    ['jpeg', 'image/jpeg'],\n    ['jpf', 'image/jpx'],\n    ['jpg', 'image/jpeg'],\n    ['jpg2', 'image/jp2'],\n    ['jpgm', 'video/jpm'],\n    ['jpgv', 'video/jpeg'],\n    ['jph', 'image/jph'],\n    ['jpm', 'video/jpm'],\n    ['jpx', 'image/jpx'],\n    ['js', 'application/javascript'],\n    ['json', 'application/json'],\n    ['json5', 'application/json5'],\n    ['jsonld', 'application/ld+json'],\n    // https://jsonlines.org/\n    ['jsonl', 'application/jsonl'],\n    ['jsonml', 'application/jsonml+json'],\n    ['jsx', 'text/jsx'],\n    ['jxr', 'image/jxr'],\n    ['jxra', 'image/jxra'],\n    ['jxrs', 'image/jxrs'],\n    ['jxs', 'image/jxs'],\n    ['jxsc', 'image/jxsc'],\n    ['jxsi', 'image/jxsi'],\n    ['jxss', 'image/jxss'],\n    ['kar', 'audio/midi'],\n    ['karbon', 'application/vnd.kde.karbon'],\n    ['kdb', 'application/octet-stream'],\n    ['kdbx', 'application/x-keepass2'],\n    ['key', 'application/x-iwork-keynote-sffkey'],\n    ['kfo', 'application/vnd.kde.kformula'],\n    ['kia', 'application/vnd.kidspiration'],\n    ['kml', 'application/vnd.google-earth.kml+xml'],\n    ['kmz', 'application/vnd.google-earth.kmz'],\n    ['kne', 'application/vnd.kinar'],\n    ['knp', 'application/vnd.kinar'],\n    ['kon', 'application/vnd.kde.kontour'],\n    ['kpr', 'application/vnd.kde.kpresenter'],\n    ['kpt', 'application/vnd.kde.kpresenter'],\n    ['kpxx', 'application/vnd.ds-keypoint'],\n    ['ksp', 'application/vnd.kde.kspread'],\n    ['ktr', 'application/vnd.kahootz'],\n    ['ktx', 'image/ktx'],\n    ['ktx2', 'image/ktx2'],\n    ['ktz', 'application/vnd.kahootz'],\n    ['kwd', 'application/vnd.kde.kword'],\n    ['kwt', 'application/vnd.kde.kword'],\n    ['lasxml', 'application/vnd.las.las+xml'],\n    ['latex', 'application/x-latex'],\n    ['lbd', 'application/vnd.llamagraphics.life-balance.desktop'],\n    ['lbe', 'application/vnd.llamagraphics.life-balance.exchange+xml'],\n    ['les', 'application/vnd.hhe.lesson-player'],\n    ['less', 'text/less'],\n    ['lgr', 'application/lgr+xml'],\n    ['lha', 'application/octet-stream'],\n    ['link66', 'application/vnd.route66.link66+xml'],\n    ['list', 'text/plain'],\n    ['list3820', 'application/vnd.ibm.modcap'],\n    ['listafp', 'application/vnd.ibm.modcap'],\n    ['litcoffee', 'text/coffeescript'],\n    ['lnk', 'application/x-ms-shortcut'],\n    ['log', 'text/plain'],\n    ['lostxml', 'application/lost+xml'],\n    ['lrf', 'application/octet-stream'],\n    ['lrm', 'application/vnd.ms-lrm'],\n    ['ltf', 'application/vnd.frogans.ltf'],\n    ['lua', 'text/x-lua'],\n    ['luac', 'application/x-lua-bytecode'],\n    ['lvp', 'audio/vnd.lucent.voice'],\n    ['lwp', 'application/vnd.lotus-wordpro'],\n    ['lzh', 'application/octet-stream'],\n    ['m1v', 'video/mpeg'],\n    ['m2a', 'audio/mpeg'],\n    ['m2v', 'video/mpeg'],\n    ['m3a', 'audio/mpeg'],\n    ['m3u', 'text/plain'],\n    ['m3u8', 'application/vnd.apple.mpegurl'],\n    ['m4a', 'audio/x-m4a'],\n    ['m4p', 'application/mp4'],\n    ['m4s', 'video/iso.segment'],\n    ['m4u', 'application/vnd.mpegurl'],\n    ['m4v', 'video/x-m4v'],\n    ['m13', 'application/x-msmediaview'],\n    ['m14', 'application/x-msmediaview'],\n    ['m21', 'application/mp21'],\n    ['ma', 'application/mathematica'],\n    ['mads', 'application/mads+xml'],\n    ['maei', 'application/mmt-aei+xml'],\n    ['mag', 'application/vnd.ecowin.chart'],\n    ['maker', 'application/vnd.framemaker'],\n    ['man', 'text/troff'],\n    ['manifest', 'text/cache-manifest'],\n    ['map', 'application/json'],\n    ['mar', 'application/octet-stream'],\n    ['markdown', 'text/markdown'],\n    ['mathml', 'application/mathml+xml'],\n    ['mb', 'application/mathematica'],\n    ['mbk', 'application/vnd.mobius.mbk'],\n    ['mbox', 'application/mbox'],\n    ['mc1', 'application/vnd.medcalcdata'],\n    ['mcd', 'application/vnd.mcd'],\n    ['mcurl', 'text/vnd.curl.mcurl'],\n    ['md', 'text/markdown'],\n    ['mdb', 'application/x-msaccess'],\n    ['mdi', 'image/vnd.ms-modi'],\n    ['mdx', 'text/mdx'],\n    ['me', 'text/troff'],\n    ['mesh', 'model/mesh'],\n    ['meta4', 'application/metalink4+xml'],\n    ['metalink', 'application/metalink+xml'],\n    ['mets', 'application/mets+xml'],\n    ['mfm', 'application/vnd.mfmp'],\n    ['mft', 'application/rpki-manifest'],\n    ['mgp', 'application/vnd.osgeo.mapguide.package'],\n    ['mgz', 'application/vnd.proteus.magazine'],\n    ['mid', 'audio/midi'],\n    ['midi', 'audio/midi'],\n    ['mie', 'application/x-mie'],\n    ['mif', 'application/vnd.mif'],\n    ['mime', 'message/rfc822'],\n    ['mj2', 'video/mj2'],\n    ['mjp2', 'video/mj2'],\n    ['mjs', 'application/javascript'],\n    ['mk3d', 'video/x-matroska'],\n    ['mka', 'audio/x-matroska'],\n    ['mkd', 'text/x-markdown'],\n    ['mks', 'video/x-matroska'],\n    ['mkv', 'video/x-matroska'],\n    ['mlp', 'application/vnd.dolby.mlp'],\n    ['mmd', 'application/vnd.chipnuts.karaoke-mmd'],\n    ['mmf', 'application/vnd.smaf'],\n    ['mml', 'text/mathml'],\n    ['mmr', 'image/vnd.fujixerox.edmics-mmr'],\n    ['mng', 'video/x-mng'],\n    ['mny', 'application/x-msmoney'],\n    ['mobi', 'application/x-mobipocket-ebook'],\n    ['mods', 'application/mods+xml'],\n    ['mov', 'video/quicktime'],\n    ['movie', 'video/x-sgi-movie'],\n    ['mp2', 'audio/mpeg'],\n    ['mp2a', 'audio/mpeg'],\n    ['mp3', 'audio/mpeg'],\n    ['mp4', 'video/mp4'],\n    ['mp4a', 'audio/mp4'],\n    ['mp4s', 'application/mp4'],\n    ['mp4v', 'video/mp4'],\n    ['mp21', 'application/mp21'],\n    ['mpc', 'application/vnd.mophun.certificate'],\n    ['mpd', 'application/dash+xml'],\n    ['mpe', 'video/mpeg'],\n    ['mpeg', 'video/mpeg'],\n    ['mpg', 'video/mpeg'],\n    ['mpg4', 'video/mp4'],\n    ['mpga', 'audio/mpeg'],\n    ['mpkg', 'application/vnd.apple.installer+xml'],\n    ['mpm', 'application/vnd.blueice.multipass'],\n    ['mpn', 'application/vnd.mophun.application'],\n    ['mpp', 'application/vnd.ms-project'],\n    ['mpt', 'application/vnd.ms-project'],\n    ['mpy', 'application/vnd.ibm.minipay'],\n    ['mqy', 'application/vnd.mobius.mqy'],\n    ['mrc', 'application/marc'],\n    ['mrcx', 'application/marcxml+xml'],\n    ['ms', 'text/troff'],\n    ['mscml', 'application/mediaservercontrol+xml'],\n    ['mseed', 'application/vnd.fdsn.mseed'],\n    ['mseq', 'application/vnd.mseq'],\n    ['msf', 'application/vnd.epson.msf'],\n    ['msg', 'application/vnd.ms-outlook'],\n    ['msh', 'model/mesh'],\n    ['msi', 'application/x-msdownload'],\n    ['msl', 'application/vnd.mobius.msl'],\n    ['msm', 'application/octet-stream'],\n    ['msp', 'application/octet-stream'],\n    ['msty', 'application/vnd.muvee.style'],\n    ['mtl', 'model/mtl'],\n    ['mts', 'model/vnd.mts'],\n    ['mus', 'application/vnd.musician'],\n    ['musd', 'application/mmt-usd+xml'],\n    ['musicxml', 'application/vnd.recordare.musicxml+xml'],\n    ['mvb', 'application/x-msmediaview'],\n    ['mvt', 'application/vnd.mapbox-vector-tile'],\n    ['mwf', 'application/vnd.mfer'],\n    ['mxf', 'application/mxf'],\n    ['mxl', 'application/vnd.recordare.musicxml'],\n    ['mxmf', 'audio/mobile-xmf'],\n    ['mxml', 'application/xv+xml'],\n    ['mxs', 'application/vnd.triscape.mxs'],\n    ['mxu', 'video/vnd.mpegurl'],\n    ['n-gage', 'application/vnd.nokia.n-gage.symbian.install'],\n    ['n3', 'text/n3'],\n    ['nb', 'application/mathematica'],\n    ['nbp', 'application/vnd.wolfram.player'],\n    ['nc', 'application/x-netcdf'],\n    ['ncx', 'application/x-dtbncx+xml'],\n    ['nfo', 'text/x-nfo'],\n    ['ngdat', 'application/vnd.nokia.n-gage.data'],\n    ['nitf', 'application/vnd.nitf'],\n    ['nlu', 'application/vnd.neurolanguage.nlu'],\n    ['nml', 'application/vnd.enliven'],\n    ['nnd', 'application/vnd.noblenet-directory'],\n    ['nns', 'application/vnd.noblenet-sealer'],\n    ['nnw', 'application/vnd.noblenet-web'],\n    ['npx', 'image/vnd.net-fpx'],\n    ['nq', 'application/n-quads'],\n    ['nsc', 'application/x-conference'],\n    ['nsf', 'application/vnd.lotus-notes'],\n    ['nt', 'application/n-triples'],\n    ['ntf', 'application/vnd.nitf'],\n    ['numbers', 'application/x-iwork-numbers-sffnumbers'],\n    ['nzb', 'application/x-nzb'],\n    ['oa2', 'application/vnd.fujitsu.oasys2'],\n    ['oa3', 'application/vnd.fujitsu.oasys3'],\n    ['oas', 'application/vnd.fujitsu.oasys'],\n    ['obd', 'application/x-msbinder'],\n    ['obgx', 'application/vnd.openblox.game+xml'],\n    ['obj', 'model/obj'],\n    ['oda', 'application/oda'],\n    ['odb', 'application/vnd.oasis.opendocument.database'],\n    ['odc', 'application/vnd.oasis.opendocument.chart'],\n    ['odf', 'application/vnd.oasis.opendocument.formula'],\n    ['odft', 'application/vnd.oasis.opendocument.formula-template'],\n    ['odg', 'application/vnd.oasis.opendocument.graphics'],\n    ['odi', 'application/vnd.oasis.opendocument.image'],\n    ['odm', 'application/vnd.oasis.opendocument.text-master'],\n    ['odp', 'application/vnd.oasis.opendocument.presentation'],\n    ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n    ['odt', 'application/vnd.oasis.opendocument.text'],\n    ['oga', 'audio/ogg'],\n    ['ogex', 'model/vnd.opengex'],\n    ['ogg', 'audio/ogg'],\n    ['ogv', 'video/ogg'],\n    ['ogx', 'application/ogg'],\n    ['omdoc', 'application/omdoc+xml'],\n    ['onepkg', 'application/onenote'],\n    ['onetmp', 'application/onenote'],\n    ['onetoc', 'application/onenote'],\n    ['onetoc2', 'application/onenote'],\n    ['opf', 'application/oebps-package+xml'],\n    ['opml', 'text/x-opml'],\n    ['oprc', 'application/vnd.palm'],\n    ['opus', 'audio/ogg'],\n    ['org', 'text/x-org'],\n    ['osf', 'application/vnd.yamaha.openscoreformat'],\n    ['osfpvg', 'application/vnd.yamaha.openscoreformat.osfpvg+xml'],\n    ['osm', 'application/vnd.openstreetmap.data+xml'],\n    ['otc', 'application/vnd.oasis.opendocument.chart-template'],\n    ['otf', 'font/otf'],\n    ['otg', 'application/vnd.oasis.opendocument.graphics-template'],\n    ['oth', 'application/vnd.oasis.opendocument.text-web'],\n    ['oti', 'application/vnd.oasis.opendocument.image-template'],\n    ['otp', 'application/vnd.oasis.opendocument.presentation-template'],\n    ['ots', 'application/vnd.oasis.opendocument.spreadsheet-template'],\n    ['ott', 'application/vnd.oasis.opendocument.text-template'],\n    ['ova', 'application/x-virtualbox-ova'],\n    ['ovf', 'application/x-virtualbox-ovf'],\n    ['owl', 'application/rdf+xml'],\n    ['oxps', 'application/oxps'],\n    ['oxt', 'application/vnd.openofficeorg.extension'],\n    ['p', 'text/x-pascal'],\n    ['p7a', 'application/x-pkcs7-signature'],\n    ['p7b', 'application/x-pkcs7-certificates'],\n    ['p7c', 'application/pkcs7-mime'],\n    ['p7m', 'application/pkcs7-mime'],\n    ['p7r', 'application/x-pkcs7-certreqresp'],\n    ['p7s', 'application/pkcs7-signature'],\n    ['p8', 'application/pkcs8'],\n    ['p10', 'application/x-pkcs10'],\n    ['p12', 'application/x-pkcs12'],\n    ['pac', 'application/x-ns-proxy-autoconfig'],\n    ['pages', 'application/x-iwork-pages-sffpages'],\n    ['pas', 'text/x-pascal'],\n    ['paw', 'application/vnd.pawaafile'],\n    ['pbd', 'application/vnd.powerbuilder6'],\n    ['pbm', 'image/x-portable-bitmap'],\n    ['pcap', 'application/vnd.tcpdump.pcap'],\n    ['pcf', 'application/x-font-pcf'],\n    ['pcl', 'application/vnd.hp-pcl'],\n    ['pclxl', 'application/vnd.hp-pclxl'],\n    ['pct', 'image/x-pict'],\n    ['pcurl', 'application/vnd.curl.pcurl'],\n    ['pcx', 'image/x-pcx'],\n    ['pdb', 'application/x-pilot'],\n    ['pde', 'text/x-processing'],\n    ['pdf', 'application/pdf'],\n    ['pem', 'application/x-x509-user-cert'],\n    ['pfa', 'application/x-font-type1'],\n    ['pfb', 'application/x-font-type1'],\n    ['pfm', 'application/x-font-type1'],\n    ['pfr', 'application/font-tdpfr'],\n    ['pfx', 'application/x-pkcs12'],\n    ['pgm', 'image/x-portable-graymap'],\n    ['pgn', 'application/x-chess-pgn'],\n    ['pgp', 'application/pgp'],\n    ['php', 'application/x-httpd-php'],\n    ['php3', 'application/x-httpd-php'],\n    ['php4', 'application/x-httpd-php'],\n    ['phps', 'application/x-httpd-php-source'],\n    ['phtml', 'application/x-httpd-php'],\n    ['pic', 'image/x-pict'],\n    ['pkg', 'application/octet-stream'],\n    ['pki', 'application/pkixcmp'],\n    ['pkipath', 'application/pkix-pkipath'],\n    ['pkpass', 'application/vnd.apple.pkpass'],\n    ['pl', 'application/x-perl'],\n    ['plb', 'application/vnd.3gpp.pic-bw-large'],\n    ['plc', 'application/vnd.mobius.plc'],\n    ['plf', 'application/vnd.pocketlearn'],\n    ['pls', 'application/pls+xml'],\n    ['pm', 'application/x-perl'],\n    ['pml', 'application/vnd.ctc-posml'],\n    ['png', 'image/png'],\n    ['pnm', 'image/x-portable-anymap'],\n    ['portpkg', 'application/vnd.macports.portpkg'],\n    ['pot', 'application/vnd.ms-powerpoint'],\n    ['potm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n    ['potx', 'application/vnd.openxmlformats-officedocument.presentationml.template'],\n    ['ppa', 'application/vnd.ms-powerpoint'],\n    ['ppam', 'application/vnd.ms-powerpoint.addin.macroEnabled.12'],\n    ['ppd', 'application/vnd.cups-ppd'],\n    ['ppm', 'image/x-portable-pixmap'],\n    ['pps', 'application/vnd.ms-powerpoint'],\n    ['ppsm', 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12'],\n    ['ppsx', 'application/vnd.openxmlformats-officedocument.presentationml.slideshow'],\n    ['ppt', 'application/powerpoint'],\n    ['pptm', 'application/vnd.ms-powerpoint.presentation.macroEnabled.12'],\n    ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n    ['pqa', 'application/vnd.palm'],\n    ['prc', 'application/x-pilot'],\n    ['pre', 'application/vnd.lotus-freelance'],\n    ['prf', 'application/pics-rules'],\n    ['provx', 'application/provenance+xml'],\n    ['ps', 'application/postscript'],\n    ['psb', 'application/vnd.3gpp.pic-bw-small'],\n    ['psd', 'application/x-photoshop'],\n    ['psf', 'application/x-font-linux-psf'],\n    ['pskcxml', 'application/pskc+xml'],\n    ['pti', 'image/prs.pti'],\n    ['ptid', 'application/vnd.pvi.ptid1'],\n    ['pub', 'application/x-mspublisher'],\n    ['pvb', 'application/vnd.3gpp.pic-bw-var'],\n    ['pwn', 'application/vnd.3m.post-it-notes'],\n    ['pya', 'audio/vnd.ms-playready.media.pya'],\n    ['pyv', 'video/vnd.ms-playready.media.pyv'],\n    ['qam', 'application/vnd.epson.quickanime'],\n    ['qbo', 'application/vnd.intu.qbo'],\n    ['qfx', 'application/vnd.intu.qfx'],\n    ['qps', 'application/vnd.publishare-delta-tree'],\n    ['qt', 'video/quicktime'],\n    ['qwd', 'application/vnd.quark.quarkxpress'],\n    ['qwt', 'application/vnd.quark.quarkxpress'],\n    ['qxb', 'application/vnd.quark.quarkxpress'],\n    ['qxd', 'application/vnd.quark.quarkxpress'],\n    ['qxl', 'application/vnd.quark.quarkxpress'],\n    ['qxt', 'application/vnd.quark.quarkxpress'],\n    ['ra', 'audio/x-realaudio'],\n    ['ram', 'audio/x-pn-realaudio'],\n    ['raml', 'application/raml+yaml'],\n    ['rapd', 'application/route-apd+xml'],\n    ['rar', 'application/x-rar'],\n    ['ras', 'image/x-cmu-raster'],\n    ['rcprofile', 'application/vnd.ipunplugged.rcprofile'],\n    ['rdf', 'application/rdf+xml'],\n    ['rdz', 'application/vnd.data-vision.rdz'],\n    ['relo', 'application/p2p-overlay+xml'],\n    ['rep', 'application/vnd.businessobjects'],\n    ['res', 'application/x-dtbresource+xml'],\n    ['rgb', 'image/x-rgb'],\n    ['rif', 'application/reginfo+xml'],\n    ['rip', 'audio/vnd.rip'],\n    ['ris', 'application/x-research-info-systems'],\n    ['rl', 'application/resource-lists+xml'],\n    ['rlc', 'image/vnd.fujixerox.edmics-rlc'],\n    ['rld', 'application/resource-lists-diff+xml'],\n    ['rm', 'audio/x-pn-realaudio'],\n    ['rmi', 'audio/midi'],\n    ['rmp', 'audio/x-pn-realaudio-plugin'],\n    ['rms', 'application/vnd.jcp.javame.midlet-rms'],\n    ['rmvb', 'application/vnd.rn-realmedia-vbr'],\n    ['rnc', 'application/relax-ng-compact-syntax'],\n    ['rng', 'application/xml'],\n    ['roa', 'application/rpki-roa'],\n    ['roff', 'text/troff'],\n    ['rp9', 'application/vnd.cloanto.rp9'],\n    ['rpm', 'audio/x-pn-realaudio-plugin'],\n    ['rpss', 'application/vnd.nokia.radio-presets'],\n    ['rpst', 'application/vnd.nokia.radio-preset'],\n    ['rq', 'application/sparql-query'],\n    ['rs', 'application/rls-services+xml'],\n    ['rsa', 'application/x-pkcs7'],\n    ['rsat', 'application/atsc-rsat+xml'],\n    ['rsd', 'application/rsd+xml'],\n    ['rsheet', 'application/urc-ressheet+xml'],\n    ['rss', 'application/rss+xml'],\n    ['rtf', 'text/rtf'],\n    ['rtx', 'text/richtext'],\n    ['run', 'application/x-makeself'],\n    ['rusd', 'application/route-usd+xml'],\n    ['rv', 'video/vnd.rn-realvideo'],\n    ['s', 'text/x-asm'],\n    ['s3m', 'audio/s3m'],\n    ['saf', 'application/vnd.yamaha.smaf-audio'],\n    ['sass', 'text/x-sass'],\n    ['sbml', 'application/sbml+xml'],\n    ['sc', 'application/vnd.ibm.secure-container'],\n    ['scd', 'application/x-msschedule'],\n    ['scm', 'application/vnd.lotus-screencam'],\n    ['scq', 'application/scvp-cv-request'],\n    ['scs', 'application/scvp-cv-response'],\n    ['scss', 'text/x-scss'],\n    ['scurl', 'text/vnd.curl.scurl'],\n    ['sda', 'application/vnd.stardivision.draw'],\n    ['sdc', 'application/vnd.stardivision.calc'],\n    ['sdd', 'application/vnd.stardivision.impress'],\n    ['sdkd', 'application/vnd.solent.sdkm+xml'],\n    ['sdkm', 'application/vnd.solent.sdkm+xml'],\n    ['sdp', 'application/sdp'],\n    ['sdw', 'application/vnd.stardivision.writer'],\n    ['sea', 'application/octet-stream'],\n    ['see', 'application/vnd.seemail'],\n    ['seed', 'application/vnd.fdsn.seed'],\n    ['sema', 'application/vnd.sema'],\n    ['semd', 'application/vnd.semd'],\n    ['semf', 'application/vnd.semf'],\n    ['senmlx', 'application/senml+xml'],\n    ['sensmlx', 'application/sensml+xml'],\n    ['ser', 'application/java-serialized-object'],\n    ['setpay', 'application/set-payment-initiation'],\n    ['setreg', 'application/set-registration-initiation'],\n    ['sfd-hdstx', 'application/vnd.hydrostatix.sof-data'],\n    ['sfs', 'application/vnd.spotfire.sfs'],\n    ['sfv', 'text/x-sfv'],\n    ['sgi', 'image/sgi'],\n    ['sgl', 'application/vnd.stardivision.writer-global'],\n    ['sgm', 'text/sgml'],\n    ['sgml', 'text/sgml'],\n    ['sh', 'application/x-sh'],\n    ['shar', 'application/x-shar'],\n    ['shex', 'text/shex'],\n    ['shf', 'application/shf+xml'],\n    ['shtml', 'text/html'],\n    ['sid', 'image/x-mrsid-image'],\n    ['sieve', 'application/sieve'],\n    ['sig', 'application/pgp-signature'],\n    ['sil', 'audio/silk'],\n    ['silo', 'model/mesh'],\n    ['sis', 'application/vnd.symbian.install'],\n    ['sisx', 'application/vnd.symbian.install'],\n    ['sit', 'application/x-stuffit'],\n    ['sitx', 'application/x-stuffitx'],\n    ['siv', 'application/sieve'],\n    ['skd', 'application/vnd.koan'],\n    ['skm', 'application/vnd.koan'],\n    ['skp', 'application/vnd.koan'],\n    ['skt', 'application/vnd.koan'],\n    ['sldm', 'application/vnd.ms-powerpoint.slide.macroenabled.12'],\n    ['sldx', 'application/vnd.openxmlformats-officedocument.presentationml.slide'],\n    ['slim', 'text/slim'],\n    ['slm', 'text/slim'],\n    ['sls', 'application/route-s-tsid+xml'],\n    ['slt', 'application/vnd.epson.salt'],\n    ['sm', 'application/vnd.stepmania.stepchart'],\n    ['smf', 'application/vnd.stardivision.math'],\n    ['smi', 'application/smil'],\n    ['smil', 'application/smil'],\n    ['smv', 'video/x-smv'],\n    ['smzip', 'application/vnd.stepmania.package'],\n    ['snd', 'audio/basic'],\n    ['snf', 'application/x-font-snf'],\n    ['so', 'application/octet-stream'],\n    ['spc', 'application/x-pkcs7-certificates'],\n    ['spdx', 'text/spdx'],\n    ['spf', 'application/vnd.yamaha.smaf-phrase'],\n    ['spl', 'application/x-futuresplash'],\n    ['spot', 'text/vnd.in3d.spot'],\n    ['spp', 'application/scvp-vp-response'],\n    ['spq', 'application/scvp-vp-request'],\n    ['spx', 'audio/ogg'],\n    ['sql', 'application/x-sql'],\n    ['src', 'application/x-wais-source'],\n    ['srt', 'application/x-subrip'],\n    ['sru', 'application/sru+xml'],\n    ['srx', 'application/sparql-results+xml'],\n    ['ssdl', 'application/ssdl+xml'],\n    ['sse', 'application/vnd.kodak-descriptor'],\n    ['ssf', 'application/vnd.epson.ssf'],\n    ['ssml', 'application/ssml+xml'],\n    ['sst', 'application/octet-stream'],\n    ['st', 'application/vnd.sailingtracker.track'],\n    ['stc', 'application/vnd.sun.xml.calc.template'],\n    ['std', 'application/vnd.sun.xml.draw.template'],\n    ['stf', 'application/vnd.wt.stf'],\n    ['sti', 'application/vnd.sun.xml.impress.template'],\n    ['stk', 'application/hyperstudio'],\n    ['stl', 'model/stl'],\n    ['stpx', 'model/step+xml'],\n    ['stpxz', 'model/step-xml+zip'],\n    ['stpz', 'model/step+zip'],\n    ['str', 'application/vnd.pg.format'],\n    ['stw', 'application/vnd.sun.xml.writer.template'],\n    ['styl', 'text/stylus'],\n    ['stylus', 'text/stylus'],\n    ['sub', 'text/vnd.dvb.subtitle'],\n    ['sus', 'application/vnd.sus-calendar'],\n    ['susp', 'application/vnd.sus-calendar'],\n    ['sv4cpio', 'application/x-sv4cpio'],\n    ['sv4crc', 'application/x-sv4crc'],\n    ['svc', 'application/vnd.dvb.service'],\n    ['svd', 'application/vnd.svd'],\n    ['svg', 'image/svg+xml'],\n    ['svgz', 'image/svg+xml'],\n    ['swa', 'application/x-director'],\n    ['swf', 'application/x-shockwave-flash'],\n    ['swi', 'application/vnd.aristanetworks.swi'],\n    ['swidtag', 'application/swid+xml'],\n    ['sxc', 'application/vnd.sun.xml.calc'],\n    ['sxd', 'application/vnd.sun.xml.draw'],\n    ['sxg', 'application/vnd.sun.xml.writer.global'],\n    ['sxi', 'application/vnd.sun.xml.impress'],\n    ['sxm', 'application/vnd.sun.xml.math'],\n    ['sxw', 'application/vnd.sun.xml.writer'],\n    ['t', 'text/troff'],\n    ['t3', 'application/x-t3vm-image'],\n    ['t38', 'image/t38'],\n    ['taglet', 'application/vnd.mynfc'],\n    ['tao', 'application/vnd.tao.intent-module-archive'],\n    ['tap', 'image/vnd.tencent.tap'],\n    ['tar', 'application/x-tar'],\n    ['tcap', 'application/vnd.3gpp2.tcap'],\n    ['tcl', 'application/x-tcl'],\n    ['td', 'application/urc-targetdesc+xml'],\n    ['teacher', 'application/vnd.smart.teacher'],\n    ['tei', 'application/tei+xml'],\n    ['teicorpus', 'application/tei+xml'],\n    ['tex', 'application/x-tex'],\n    ['texi', 'application/x-texinfo'],\n    ['texinfo', 'application/x-texinfo'],\n    ['text', 'text/plain'],\n    ['tfi', 'application/thraud+xml'],\n    ['tfm', 'application/x-tex-tfm'],\n    ['tfx', 'image/tiff-fx'],\n    ['tga', 'image/x-tga'],\n    ['tgz', 'application/x-tar'],\n    ['thmx', 'application/vnd.ms-officetheme'],\n    ['tif', 'image/tiff'],\n    ['tiff', 'image/tiff'],\n    ['tk', 'application/x-tcl'],\n    ['tmo', 'application/vnd.tmobile-livetv'],\n    ['toml', 'application/toml'],\n    ['torrent', 'application/x-bittorrent'],\n    ['tpl', 'application/vnd.groove-tool-template'],\n    ['tpt', 'application/vnd.trid.tpt'],\n    ['tr', 'text/troff'],\n    ['tra', 'application/vnd.trueapp'],\n    ['trig', 'application/trig'],\n    ['trm', 'application/x-msterminal'],\n    ['ts', 'video/mp2t'],\n    ['tsd', 'application/timestamped-data'],\n    ['tsv', 'text/tab-separated-values'],\n    ['ttc', 'font/collection'],\n    ['ttf', 'font/ttf'],\n    ['ttl', 'text/turtle'],\n    ['ttml', 'application/ttml+xml'],\n    ['twd', 'application/vnd.simtech-mindmapper'],\n    ['twds', 'application/vnd.simtech-mindmapper'],\n    ['txd', 'application/vnd.genomatix.tuxedo'],\n    ['txf', 'application/vnd.mobius.txf'],\n    ['txt', 'text/plain'],\n    ['u8dsn', 'message/global-delivery-status'],\n    ['u8hdr', 'message/global-headers'],\n    ['u8mdn', 'message/global-disposition-notification'],\n    ['u8msg', 'message/global'],\n    ['u32', 'application/x-authorware-bin'],\n    ['ubj', 'application/ubjson'],\n    ['udeb', 'application/x-debian-package'],\n    ['ufd', 'application/vnd.ufdl'],\n    ['ufdl', 'application/vnd.ufdl'],\n    ['ulx', 'application/x-glulx'],\n    ['umj', 'application/vnd.umajin'],\n    ['unityweb', 'application/vnd.unity'],\n    ['uoml', 'application/vnd.uoml+xml'],\n    ['uri', 'text/uri-list'],\n    ['uris', 'text/uri-list'],\n    ['urls', 'text/uri-list'],\n    ['usdz', 'model/vnd.usdz+zip'],\n    ['ustar', 'application/x-ustar'],\n    ['utz', 'application/vnd.uiq.theme'],\n    ['uu', 'text/x-uuencode'],\n    ['uva', 'audio/vnd.dece.audio'],\n    ['uvd', 'application/vnd.dece.data'],\n    ['uvf', 'application/vnd.dece.data'],\n    ['uvg', 'image/vnd.dece.graphic'],\n    ['uvh', 'video/vnd.dece.hd'],\n    ['uvi', 'image/vnd.dece.graphic'],\n    ['uvm', 'video/vnd.dece.mobile'],\n    ['uvp', 'video/vnd.dece.pd'],\n    ['uvs', 'video/vnd.dece.sd'],\n    ['uvt', 'application/vnd.dece.ttml+xml'],\n    ['uvu', 'video/vnd.uvvu.mp4'],\n    ['uvv', 'video/vnd.dece.video'],\n    ['uvva', 'audio/vnd.dece.audio'],\n    ['uvvd', 'application/vnd.dece.data'],\n    ['uvvf', 'application/vnd.dece.data'],\n    ['uvvg', 'image/vnd.dece.graphic'],\n    ['uvvh', 'video/vnd.dece.hd'],\n    ['uvvi', 'image/vnd.dece.graphic'],\n    ['uvvm', 'video/vnd.dece.mobile'],\n    ['uvvp', 'video/vnd.dece.pd'],\n    ['uvvs', 'video/vnd.dece.sd'],\n    ['uvvt', 'application/vnd.dece.ttml+xml'],\n    ['uvvu', 'video/vnd.uvvu.mp4'],\n    ['uvvv', 'video/vnd.dece.video'],\n    ['uvvx', 'application/vnd.dece.unspecified'],\n    ['uvvz', 'application/vnd.dece.zip'],\n    ['uvx', 'application/vnd.dece.unspecified'],\n    ['uvz', 'application/vnd.dece.zip'],\n    ['vbox', 'application/x-virtualbox-vbox'],\n    ['vbox-extpack', 'application/x-virtualbox-vbox-extpack'],\n    ['vcard', 'text/vcard'],\n    ['vcd', 'application/x-cdlink'],\n    ['vcf', 'text/x-vcard'],\n    ['vcg', 'application/vnd.groove-vcard'],\n    ['vcs', 'text/x-vcalendar'],\n    ['vcx', 'application/vnd.vcx'],\n    ['vdi', 'application/x-virtualbox-vdi'],\n    ['vds', 'model/vnd.sap.vds'],\n    ['vhd', 'application/x-virtualbox-vhd'],\n    ['vis', 'application/vnd.visionary'],\n    ['viv', 'video/vnd.vivo'],\n    ['vlc', 'application/videolan'],\n    ['vmdk', 'application/x-virtualbox-vmdk'],\n    ['vob', 'video/x-ms-vob'],\n    ['vor', 'application/vnd.stardivision.writer'],\n    ['vox', 'application/x-authorware-bin'],\n    ['vrml', 'model/vrml'],\n    ['vsd', 'application/vnd.visio'],\n    ['vsf', 'application/vnd.vsf'],\n    ['vss', 'application/vnd.visio'],\n    ['vst', 'application/vnd.visio'],\n    ['vsw', 'application/vnd.visio'],\n    ['vtf', 'image/vnd.valve.source.texture'],\n    ['vtt', 'text/vtt'],\n    ['vtu', 'model/vnd.vtu'],\n    ['vxml', 'application/voicexml+xml'],\n    ['w3d', 'application/x-director'],\n    ['wad', 'application/x-doom'],\n    ['wadl', 'application/vnd.sun.wadl+xml'],\n    ['war', 'application/java-archive'],\n    ['wasm', 'application/wasm'],\n    ['wav', 'audio/x-wav'],\n    ['wax', 'audio/x-ms-wax'],\n    ['wbmp', 'image/vnd.wap.wbmp'],\n    ['wbs', 'application/vnd.criticaltools.wbs+xml'],\n    ['wbxml', 'application/wbxml'],\n    ['wcm', 'application/vnd.ms-works'],\n    ['wdb', 'application/vnd.ms-works'],\n    ['wdp', 'image/vnd.ms-photo'],\n    ['weba', 'audio/webm'],\n    ['webapp', 'application/x-web-app-manifest+json'],\n    ['webm', 'video/webm'],\n    ['webmanifest', 'application/manifest+json'],\n    ['webp', 'image/webp'],\n    ['wg', 'application/vnd.pmi.widget'],\n    ['wgt', 'application/widget'],\n    ['wks', 'application/vnd.ms-works'],\n    ['wm', 'video/x-ms-wm'],\n    ['wma', 'audio/x-ms-wma'],\n    ['wmd', 'application/x-ms-wmd'],\n    ['wmf', 'image/wmf'],\n    ['wml', 'text/vnd.wap.wml'],\n    ['wmlc', 'application/wmlc'],\n    ['wmls', 'text/vnd.wap.wmlscript'],\n    ['wmlsc', 'application/vnd.wap.wmlscriptc'],\n    ['wmv', 'video/x-ms-wmv'],\n    ['wmx', 'video/x-ms-wmx'],\n    ['wmz', 'application/x-msmetafile'],\n    ['woff', 'font/woff'],\n    ['woff2', 'font/woff2'],\n    ['word', 'application/msword'],\n    ['wpd', 'application/vnd.wordperfect'],\n    ['wpl', 'application/vnd.ms-wpl'],\n    ['wps', 'application/vnd.ms-works'],\n    ['wqd', 'application/vnd.wqd'],\n    ['wri', 'application/x-mswrite'],\n    ['wrl', 'model/vrml'],\n    ['wsc', 'message/vnd.wfa.wsc'],\n    ['wsdl', 'application/wsdl+xml'],\n    ['wspolicy', 'application/wspolicy+xml'],\n    ['wtb', 'application/vnd.webturbo'],\n    ['wvx', 'video/x-ms-wvx'],\n    ['x3d', 'model/x3d+xml'],\n    ['x3db', 'model/x3d+fastinfoset'],\n    ['x3dbz', 'model/x3d+binary'],\n    ['x3dv', 'model/x3d-vrml'],\n    ['x3dvz', 'model/x3d+vrml'],\n    ['x3dz', 'model/x3d+xml'],\n    ['x32', 'application/x-authorware-bin'],\n    ['x_b', 'model/vnd.parasolid.transmit.binary'],\n    ['x_t', 'model/vnd.parasolid.transmit.text'],\n    ['xaml', 'application/xaml+xml'],\n    ['xap', 'application/x-silverlight-app'],\n    ['xar', 'application/vnd.xara'],\n    ['xav', 'application/xcap-att+xml'],\n    ['xbap', 'application/x-ms-xbap'],\n    ['xbd', 'application/vnd.fujixerox.docuworks.binder'],\n    ['xbm', 'image/x-xbitmap'],\n    ['xca', 'application/xcap-caps+xml'],\n    ['xcs', 'application/calendar+xml'],\n    ['xdf', 'application/xcap-diff+xml'],\n    ['xdm', 'application/vnd.syncml.dm+xml'],\n    ['xdp', 'application/vnd.adobe.xdp+xml'],\n    ['xdssc', 'application/dssc+xml'],\n    ['xdw', 'application/vnd.fujixerox.docuworks'],\n    ['xel', 'application/xcap-el+xml'],\n    ['xenc', 'application/xenc+xml'],\n    ['xer', 'application/patch-ops-error+xml'],\n    ['xfdf', 'application/vnd.adobe.xfdf'],\n    ['xfdl', 'application/vnd.xfdl'],\n    ['xht', 'application/xhtml+xml'],\n    ['xhtml', 'application/xhtml+xml'],\n    ['xhvml', 'application/xv+xml'],\n    ['xif', 'image/vnd.xiff'],\n    ['xl', 'application/excel'],\n    ['xla', 'application/vnd.ms-excel'],\n    ['xlam', 'application/vnd.ms-excel.addin.macroEnabled.12'],\n    ['xlc', 'application/vnd.ms-excel'],\n    ['xlf', 'application/xliff+xml'],\n    ['xlm', 'application/vnd.ms-excel'],\n    ['xls', 'application/vnd.ms-excel'],\n    ['xlsb', 'application/vnd.ms-excel.sheet.binary.macroEnabled.12'],\n    ['xlsm', 'application/vnd.ms-excel.sheet.macroEnabled.12'],\n    ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n    ['xlt', 'application/vnd.ms-excel'],\n    ['xltm', 'application/vnd.ms-excel.template.macroEnabled.12'],\n    ['xltx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.template'],\n    ['xlw', 'application/vnd.ms-excel'],\n    ['xm', 'audio/xm'],\n    ['xml', 'application/xml'],\n    ['xns', 'application/xcap-ns+xml'],\n    ['xo', 'application/vnd.olpc-sugar'],\n    ['xop', 'application/xop+xml'],\n    ['xpi', 'application/x-xpinstall'],\n    ['xpl', 'application/xproc+xml'],\n    ['xpm', 'image/x-xpixmap'],\n    ['xpr', 'application/vnd.is-xpr'],\n    ['xps', 'application/vnd.ms-xpsdocument'],\n    ['xpw', 'application/vnd.intercon.formnet'],\n    ['xpx', 'application/vnd.intercon.formnet'],\n    ['xsd', 'application/xml'],\n    ['xsl', 'application/xml'],\n    ['xslt', 'application/xslt+xml'],\n    ['xsm', 'application/vnd.syncml+xml'],\n    ['xspf', 'application/xspf+xml'],\n    ['xul', 'application/vnd.mozilla.xul+xml'],\n    ['xvm', 'application/xv+xml'],\n    ['xvml', 'application/xv+xml'],\n    ['xwd', 'image/x-xwindowdump'],\n    ['xyz', 'chemical/x-xyz'],\n    ['xz', 'application/x-xz'],\n    ['yaml', 'text/yaml'],\n    ['yang', 'application/yang'],\n    ['yin', 'application/yin+xml'],\n    ['yml', 'text/yaml'],\n    ['ymp', 'text/x-suse-ymp'],\n    ['z', 'application/x-compress'],\n    ['z1', 'application/x-zmachine'],\n    ['z2', 'application/x-zmachine'],\n    ['z3', 'application/x-zmachine'],\n    ['z4', 'application/x-zmachine'],\n    ['z5', 'application/x-zmachine'],\n    ['z6', 'application/x-zmachine'],\n    ['z7', 'application/x-zmachine'],\n    ['z8', 'application/x-zmachine'],\n    ['zaz', 'application/vnd.zzazz.deck+xml'],\n    ['zip', 'application/zip'],\n    ['zir', 'application/vnd.zul'],\n    ['zirz', 'application/vnd.zul'],\n    ['zmm', 'application/vnd.handheld-entertainment+xml'],\n    ['zsh', 'text/x-scriptzsh']\n]);\nexport function toFileWithPath(file, path, h) {\n    const f = withMimeType(file);\n    const { webkitRelativePath } = file;\n    const p = typeof path === 'string'\n        ? path\n        // If <input webkitdirectory> is set,\n        // the File will have a {webkitRelativePath} property\n        // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n        : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n            ? webkitRelativePath\n            : `./${file.name}`;\n    if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n        setObjProp(f, 'path', p);\n    }\n    if (h !== undefined) {\n        Object.defineProperty(f, 'handle', {\n            value: h,\n            writable: false,\n            configurable: false,\n            enumerable: true\n        });\n    }\n    // Always populate a relative path so that even electron apps have access to a relativePath value\n    setObjProp(f, 'relativePath', p);\n    return f;\n}\nfunction withMimeType(file) {\n    const { name } = file;\n    const hasExtension = name && name.lastIndexOf('.') !== -1;\n    if (hasExtension && !file.type) {\n        const ext = name.split('.')\n            .pop().toLowerCase();\n        const type = COMMON_MIME_TYPES.get(ext);\n        if (type) {\n            Object.defineProperty(file, 'type', {\n                value: type,\n                writable: false,\n                configurable: false,\n                enumerable: true\n            });\n        }\n    }\n    return file;\n}\nfunction setObjProp(f, key, value) {\n    Object.defineProperty(f, key, {\n        value,\n        writable: false,\n        configurable: false,\n        enumerable: true\n    });\n}\n//# sourceMappingURL=file.js.map","import { __awaiter } from \"tslib\";\nimport { toFileWithPath } from './file';\nconst FILES_TO_IGNORE = [\n    // Thumbnail cache files for macOS and Windows\n    '.DS_Store', // macOs\n    'Thumbs.db' // Windows\n];\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport function fromEvent(evt) {\n    return __awaiter(this, void 0, void 0, function* () {\n        if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {\n            return getDataTransferFiles(evt.dataTransfer, evt.type);\n        }\n        else if (isChangeEvt(evt)) {\n            return getInputFiles(evt);\n        }\n        else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n            return getFsHandleFiles(evt);\n        }\n        return [];\n    });\n}\nfunction isDataTransfer(value) {\n    return isObject(value);\n}\nfunction isChangeEvt(value) {\n    return isObject(value) && isObject(value.target);\n}\nfunction isObject(v) {\n    return typeof v === 'object' && v !== null;\n}\nfunction getInputFiles(evt) {\n    return fromList(evt.target.files).map(file => toFileWithPath(file));\n}\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nfunction getFsHandleFiles(handles) {\n    return __awaiter(this, void 0, void 0, function* () {\n        const files = yield Promise.all(handles.map(h => h.getFile()));\n        return files.map(file => toFileWithPath(file));\n    });\n}\nfunction getDataTransferFiles(dt, type) {\n    return __awaiter(this, void 0, void 0, function* () {\n        // IE11 does not support dataTransfer.items\n        // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n        if (dt.items) {\n            const items = fromList(dt.items)\n                .filter(item => item.kind === 'file');\n            // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n            // only 'dragstart' and 'drop' has access to the data (source node)\n            if (type !== 'drop') {\n                return items;\n            }\n            const files = yield Promise.all(items.map(toFilePromises));\n            return noIgnoredFiles(flatten(files));\n        }\n        return noIgnoredFiles(fromList(dt.files)\n            .map(file => toFileWithPath(file)));\n    });\n}\nfunction noIgnoredFiles(files) {\n    return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items) {\n    if (items === null) {\n        return [];\n    }\n    const files = [];\n    // tslint:disable: prefer-for-of\n    for (let i = 0; i < items.length; i++) {\n        const file = items[i];\n        files.push(file);\n    }\n    return files;\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item) {\n    if (typeof item.webkitGetAsEntry !== 'function') {\n        return fromDataTransferItem(item);\n    }\n    const entry = item.webkitGetAsEntry();\n    // Safari supports dropping an image node from a different window and can be retrieved using\n    // the DataTransferItem.getAsFile() API\n    // NOTE: FileSystemEntry.file() throws if trying to get the file\n    if (entry && entry.isDirectory) {\n        return fromDirEntry(entry);\n    }\n    return fromDataTransferItem(item, entry);\n}\nfunction flatten(items) {\n    return items.reduce((acc, files) => [\n        ...acc,\n        ...(Array.isArray(files) ? flatten(files) : [files])\n    ], []);\n}\nfunction fromDataTransferItem(item, entry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        var _a;\n        // Check if we're in a secure context; due to a bug in Chrome (as far as we know)\n        // the browser crashes when calling this API (yet to be confirmed as a consistent behaviour).\n        //\n        // See:\n        // - https://issues.chromium.org/issues/40186242\n        // - https://github.com/react-dropzone/react-dropzone/issues/1397\n        if (globalThis.isSecureContext && typeof item.getAsFileSystemHandle === 'function') {\n            const h = yield item.getAsFileSystemHandle();\n            if (h === null) {\n                throw new Error(`${item} is not a File`);\n            }\n            // It seems that the handle can be `undefined` (see https://github.com/react-dropzone/file-selector/issues/120),\n            // so we check if it isn't; if it is, the code path continues to the next API (`getAsFile`).\n            if (h !== undefined) {\n                const file = yield h.getFile();\n                file.handle = h;\n                return toFileWithPath(file);\n            }\n        }\n        const file = item.getAsFile();\n        if (!file) {\n            throw new Error(`${item} is not a File`);\n        }\n        const fwp = toFileWithPath(file, (_a = entry === null || entry === void 0 ? void 0 : entry.fullPath) !== null && _a !== void 0 ? _a : undefined);\n        return fwp;\n    });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nfunction fromEntry(entry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n    });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry) {\n    const reader = entry.createReader();\n    return new Promise((resolve, reject) => {\n        const entries = [];\n        function readEntries() {\n            // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n            // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n            reader.readEntries((batch) => __awaiter(this, void 0, void 0, function* () {\n                if (!batch.length) {\n                    // Done reading directory\n                    try {\n                        const files = yield Promise.all(entries);\n                        resolve(files);\n                    }\n                    catch (err) {\n                        reject(err);\n                    }\n                }\n                else {\n                    const items = Promise.all(batch.map(fromEntry));\n                    entries.push(items);\n                    // Continue reading\n                    readEntries();\n                }\n            }), (err) => {\n                reject(err);\n            });\n        }\n        readEntries();\n    });\n}\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nfunction fromFileEntry(entry) {\n    return __awaiter(this, void 0, void 0, function* () {\n        return new Promise((resolve, reject) => {\n            entry.file((file) => {\n                const fwp = toFileWithPath(file, entry.fullPath);\n                resolve(fwp);\n            }, (err) => {\n                reject(err);\n            });\n        });\n    });\n}\n//# sourceMappingURL=file-selector.js.map","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n  if (file && acceptedFiles) {\n    var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n\n    if (acceptedFilesArray.length === 0) {\n      return true;\n    }\n\n    var fileName = file.name || '';\n    var mimeType = (file.type || '').toLowerCase();\n    var baseMimeType = mimeType.replace(/\\/.*$/, '');\n    return acceptedFilesArray.some(function (type) {\n      var validType = type.trim().toLowerCase();\n\n      if (validType.charAt(0) === '.') {\n        return fileName.toLowerCase().endsWith(validType);\n      } else if (validType.endsWith('/*')) {\n        // This is something like a image/* mime type\n        return baseMimeType === validType.replace(/\\/.*$/, '');\n      }\n\n      return mimeType === validType;\n    });\n  }\n\n  return true;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _accepts from \"attr-accept\";\nvar accepts = typeof _accepts === \"function\" ? _accepts : _accepts.default; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n  FileInvalidType: FILE_INVALID_TYPE,\n  FileTooLarge: FILE_TOO_LARGE,\n  FileTooSmall: FILE_TOO_SMALL,\n  TooManyFiles: TOO_MANY_FILES\n};\n/**\n *\n * @param {string} accept\n */\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr() {\n  var accept = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n  var acceptArr = accept.split(\",\");\n  var msg = acceptArr.length > 1 ? \"one of \".concat(acceptArr.join(\", \")) : acceptArr[0];\n  return {\n    code: FILE_INVALID_TYPE,\n    message: \"File type must be \".concat(msg)\n  };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n  return {\n    code: FILE_TOO_LARGE,\n    message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n  };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n  return {\n    code: FILE_TOO_SMALL,\n    message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n  };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n  code: TOO_MANY_FILES,\n  message: \"Too many files\"\n};\n/**\n * Check if file is accepted.\n *\n * Firefox versions prior to 53 return a bogus MIME type for every file drag,\n * so dragovers with that MIME type will always be accepted.\n *\n * @param {File} file\n * @param {string} accept\n * @returns\n */\n\nexport function fileAccepted(file, accept) {\n  var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n  return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n  if (isDefined(file.size)) {\n    if (isDefined(minSize) && isDefined(maxSize)) {\n      if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n      if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n    } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n  }\n\n  return [true, null];\n}\n\nfunction isDefined(value) {\n  return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n  var files = _ref.files,\n      accept = _ref.accept,\n      minSize = _ref.minSize,\n      maxSize = _ref.maxSize,\n      multiple = _ref.multiple,\n      maxFiles = _ref.maxFiles,\n      validator = _ref.validator;\n\n  if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n    return false;\n  }\n\n  return files.every(function (file) {\n    var _fileAccepted = fileAccepted(file, accept),\n        _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n        accepted = _fileAccepted2[0];\n\n    var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n        _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n        sizeMatch = _fileMatchSize2[0];\n\n    var customErrors = validator ? validator(file) : null;\n    return accepted && sizeMatch && !customErrors;\n  });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n  if (typeof event.isPropagationStopped === \"function\") {\n    return event.isPropagationStopped();\n  } else if (typeof event.cancelBubble !== \"undefined\") {\n    return event.cancelBubble;\n  }\n\n  return false;\n}\nexport function isEvtWithFiles(event) {\n  if (!event.dataTransfer) {\n    return !!event.target && !!event.target.files;\n  } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n  // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n  return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n    return type === \"Files\" || type === \"application/x-moz-file\";\n  });\n}\nexport function isKindFile(item) {\n  return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n  event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n  return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n  return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n  var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n  return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n  for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n    fns[_key] = arguments[_key];\n  }\n\n  return function (event) {\n    for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n      args[_key2 - 1] = arguments[_key2];\n    }\n\n    return fns.some(function (fn) {\n      if (!isPropagationStopped(event) && fn) {\n        fn.apply(void 0, [event].concat(args));\n      }\n\n      return isPropagationStopped(event);\n    });\n  };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n  return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n  if (isDefined(accept)) {\n    var acceptForPicker = Object.entries(accept).filter(function (_ref2) {\n      var _ref3 = _slicedToArray(_ref2, 2),\n          mimeType = _ref3[0],\n          ext = _ref3[1];\n\n      var ok = true;\n\n      if (!isMIMEType(mimeType)) {\n        console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n        ok = false;\n      }\n\n      if (!Array.isArray(ext) || !ext.every(isExt)) {\n        console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n        ok = false;\n      }\n\n      return ok;\n    }).reduce(function (agg, _ref4) {\n      var _ref5 = _slicedToArray(_ref4, 2),\n          mimeType = _ref5[0],\n          ext = _ref5[1];\n\n      return _objectSpread(_objectSpread({}, agg), {}, _defineProperty({}, mimeType, ext));\n    }, {});\n    return [{\n      // description is required due to https://crbug.com/1264708\n      description: \"Files\",\n      accept: acceptForPicker\n    }];\n  }\n\n  return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n  if (isDefined(accept)) {\n    return Object.entries(accept).reduce(function (a, _ref6) {\n      var _ref7 = _slicedToArray(_ref6, 2),\n          mimeType = _ref7[0],\n          ext = _ref7[1];\n\n      return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n    }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n    .filter(function (v) {\n      return isMIMEType(v) || isExt(v);\n    }).join(\",\");\n  }\n\n  return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n  return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n  return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n  return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || v === \"application/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n  return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.<string, string[]>} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n    _excluded2 = [\"open\"],\n    _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n    _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index.js\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * <Dropzone>\n *   {({getRootProps, getInputProps}) => (\n *     <div {...getRootProps()}>\n *       <input {...getInputProps()} />\n *       <p>Drag 'n' drop some files here, or click to select files</p>\n *     </div>\n *   )}\n * </Dropzone>\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n  var children = _ref.children,\n      params = _objectWithoutProperties(_ref, _excluded);\n\n  var _useDropzone = useDropzone(params),\n      open = _useDropzone.open,\n      props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n  useImperativeHandle(ref, function () {\n    return {\n      open: open\n    };\n  }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n  return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n    open: open\n  })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n  disabled: false,\n  getFilesFromEvent: fromEvent,\n  maxSize: Infinity,\n  minSize: 0,\n  multiple: true,\n  maxFiles: 0,\n  preventDropOnDocument: true,\n  noClick: false,\n  noKeyboard: false,\n  noDrag: false,\n  noDragEventsBubbling: false,\n  validator: null,\n  useFsAccessApi: false,\n  autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n  /**\n   * Render function that exposes the dropzone state and prop getter fns\n   *\n   * @param {object} params\n   * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n   * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n   * @param {Function} params.open Open the native file selection dialog\n   * @param {boolean} params.isFocused Dropzone area is in focus\n   * @param {boolean} params.isFileDialogActive File dialog is opened\n   * @param {boolean} params.isDragActive Active drag is in progress\n   * @param {boolean} params.isDragAccept Dragged files are accepted\n   * @param {boolean} params.isDragReject Some dragged files are rejected\n   * @param {File[]} params.acceptedFiles Accepted files\n   * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n   */\n  children: PropTypes.func,\n\n  /**\n   * Set accepted file types.\n   * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n   * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n   * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n   * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n   */\n  accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n  /**\n   * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n   */\n  multiple: PropTypes.bool,\n\n  /**\n   * If false, allow dropped items to take over the current browser window\n   */\n  preventDropOnDocument: PropTypes.bool,\n\n  /**\n   * If true, disables click to open the native file selection dialog\n   */\n  noClick: PropTypes.bool,\n\n  /**\n   * If true, disables SPACE/ENTER to open the native file selection dialog.\n   * Note that it also stops tracking the focus state.\n   */\n  noKeyboard: PropTypes.bool,\n\n  /**\n   * If true, disables drag 'n' drop\n   */\n  noDrag: PropTypes.bool,\n\n  /**\n   * If true, stops drag event propagation to parents\n   */\n  noDragEventsBubbling: PropTypes.bool,\n\n  /**\n   * Minimum file size (in bytes)\n   */\n  minSize: PropTypes.number,\n\n  /**\n   * Maximum file size (in bytes)\n   */\n  maxSize: PropTypes.number,\n\n  /**\n   * Maximum accepted number of files\n   * The default value is 0 which means there is no limitation to how many files are accepted.\n   */\n  maxFiles: PropTypes.number,\n\n  /**\n   * Enable/disable the dropzone\n   */\n  disabled: PropTypes.bool,\n\n  /**\n   * Use this to provide a custom file aggregator\n   *\n   * @param {(DragEvent|Event|Array<FileSystemFileHandle>)} event A drag event or input change event (if files were selected via the file dialog)\n   */\n  getFilesFromEvent: PropTypes.func,\n\n  /**\n   * Cb for when closing the file dialog with no selection\n   */\n  onFileDialogCancel: PropTypes.func,\n\n  /**\n   * Cb for when opening the file dialog\n   */\n  onFileDialogOpen: PropTypes.func,\n\n  /**\n   * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n   * to open the file picker instead of using an `<input type=\"file\">` click event.\n   */\n  useFsAccessApi: PropTypes.bool,\n\n  /**\n   * Set to true to focus the root element on render\n   */\n  autoFocus: PropTypes.bool,\n\n  /**\n   * Cb for when the `dragenter` event occurs.\n   *\n   * @param {DragEvent} event\n   */\n  onDragEnter: PropTypes.func,\n\n  /**\n   * Cb for when the `dragleave` event occurs\n   *\n   * @param {DragEvent} event\n   */\n  onDragLeave: PropTypes.func,\n\n  /**\n   * Cb for when the `dragover` event occurs\n   *\n   * @param {DragEvent} event\n   */\n  onDragOver: PropTypes.func,\n\n  /**\n   * Cb for when the `drop` event occurs.\n   * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n   *\n   * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n   * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n   * If `multiple` is set to false and additional files are dropped,\n   * all files besides the first will be rejected.\n   * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n   *\n   * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n   * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n   *\n   * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n   * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n   *\n   * ```js\n   * function onDrop(acceptedFiles) {\n   *   const req = request.post('/upload')\n   *   acceptedFiles.forEach(file => {\n   *     req.attach(file.name, file)\n   *   })\n   *   req.end(callback)\n   * }\n   * ```\n   *\n   * @param {File[]} acceptedFiles\n   * @param {FileRejection[]} fileRejections\n   * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n   */\n  onDrop: PropTypes.func,\n\n  /**\n   * Cb for when the `drop` event occurs.\n   * Note that if no files are accepted, this callback is not invoked.\n   *\n   * @param {File[]} files\n   * @param {(DragEvent|Event)} event\n   */\n  onDropAccepted: PropTypes.func,\n\n  /**\n   * Cb for when the `drop` event occurs.\n   * Note that if no files are rejected, this callback is not invoked.\n   *\n   * @param {FileRejection[]} fileRejections\n   * @param {(DragEvent|Event)} event\n   */\n  onDropRejected: PropTypes.func,\n\n  /**\n   * Cb for when there's some error from any of the promises.\n   *\n   * @param {Error} error\n   */\n  onError: PropTypes.func,\n\n  /**\n   * Custom validation function. It must return null if there's no errors.\n   * @param {File} file\n   * @returns {FileError|FileError[]|null}\n   */\n  validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event|Array<FileSystemFileHandle>)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise<File[]>)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n  isFocused: false,\n  isFileDialogActive: false,\n  isDragActive: false,\n  isDragAccept: false,\n  isDragReject: false,\n  acceptedFiles: [],\n  fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n *   const {getRootProps, getInputProps} = useDropzone({\n *     onDrop: acceptedFiles => {\n *       // do something with the File objects, e.g. upload to some server\n *     }\n *   });\n *   return (\n *     <div {...getRootProps()}>\n *       <input {...getInputProps()} />\n *       <p>Drag and drop some files here, or click to select files</p>\n *     </div>\n *   )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `<input type=\"file\">` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n *   const req = request.post('/upload')\n *   acceptedFiles.forEach(file => {\n *     req.attach(file.name, file)\n *   })\n *   req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n  var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n  var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n      accept = _defaultProps$props.accept,\n      disabled = _defaultProps$props.disabled,\n      getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n      maxSize = _defaultProps$props.maxSize,\n      minSize = _defaultProps$props.minSize,\n      multiple = _defaultProps$props.multiple,\n      maxFiles = _defaultProps$props.maxFiles,\n      onDragEnter = _defaultProps$props.onDragEnter,\n      onDragLeave = _defaultProps$props.onDragLeave,\n      onDragOver = _defaultProps$props.onDragOver,\n      onDrop = _defaultProps$props.onDrop,\n      onDropAccepted = _defaultProps$props.onDropAccepted,\n      onDropRejected = _defaultProps$props.onDropRejected,\n      onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n      onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n      useFsAccessApi = _defaultProps$props.useFsAccessApi,\n      autoFocus = _defaultProps$props.autoFocus,\n      preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n      noClick = _defaultProps$props.noClick,\n      noKeyboard = _defaultProps$props.noKeyboard,\n      noDrag = _defaultProps$props.noDrag,\n      noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n      onError = _defaultProps$props.onError,\n      validator = _defaultProps$props.validator;\n\n  var acceptAttr = useMemo(function () {\n    return acceptPropAsAcceptAttr(accept);\n  }, [accept]);\n  var pickerTypes = useMemo(function () {\n    return pickerOptionsFromAccept(accept);\n  }, [accept]);\n  var onFileDialogOpenCb = useMemo(function () {\n    return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n  }, [onFileDialogOpen]);\n  var onFileDialogCancelCb = useMemo(function () {\n    return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n  }, [onFileDialogCancel]);\n  /**\n   * @constant\n   * @type {React.MutableRefObject<HTMLElement>}\n   */\n\n  var rootRef = useRef(null);\n  var inputRef = useRef(null);\n\n  var _useReducer = useReducer(reducer, initialState),\n      _useReducer2 = _slicedToArray(_useReducer, 2),\n      state = _useReducer2[0],\n      dispatch = _useReducer2[1];\n\n  var isFocused = state.isFocused,\n      isFileDialogActive = state.isFileDialogActive;\n  var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n  var onWindowFocus = function onWindowFocus() {\n    // Execute the timeout only if the file dialog is opened in the browser\n    if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n      setTimeout(function () {\n        if (inputRef.current) {\n          var files = inputRef.current.files;\n\n          if (!files.length) {\n            dispatch({\n              type: \"closeDialog\"\n            });\n            onFileDialogCancelCb();\n          }\n        }\n      }, 300);\n    }\n  };\n\n  useEffect(function () {\n    window.addEventListener(\"focus\", onWindowFocus, false);\n    return function () {\n      window.removeEventListener(\"focus\", onWindowFocus, false);\n    };\n  }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n  var dragTargetsRef = useRef([]);\n\n  var onDocumentDrop = function onDocumentDrop(event) {\n    if (rootRef.current && rootRef.current.contains(event.target)) {\n      // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n      return;\n    }\n\n    event.preventDefault();\n    dragTargetsRef.current = [];\n  };\n\n  useEffect(function () {\n    if (preventDropOnDocument) {\n      document.addEventListener(\"dragover\", onDocumentDragOver, false);\n      document.addEventListener(\"drop\", onDocumentDrop, false);\n    }\n\n    return function () {\n      if (preventDropOnDocument) {\n        document.removeEventListener(\"dragover\", onDocumentDragOver);\n        document.removeEventListener(\"drop\", onDocumentDrop);\n      }\n    };\n  }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n  useEffect(function () {\n    if (!disabled && autoFocus && rootRef.current) {\n      rootRef.current.focus();\n    }\n\n    return function () {};\n  }, [rootRef, autoFocus, disabled]);\n  var onErrCb = useCallback(function (e) {\n    if (onError) {\n      onError(e);\n    } else {\n      // Let the user know something's gone wrong if they haven't provided the onError cb.\n      console.error(e);\n    }\n  }, [onError]);\n  var onDragEnterCb = useCallback(function (event) {\n    event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n    event.persist();\n    stopPropagation(event);\n    dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n    if (isEvtWithFiles(event)) {\n      Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n        if (isPropagationStopped(event) && !noDragEventsBubbling) {\n          return;\n        }\n\n        var fileCount = files.length;\n        var isDragAccept = fileCount > 0 && allFilesAccepted({\n          files: files,\n          accept: acceptAttr,\n          minSize: minSize,\n          maxSize: maxSize,\n          multiple: multiple,\n          maxFiles: maxFiles,\n          validator: validator\n        });\n        var isDragReject = fileCount > 0 && !isDragAccept;\n        dispatch({\n          isDragAccept: isDragAccept,\n          isDragReject: isDragReject,\n          isDragActive: true,\n          type: \"setDraggedFiles\"\n        });\n\n        if (onDragEnter) {\n          onDragEnter(event);\n        }\n      }).catch(function (e) {\n        return onErrCb(e);\n      });\n    }\n  }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n  var onDragOverCb = useCallback(function (event) {\n    event.preventDefault();\n    event.persist();\n    stopPropagation(event);\n    var hasFiles = isEvtWithFiles(event);\n\n    if (hasFiles && event.dataTransfer) {\n      try {\n        event.dataTransfer.dropEffect = \"copy\";\n      } catch (_unused) {}\n      /* eslint-disable-line no-empty */\n\n    }\n\n    if (hasFiles && onDragOver) {\n      onDragOver(event);\n    }\n\n    return false;\n  }, [onDragOver, noDragEventsBubbling]);\n  var onDragLeaveCb = useCallback(function (event) {\n    event.preventDefault();\n    event.persist();\n    stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n    var targets = dragTargetsRef.current.filter(function (target) {\n      return rootRef.current && rootRef.current.contains(target);\n    }); // Make sure to remove a target present multiple times only once\n    // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n    var targetIdx = targets.indexOf(event.target);\n\n    if (targetIdx !== -1) {\n      targets.splice(targetIdx, 1);\n    }\n\n    dragTargetsRef.current = targets;\n\n    if (targets.length > 0) {\n      return;\n    }\n\n    dispatch({\n      type: \"setDraggedFiles\",\n      isDragActive: false,\n      isDragAccept: false,\n      isDragReject: false\n    });\n\n    if (isEvtWithFiles(event) && onDragLeave) {\n      onDragLeave(event);\n    }\n  }, [rootRef, onDragLeave, noDragEventsBubbling]);\n  var setFiles = useCallback(function (files, event) {\n    var acceptedFiles = [];\n    var fileRejections = [];\n    files.forEach(function (file) {\n      var _fileAccepted = fileAccepted(file, acceptAttr),\n          _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n          accepted = _fileAccepted2[0],\n          acceptError = _fileAccepted2[1];\n\n      var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n          _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n          sizeMatch = _fileMatchSize2[0],\n          sizeError = _fileMatchSize2[1];\n\n      var customErrors = validator ? validator(file) : null;\n\n      if (accepted && sizeMatch && !customErrors) {\n        acceptedFiles.push(file);\n      } else {\n        var errors = [acceptError, sizeError];\n\n        if (customErrors) {\n          errors = errors.concat(customErrors);\n        }\n\n        fileRejections.push({\n          file: file,\n          errors: errors.filter(function (e) {\n            return e;\n          })\n        });\n      }\n    });\n\n    if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n      // Reject everything and empty accepted files\n      acceptedFiles.forEach(function (file) {\n        fileRejections.push({\n          file: file,\n          errors: [TOO_MANY_FILES_REJECTION]\n        });\n      });\n      acceptedFiles.splice(0);\n    }\n\n    dispatch({\n      acceptedFiles: acceptedFiles,\n      fileRejections: fileRejections,\n      isDragReject: fileRejections.length > 0,\n      type: \"setFiles\"\n    });\n\n    if (onDrop) {\n      onDrop(acceptedFiles, fileRejections, event);\n    }\n\n    if (fileRejections.length > 0 && onDropRejected) {\n      onDropRejected(fileRejections, event);\n    }\n\n    if (acceptedFiles.length > 0 && onDropAccepted) {\n      onDropAccepted(acceptedFiles, event);\n    }\n  }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n  var onDropCb = useCallback(function (event) {\n    event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n    event.persist();\n    stopPropagation(event);\n    dragTargetsRef.current = [];\n\n    if (isEvtWithFiles(event)) {\n      Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n        if (isPropagationStopped(event) && !noDragEventsBubbling) {\n          return;\n        }\n\n        setFiles(files, event);\n      }).catch(function (e) {\n        return onErrCb(e);\n      });\n    }\n\n    dispatch({\n      type: \"reset\"\n    });\n  }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n  var openFileDialog = useCallback(function () {\n    // No point to use FS access APIs if context is not secure\n    // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n    if (fsAccessApiWorksRef.current) {\n      dispatch({\n        type: \"openDialog\"\n      });\n      onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n      var opts = {\n        multiple: multiple,\n        types: pickerTypes\n      };\n      window.showOpenFilePicker(opts).then(function (handles) {\n        return getFilesFromEvent(handles);\n      }).then(function (files) {\n        setFiles(files, null);\n        dispatch({\n          type: \"closeDialog\"\n        });\n      }).catch(function (e) {\n        // AbortError means the user canceled\n        if (isAbort(e)) {\n          onFileDialogCancelCb(e);\n          dispatch({\n            type: \"closeDialog\"\n          });\n        } else if (isSecurityError(e)) {\n          fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n          // Try using the input\n\n          if (inputRef.current) {\n            inputRef.current.value = null;\n            inputRef.current.click();\n          } else {\n            onErrCb(new Error(\"Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided.\"));\n          }\n        } else {\n          onErrCb(e);\n        }\n      });\n      return;\n    }\n\n    if (inputRef.current) {\n      dispatch({\n        type: \"openDialog\"\n      });\n      onFileDialogOpenCb();\n      inputRef.current.value = null;\n      inputRef.current.click();\n    }\n  }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n  var onKeyDownCb = useCallback(function (event) {\n    // Ignore keyboard events bubbling up the DOM tree\n    if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n      return;\n    }\n\n    if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n      event.preventDefault();\n      openFileDialog();\n    }\n  }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n  var onFocusCb = useCallback(function () {\n    dispatch({\n      type: \"focus\"\n    });\n  }, []);\n  var onBlurCb = useCallback(function () {\n    dispatch({\n      type: \"blur\"\n    });\n  }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n  var onClickCb = useCallback(function () {\n    if (noClick) {\n      return;\n    } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n    // to ensure React can handle state changes\n    // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n    if (isIeOrEdge()) {\n      setTimeout(openFileDialog, 0);\n    } else {\n      openFileDialog();\n    }\n  }, [noClick, openFileDialog]);\n\n  var composeHandler = function composeHandler(fn) {\n    return disabled ? null : fn;\n  };\n\n  var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n    return noKeyboard ? null : composeHandler(fn);\n  };\n\n  var composeDragHandler = function composeDragHandler(fn) {\n    return noDrag ? null : composeHandler(fn);\n  };\n\n  var stopPropagation = function stopPropagation(event) {\n    if (noDragEventsBubbling) {\n      event.stopPropagation();\n    }\n  };\n\n  var getRootProps = useMemo(function () {\n    return function () {\n      var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref2$refKey = _ref2.refKey,\n          refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n          role = _ref2.role,\n          onKeyDown = _ref2.onKeyDown,\n          onFocus = _ref2.onFocus,\n          onBlur = _ref2.onBlur,\n          onClick = _ref2.onClick,\n          onDragEnter = _ref2.onDragEnter,\n          onDragOver = _ref2.onDragOver,\n          onDragLeave = _ref2.onDragLeave,\n          onDrop = _ref2.onDrop,\n          rest = _objectWithoutProperties(_ref2, _excluded3);\n\n      return _objectSpread(_objectSpread(_defineProperty({\n        onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n        onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n        onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n        onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n        onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n        onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n        onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n        onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n        role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n      }, refKey, rootRef), !disabled && !noKeyboard ? {\n        tabIndex: 0\n      } : {}), rest);\n    };\n  }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n  var onInputElementClick = useCallback(function (event) {\n    event.stopPropagation();\n  }, []);\n  var getInputProps = useMemo(function () {\n    return function () {\n      var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n          _ref3$refKey = _ref3.refKey,\n          refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n          onChange = _ref3.onChange,\n          onClick = _ref3.onClick,\n          rest = _objectWithoutProperties(_ref3, _excluded4);\n\n      var inputProps = _defineProperty({\n        accept: acceptAttr,\n        multiple: multiple,\n        type: \"file\",\n        style: {\n          border: 0,\n          clip: \"rect(0, 0, 0, 0)\",\n          clipPath: \"inset(50%)\",\n          height: \"1px\",\n          margin: \"0 -1px -1px 0\",\n          overflow: \"hidden\",\n          padding: 0,\n          position: \"absolute\",\n          width: \"1px\",\n          whiteSpace: \"nowrap\"\n        },\n        onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n        onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n        tabIndex: -1\n      }, refKey, inputRef);\n\n      return _objectSpread(_objectSpread({}, inputProps), rest);\n    };\n  }, [inputRef, accept, multiple, onDropCb, disabled]);\n  return _objectSpread(_objectSpread({}, state), {}, {\n    isFocused: isFocused && !disabled,\n    getRootProps: getRootProps,\n    getInputProps: getInputProps,\n    rootRef: rootRef,\n    inputRef: inputRef,\n    open: composeHandler(openFileDialog)\n  });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n  /* istanbul ignore next */\n  switch (action.type) {\n    case \"focus\":\n      return _objectSpread(_objectSpread({}, state), {}, {\n        isFocused: true\n      });\n\n    case \"blur\":\n      return _objectSpread(_objectSpread({}, state), {}, {\n        isFocused: false\n      });\n\n    case \"openDialog\":\n      return _objectSpread(_objectSpread({}, initialState), {}, {\n        isFileDialogActive: true\n      });\n\n    case \"closeDialog\":\n      return _objectSpread(_objectSpread({}, state), {}, {\n        isFileDialogActive: false\n      });\n\n    case \"setDraggedFiles\":\n      return _objectSpread(_objectSpread({}, state), {}, {\n        isDragActive: action.isDragActive,\n        isDragAccept: action.isDragAccept,\n        isDragReject: action.isDragReject\n      });\n\n    case \"setFiles\":\n      return _objectSpread(_objectSpread({}, state), {}, {\n        acceptedFiles: action.acceptedFiles,\n        fileRejections: action.fileRejections,\n        isDragReject: action.isDragReject\n      });\n\n    case \"reset\":\n      return _objectSpread({}, initialState);\n\n    default:\n      return state;\n  }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils/index.js\";","import { useControllableState } from \"@/hooks/use-controllable-state\";\nimport { toast } from \"@/hooks/use-toast\";\nimport { cn, formatBytes } from \"@/lib/utils\";\nimport React from \"react\";\nimport Dropzone, { type FileError, type DropzoneProps, type FileRejection } from \"react-dropzone\";\n\nimport { RotateCwIcon, UploadIcon, XIcon } from \"lucide-react\";\n\nimport { Button } from \"@/components/ui/button\";\nimport { Progress } from \"@/components/ui/progress\";\nimport { ScrollArea } from \"@/components/ui/scroll-area\";\n\nexport type FileErrorMessage = {\n\tfile: File;\n\tmessage: string;\n};\n\ninterface FileUploaderProps extends React.HTMLAttributes<HTMLDivElement> {\n\t/**\n\t * Valor atual do uploader.\n\t * @type File[]\n\t * @default undefined\n\t * @example value={files}\n\t */\n\tvalue?: File[];\n\n\t/**\n\t * Função chamada quando o valor muda.\n\t * @type (files: File[]) => void\n\t * @default undefined\n\t * @example onValueChange={(files) => setFiles(files)}\n\t */\n\tonValueChange?: (files: File[]) => void;\n\n\t/**\n\t * Função chamada ao realizar o upload dos arquivos.\n\t * @type (files: File[]) => Promise<void>\n\t * @default undefined\n\t * @example onUpload={(files) => uploadFiles(files)}\n\t */\n\tonUpload?: (files: File[]) => Promise<void>;\n\n\t/**\n\t * Progresso do upload de cada arquivo.\n\t * @type Record<string, number> | undefined\n\t * @default undefined\n\t * @example progresses={{ \"file1.png\": 50 }}\n\t */\n\tprogresses?: Record<string, number>;\n\n\t/**\n\t * Tipos de arquivos aceitos pelo uploader.\n\t * @type { [key: string]: string[] }\n\t * @default\n\t * ```ts\n\t * { \"image/*\": [] }\n\t * ```\n\t * @example accept={[\"image/png\", \"image/jpeg\"]}\n\t */\n\taccept?: DropzoneProps[\"accept\"];\n\n\t/**\n\t * Tamanho máximo permitido para cada arquivo (em bytes).\n\t * @type number | undefined\n\t * @default 1024 * 1024 * 2 // 2MB\n\t * @example maxSize={1024 * 1024 * 2} // 2MB\n\t */\n\tmaxSize?: DropzoneProps[\"maxSize\"];\n\n\t/**\n\t * Quantidade máxima de arquivos permitidos.\n\t * @type number | undefined\n\t * @default 1\n\t * @example maxFileCount={4}\n\t */\n\tmaxFileCount?: DropzoneProps[\"maxFiles\"];\n\n\t/**\n\t * Permite selecionar múltiplos arquivos.\n\t * @type boolean\n\t * @default false\n\t * @example multiple\n\t */\n\tmultiple?: boolean;\n\n\t/**\n\t * Desabilita o uploader.\n\t * @type boolean\n\t * @default false\n\t * @example disabled\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Função para personalizar a mensagem de erro ou executar ações quando arquivos forem rejeitados.\n\t * Pode retornar uma string para exibição ou void para efeitos colaterais (ex: toast).\n\t * @type ((errors: readonly FileError[]) => string | void) | undefined\n\t * @default undefined\n\t * @example onGetErrorMessage={(errors) => \"Arquivo inválido\"}\n\t * @example onGetErrorMessage={(errors) => toast({ title: \"Erro\", variant: \"destructive\" })}\n\t */\n\tonGetErrorMessage?: (errors: readonly FileError[]) => string | void;\n\n\t/**\n\t * Função chamada quando arquivos válidos são selecionados.\n\t * Deve retornar os arquivos que serão usados no estado.\n\t * @type (acceptedFiles: File[]) => File[]\n\t */\n\tonValidFile: (acceptedFiles: File[]) => File[];\n\n\t/**\n\t * Título exibido no componente.\n\t * @type string\n\t */\n\ttitle: string;\n\n\t/**\n\t * Descrição opcional exibida abaixo do título.\n\t * @type string | undefined\n\t */\n\tdescription?: string;\n\n\t/**\n\t * Exibe visualização dos arquivos selecionados (quando aplicável).\n\t * @type boolean | undefined\n\t * @default false\n\t */\n\tpreviewFiles?: boolean;\n\n\t/**\n\t * Indica se o uploader está em estado de carregamento.\n\t * @type boolean | undefined\n\t * @default false\n\t */\n\tisLoading?: boolean;\n\n\t/**\n\t * Lista de erros de arquivo para exibição personalizada.\n\t * @type FileErrorMessage[]\n\t */\n\tfileErrors: FileErrorMessage[];\n\n\t/**\n\t * Função para atualizar a lista de erros de arquivo.\n\t * @type React.Dispatch<React.SetStateAction<FileErrorMessage[]>>\n\t */\n\tsetFileErrors: React.Dispatch<React.SetStateAction<FileErrorMessage[]>>;\n}\nexport function FileUploader(props: FileUploaderProps) {\n\tconst {\n\t\tvalue: valueProp,\n\t\tonValueChange,\n\t\tonUpload,\n\t\tprogresses,\n\t\taccept = {\n\t\t\t\"image/*\": [],\n\t\t},\n\t\tmaxSize = 2 * 1024 * 1024,\n\t\tmaxFileCount = 1,\n\t\tmultiple = false,\n\t\tdisabled = false,\n\t\tclassName,\n\t\tonGetErrorMessage,\n\t\tonValidFile,\n\t\ttitle,\n\t\tfileErrors,\n\t\tsetFileErrors,\n\t\tdescription,\n\t\tpreviewFiles = true,\n\t\tisLoading = false,\n\t\tid,\n\t\t...dropzoneProps\n\t} = props;\n\n\tconst [files, setFiles] = useControllableState({\n\t\tprop: valueProp,\n\t\tonChange: onValueChange,\n\t});\n\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\tconst onDrop = React.useCallback(\n\t\t(acceptedFiles: File[], rejectedFiles: FileRejection[]) => {\n\t\t\tconst totalFilesCount = (files?.length ?? 0) + acceptedFiles.length;\n\t\t\tconst textErrorMaxFile = `Não é possível fazer upload com mais de ${maxFileCount} arquivos`;\n\n\t\t\tif (totalFilesCount > maxFileCount) {\n\t\t\t\ttoast({\n\t\t\t\t\tvariant: \"destructive\",\n\t\t\t\t\ttitle: textErrorMaxFile,\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst validFiles = onValidFile(acceptedFiles);\n\t\t\tconst updatedFiles = files ? [...files, ...validFiles] : validFiles;\n\t\t\tsetFiles(updatedFiles);\n\n\t\t\tif (rejectedFiles.length > 0) {\n\t\t\t\tfor (const { errors } of rejectedFiles) {\n\t\t\t\t\tif (onGetErrorMessage) {\n\t\t\t\t\t\tconst result = onGetErrorMessage(errors);\n\t\t\t\t\t\tif (typeof result === \"string\") {\n\t\t\t\t\t\t\ttoast({\n\t\t\t\t\t\t\t\ttitle: \"Erro ao enviar o arquivo.\",\n\t\t\t\t\t\t\t\tdescription: result,\n\t\t\t\t\t\t\t\tvariant: \"destructive\",\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttoast({\n\t\t\t\t\t\t\ttitle: \"Erro ao enviar o arquivo.\",\n\t\t\t\t\t\t\tdescription: \"Ocorreu um erro ao processar o arquivo.\",\n\t\t\t\t\t\t\tvariant: \"destructive\",\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (onUpload && updatedFiles.length > 0) {\n\t\t\t\t// Lógica de upload de arquivos, se necessário\n\t\t\t}\n\t\t},\n\t\t[files, maxFileCount, maxSize, onUpload, setFiles, onValidFile],\n\t);\n\tfunction onRemove(index: number) {\n\t\tif (!files) return;\n\n\t\tconst fileToRemove = files[index];\n\t\tconst newFiles = files.filter((_, i) => i !== index);\n\t\tsetFiles(newFiles);\n\t\tonValueChange?.(newFiles);\n\n\t\tsetFileErrors((prevErrors) =>\n\t\t\tprevErrors.filter((error) => error.file.name !== fileToRemove.name),\n\t\t);\n\t}\n\n\tconst isDisabled = disabled || (files?.length ?? 0) >= maxFileCount || isLoading;\n\n\treturn (\n\t\t<div className=\"relative flex flex-col gap-6 overflow-hidden p-2 sm:p-4\">\n\t\t\t<Dropzone\n\t\t\t\tonDrop={onDrop}\n\t\t\t\taccept={accept}\n\t\t\t\tmaxSize={maxSize}\n\t\t\t\tmaxFiles={maxFileCount}\n\t\t\t\tmultiple={maxFileCount > 1 || multiple}\n\t\t\t\tdisabled={isDisabled}\n\t\t\t>\n\t\t\t\t{({ getRootProps, getInputProps, isDragActive }) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\t{...getRootProps()}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"group border-muted-foreground/25 hover:bg-muted/25 relative grid h-52 w-full cursor-pointer place-items-center rounded-lg border-2 border-dashed px-5 py-2.5 text-center transition\",\n\t\t\t\t\t\t\t\"ring-offset-background focus-visible:ring-ring focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none\",\n\t\t\t\t\t\t\tisDragActive && \"border-muted-foreground/50\",\n\t\t\t\t\t\t\tisDisabled && \"pointer-events-none opacity-60\",\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{...dropzoneProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t<input id={id} {...getInputProps()} />\n\t\t\t\t\t\t{isDragActive ? (\n\t\t\t\t\t\t\t<div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n\t\t\t\t\t\t\t\t<div className=\"rounded-md border p-2.5\">\n\t\t\t\t\t\t\t\t\t<UploadIcon className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<p className=\"text-muted-foreground font-medium\">Solte os arquivos aqui</p>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<div className=\"flex flex-col items-center justify-center gap-4 sm:px-5\">\n\t\t\t\t\t\t\t\t<div className=\"rounded-md border p-2.5\">\n\t\t\t\t\t\t\t\t\t{isLoading ? (\n\t\t\t\t\t\t\t\t\t\t<RotateCwIcon className=\"size-4 animate-spin\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t<UploadIcon className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div className=\"flex flex-col gap-1\">\n\t\t\t\t\t\t\t\t\t<p className=\"text-lg font-bold md:text-xl\">\n\t\t\t\t\t\t\t\t\t\t{isLoading ? \"Carregando arquivo(s)...\" : title}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t\t<p className=\"text-foreground/70 text-sm md:text-base\">\n\t\t\t\t\t\t\t\t\t\t{description ? (\n\t\t\t\t\t\t\t\t\t\t\tdescription\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t\t\tFaça upload no máximo com\n\t\t\t\t\t\t\t\t\t\t\t\t{maxFileCount > 1\n\t\t\t\t\t\t\t\t\t\t\t\t\t? ` ${maxFileCount === Number.POSITIVE_INFINITY ? \"multiple\" : maxFileCount}\n                      arquivos (de até ${formatBytes(maxSize)})`\n\t\t\t\t\t\t\t\t\t\t\t\t\t: ` um arquivo com ${formatBytes(maxSize)}`}\n\t\t\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Dropzone>\n\t\t\t{previewFiles && files?.length ? (\n\t\t\t\t<ScrollArea className=\"h-fit w-full px-3\">\n\t\t\t\t\t<div className=\"flex max-h-48 flex-col gap-4\">\n\t\t\t\t\t\t{files?.map((file, index: number) => (\n\t\t\t\t\t\t\t<FileCard\n\t\t\t\t\t\t\t\tkey={`${index}_${file.name}`}\n\t\t\t\t\t\t\t\tfile={file}\n\t\t\t\t\t\t\t\tonRemove={() => onRemove(index)}\n\t\t\t\t\t\t\t\tprogress={progresses?.[file.name]}\n\t\t\t\t\t\t\t\terrorMessage={fileErrors.find((error) => error.file.name === file.name)?.message}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</ScrollArea>\n\t\t\t) : null}\n\t\t</div>\n\t);\n}\n\ninterface FileCardProps {\n\tfile: File;\n\tonRemove: () => void;\n\tprogress?: number;\n\terrorMessage?: string;\n}\n\nfunction FileCard({ file, progress, onRemove, errorMessage }: FileCardProps) {\n\treturn (\n\t\t<div className=\"relative flex items-center gap-2.5\">\n\t\t\t<div className=\"flex flex-1 gap-2.5\">\n\t\t\t\t<div className=\"flex w-full flex-col gap-2\">\n\t\t\t\t\t<div className=\"flex flex-col gap-px\">\n\t\t\t\t\t\t<p className=\"text-foreground/80 line-clamp-1 text-sm font-medium\">{file.name}</p>\n\t\t\t\t\t\t<p className=\"text-muted-foreground text-xs\">{formatBytes(file.size)}</p>\n\t\t\t\t\t\t{errorMessage && <p className=\"text-destructive text-xs\">{errorMessage}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t\t{progress ? <Progress value={progress} /> : null}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className=\"flex items-center gap-2\">\n\t\t\t\t<Button type=\"button\" variant=\"outline\" size=\"icon\" className=\"size-4\" onClick={onRemove}>\n\t\t\t\t\t<XIcon className=\"size-4\" aria-hidden=\"true\" />\n\t\t\t\t\t<span className=\"sr-only\">Remover arquivo</span>\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"names":["RotateCw","createLucideIcon","d","key","Upload","points","x1","x2","y1","y2","useCallbackRef","callback","callbackRef","useRef","useEffect","current","useMemo","args","useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","uncontrolledState","useState","value","prevValueRef","handleChange","useUncontrolledState","isControlled","undefined","setValue","useCallback","nextValue","count","toastTimeouts","Map","addToRemoveQueue","toastId","has","timeout","setTimeout","delete","dispatch","type","set","reducer","state","action","toasts","toast","slice","map","t","id","open","filter","listeners","memoryState","listener","props","Number","MAX_SAFE_INTEGER","toString","dismiss","onOpenChange","update","process","env","NODE_ENV","reactIsModule","exports","b","Symbol","for","c","e","f","g","h","k","l","m","n","p","q","r","v","w","x","y","z","a","u","$$typeof","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextConsumer","Element","ForwardRef","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","require$$0","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","object","$$typeofType","ContextProvider","Memo","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","isPortal","getOwnPropertySymbols","Object","hasOwnProperty","prototype","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","String","getOwnPropertyNames","test2","i","fromCharCode","join","test3","split","forEach","letter","keys","err","shouldUseNative","target","source","from","symbols","to","val","TypeError","toObject","s","arguments","length","call","ReactPropTypesSecret_1","Function","bind","printWarning","ReactPropTypesSecret","loggedTypeFailures","require$$1","text","message","Error","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","error","name","ex","stack","resetWarningCache","checkPropTypes_1","ReactIs","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","number","string","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","Array","isArray","getPropType","element","elementType","instanceOf","expectedClass","expectedClassName","constructor","node","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","JSON","stringify","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","push","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","this","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","console","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","step","entries","next","done","entry","RegExp","isSymbol","Date","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","COMMON_MIME_TYPES","toFileWithPath","file","path","lastIndexOf","ext","pop","toLowerCase","get","defineProperty","writable","configurable","enumerable","withMimeType","webkitRelativePath","setObjProp","FILES_TO_IGNORE","isObject","noIgnoredFiles","files","indexOf","fromList","items","toFilePromises","item","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","flatten","reduce","acc","globalThis","isSecureContext","getAsFileSystemHandle","getFile","handle","getAsFile","_a","fullPath","fromEntry","Promise","resolve","reject","fwp","fromFileEntry","reader","createReader","readEntries","batch","__awaiter","all","es","default","acceptedFiles","acceptedFilesArray","fileName","mimeType","baseMimeType","replace","some","validType","trim","charAt","endsWith","_toConsumableArray","arr","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","ownKeys","enumerableOnly","sym","getOwnPropertyDescriptor","apply","_objectSpread","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","o","minLen","test","len","arr2","accepts","_accepts","getInvalidTypeRejectionErr","acceptArr","msg","concat","code","getTooLargeRejectionErr","maxSize","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","accept","isAcceptable","fileMatchSize","isDefined","size","isPropagationStopped","event","cancelBubble","isEvtWithFiles","dataTransfer","types","onDocumentDragOver","preventDefault","composeEventHandlers","_len","fns","_key","_len2","_key2","fn","isMIMEType","isExt","_excluded","_excluded2","_excluded3","_excluded4","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","Dropzone","forwardRef","_ref","ref","children","_useDropzone","_defaultProps$props","defaultProps","disabled","getFilesFromEvent","multiple","maxFiles","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","onFileDialogCancel","onFileDialogOpen","useFsAccessApi","autoFocus","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","onError","validator","acceptAttr","_ref6","_ref7","acceptPropAsAcceptAttr","pickerTypes","description","_ref2","_ref3","ok","agg","_ref4","_ref5","pickerOptionsFromAccept","onFileDialogOpenCb","noop","onFileDialogCancelCb","rootRef","inputRef","_useReducer2","useReducer","initialState","isFocused","isFileDialogActive","fsAccessApiWorksRef","window","onWindowFocus","addEventListener","removeEventListener","dragTargetsRef","onDocumentDrop","contains","document","focus","onErrCb","onDragEnterCb","persist","stopPropagation","then","fileCount","isDragAccept","accepted","sizeMatch","customErrors","allFilesAccepted","isDragReject","isDragActive","catch","onDragOverCb","hasFiles","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","splice","setFiles","fileRejections","_fileAccepted2","acceptError","_fileMatchSize2","sizeError","errors","onDropCb","openFileDialog","opts","showOpenFilePicker","handles","DOMException","ABORT_ERR","SECURITY_ERR","isSecurityError","click","onKeyDownCb","isEqualNode","keyCode","onFocusCb","onBlurCb","onClickCb","userAgent","navigator","isIe","isEdge","isIeOrEdge","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref2$refKey","refKey","role","onKeyDown","onFocus","onBlur","onClick","rest","tabIndex","onInputElementClick","getInputProps","_ref3$refKey","style","border","clip","clipPath","height","margin","overflow","padding","position","width","whiteSpace","useDropzone","useImperativeHandle","React","createElement","displayName","evt","dt","kind","getDataTransferFiles","isChangeEvt","getInputFiles","getFsHandleFiles","Infinity","propTypes","FileUploader","valueProp","onValueChange","onUpload","progresses","maxFileCount","className","onGetErrorMessage","onValidFile","title","fileErrors","setFileErrors","previewFiles","isLoading","dropzoneProps","rejectedFiles","variant","validFiles","updatedFiles","result","isDisabled","div","cn","input","UploadIcon","aria-hidden","RotateCwIcon","POSITIVE_INFINITY","formatBytes","ScrollArea","index","FileCard","onRemove","fileToRemove","newFiles","_","prevErrors","progress","errorMessage","find","Progress","Button","XIcon","span"],"mappings":"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","x_google_ignoreList":[0,1,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]}