UNPKG

@tiller-ds/upload

Version:

Upload module of Tiller Design System

1,388 lines (1,184 loc) 60.9 kB
(function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react'), require('@rpldy/uploady'), require('@rpldy/upload-drop-zone'), require('@tiller-ds/form-elements'), require('@tiller-ds/icons'), require('@tiller-ds/theme'), require('@tiller-ds/util'), require('@tiller-ds/core'), require('lodash')) : typeof define === 'function' && define.amd ? define(['exports', 'react', '@rpldy/uploady', '@rpldy/upload-drop-zone', '@tiller-ds/form-elements', '@tiller-ds/icons', '@tiller-ds/theme', '@tiller-ds/util', '@tiller-ds/core', 'lodash'], factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Upload = {}, global.React, global.Uploady, global.UploadDropZone, global.formElements, global.icons, global.theme, global.util, global.core, global.lodash)); })(this, (function (exports, React, Uploady, UploadDropZone, formElements, icons, theme, util, core, lodash) { 'use strict'; function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; } }); } }); } n["default"] = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/_interopNamespace(React); var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var Uploady__default = /*#__PURE__*/_interopDefaultLegacy(Uploady); var UploadDropZone__default = /*#__PURE__*/_interopDefaultLegacy(UploadDropZone); var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; var check = function (it) { return it && it.Math == Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 var global$d = // eslint-disable-next-line es/no-global-this -- safe check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || // eslint-disable-next-line no-restricted-globals -- safe check(typeof self == 'object' && self) || check(typeof commonjsGlobal == 'object' && commonjsGlobal) || // eslint-disable-next-line no-new-func -- fallback (function () { return this; })() || Function('return this')(); var objectGetOwnPropertyDescriptor = {}; var fails$5 = function (exec) { try { return !!exec(); } catch (error) { return true; } }; var fails$4 = fails$5; // Detect IE8's incomplete defineProperty implementation var descriptors = !fails$4(function () { // eslint-disable-next-line es/no-object-defineproperty -- required for testing return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; }); var objectPropertyIsEnumerable = {}; var $propertyIsEnumerable = {}.propertyIsEnumerable; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor$1 && !$propertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor$1(this, V); return !!descriptor && descriptor.enumerable; } : $propertyIsEnumerable; var createPropertyDescriptor$2 = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; var toString = {}.toString; var classofRaw = function (it) { return toString.call(it).slice(8, -1); }; var fails$3 = fails$5; var classof$2 = classofRaw; var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings var indexedObject = fails$3(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins -- safe return !Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof$2(it) == 'String' ? split.call(it, '') : Object(it); } : Object; // `RequireObjectCoercible` abstract operation // https://tc39.es/ecma262/#sec-requireobjectcoercible var requireObjectCoercible$2 = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; // toObject with fallback for non-array-like ES3 strings var IndexedObject = indexedObject; var requireObjectCoercible$1 = requireObjectCoercible$2; var toIndexedObject$3 = function (it) { return IndexedObject(requireObjectCoercible$1(it)); }; var isObject$5 = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; var isObject$4 = isObject$5; // `ToPrimitive` abstract operation // https://tc39.es/ecma262/#sec-toprimitive // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string var toPrimitive$2 = function (input, PREFERRED_STRING) { if (!isObject$4(input)) return input; var fn, val; if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$4(val = fn.call(input))) return val; if (typeof (fn = input.valueOf) == 'function' && !isObject$4(val = fn.call(input))) return val; if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject$4(val = fn.call(input))) return val; throw TypeError("Can't convert object to primitive value"); }; var hasOwnProperty = {}.hasOwnProperty; var has$6 = function (it, key) { return hasOwnProperty.call(it, key); }; var global$c = global$d; var isObject$3 = isObject$5; var document$1 = global$c.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject$3(document$1) && isObject$3(document$1.createElement); var documentCreateElement$1 = function (it) { return EXISTS ? document$1.createElement(it) : {}; }; var DESCRIPTORS$4 = descriptors; var fails$2 = fails$5; var createElement = documentCreateElement$1; // Thank's IE8 for his funny defineProperty var ie8DomDefine = !DESCRIPTORS$4 && !fails$2(function () { // eslint-disable-next-line es/no-object-defineproperty -- requied for testing return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a != 7; }); var DESCRIPTORS$3 = descriptors; var propertyIsEnumerableModule = objectPropertyIsEnumerable; var createPropertyDescriptor$1 = createPropertyDescriptor$2; var toIndexedObject$2 = toIndexedObject$3; var toPrimitive$1 = toPrimitive$2; var has$5 = has$6; var IE8_DOM_DEFINE$1 = ie8DomDefine; // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor objectGetOwnPropertyDescriptor.f = DESCRIPTORS$3 ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject$2(O); P = toPrimitive$1(P, true); if (IE8_DOM_DEFINE$1) try { return $getOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (has$5(O, P)) return createPropertyDescriptor$1(!propertyIsEnumerableModule.f.call(O, P), O[P]); }; var objectDefineProperty = {}; var isObject$2 = isObject$5; var anObject$4 = function (it) { if (!isObject$2(it)) { throw TypeError(String(it) + ' is not an object'); } return it; }; var DESCRIPTORS$2 = descriptors; var IE8_DOM_DEFINE = ie8DomDefine; var anObject$3 = anObject$4; var toPrimitive = toPrimitive$2; // eslint-disable-next-line es/no-object-defineproperty -- safe var $defineProperty = Object.defineProperty; // `Object.defineProperty` method // https://tc39.es/ecma262/#sec-object.defineproperty objectDefineProperty.f = DESCRIPTORS$2 ? $defineProperty : function defineProperty(O, P, Attributes) { anObject$3(O); P = toPrimitive(P, true); anObject$3(Attributes); if (IE8_DOM_DEFINE) try { return $defineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; var DESCRIPTORS$1 = descriptors; var definePropertyModule$3 = objectDefineProperty; var createPropertyDescriptor = createPropertyDescriptor$2; var createNonEnumerableProperty$4 = DESCRIPTORS$1 ? function (object, key, value) { return definePropertyModule$3.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; var redefine$1 = {exports: {}}; var global$b = global$d; var createNonEnumerableProperty$3 = createNonEnumerableProperty$4; var setGlobal$3 = function (key, value) { try { createNonEnumerableProperty$3(global$b, key, value); } catch (error) { global$b[key] = value; } return value; }; var global$a = global$d; var setGlobal$2 = setGlobal$3; var SHARED = '__core-js_shared__'; var store$3 = global$a[SHARED] || setGlobal$2(SHARED, {}); var sharedStore = store$3; var store$2 = sharedStore; var functionToString = Function.toString; // this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper if (typeof store$2.inspectSource != 'function') { store$2.inspectSource = function (it) { return functionToString.call(it); }; } var inspectSource$2 = store$2.inspectSource; var global$9 = global$d; var inspectSource$1 = inspectSource$2; var WeakMap$1 = global$9.WeakMap; var nativeWeakMap = typeof WeakMap$1 === 'function' && /native code/.test(inspectSource$1(WeakMap$1)); var shared$3 = {exports: {}}; var store$1 = sharedStore; (shared$3.exports = function (key, value) { return store$1[key] || (store$1[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.10.1', mode: 'global', copyright: '© 2021 Denis Pushkarev (zloirock.ru)' }); var id = 0; var postfix = Math.random(); var uid$2 = function (key) { return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); }; var shared$2 = shared$3.exports; var uid$1 = uid$2; var keys = shared$2('keys'); var sharedKey$2 = function (key) { return keys[key] || (keys[key] = uid$1(key)); }; var hiddenKeys$4 = {}; var NATIVE_WEAK_MAP = nativeWeakMap; var global$8 = global$d; var isObject$1 = isObject$5; var createNonEnumerableProperty$2 = createNonEnumerableProperty$4; var objectHas = has$6; var shared$1 = sharedStore; var sharedKey$1 = sharedKey$2; var hiddenKeys$3 = hiddenKeys$4; var WeakMap = global$8.WeakMap; var set, get, has$4; var enforce = function (it) { return has$4(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject$1(it) || (state = get(it)).type !== TYPE) { throw TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP) { var store = shared$1.state || (shared$1.state = new WeakMap()); var wmget = store.get; var wmhas = store.has; var wmset = store.set; set = function (it, metadata) { metadata.facade = it; wmset.call(store, it, metadata); return metadata; }; get = function (it) { return wmget.call(store, it) || {}; }; has$4 = function (it) { return wmhas.call(store, it); }; } else { var STATE = sharedKey$1('state'); hiddenKeys$3[STATE] = true; set = function (it, metadata) { metadata.facade = it; createNonEnumerableProperty$2(it, STATE, metadata); return metadata; }; get = function (it) { return objectHas(it, STATE) ? it[STATE] : {}; }; has$4 = function (it) { return objectHas(it, STATE); }; } var internalState = { set: set, get: get, has: has$4, enforce: enforce, getterFor: getterFor }; var global$7 = global$d; var createNonEnumerableProperty$1 = createNonEnumerableProperty$4; var has$3 = has$6; var setGlobal$1 = setGlobal$3; var inspectSource = inspectSource$2; var InternalStateModule = internalState; var getInternalState = InternalStateModule.get; var enforceInternalState = InternalStateModule.enforce; var TEMPLATE = String(String).split('String'); (redefine$1.exports = function (O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; var state; if (typeof value == 'function') { if (typeof key == 'string' && !has$3(value, 'name')) { createNonEnumerableProperty$1(value, 'name', key); } state = enforceInternalState(value); if (!state.source) { state.source = TEMPLATE.join(typeof key == 'string' ? key : ''); } } if (O === global$7) { if (simple) O[key] = value; else setGlobal$1(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else createNonEnumerableProperty$1(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, 'toString', function toString() { return typeof this == 'function' && getInternalState(this).source || inspectSource(this); }); var global$6 = global$d; var path$1 = global$6; var path = path$1; var global$5 = global$d; var aFunction = function (variable) { return typeof variable == 'function' ? variable : undefined; }; var getBuiltIn$3 = function (namespace, method) { return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global$5[namespace]) : path[namespace] && path[namespace][method] || global$5[namespace] && global$5[namespace][method]; }; var objectGetOwnPropertyNames = {}; var ceil = Math.ceil; var floor = Math.floor; // `ToInteger` abstract operation // https://tc39.es/ecma262/#sec-tointeger var toInteger$2 = function (argument) { return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); }; var toInteger$1 = toInteger$2; var min$1 = Math.min; // `ToLength` abstract operation // https://tc39.es/ecma262/#sec-tolength var toLength$1 = function (argument) { return argument > 0 ? min$1(toInteger$1(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; var toInteger = toInteger$2; var max = Math.max; var min = Math.min; // Helper for a popular repeating case of the spec: // Let integer be ? ToInteger(index). // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). var toAbsoluteIndex$1 = function (index, length) { var integer = toInteger(index); return integer < 0 ? max(integer + length, 0) : min(integer, length); }; var toIndexedObject$1 = toIndexedObject$3; var toLength = toLength$1; var toAbsoluteIndex = toAbsoluteIndex$1; // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject$1($this); var length = toLength(O.length); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare -- NaN check if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare -- NaN check if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) { if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; var arrayIncludes = { // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes includes: createMethod(true), // `Array.prototype.indexOf` method // https://tc39.es/ecma262/#sec-array.prototype.indexof indexOf: createMethod(false) }; var has$2 = has$6; var toIndexedObject = toIndexedObject$3; var indexOf = arrayIncludes.indexOf; var hiddenKeys$2 = hiddenKeys$4; var objectKeysInternal = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) !has$2(hiddenKeys$2, key) && has$2(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has$2(O, key = names[i++])) { ~indexOf(result, key) || result.push(key); } return result; }; // IE8- don't enum bug keys var enumBugKeys$3 = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; var internalObjectKeys$1 = objectKeysInternal; var enumBugKeys$2 = enumBugKeys$3; var hiddenKeys$1 = enumBugKeys$2.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method // https://tc39.es/ecma262/#sec-object.getownpropertynames // eslint-disable-next-line es/no-object-getownpropertynames -- safe objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys$1(O, hiddenKeys$1); }; var objectGetOwnPropertySymbols = {}; // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; var getBuiltIn$2 = getBuiltIn$3; var getOwnPropertyNamesModule = objectGetOwnPropertyNames; var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; var anObject$2 = anObject$4; // all object keys, includes non-enumerable and symbols var ownKeys$1 = getBuiltIn$2('Reflect', 'ownKeys') || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject$2(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; }; var has$1 = has$6; var ownKeys = ownKeys$1; var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; var definePropertyModule$2 = objectDefineProperty; var copyConstructorProperties$1 = function (target, source) { var keys = ownKeys(source); var defineProperty = definePropertyModule$2.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!has$1(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } }; var fails$1 = fails$5; var replacement = /#|\.prototype\./; var isForced$1 = function (feature, detection) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails$1(detection) : !!detection; }; var normalize = isForced$1.normalize = function (string) { return String(string).replace(replacement, '.').toLowerCase(); }; var data = isForced$1.data = {}; var NATIVE = isForced$1.NATIVE = 'N'; var POLYFILL = isForced$1.POLYFILL = 'P'; var isForced_1 = isForced$1; var global$4 = global$d; var getOwnPropertyDescriptor = objectGetOwnPropertyDescriptor.f; var createNonEnumerableProperty = createNonEnumerableProperty$4; var redefine = redefine$1.exports; var setGlobal = setGlobal$3; var copyConstructorProperties = copyConstructorProperties$1; var isForced = isForced_1; /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target */ var _export = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global$4; } else if (STATIC) { target = global$4[TARGET] || setGlobal(TARGET, {}); } else { target = (global$4[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty === typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { createNonEnumerableProperty(sourceProperty, 'sham', true); } // extend global redefine(target, key, sourceProperty, options); } }; var classof$1 = classofRaw; var global$3 = global$d; var engineIsNode = classof$1(global$3.process) == 'process'; var getBuiltIn$1 = getBuiltIn$3; var engineUserAgent = getBuiltIn$1('navigator', 'userAgent') || ''; var global$2 = global$d; var userAgent = engineUserAgent; var process = global$2.process; var versions = process && process.versions; var v8 = versions && versions.v8; var match, version; if (v8) { match = v8.split('.'); version = match[0] + match[1]; } else if (userAgent) { match = userAgent.match(/Edge\/(\d+)/); if (!match || match[1] >= 74) { match = userAgent.match(/Chrome\/(\d+)/); if (match) version = match[1]; } } var engineV8Version = version && +version; var IS_NODE = engineIsNode; var V8_VERSION = engineV8Version; var fails = fails$5; // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing var nativeSymbol = !!Object.getOwnPropertySymbols && !fails(function () { // eslint-disable-next-line es/no-symbol -- required for testing return !Symbol.sham && // Chrome 38 Symbol has incorrect toString conversion // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41); }); /* eslint-disable es/no-symbol -- required for testing */ var NATIVE_SYMBOL$1 = nativeSymbol; var useSymbolAsUid = NATIVE_SYMBOL$1 && !Symbol.sham && typeof Symbol.iterator == 'symbol'; var global$1 = global$d; var shared = shared$3.exports; var has = has$6; var uid = uid$2; var NATIVE_SYMBOL = nativeSymbol; var USE_SYMBOL_AS_UID = useSymbolAsUid; var WellKnownSymbolsStore = shared('wks'); var Symbol$1 = global$1.Symbol; var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$1 : Symbol$1 && Symbol$1.withoutSetter || uid; var wellKnownSymbol$3 = function (name) { if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { if (NATIVE_SYMBOL && has(Symbol$1, name)) { WellKnownSymbolsStore[name] = Symbol$1[name]; } else { WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name); } } return WellKnownSymbolsStore[name]; }; var internalObjectKeys = objectKeysInternal; var enumBugKeys$1 = enumBugKeys$3; // `Object.keys` method // https://tc39.es/ecma262/#sec-object.keys // eslint-disable-next-line es/no-object-keys -- safe var objectKeys$1 = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys$1); }; var DESCRIPTORS = descriptors; var definePropertyModule$1 = objectDefineProperty; var anObject$1 = anObject$4; var objectKeys = objectKeys$1; // `Object.defineProperties` method // https://tc39.es/ecma262/#sec-object.defineproperties // eslint-disable-next-line es/no-object-defineproperties -- safe var objectDefineProperties = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { anObject$1(O); var keys = objectKeys(Properties); var length = keys.length; var index = 0; var key; while (length > index) definePropertyModule$1.f(O, key = keys[index++], Properties[key]); return O; }; var getBuiltIn = getBuiltIn$3; var html$1 = getBuiltIn('document', 'documentElement'); var anObject = anObject$4; var defineProperties = objectDefineProperties; var enumBugKeys = enumBugKeys$3; var hiddenKeys = hiddenKeys$4; var html = html$1; var documentCreateElement = documentCreateElement$1; var sharedKey = sharedKey$2; var GT = '>'; var LT = '<'; var PROTOTYPE = 'prototype'; var SCRIPT = 'script'; var IE_PROTO = sharedKey('IE_PROTO'); var EmptyConstructor = function () { /* empty */ }; var scriptTag = function (content) { return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; }; // Create object with fake `null` prototype: use ActiveX Object with cleared prototype var NullProtoObjectViaActiveX = function (activeXDocument) { activeXDocument.write(scriptTag('')); activeXDocument.close(); var temp = activeXDocument.parentWindow.Object; activeXDocument = null; // avoid memory leak return temp; }; // Create object with fake `null` prototype: use iframe Object with cleared prototype var NullProtoObjectViaIFrame = function () { // Thrash, waste and sodomy: IE GC bug var iframe = documentCreateElement('iframe'); var JS = 'java' + SCRIPT + ':'; var iframeDocument; iframe.style.display = 'none'; html.appendChild(iframe); // https://github.com/zloirock/core-js/issues/475 iframe.src = String(JS); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(scriptTag('document.F=Object')); iframeDocument.close(); return iframeDocument.F; }; // Check for document.domain and active x support // No need to use active x approach when document.domain is not set // see https://github.com/es-shims/es5-shim/issues/150 // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 // avoid IE GC bug var activeXDocument; var NullProtoObject = function () { try { /* global ActiveXObject -- old IE */ activeXDocument = document.domain && new ActiveXObject('htmlfile'); } catch (error) { /* ignore */ } NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame(); var length = enumBugKeys.length; while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; return NullProtoObject(); }; hiddenKeys[IE_PROTO] = true; // `Object.create` method // https://tc39.es/ecma262/#sec-object.create var objectCreate = Object.create || function create(O, Properties) { var result; if (O !== null) { EmptyConstructor[PROTOTYPE] = anObject(O); result = new EmptyConstructor(); EmptyConstructor[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = NullProtoObject(); return Properties === undefined ? result : defineProperties(result, Properties); }; var wellKnownSymbol$2 = wellKnownSymbol$3; var create = objectCreate; var definePropertyModule = objectDefineProperty; var UNSCOPABLES = wellKnownSymbol$2('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables if (ArrayPrototype[UNSCOPABLES] == undefined) { definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { configurable: true, value: create(null) }); } // add a key to Array.prototype[@@unscopables] var addToUnscopables$1 = function (key) { ArrayPrototype[UNSCOPABLES][key] = true; }; var $$1 = _export; var $includes = arrayIncludes.includes; var addToUnscopables = addToUnscopables$1; // `Array.prototype.includes` method // https://tc39.es/ecma262/#sec-array.prototype.includes $$1({ target: 'Array', proto: true }, { includes: function includes(el /* , fromIndex = 0 */) { return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); } }); // https://tc39.es/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('includes'); var isObject = isObject$5; var classof = classofRaw; var wellKnownSymbol$1 = wellKnownSymbol$3; var MATCH$1 = wellKnownSymbol$1('match'); // `IsRegExp` abstract operation // https://tc39.es/ecma262/#sec-isregexp var isRegexp = function (it) { var isRegExp; return isObject(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof(it) == 'RegExp'); }; var isRegExp = isRegexp; var notARegexp = function (it) { if (isRegExp(it)) { throw TypeError("The method doesn't accept regular expressions"); } return it; }; var wellKnownSymbol = wellKnownSymbol$3; var MATCH = wellKnownSymbol('match'); var correctIsRegexpLogic = function (METHOD_NAME) { var regexp = /./; try { '/./'[METHOD_NAME](regexp); } catch (error1) { try { regexp[MATCH] = false; return '/./'[METHOD_NAME](regexp); } catch (error2) { /* empty */ } } return false; }; var $ = _export; var notARegExp = notARegexp; var requireObjectCoercible = requireObjectCoercible$2; var correctIsRegExpLogic = correctIsRegexpLogic; // `String.prototype.includes` method // https://tc39.es/ecma262/#sec-string.prototype.includes $({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, { includes: function includes(searchString /* , position = 0 */) { return !!~String(requireObjectCoercible(this)) .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined); } }); /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ var __assign = function() { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; function __rest(s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; } function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } } /** @deprecated */ function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; } /** * Default mapper for backend response, maps to {@link File} type * @param item item that was uploaded * @param originalFileName original file name in the time of the upload */ function defaultUploadResponseMapper(item, originalFileName) { return { id: item.uploadResponse.data.id, originalFileName: originalFileName, name: item.uploadResponse.data.name, status: item.state, versions: [] }; } /** * Hook that works with uploady and tracks the current file list. Can be used with manual or with automatic tracking of * the uploaded files * @param files initial uploaded files * @param autoTrack should the hook automatically track uploaded files, default is false */ function useFileUpload(files, autoTrack) { if (files === void 0) { files = []; } if (autoTrack === void 0) { autoTrack = false; } var _a = React__namespace.useState([]), uploadedFiles = _a[0], setUploadedFiles = _a[1]; var _b = React__namespace.useState([]), uploadedFileIds = _b[0], setUploadedFileIds = _b[1]; var _c = React__namespace.useState(null), updateCallback = _c[0], setUpdateCallback = _c[1]; var addUploadedFileId = React__namespace.useCallback(function (id) { if (id !== null) { setUploadedFileIds(function (previousFileIds) { return __spreadArrays(previousFileIds, [id]); }); } }, []); var removeUploadedFileIds = React__namespace.useCallback(function (ids) { if (ids !== null) { setUploadedFileIds(function (previousFileIds) { return previousFileIds.filter(function (id) { return Array.isArray(ids) ? !ids.includes(id) : id !== ids; }); }); } }, []); var onUploadedFiles = React__namespace.useCallback(function (item) { setUploadedFiles(function (uploadedFiles) { return __spreadArrays(uploadedFiles, [item]); }); if (autoTrack) { addUploadedFileId(item.id); } else { updateCallback === null || updateCallback === void 0 ? void 0 : updateCallback(item.id, undefined); } }, [updateCallback]); // Add initial files on mount React__namespace.useEffect(function () { setUploadedFiles(files.map(function (file) { return __assign(__assign({}, file), { status: "finished" }); })); setUploadedFileIds(files.map(function (file) { return file.id; })); }, []); var onDeletedFiles = React__namespace.useCallback(function (item) { var ids = Array.isArray(item) ? item.map(function (file) { return file.id; }) : item.id; if (autoTrack) { removeUploadedFileIds(ids); } else { updateCallback === null || updateCallback === void 0 ? void 0 : updateCallback(undefined, ids); } }, [updateCallback]); var onUploadedFileIds = React__namespace.useCallback(function (fileIds) { setUploadedFileIds(fileIds || []); }, []); var onUpdateCallback = function onUpdateCallback(callback) { setUpdateCallback(function () { return callback; }); }; var uploadedFilesFinal = React__namespace.useMemo(function () { return uploadedFiles.filter(function (file) { return uploadedFileIds.includes(file.id); }); }, [uploadedFiles, uploadedFileIds]); return { uploadedFiles: uploadedFilesFinal, uploadedFileIds: uploadedFileIds, onUploadedFiles: onUploadedFiles, onUploadedFileIds: onUploadedFileIds, onDeletedFiles: onDeletedFiles, onUpdateCallback: onUpdateCallback, addUploadedFileId: addUploadedFileId, removeUploadedFileIds: removeUploadedFileIds }; } /* * Copyright 2025 CROZ d.o.o, the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ function UploadyWrapper(_a) { var url = _a.url, send = _a.send, _b = _a.allowMultiple, allowMultiple = _b === void 0 ? false : _b, listeners = _a.listeners, enhancer = _a.enhancer, destinationOptions = _a.destinationOptions, withCredentials = _a.withCredentials, children = _a.children; var authorizedDestination = __assign({ url: url }, destinationOptions !== null && destinationOptions !== void 0 ? destinationOptions : {}); return /*#__PURE__*/React__namespace.createElement(Uploady__default["default"], { destination: authorizedDestination, send: send, multiple: allowMultiple, listeners: listeners, withCredentials: withCredentials, enhancer: enhancer }, children); } /* * Copyright 2025 CROZ d.o.o, the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ function DragZone(_a) { var _b = _a.allowMultiple, allowMultiple = _b === void 0 ? false : _b, _c = _a.disabled, disabled = _c === void 0 ? false : _c, _d = _a.mapUploadResponse, mapUploadResponse = _d === void 0 ? defaultUploadResponseMapper : _d, hook = _a.hook, send = _a.send, enhancer = _a.enhancer, destinationOptions = _a.destinationOptions, listeners = _a.listeners, subtitle = _a.subtitle, title = _a.title, url = _a.url, uploadIcon = _a.uploadIcon, withCredentials = _a.withCredentials, className = _a.className, _e = _a.loader, loader = _e === void 0 ? function (uploadPercentage) { return /*#__PURE__*/React__default["default"].createElement(DragZoneLoader, { uploadPercentage: uploadPercentage }); } : _e, _f = _a.preLoadDelay, preLoadDelay = _f === void 0 ? 0 : _f, _g = _a.postLoadDelay, postLoadDelay = _g === void 0 ? 0 : _g, props = __rest(_a, ["allowMultiple", "disabled", "mapUploadResponse", "hook", "send", "enhancer", "destinationOptions", "listeners", "subtitle", "title", "url", "uploadIcon", "withCredentials", "className", "loader", "preLoadDelay", "postLoadDelay"]); var tokens = theme.useTokens("DragZone", props.tokens); var onDragOverClassName = "opacity-50"; return /*#__PURE__*/React__default["default"].createElement(formElements.Field, __assign({}, props, { "data-testid": props["data-testid"] && props["data-testid"] + "-wrapper" }), !disabled ? /*#__PURE__*/React__default["default"].createElement(UploadyWrapper, { url: url, send: send, enhancer: enhancer, listeners: listeners, destinationOptions: destinationOptions, allowMultiple: allowMultiple, withCredentials: withCredentials }, /*#__PURE__*/React__default["default"].createElement(UploadDropZone__default["default"], { className: tokens.uploadyDropZone, onDragOverClassName: onDragOverClassName }, /*#__PURE__*/React__default["default"].createElement(CustomUploadDropZoneContainer, { hook: hook, title: title, subtitle: subtitle, mapUploadResponse: mapUploadResponse, uploadIcon: uploadIcon, className: className, loader: loader, preLoadDelay: preLoadDelay, postLoadDelay: postLoadDelay, "data-testid": props["data-testid"] }))) : /*#__PURE__*/React__default["default"].createElement(CustomUploadDropZone, { disabled: disabled, uploadActive: false, title: title, subtitle: subtitle })); } function CustomUploadDropZoneContainer(_a) { var _this = this; var hook = _a.hook, loader = _a.loader, props = __rest(_a, ["hook", "loader"]); var uploady = React__default["default"].useContext(Uploady.UploadyContext); var _b = React__default["default"].useState(""), originalFileName = _b[0], setOriginalFileName = _b[1]; var _c = React__default["default"].useState(false), uploadActive = _c[0], setUploadActive = _c[1]; var _d = React__default["default"].useState(0), uploadPercentage = _d[0], setUploadPercentage = _d[1]; var onClick = React__default["default"].useCallback(function () { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) { uploady.showFileUpload(); return [2 /*return*/ ]; }); }); }, [uploady]); Uploady.useItemStartListener(function (item) { setUploadActive(true); setUploadPercentage(0); setOriginalFileName(item.file.name); }); Uploady.useItemProgressListener(function (item) { setUploadPercentage(item.completed); }); Uploady.useItemFinishListener(function (item) { var file = props.mapUploadResponse(item, originalFileName); hook === null || hook === void 0 ? void 0 : hook.onUploadedFiles(file); setUploadActive(false); }); return /*#__PURE__*/React__default["default"].createElement(CustomUploadDropZone, __assign({ onClick: onClick, uploadActive: uploadActive, uploadPercentage: uploadPercentage, loader: loader }, props)); } function CustomUploadDropZone(_a) { var _b, _c; var title = _a.title, subtitle = _a.subtitle, _d = _a.disabled, disabled = _d === void 0 ? false : _d, uploadActive = _a.uploadActive, onClick = _a.onClick, uploadIcon = _a.uploadIcon, className = _a.className, loader = _a.loader, uploadPercentage = _a.uploadPercentage, preLoadDelay = _a.preLoadDelay, postLoadDelay = _a.postLoadDelay, props = __rest(_a, ["title", "subtitle", "disabled", "uploadActive", "onClick", "uploadIcon", "className", "loader", "uploadPercentage", "preLoadDelay", "postLoadDelay"]); var tokens = theme.useTokens("DragZone", props.tokens); var customUploadDropZoneContainerClassName = theme.cx(tokens.customUploadDropZoneContainer.master, tokens.customUploadDropZoneContainer.margin, tokens.customUploadDropZoneContainer.padding, tokens.customUploadDropZoneContainer.borderWidth, tokens.customUploadDropZoneContainer.borderStyle, tokens.customUploadDropZoneContainer.borderRadius, { "opacity-75 cursor-default": disabled }, (_b = {}, _b[tokens.customUploadDropZoneContainer.borderColor] = !uploadActive, _b), (_c = {}, _c[tokens.customUploadDropZoneContainer.borderDarkColor] = uploadActive, _c)); var customUploadDropZoneTitleClassName = theme.cx(tokens.customUploadDropZoneTitle.master, tokens.customUploadDropZoneTitle.fontSize, tokens.customUploadDropZoneTitle.fontWeight, tokens.customUploadDropZoneTitle.color); var customUploadDropZoneSubtitleClassName = theme.cx(tokens.customUploadDropZoneSubtitle.fontSize, tokens.customUploadDropZoneSubtitle.color); var uploadZoneIcon = theme.useIcon("file", uploadIcon, { size: tokens.iconSize, className: "mx-auto " + tokens.iconColor }); var _e = React.useState(false), preLoadDelayPassed = _e[0], setPreLoadDelayPassed = _e[1]; var _f = React.useState(false), postUploadPeriodActive = _f[0], setPostUploadPeriodActive = _f[1]; var prevUploadActive = util.usePrevious(uploadActive); React.useEffect(function () { if (uploadActive) { setPreLoadDelayPassed(false); setTimeout(function () { setPreLoadDelayPassed(true); }, preLoadDelay); } else if (prevUploadActive && !uploadActive) { setPostUploadPeriodActive(true); setTimeout(function () { setPostUploadPeriodActive(false); }, postLoadDelay); } }, [uploadActive, preLoadDelay, postLoadDelay, prevUploadActive]); var showLoader = loader && (preLoadDelayPassed && uploadActive || postUploadPeriodActive); return /*#__PURE__*/React__default["default"].createElement("div", { className: util.tillerTwMerge(customUploadDropZoneContainerClassName, className), onClick: onClick, "data-testid": props["data-testid"] }, /*#__PURE__*/React__default["default"].createElement("div", { className: tokens.customUploadDropZoneDescriptionContainer }, showLoader && loader && uploadPercentage ? loader(uploadPercentage) : uploadZoneIcon, /*#__PURE__*/React__default["default"].createElement("label", { className: customUploadDropZoneTitleClassName }, title), /*#__PURE__*/React__default["default"].createElement("p", { className: customUploadDropZoneSubtitleClassName }, subtitle))); } function DragZoneLoader(_a) { var uploadPercentage = _a.uploadPercentage, _b = _a.spinner, spinner = _b === void 0 ? true : _b, _c = _a.percentage, percentage = _c === void 0 ? true : _c, props = __rest(_a, ["uploadPercentage", "spinner", "percentage"]); var tokens = theme.useTokens("DragZone", props.tokens); if (!spinner && !percentage) { console.warn("DragZoneLoader is not configured to show spinner and/or percentage. " + "At least one of these props needs to be enabled in order for the component to display something."); } var loaderClassName = theme.cx(tokens.loader.master, "h-" + tokens.iconSize); return /*#__PURE__*/React__default["default"].createElement("div", { className: loaderClassName }, spinner && /*#__PURE__*/React__default["default"].createElement(icons.LoadingIcon, { size: tokens.iconSize }), percentage && /*#__PURE__*/React__default["default"].createElement("span", { className: tokens.loader.percentage }, uploadPercentage, "%")); } /* * Copyright 2025 CROZ d.o.o, the original author or authors. * * Licensed under the Apache Lic